(* expf / B *)
(* ========== 1ST PART OF CS: CASE expf m x0 xb0 =========== *)
(* OK : *)

(* Specifications: *)
Lemma expf_B0_CS_1_a_prel1:forall (m:fmap)(x:dart)(i j:nat),
inv_hmap m -> succ m zero x ->
let x_1 := cA_1 m one x in
let p := MF.Iter_upb m x_1 in
let xb0 := bottom m zero x in
let z := Iter (cF m) i x_1 in
xb0 = Iter (cF m) j x_1 ->
(i <= j < p)%nat
-> expf (B m zero x) x_1 z.
Lemma expf_B0_CS_1_a_prel2:forall (m:fmap)(x z:dart),
inv_hmap m -> succ m zero x ->
let x0 := cA m zero x in
let xb0 := bottom m zero x in
let x_1 := cA_1 m one x in
expf m x0 xb0 -> betweenf m x_1 z xb0
-> expf (B m zero x) x_1 z.
Lemma expf_B0_CS_1_a_aux:forall (m:fmap)(x z t:dart),
inv_hmap m -> succ m zero x -> exd m z -> exd m t ->
let x0 := cA m zero x in
let xb0 := bottom m zero x in
let x_1 := cA_1 m one x in
expf m x0 xb0 ->
(betweenf m x_1 z xb0 /\ betweenf m x_1 t xb0)
-> expf (B m zero x) z t.