(*============================================================ PUIS LA 1ERE PARTIE DE expf_L1_CNS... =============================================================*)
(* RECALL:  Lemma expf_L1_CNS:forall (m:fmap)(x y z t:dart), inv_hmap (L m one x y) -> exd m z -> (expf (L m one x y) z t <-> let x1 := cA m one x in let x10 := cA m zero x1 in let y0 := cA m zero y in let y_1 := cA_1 m one y in if expf_dec m x y0 then betweenf m x z y0 /\ betweenf m x t y0 \/ betweenf m y_1 z x10 /\ betweenf m y_1 t x10 \/ ~ expf m x z /\ expf m z t else   expf m z t \/ expf m z x /\ expf m t y0 \/ expf m t x /\ expf m z y0). *)
(* ESSAIS:  Definition dec (A:Prop):Set:= {A}+{~A}.  Lemma or_and_dec : forall (A B C D:Prop), dec A -> dec B -> dec C -> dec D -> {A /\ B \/ C /\ D} + {~(A /\ B \/ C /\ D)}.  *)
(* AUXILARIES: *)
Definition dec (A:Prop):Set:= {A}+{~A}.

(* Specifications: *)
Lemma or_and_dec : forall (A B C D:Prop),
dec A -> dec B -> dec C -> dec D ->
{A /\ B \/ C /\ D}
+ {~A /\ ~C \/ ~B /\ ~C \/ ~A /\ ~D \/ ~B /\ ~D}.