(* OK! *)

(* Specifications: *)
Lemma planar_L_B_top_bot_0:forall(m:fmap)(x:dart),
inv_hmap m -> succ m zero x -> planar m ->
planar (L (B m zero x) zero (top m zero x) (bottom m zero x)).
Lemma top_L_B_top_bot:forall(m:fmap)(x z:dart)(H:inv_hmap m),
succ m zero x -> exd m z -> x <> z ->
let m0:= L (B m zero x)
zero (top m zero x) (bottom m zero x) in
top m0 zero z =
if MA0.expo_dec m x z H then x
else top m zero z.
Lemma double_link_list_Br1_aux:
forall(m:fmap)(x x':dart)(l:list),
inv_hmap m ->
double_link_list m (cons x x' l) ->
pre_ring0 m (cons x x' l) ->
double_link_list (Br1 m x x') l.
Lemma double_link_list_Br1: forall(m:fmap)(l:list),
inv_hmap m ->
double_link_list m l -> pre_ring0 m l ->
let (x,x') := first l in
double_link_list (Br1 m x x') (tail l).
Lemma degree_L1_split_y_1_aux:
forall(m:fmap)(x y:dart)(j i:nat),
let m1:= L m one x y in
let y0 := cA m zero y in
let y_1:= cA_1 m one y in
let dx:= MF.degree m x in
y0 = Iter (cF m) j x ->
j + 1 + i < dx ->
expf m x y0 ->
inv_hmap m1 ->
MF.degree_aux m1 y_1 (dx - (j + 1 + i)) = dx - (j + 1).
Lemma degree_L1_split_y_1:
forall(m:fmap)(x y:dart)(j:nat),
let m1:= L m one x y in
let y0 := cA m zero y in
let y_1:= cA_1 m one y in
let dx:= MF.degree m x in
y0 = Iter (cF m) j x ->
j < dx - 1 ->
expf m x y0 ->
inv_hmap m1 ->
MF.degree m1 y_1 = dx - (j + 1).