(*========================================================== ============================================================ 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 *)
(* OK: *)
(* DEFINITION OF eqco WHICH ALLOWS TO PUT AHEAD ANY 0-LINK: *)
Definition eqco(m:fmap)(k:dim)(x z t:dart):=
eqc (L (B m k x) k x (A m k x)) z t.
(* OK: *)
(* OK, USEFUL IN nc/B,L: *)

Lemma eqc_eqc_B : forall(m:fmap)(k:dim)(x z t:dart),
inv_hmap m -> succ m k x ->
eqc (B m k x) x (A m k x) ->
eqc m z t -> eqc (B m k x) z t.