(** The ``is less defined'' relation between values. A value is less defined than itself, and [Vundef] is less defined than any value. *)
Inductive lessdef: val -> val -> Prop :=
| lessdef_refl: forall v, lessdef v v
| lessdef_undef: forall v, lessdef Vundef v.

(* Specifications: *)
Lemma lessdef_same:
forall v1 v2, v1 = v2 -> lessdef v1 v2.
Lemma lessdef_trans:
forall v1 v2 v3, lessdef v1 v2 -> lessdef v2 v3 -> lessdef v1 v3.
Lemma lessdef_same:
forall v1 v2, v1 = v2 -> lessdef v1 v2.
Lemma lessdef_trans:
forall v1 v2 v3, lessdef v1 v2 -> lessdef v2 v3 -> lessdef v1 v3.