In EWF I would prefer no usage of 
   check .. then ... end

What about using a "Unavailable" default message, in the unavailablity_message  is Void
I understand this should not occur due to precondition+invariant.

But "check then end" should really be avoided.