Definition downE := (down_join, join_undef, valid_down).Local Definition ojoin (x y : nat) := Some (x + y).Local Definition ounit := 0.

(* Specifications: *)
Lemma ojoinC x y : ojoin x y = ojoin y x.
Lemma ojoinA x y z : obind (ojoin x) (ojoin y z) = obind (ojoin^~ z) (ojoin x y).
Lemma ounitL x : ojoin ounit x = Some x.