(*========================================================== ============================================================ TOPOLOGICAL FMAPS, HMAPS -  WITH TAGS AND EMBEDDINGS  PART 7:  expf / B0, nf_L0L0, AND CONSEQUENCES   COMPLETE: OK! ============================================================ ==========================================================*)
(* cd Desktop/JFD/JFD08/GALAPAGOS/DELAUNAY08/  coqtop -opt  Load Jordan1. Load Jordan2. Load Jordan3. Load Jordan4. Load Jordan5. Load Jordan6. *)
Require Export Jordan6.
(*========================================================= cF, expf / B...OK !! (GREAT RESULTS) VERY USEFUL FOR Jordan CT ===========================================================*)
(* expf / B *)
(* ========== 1ST PART OF CS: CASE expf m x0 xb0 =========== *)
(* OK : *)
(* OK:*)
(* SYMMETRICALLY, WE HAVE: *)
(* AND: *)
(* OK: MODIFIED BY ADDING exd m z: *)
(* THEN, COROLLARY: *)
(* THEN, BY COMBINING: *)
(* ===== 2ND PART OF CS : CASE ~expf m x0 xb0 ============== *)
(* OK: *)
(* THEN, WE SYMMETRICALLY HAVE: *)
(* OK: "HINGES" BEFORE B0 *)
(* OK: *)
(* "HINGES" AFTER B0: *)
(* OK: 4 USEFUL LEMMAS (IN FACT, 3 ARE ENOUGH) *)
(* OK: *)

Lemma xb0_ind:forall (m:fmap)(x:dart),
inv_hmap m -> succ m zero x ->
let x0 := cA m zero x in
let x_1:= cA_1 m one x in
let xb0:= bottom m zero x in
let xh0:= top m zero x in
let xh0_1:= cA_1 m one xh0 in
let p := MF.Iter_upb m xh0_1 in
xb0 = Iter (cF m) (p-1)%nat xh0_1.