(** printing \2/ $\cup$ #&cup;# *)
(** printing <2= $\subseteq$ #&sube;# *)
(** printing forall $\forall$ #&forall;# *)
(** printing -> $\rightarrow$ #&rarr;# *)
(** printing /\ $\land$ #&and;# *)
Section safety_equivalence.
Context
( X Y:Type)
( halted: X -> Y -> Prop)
( int_step: X -> Y -> Y -> Prop)
( ext_step: X -> Y -> X -> Y -> Prop)
( valid: X -> Y -> Prop).

(* Specifications: *)
Axiom determinism:
forall x y y',
valid x y  -> int_step x y y' ->
forall x',
valid x' y -> int_step x' y y'.
Axiom valid_step:
forall x y y',
valid x y  -> int_step x y y' ->
valid x y'.