- \lambda (hds: PList).(PList_ind (\lambda (p: PList).(\forall (i:
-nat).(\forall (t: T).(eq T (lift1 p (lift (S i) O t)) (lift (S (trans p i)) O
-(lift1 (ptrans p i) t)))))) (\lambda (i: nat).(\lambda (t: T).(refl_equal T
-(lift (S i) O t)))) (\lambda (h: nat).(\lambda (d: nat).(\lambda (hds0:
-PList).(\lambda (H: ((\forall (i: nat).(\forall (t: T).(eq T (lift1 hds0
-(lift (S i) O t)) (lift (S (trans hds0 i)) O (lift1 (ptrans hds0 i)
-t))))))).(\lambda (i: nat).(\lambda (t: T).(eq_ind_r T (lift (S (trans hds0
-i)) O (lift1 (ptrans hds0 i) t)) (\lambda (t0: T).(eq T (lift h d t0) (lift
-(S (match (blt (trans hds0 i) d) with [true \Rightarrow (trans hds0 i) |
-false \Rightarrow (plus (trans hds0 i) h)])) O (lift1 (match (blt (trans hds0
-i) d) with [true \Rightarrow (PCons h (minus d (S (trans hds0 i))) (ptrans
-hds0 i)) | false \Rightarrow (ptrans hds0 i)]) t)))) (xinduction bool (blt
-(trans hds0 i) d) (\lambda (b: bool).(eq T (lift h d (lift (S (trans hds0 i))
-O (lift1 (ptrans hds0 i) t))) (lift (S (match b with [true \Rightarrow (trans
-hds0 i) | false \Rightarrow (plus (trans hds0 i) h)])) O (lift1 (match b with
-[true \Rightarrow (PCons h (minus d (S (trans hds0 i))) (ptrans hds0 i)) |
-false \Rightarrow (ptrans hds0 i)]) t)))) (\lambda (x_x: bool).(bool_ind
-(\lambda (b: bool).((eq bool (blt (trans hds0 i) d) b) \to (eq T (lift h d
-(lift (S (trans hds0 i)) O (lift1 (ptrans hds0 i) t))) (lift (S (match b with
-[true \Rightarrow (trans hds0 i) | false \Rightarrow (plus (trans hds0 i)
-h)])) O (lift1 (match b with [true \Rightarrow (PCons h (minus d (S (trans
-hds0 i))) (ptrans hds0 i)) | false \Rightarrow (ptrans hds0 i)]) t)))))
-(\lambda (H0: (eq bool (blt (trans hds0 i) d) true)).(eq_ind_r nat (plus (S
-(trans hds0 i)) (minus d (S (trans hds0 i)))) (\lambda (n: nat).(eq T (lift h
-n (lift (S (trans hds0 i)) O (lift1 (ptrans hds0 i) t))) (lift (S (trans hds0
-i)) O (lift1 (PCons h (minus d (S (trans hds0 i))) (ptrans hds0 i)) t))))
-(eq_ind_r T (lift (S (trans hds0 i)) O (lift h (minus d (S (trans hds0 i)))
-(lift1 (ptrans hds0 i) t))) (\lambda (t0: T).(eq T t0 (lift (S (trans hds0
-i)) O (lift1 (PCons h (minus d (S (trans hds0 i))) (ptrans hds0 i)) t))))
-(refl_equal T (lift (S (trans hds0 i)) O (lift1 (PCons h (minus d (S (trans
-hds0 i))) (ptrans hds0 i)) t))) (lift h (plus (S (trans hds0 i)) (minus d (S
-(trans hds0 i)))) (lift (S (trans hds0 i)) O (lift1 (ptrans hds0 i) t)))
-(lift_d (lift1 (ptrans hds0 i) t) h (S (trans hds0 i)) (minus d (S (trans
-hds0 i))) O (le_O_n (minus d (S (trans hds0 i)))))) d (le_plus_minus (S
-(trans hds0 i)) d (bge_le (S (trans hds0 i)) d (le_bge (S (trans hds0 i)) d
-(lt_le_S (trans hds0 i) d (blt_lt d (trans hds0 i) H0))))))) (\lambda (H0:
-(eq bool (blt (trans hds0 i) d) false)).(eq_ind_r T (lift (plus h (S (trans
-hds0 i))) O (lift1 (ptrans hds0 i) t)) (\lambda (t0: T).(eq T t0 (lift (S
-(plus (trans hds0 i) h)) O (lift1 (ptrans hds0 i) t)))) (eq_ind nat (S (plus
-h (trans hds0 i))) (\lambda (n: nat).(eq T (lift n O (lift1 (ptrans hds0 i)
-t)) (lift (S (plus (trans hds0 i) h)) O (lift1 (ptrans hds0 i) t))))
-(eq_ind_r nat (plus (trans hds0 i) h) (\lambda (n: nat).(eq T (lift (S n) O
-(lift1 (ptrans hds0 i) t)) (lift (S (plus (trans hds0 i) h)) O (lift1 (ptrans
-hds0 i) t)))) (refl_equal T (lift (S (plus (trans hds0 i) h)) O (lift1
-(ptrans hds0 i) t))) (plus h (trans hds0 i)) (plus_sym h (trans hds0 i)))
-(plus h (S (trans hds0 i))) (plus_n_Sm h (trans hds0 i))) (lift h d (lift (S
-(trans hds0 i)) O (lift1 (ptrans hds0 i) t))) (lift_free (lift1 (ptrans hds0
-i) t) (S (trans hds0 i)) h O d (eq_ind nat (S (plus O (trans hds0 i)))
-(\lambda (n: nat).(le d n)) (eq_ind_r nat (plus (trans hds0 i) O) (\lambda
-(n: nat).(le d (S n))) (le_S d (plus (trans hds0 i) O) (le_plus_trans d
-(trans hds0 i) O (bge_le d (trans hds0 i) H0))) (plus O (trans hds0 i))
-(plus_sym O (trans hds0 i))) (plus O (S (trans hds0 i))) (plus_n_Sm O (trans
-hds0 i))) (le_O_n d)))) x_x))) (lift1 hds0 (lift (S i) O t)) (H i t))))))))
-hds).
-(* COMMENTS
-Initial nodes: 1339
-END *)
+ \lambda (f: F).(\lambda (hds: PList).(PList_ind (\lambda (p: PList).(\forall
+(u: T).(\forall (t: T).(eq T (lift1 p (THead (Flat f) u t)) (THead (Flat f)
+(lift1 p u) (lift1 p t)))))) (\lambda (u: T).(\lambda (t: T).(refl_equal T
+(THead (Flat f) u t)))) (\lambda (n: nat).(\lambda (n0: nat).(\lambda (p:
+PList).(\lambda (H: ((\forall (u: T).(\forall (t: T).(eq T (lift1 p (THead
+(Flat f) u t)) (THead (Flat f) (lift1 p u) (lift1 p t))))))).(\lambda (u:
+T).(\lambda (t: T).(eq_ind_r T (THead (Flat f) (lift1 p u) (lift1 p t))
+(\lambda (t0: T).(eq T (lift n n0 t0) (THead (Flat f) (lift n n0 (lift1 p u))
+(lift n n0 (lift1 p t))))) (eq_ind_r T (THead (Flat f) (lift n n0 (lift1 p
+u)) (lift n n0 (lift1 p t))) (\lambda (t0: T).(eq T t0 (THead (Flat f) (lift
+n n0 (lift1 p u)) (lift n n0 (lift1 p t))))) (refl_equal T (THead (Flat f)
+(lift n n0 (lift1 p u)) (lift n n0 (lift1 p t)))) (lift n n0 (THead (Flat f)
+(lift1 p u) (lift1 p t))) (lift_flat f (lift1 p u) (lift1 p t) n n0)) (lift1
+p (THead (Flat f) u t)) (H u t)))))))) hds)).
+
+lemma lift1_cons_tail:
+ \forall (t: T).(\forall (h: nat).(\forall (d: nat).(\forall (hds: PList).(eq
+T (lift1 (PConsTail hds h d) t) (lift1 hds (lift h d t))))))
+\def
+ \lambda (t: T).(\lambda (h: nat).(\lambda (d: nat).(\lambda (hds:
+PList).(PList_ind (\lambda (p: PList).(eq T (lift1 (PConsTail p h d) t)
+(lift1 p (lift h d t)))) (refl_equal T (lift h d t)) (\lambda (n:
+nat).(\lambda (n0: nat).(\lambda (p: PList).(\lambda (H: (eq T (lift1
+(PConsTail p h d) t) (lift1 p (lift h d t)))).(eq_ind_r T (lift1 p (lift h d
+t)) (\lambda (t0: T).(eq T (lift n n0 t0) (lift n n0 (lift1 p (lift h d
+t))))) (refl_equal T (lift n n0 (lift1 p (lift h d t)))) (lift1 (PConsTail p
+h d) t) H))))) hds)))).
+
+lemma lifts1_flat:
+ \forall (f: F).(\forall (hds: PList).(\forall (t: T).(\forall (ts:
+TList).(eq T (lift1 hds (THeads (Flat f) ts t)) (THeads (Flat f) (lifts1 hds
+ts) (lift1 hds t))))))
+\def
+ \lambda (f: F).(\lambda (hds: PList).(\lambda (t: T).(\lambda (ts:
+TList).(TList_ind (\lambda (t0: TList).(eq T (lift1 hds (THeads (Flat f) t0
+t)) (THeads (Flat f) (lifts1 hds t0) (lift1 hds t)))) (refl_equal T (lift1
+hds t)) (\lambda (t0: T).(\lambda (t1: TList).(\lambda (H: (eq T (lift1 hds
+(THeads (Flat f) t1 t)) (THeads (Flat f) (lifts1 hds t1) (lift1 hds
+t)))).(eq_ind_r T (THead (Flat f) (lift1 hds t0) (lift1 hds (THeads (Flat f)
+t1 t))) (\lambda (t2: T).(eq T t2 (THead (Flat f) (lift1 hds t0) (THeads
+(Flat f) (lifts1 hds t1) (lift1 hds t))))) (eq_ind_r T (THeads (Flat f)
+(lifts1 hds t1) (lift1 hds t)) (\lambda (t2: T).(eq T (THead (Flat f) (lift1
+hds t0) t2) (THead (Flat f) (lift1 hds t0) (THeads (Flat f) (lifts1 hds t1)
+(lift1 hds t))))) (refl_equal T (THead (Flat f) (lift1 hds t0) (THeads (Flat
+f) (lifts1 hds t1) (lift1 hds t)))) (lift1 hds (THeads (Flat f) t1 t)) H)
+(lift1 hds (THead (Flat f) t0 (THeads (Flat f) t1 t))) (lift1_flat f hds t0
+(THeads (Flat f) t1 t)))))) ts)))).
+
+lemma lifts1_nil:
+ \forall (ts: TList).(eq TList (lifts1 PNil ts) ts)
+\def
+ \lambda (ts: TList).(TList_ind (\lambda (t: TList).(eq TList (lifts1 PNil t)
+t)) (refl_equal TList TNil) (\lambda (t: T).(\lambda (t0: TList).(\lambda (H:
+(eq TList (lifts1 PNil t0) t0)).(eq_ind_r TList t0 (\lambda (t1: TList).(eq
+TList (TCons t t1) (TCons t t0))) (refl_equal TList (TCons t t0)) (lifts1
+PNil t0) H)))) ts).
+
+lemma lifts1_cons:
+ \forall (h: nat).(\forall (d: nat).(\forall (hds: PList).(\forall (ts:
+TList).(eq TList (lifts1 (PCons h d hds) ts) (lifts h d (lifts1 hds ts))))))
+\def
+ \lambda (h: nat).(\lambda (d: nat).(\lambda (hds: PList).(\lambda (ts:
+TList).(TList_ind (\lambda (t: TList).(eq TList (lifts1 (PCons h d hds) t)
+(lifts h d (lifts1 hds t)))) (refl_equal TList TNil) (\lambda (t: T).(\lambda
+(t0: TList).(\lambda (H: (eq TList (lifts1 (PCons h d hds) t0) (lifts h d
+(lifts1 hds t0)))).(eq_ind_r TList (lifts h d (lifts1 hds t0)) (\lambda (t1:
+TList).(eq TList (TCons (lift h d (lift1 hds t)) t1) (TCons (lift h d (lift1
+hds t)) (lifts h d (lifts1 hds t0))))) (refl_equal TList (TCons (lift h d
+(lift1 hds t)) (lifts h d (lifts1 hds t0)))) (lifts1 (PCons h d hds) t0)
+H)))) ts)))).