(**************************************************)
(* Lifting turns an unlifted structure into a PCM *)
(**************************************************)

Inductive lift A := down | up of A.(**************************************************)
(* Lifting turns an unlifted structure into a PCM *)
(**************************************************)

Inductive lift A := down | up of A.(**************************************************)
(* Lifting turns an unlifted structure into a PCM *)
(**************************************************)

Inductive lift A := down | up of A.

(* Specifications: *)
Lemma joinC (x y : lift A) : join x y = join y x.
Lemma joinA (x y z : lift A) : join x (join y z) = join (join x y) z.
Lemma unitL x : join unit x = x.
Lemma validL x y : valid (join x y) -> valid x.
Lemma validU : valid unit.
Lemma lift_eqP : Equality.axiom lift_eq.