Definition sub_option {A} (x y: option A) :=
 match x with Some x' => y = Some x' | None => True end.

(* Specifications: *)
Lemma sub_option_eqv: forall {A} (x y: option A), x = y <-> sub_option x y /\ sub_option y x.
Lemma sub_option_refl: forall {A} (x: option A), sub_option x x.
Lemma sub_option_trans: forall {A} (x y z: option A), sub_option x y -> sub_option y z -> sub_option x z.