(*========================================================== ============================================================ TOPOLOGICAL FMAPS, HMAPS -  WITH TAGS AND EMBEDDINGS  PART 4:  MAPS, OPERATIONS, PROPERTIES / B, L_B...  COMPLETE: OK! ============================================================ ==========================================================*)
Require Export Jordan3.
(*========================================================== expf_B : expf on B ===========================================================*)
(* OK: *)
(* OK: *)
(* OK: *)
(* IDEM: *)
(* OK: *)
(* OK!! *)
(* IDEM: *)
(* WITH Iter: *)
Definition expfo(m:fmap)(x:dart)(z t:dart):=
expf (L (B m zero x) zero x (A m zero x)) z t.
(*========================================================== eqc_B : eqc on B, L_B ===========================================================*)
(* RECALL: eqc = fix eqc (m : fmap) (x y : dart) {struct m} : Prop := match m with | V => False | I m0 x0 => x = x0 /\ y = x0 \/ eqc m0 x y | L m0 _ x0 y0 => eqc m0 x y \/ eqc m0 x x0 /\ eqc m0 y0 y \/ eqc m0 x y0 /\ eqc m0 x0 y end *)
(* OK: LONG... *)
(* OK! IDEM *)

Lemma eqc_B_CS: forall(m:fmap)(k:dim)(x z t:dart),
inv_hmap m -> succ m k x ->
let xk:= A m k x in
let m0:= B m k x in
(eqc m0 z t \/
eqc m0 z x /\ eqc m0 xk t \/
eqc m0 z xk /\ eqc m0 x t) ->
eqc m z t.