-a1 a2)) \to (aprem i a2 a0)))))) in (let TMP_21 \def (\lambda (a0:
-A).(\lambda (a3: A).(\lambda (H2: (eq nat O (S i))).(\lambda (H3: (eq A
-(AHead a0 a3) (AHead a1 a2))).(let TMP_9 \def (\lambda (e: A).(match e with
-[(ASort _ _) \Rightarrow a0 | (AHead a _) \Rightarrow a])) in (let TMP_10
-\def (AHead a0 a3) in (let TMP_11 \def (AHead a1 a2) in (let H4 \def (f_equal
-A A TMP_9 TMP_10 TMP_11 H3) in (let TMP_12 \def (\lambda (e: A).(match e with
-[(ASort _ _) \Rightarrow a3 | (AHead _ a) \Rightarrow a])) in (let TMP_13
-\def (AHead a0 a3) in (let TMP_14 \def (AHead a1 a2) in (let H5 \def (f_equal
-A A TMP_12 TMP_13 TMP_14 H3) in (let TMP_20 \def (\lambda (H6: (eq A a0
-a1)).(let TMP_15 \def (\lambda (a: A).(aprem i a2 a)) in (let TMP_16 \def
-(\lambda (ee: nat).(match ee with [O \Rightarrow True | (S _) \Rightarrow
-False])) in (let TMP_17 \def (S i) in (let H7 \def (eq_ind nat O TMP_16 I
-TMP_17 H2) in (let TMP_18 \def (aprem i a2 a1) in (let TMP_19 \def (False_ind
-TMP_18 H7) in (eq_ind_r A a1 TMP_15 TMP_19 a0 H6)))))))) in (TMP_20
-H4)))))))))))))) in (let TMP_36 \def (\lambda (a0: A).(\lambda (a:
-A).(\lambda (i0: nat).(\lambda (H2: (aprem i0 a0 a)).(\lambda (H3: (((eq nat
-i0 (S i)) \to ((eq A a0 (AHead a1 a2)) \to (aprem i a2 a))))).(\lambda (a3:
-A).(\lambda (H4: (eq nat (S i0) (S i))).(\lambda (H5: (eq A (AHead a3 a0)
-(AHead a1 a2))).(let TMP_22 \def (\lambda (e: A).(match e with [(ASort _ _)
-\Rightarrow a3 | (AHead a4 _) \Rightarrow a4])) in (let TMP_23 \def (AHead a3
-a0) in (let TMP_24 \def (AHead a1 a2) in (let H6 \def (f_equal A A TMP_22
-TMP_23 TMP_24 H5) in (let TMP_25 \def (\lambda (e: A).(match e with [(ASort _
-_) \Rightarrow a0 | (AHead _ a4) \Rightarrow a4])) in (let TMP_26 \def (AHead
-a3 a0) in (let TMP_27 \def (AHead a1 a2) in (let H7 \def (f_equal A A TMP_25
-TMP_26 TMP_27 H5) in (let TMP_35 \def (\lambda (_: (eq A a3 a1)).(let TMP_28
-\def (\lambda (a4: A).((eq nat i0 (S i)) \to ((eq A a4 (AHead a1 a2)) \to
-(aprem i a2 a)))) in (let H9 \def (eq_ind A a0 TMP_28 H3 a2 H7) in (let
-TMP_29 \def (\lambda (a4: A).(aprem i0 a4 a)) in (let H10 \def (eq_ind A a0
-TMP_29 H2 a2 H7) in (let TMP_30 \def (\lambda (e: nat).(match e with [O
-\Rightarrow i0 | (S n) \Rightarrow n])) in (let TMP_31 \def (S i0) in (let
-TMP_32 \def (S i) in (let H11 \def (f_equal nat nat TMP_30 TMP_31 TMP_32 H4)
-in (let TMP_33 \def (\lambda (n: nat).((eq nat n (S i)) \to ((eq A a2 (AHead
-a1 a2)) \to (aprem i a2 a)))) in (let H12 \def (eq_ind nat i0 TMP_33 H9 i
-H11) in (let TMP_34 \def (\lambda (n: nat).(aprem n a2 a)) in (let H13 \def
-(eq_ind nat i0 TMP_34 H10 i H11) in H13))))))))))))) in (TMP_35
-H6)))))))))))))))))) in (aprem_ind TMP_8 TMP_21 TMP_36 y0 y x H1)))))) in
-(insert_eq nat TMP_5 TMP_6 TMP_7 TMP_37 H0))))))) in (insert_eq A TMP_1 TMP_3
-TMP_4 TMP_38 H))))))))).
+a1 a2)) \to (aprem i a2 a0)))))) (\lambda (a0: A).(\lambda (a3: A).(\lambda
+(H2: (eq nat O (S i))).(\lambda (H3: (eq A (AHead a0 a3) (AHead a1 a2))).(let
+H4 \def (f_equal A A (\lambda (e: A).(match e with [(ASort _ _) \Rightarrow
+a0 | (AHead a _) \Rightarrow a])) (AHead a0 a3) (AHead a1 a2) H3) in ((let H5
+\def (f_equal A A (\lambda (e: A).(match e with [(ASort _ _) \Rightarrow a3 |
+(AHead _ a) \Rightarrow a])) (AHead a0 a3) (AHead a1 a2) H3) in (\lambda (H6:
+(eq A a0 a1)).(eq_ind_r A a1 (\lambda (a: A).(aprem i a2 a)) (let H7 \def
+(eq_ind nat O (\lambda (ee: nat).(match ee with [O \Rightarrow True | (S _)
+\Rightarrow False])) I (S i) H2) in (False_ind (aprem i a2 a1) H7)) a0 H6)))
+H4)))))) (\lambda (a0: A).(\lambda (a: A).(\lambda (i0: nat).(\lambda (H2:
+(aprem i0 a0 a)).(\lambda (H3: (((eq nat i0 (S i)) \to ((eq A a0 (AHead a1
+a2)) \to (aprem i a2 a))))).(\lambda (a3: A).(\lambda (H4: (eq nat (S i0) (S
+i))).(\lambda (H5: (eq A (AHead a3 a0) (AHead a1 a2))).(let H6 \def (f_equal
+A A (\lambda (e: A).(match e with [(ASort _ _) \Rightarrow a3 | (AHead a4 _)
+\Rightarrow a4])) (AHead a3 a0) (AHead a1 a2) H5) in ((let H7 \def (f_equal A
+A (\lambda (e: A).(match e with [(ASort _ _) \Rightarrow a0 | (AHead _ a4)
+\Rightarrow a4])) (AHead a3 a0) (AHead a1 a2) H5) in (\lambda (_: (eq A a3
+a1)).(let H9 \def (eq_ind A a0 (\lambda (a4: A).((eq nat i0 (S i)) \to ((eq A
+a4 (AHead a1 a2)) \to (aprem i a2 a)))) H3 a2 H7) in (let H10 \def (eq_ind A
+a0 (\lambda (a4: A).(aprem i0 a4 a)) H2 a2 H7) in (let H11 \def (f_equal nat
+nat (\lambda (e: nat).(match e with [O \Rightarrow i0 | (S n) \Rightarrow
+n])) (S i0) (S i) H4) in (let H12 \def (eq_ind nat i0 (\lambda (n: nat).((eq
+nat n (S i)) \to ((eq A a2 (AHead a1 a2)) \to (aprem i a2 a)))) H9 i H11) in
+(let H13 \def (eq_ind nat i0 (\lambda (n: nat).(aprem n a2 a)) H10 i H11) in
+H13))))))) H6)))))))))) y0 y x H1))) H0))) H))))).