]> matita.cs.unibo.it Git - helm.git/commitdiff
- some improvements in the generation of terms
authorFerruccio Guidi <ferruccio.guidi@unibo.it>
Wed, 4 Feb 2015 16:08:16 +0000 (16:08 +0000)
committerFerruccio Guidi <ferruccio.guidi@unibo.it>
Wed, 4 Feb 2015 16:08:16 +0000 (16:08 +0000)
- basic_1: we commit sections s and tlist

21 files changed:
matita/matita/contribs/lambdadelta/basic_1/T/dec.ma
matita/matita/contribs/lambdadelta/basic_1/T/defs.ma
matita/matita/contribs/lambdadelta/basic_1/T/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/T/props.ma
matita/matita/contribs/lambdadelta/basic_1/s/defs.ma
matita/matita/contribs/lambdadelta/basic_1/s/fwd.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/basic_1/s/props.ma
matita/matita/contribs/lambdadelta/basic_1/tlist/defs.ma
matita/matita/contribs/lambdadelta/basic_1/tlist/fwd.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/basic_1/tlist/props.ma
matita/matita/contribs/lambdadelta/ground_1/blt/props.ma
matita/matita/contribs/lambdadelta/ground_1/ext/arith.ma
matita/matita/contribs/lambdadelta/ground_1/ext/tactics.ma
matita/matita/contribs/lambdadelta/ground_1/plist/defs.ma
matita/matita/contribs/lambdadelta/ground_1/plist/props.ma
matita/matita/contribs/lambdadelta/ground_1/theory.ma
matita/matita/contribs/lambdadelta/ground_1/types/fwd.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/ground_1/types/props.ma
matita/matita/contribs/lambdadelta/legacy_1/coq/defs.ma
matita/matita/contribs/lambdadelta/legacy_1/coq/fwd.ma
matita/matita/contribs/lambdadelta/legacy_1/coq/props.ma

index e8e7ed885debc48cabb3ecdf08aabc3c85a64921..48a1cd509bec6342b3546d4e721b33ed5c233ee4 100644 (file)
@@ -20,650 +20,636 @@ theorem terms_props__bind_dec:
  \forall (b1: B).(\forall (b2: B).(or (eq B b1 b2) ((eq B b1 b2) \to (\forall 
 (P: Prop).P))))
 \def
- \lambda (b1: B).(let TMP_61 \def (\lambda (b: B).(\forall (b2: B).(let 
-TMP_60 \def (eq B b b2) in (let TMP_59 \def ((eq B b b2) \to (\forall (P: 
-Prop).P)) in (or TMP_60 TMP_59))))) in (let TMP_58 \def (\lambda (b2: B).(let 
-TMP_57 \def (\lambda (b: B).(let TMP_56 \def (eq B Abbr b) in (let TMP_55 
-\def ((eq B Abbr b) \to (\forall (P: Prop).P)) in (or TMP_56 TMP_55)))) in 
-(let TMP_53 \def (eq B Abbr Abbr) in (let TMP_52 \def ((eq B Abbr Abbr) \to 
-(\forall (P: Prop).P)) in (let TMP_51 \def (refl_equal B Abbr) in (let TMP_54 
-\def (or_introl TMP_53 TMP_52 TMP_51) in (let TMP_49 \def (eq B Abbr Abst) in 
-(let TMP_48 \def ((eq B Abbr Abst) \to (\forall (P: Prop).P)) in (let TMP_47 
-\def (\lambda (H: (eq B Abbr Abst)).(\lambda (P: Prop).(let TMP_46 \def 
-(\lambda (ee: B).(match ee in B with [Abbr \Rightarrow True | Abst 
-\Rightarrow False | Void \Rightarrow False])) in (let H0 \def (eq_ind B Abbr 
-TMP_46 I Abst H) in (False_ind P H0))))) in (let TMP_50 \def (or_intror 
-TMP_49 TMP_48 TMP_47) in (let TMP_44 \def (eq B Abbr Void) in (let TMP_43 
-\def ((eq B Abbr Void) \to (\forall (P: Prop).P)) in (let TMP_42 \def 
-(\lambda (H: (eq B Abbr Void)).(\lambda (P: Prop).(let TMP_41 \def (\lambda 
-(ee: B).(match ee in B with [Abbr \Rightarrow True | Abst \Rightarrow False | 
-Void \Rightarrow False])) in (let H0 \def (eq_ind B Abbr TMP_41 I Void H) in 
-(False_ind P H0))))) in (let TMP_45 \def (or_intror TMP_44 TMP_43 TMP_42) in 
-(B_ind TMP_57 TMP_54 TMP_50 TMP_45 b2))))))))))))))) in (let TMP_40 \def 
-(\lambda (b2: B).(let TMP_39 \def (\lambda (b: B).(let TMP_38 \def (eq B Abst 
-b) in (let TMP_37 \def ((eq B Abst b) \to (\forall (P: Prop).P)) in (or 
-TMP_38 TMP_37)))) in (let TMP_35 \def (eq B Abst Abbr) in (let TMP_34 \def 
-((eq B Abst Abbr) \to (\forall (P: Prop).P)) in (let TMP_33 \def (\lambda (H: 
-(eq B Abst Abbr)).(\lambda (P: Prop).(let TMP_32 \def (\lambda (ee: B).(match 
-ee in B with [Abbr \Rightarrow False | Abst \Rightarrow True | Void 
-\Rightarrow False])) in (let H0 \def (eq_ind B Abst TMP_32 I Abbr H) in 
-(False_ind P H0))))) in (let TMP_36 \def (or_intror TMP_35 TMP_34 TMP_33) in 
-(let TMP_30 \def (eq B Abst Abst) in (let TMP_29 \def ((eq B Abst Abst) \to 
-(\forall (P: Prop).P)) in (let TMP_28 \def (refl_equal B Abst) in (let TMP_31 
-\def (or_introl TMP_30 TMP_29 TMP_28) in (let TMP_26 \def (eq B Abst Void) in 
-(let TMP_25 \def ((eq B Abst Void) \to (\forall (P: Prop).P)) in (let TMP_24 
-\def (\lambda (H: (eq B Abst Void)).(\lambda (P: Prop).(let TMP_23 \def 
-(\lambda (ee: B).(match ee in B with [Abbr \Rightarrow False | Abst 
-\Rightarrow True | Void \Rightarrow False])) in (let H0 \def (eq_ind B Abst 
-TMP_23 I Void H) in (False_ind P H0))))) in (let TMP_27 \def (or_intror 
-TMP_26 TMP_25 TMP_24) in (B_ind TMP_39 TMP_36 TMP_31 TMP_27 b2))))))))))))))) 
-in (let TMP_22 \def (\lambda (b2: B).(let TMP_21 \def (\lambda (b: B).(let 
-TMP_20 \def (eq B Void b) in (let TMP_19 \def ((eq B Void b) \to (\forall (P: 
-Prop).P)) in (or TMP_20 TMP_19)))) in (let TMP_17 \def (eq B Void Abbr) in 
-(let TMP_16 \def ((eq B Void Abbr) \to (\forall (P: Prop).P)) in (let TMP_15 
-\def (\lambda (H: (eq B Void Abbr)).(\lambda (P: Prop).(let TMP_14 \def 
-(\lambda (ee: B).(match ee in B with [Abbr \Rightarrow False | Abst 
+ \lambda (b1: B).(let TMP_3 \def (\lambda (b: B).(\forall (b2: B).(let TMP_1 
+\def (eq B b b2) in (let TMP_2 \def ((eq B b b2) \to (\forall (P: Prop).P)) 
+in (or TMP_1 TMP_2))))) in (let TMP_21 \def (\lambda (b2: B).(let TMP_6 \def 
+(\lambda (b: B).(let TMP_4 \def (eq B Abbr b) in (let TMP_5 \def ((eq B Abbr 
+b) \to (\forall (P: Prop).P)) in (or TMP_4 TMP_5)))) in (let TMP_7 \def (eq B 
+Abbr Abbr) in (let TMP_8 \def ((eq B Abbr Abbr) \to (\forall (P: Prop).P)) in 
+(let TMP_9 \def (refl_equal B Abbr) in (let TMP_10 \def (or_introl TMP_7 
+TMP_8 TMP_9) in (let TMP_11 \def (eq B Abbr Abst) in (let TMP_12 \def ((eq B 
+Abbr Abst) \to (\forall (P: Prop).P)) in (let TMP_14 \def (\lambda (H: (eq B 
+Abbr Abst)).(\lambda (P: Prop).(let TMP_13 \def (\lambda (ee: B).(match ee 
+with [Abbr \Rightarrow True | Abst \Rightarrow False | Void \Rightarrow 
+False])) in (let H0 \def (eq_ind B Abbr TMP_13 I Abst H) in (False_ind P 
+H0))))) in (let TMP_15 \def (or_intror TMP_11 TMP_12 TMP_14) in (let TMP_16 
+\def (eq B Abbr Void) in (let TMP_17 \def ((eq B Abbr Void) \to (\forall (P: 
+Prop).P)) in (let TMP_19 \def (\lambda (H: (eq B Abbr Void)).(\lambda (P: 
+Prop).(let TMP_18 \def (\lambda (ee: B).(match ee with [Abbr \Rightarrow True 
+| Abst \Rightarrow False | Void \Rightarrow False])) in (let H0 \def (eq_ind 
+B Abbr TMP_18 I Void H) in (False_ind P H0))))) in (let TMP_20 \def 
+(or_intror TMP_16 TMP_17 TMP_19) in (B_ind TMP_6 TMP_10 TMP_15 TMP_20 
+b2))))))))))))))) in (let TMP_39 \def (\lambda (b2: B).(let TMP_24 \def 
+(\lambda (b: B).(let TMP_22 \def (eq B Abst b) in (let TMP_23 \def ((eq B 
+Abst b) \to (\forall (P: Prop).P)) in (or TMP_22 TMP_23)))) in (let TMP_25 
+\def (eq B Abst Abbr) in (let TMP_26 \def ((eq B Abst Abbr) \to (\forall (P: 
+Prop).P)) in (let TMP_28 \def (\lambda (H: (eq B Abst Abbr)).(\lambda (P: 
+Prop).(let TMP_27 \def (\lambda (ee: B).(match ee with [Abbr \Rightarrow 
+False | Abst \Rightarrow True | Void \Rightarrow False])) in (let H0 \def 
+(eq_ind B Abst TMP_27 I Abbr H) in (False_ind P H0))))) in (let TMP_29 \def 
+(or_intror TMP_25 TMP_26 TMP_28) in (let TMP_30 \def (eq B Abst Abst) in (let 
+TMP_31 \def ((eq B Abst Abst) \to (\forall (P: Prop).P)) in (let TMP_32 \def 
+(refl_equal B Abst) in (let TMP_33 \def (or_introl TMP_30 TMP_31 TMP_32) in 
+(let TMP_34 \def (eq B Abst Void) in (let TMP_35 \def ((eq B Abst Void) \to 
+(\forall (P: Prop).P)) in (let TMP_37 \def (\lambda (H: (eq B Abst 
+Void)).(\lambda (P: Prop).(let TMP_36 \def (\lambda (ee: B).(match ee with 
+[Abbr \Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False])) 
+in (let H0 \def (eq_ind B Abst TMP_36 I Void H) in (False_ind P H0))))) in 
+(let TMP_38 \def (or_intror TMP_34 TMP_35 TMP_37) in (B_ind TMP_24 TMP_29 
+TMP_33 TMP_38 b2))))))))))))))) in (let TMP_57 \def (\lambda (b2: B).(let 
+TMP_42 \def (\lambda (b: B).(let TMP_40 \def (eq B Void b) in (let TMP_41 
+\def ((eq B Void b) \to (\forall (P: Prop).P)) in (or TMP_40 TMP_41)))) in 
+(let TMP_43 \def (eq B Void Abbr) in (let TMP_44 \def ((eq B Void Abbr) \to 
+(\forall (P: Prop).P)) in (let TMP_46 \def (\lambda (H: (eq B Void 
+Abbr)).(\lambda (P: Prop).(let TMP_45 \def (\lambda (ee: B).(match ee with 
+[Abbr \Rightarrow False | Abst \Rightarrow False | Void \Rightarrow True])) 
+in (let H0 \def (eq_ind B Void TMP_45 I Abbr H) in (False_ind P H0))))) in 
+(let TMP_47 \def (or_intror TMP_43 TMP_44 TMP_46) in (let TMP_48 \def (eq B 
+Void Abst) in (let TMP_49 \def ((eq B Void Abst) \to (\forall (P: Prop).P)) 
+in (let TMP_51 \def (\lambda (H: (eq B Void Abst)).(\lambda (P: Prop).(let 
+TMP_50 \def (\lambda (ee: B).(match ee with [Abbr \Rightarrow False | Abst 
 \Rightarrow False | Void \Rightarrow True])) in (let H0 \def (eq_ind B Void 
-TMP_14 I Abbr H) in (False_ind P H0))))) in (let TMP_18 \def (or_intror 
-TMP_17 TMP_16 TMP_15) in (let TMP_12 \def (eq B Void Abst) in (let TMP_11 
-\def ((eq B Void Abst) \to (\forall (P: Prop).P)) in (let TMP_10 \def 
-(\lambda (H: (eq B Void Abst)).(\lambda (P: Prop).(let TMP_9 \def (\lambda 
-(ee: B).(match ee in B with [Abbr \Rightarrow False | Abst \Rightarrow False 
-| Void \Rightarrow True])) in (let H0 \def (eq_ind B Void TMP_9 I Abst H) in 
-(False_ind P H0))))) in (let TMP_13 \def (or_intror TMP_12 TMP_11 TMP_10) in 
-(let TMP_7 \def (eq B Void Void) in (let TMP_6 \def ((eq B Void Void) \to 
-(\forall (P: Prop).P)) in (let TMP_5 \def (refl_equal B Void) in (let TMP_8 
-\def (or_introl TMP_7 TMP_6 TMP_5) in (B_ind TMP_21 TMP_18 TMP_13 TMP_8 
-b2))))))))))))))) in (B_ind TMP_61 TMP_58 TMP_40 TMP_22 b1))))).
+TMP_50 I Abst H) in (False_ind P H0))))) in (let TMP_52 \def (or_intror 
+TMP_48 TMP_49 TMP_51) in (let TMP_53 \def (eq B Void Void) in (let TMP_54 
+\def ((eq B Void Void) \to (\forall (P: Prop).P)) in (let TMP_55 \def 
+(refl_equal B Void) in (let TMP_56 \def (or_introl TMP_53 TMP_54 TMP_55) in 
+(B_ind TMP_42 TMP_47 TMP_52 TMP_56 b2))))))))))))))) in (B_ind TMP_3 TMP_21 
+TMP_39 TMP_57 b1))))).
 
 theorem bind_dec_not:
  \forall (b1: B).(\forall (b2: B).(or (eq B b1 b2) (not (eq B b1 b2))))
 \def
  \lambda (b1: B).(\lambda (b2: B).(let H_x \def (terms_props__bind_dec b1 b2) 
-in (let H \def H_x in (let TMP_73 \def (eq B b1 b2) in (let TMP_72 \def ((eq 
-B b1 b2) \to (\forall (P: Prop).P)) in (let TMP_70 \def (eq B b1 b2) in (let 
-TMP_69 \def ((eq B b1 b2) \to False) in (let TMP_71 \def (or TMP_70 TMP_69) 
-in (let TMP_68 \def (\lambda (H0: (eq B b1 b2)).(let TMP_67 \def (eq B b1 b2) 
-in (let TMP_66 \def ((eq B b1 b2) \to False) in (or_introl TMP_67 TMP_66 
-H0)))) in (let TMP_65 \def (\lambda (H0: (((eq B b1 b2) \to (\forall (P: 
-Prop).P)))).(let TMP_64 \def (eq B b1 b2) in (let TMP_63 \def ((eq B b1 b2) 
-\to False) in (let TMP_62 \def (\lambda (H1: (eq B b1 b2)).(H0 H1 False)) in 
-(or_intror TMP_64 TMP_63 TMP_62))))) in (or_ind TMP_73 TMP_72 TMP_71 TMP_68 
-TMP_65 H))))))))))).
+in (let H \def H_x in (let TMP_1 \def (eq B b1 b2) in (let TMP_2 \def ((eq B 
+b1 b2) \to (\forall (P: Prop).P)) in (let TMP_3 \def (eq B b1 b2) in (let 
+TMP_4 \def ((eq B b1 b2) \to False) in (let TMP_5 \def (or TMP_3 TMP_4) in 
+(let TMP_8 \def (\lambda (H0: (eq B b1 b2)).(let TMP_6 \def (eq B b1 b2) in 
+(let TMP_7 \def ((eq B b1 b2) \to False) in (or_introl TMP_6 TMP_7 H0)))) in 
+(let TMP_12 \def (\lambda (H0: (((eq B b1 b2) \to (\forall (P: 
+Prop).P)))).(let TMP_9 \def (eq B b1 b2) in (let TMP_10 \def ((eq B b1 b2) 
+\to False) in (let TMP_11 \def (\lambda (H1: (eq B b1 b2)).(H0 H1 False)) in 
+(or_intror TMP_9 TMP_10 TMP_11))))) in (or_ind TMP_1 TMP_2 TMP_5 TMP_8 TMP_12 
+H))))))))))).
 
 theorem terms_props__flat_dec:
  \forall (f1: F).(\forall (f2: F).(or (eq F f1 f2) ((eq F f1 f2) \to (\forall 
 (P: Prop).P))))
 \def
- \lambda (f1: F).(let TMP_102 \def (\lambda (f: F).(\forall (f2: F).(let 
-TMP_101 \def (eq F f f2) in (let TMP_100 \def ((eq F f f2) \to (\forall (P: 
-Prop).P)) in (or TMP_101 TMP_100))))) in (let TMP_99 \def (\lambda (f2: 
-F).(let TMP_98 \def (\lambda (f: F).(let TMP_97 \def (eq F Appl f) in (let 
-TMP_96 \def ((eq F Appl f) \to (\forall (P: Prop).P)) in (or TMP_97 
-TMP_96)))) in (let TMP_94 \def (eq F Appl Appl) in (let TMP_93 \def ((eq F 
-Appl Appl) \to (\forall (P: Prop).P)) in (let TMP_92 \def (refl_equal F Appl) 
-in (let TMP_95 \def (or_introl TMP_94 TMP_93 TMP_92) in (let TMP_90 \def (eq 
-F Appl Cast) in (let TMP_89 \def ((eq F Appl Cast) \to (\forall (P: Prop).P)) 
-in (let TMP_88 \def (\lambda (H: (eq F Appl Cast)).(\lambda (P: Prop).(let 
-TMP_87 \def (\lambda (ee: F).(match ee in F with [Appl \Rightarrow True | 
-Cast \Rightarrow False])) in (let H0 \def (eq_ind F Appl TMP_87 I Cast H) in 
-(False_ind P H0))))) in (let TMP_91 \def (or_intror TMP_90 TMP_89 TMP_88) in 
-(F_ind TMP_98 TMP_95 TMP_91 f2))))))))))) in (let TMP_86 \def (\lambda (f2: 
-F).(let TMP_85 \def (\lambda (f: F).(let TMP_84 \def (eq F Cast f) in (let 
-TMP_83 \def ((eq F Cast f) \to (\forall (P: Prop).P)) in (or TMP_84 
-TMP_83)))) in (let TMP_81 \def (eq F Cast Appl) in (let TMP_80 \def ((eq F 
-Cast Appl) \to (\forall (P: Prop).P)) in (let TMP_79 \def (\lambda (H: (eq F 
-Cast Appl)).(\lambda (P: Prop).(let TMP_78 \def (\lambda (ee: F).(match ee in 
-F with [Appl \Rightarrow False | Cast \Rightarrow True])) in (let H0 \def 
-(eq_ind F Cast TMP_78 I Appl H) in (False_ind P H0))))) in (let TMP_82 \def 
-(or_intror TMP_81 TMP_80 TMP_79) in (let TMP_76 \def (eq F Cast Cast) in (let 
-TMP_75 \def ((eq F Cast Cast) \to (\forall (P: Prop).P)) in (let TMP_74 \def 
-(refl_equal F Cast) in (let TMP_77 \def (or_introl TMP_76 TMP_75 TMP_74) in 
-(F_ind TMP_85 TMP_82 TMP_77 f2))))))))))) in (F_ind TMP_102 TMP_99 TMP_86 
-f1)))).
+ \lambda (f1: F).(let TMP_3 \def (\lambda (f: F).(\forall (f2: F).(let TMP_1 
+\def (eq F f f2) in (let TMP_2 \def ((eq F f f2) \to (\forall (P: Prop).P)) 
+in (or TMP_1 TMP_2))))) in (let TMP_16 \def (\lambda (f2: F).(let TMP_6 \def 
+(\lambda (f: F).(let TMP_4 \def (eq F Appl f) in (let TMP_5 \def ((eq F Appl 
+f) \to (\forall (P: Prop).P)) in (or TMP_4 TMP_5)))) in (let TMP_7 \def (eq F 
+Appl Appl) in (let TMP_8 \def ((eq F Appl Appl) \to (\forall (P: Prop).P)) in 
+(let TMP_9 \def (refl_equal F Appl) in (let TMP_10 \def (or_introl TMP_7 
+TMP_8 TMP_9) in (let TMP_11 \def (eq F Appl Cast) in (let TMP_12 \def ((eq F 
+Appl Cast) \to (\forall (P: Prop).P)) in (let TMP_14 \def (\lambda (H: (eq F 
+Appl Cast)).(\lambda (P: Prop).(let TMP_13 \def (\lambda (ee: F).(match ee 
+with [Appl \Rightarrow True | Cast \Rightarrow False])) in (let H0 \def 
+(eq_ind F Appl TMP_13 I Cast H) in (False_ind P H0))))) in (let TMP_15 \def 
+(or_intror TMP_11 TMP_12 TMP_14) in (F_ind TMP_6 TMP_10 TMP_15 f2))))))))))) 
+in (let TMP_29 \def (\lambda (f2: F).(let TMP_19 \def (\lambda (f: F).(let 
+TMP_17 \def (eq F Cast f) in (let TMP_18 \def ((eq F Cast f) \to (\forall (P: 
+Prop).P)) in (or TMP_17 TMP_18)))) in (let TMP_20 \def (eq F Cast Appl) in 
+(let TMP_21 \def ((eq F Cast Appl) \to (\forall (P: Prop).P)) in (let TMP_23 
+\def (\lambda (H: (eq F Cast Appl)).(\lambda (P: Prop).(let TMP_22 \def 
+(\lambda (ee: F).(match ee with [Appl \Rightarrow False | Cast \Rightarrow 
+True])) in (let H0 \def (eq_ind F Cast TMP_22 I Appl H) in (False_ind P 
+H0))))) in (let TMP_24 \def (or_intror TMP_20 TMP_21 TMP_23) in (let TMP_25 
+\def (eq F Cast Cast) in (let TMP_26 \def ((eq F Cast Cast) \to (\forall (P: 
+Prop).P)) in (let TMP_27 \def (refl_equal F Cast) in (let TMP_28 \def 
+(or_introl TMP_25 TMP_26 TMP_27) in (F_ind TMP_19 TMP_24 TMP_28 f2))))))))))) 
+in (F_ind TMP_3 TMP_16 TMP_29 f1)))).
 
 theorem terms_props__kind_dec:
  \forall (k1: K).(\forall (k2: K).(or (eq K k1 k2) ((eq K k1 k2) \to (\forall 
 (P: Prop).P))))
 \def
- \lambda (k1: K).(let TMP_197 \def (\lambda (k: K).(\forall (k2: K).(let 
-TMP_196 \def (eq K k k2) in (let TMP_195 \def ((eq K k k2) \to (\forall (P: 
-Prop).P)) in (or TMP_196 TMP_195))))) in (let TMP_194 \def (\lambda (b: 
-B).(\lambda (k2: K).(let TMP_193 \def (\lambda (k: K).(let TMP_191 \def (Bind 
-b) in (let TMP_192 \def (eq K TMP_191 k) in (let TMP_190 \def ((eq K (Bind b) 
-k) \to (\forall (P: Prop).P)) in (or TMP_192 TMP_190))))) in (let TMP_189 
-\def (\lambda (b0: B).(let H_x \def (terms_props__bind_dec b b0) in (let H 
-\def H_x in (let TMP_188 \def (eq B b b0) in (let TMP_187 \def ((eq B b b0) 
-\to (\forall (P: Prop).P)) in (let TMP_184 \def (Bind b) in (let TMP_183 \def 
-(Bind b0) in (let TMP_185 \def (eq K TMP_184 TMP_183) in (let TMP_182 \def 
-((eq K (Bind b) (Bind b0)) \to (\forall (P: Prop).P)) in (let TMP_186 \def 
-(or TMP_185 TMP_182) in (let TMP_181 \def (\lambda (H0: (eq B b b0)).(let 
-TMP_180 \def (\lambda (b1: B).(let TMP_178 \def (Bind b) in (let TMP_177 \def 
-(Bind b1) in (let TMP_179 \def (eq K TMP_178 TMP_177) in (let TMP_176 \def 
-((eq K (Bind b) (Bind b1)) \to (\forall (P: Prop).P)) in (or TMP_179 
-TMP_176)))))) in (let TMP_173 \def (Bind b) in (let TMP_172 \def (Bind b) in 
-(let TMP_174 \def (eq K TMP_173 TMP_172) in (let TMP_171 \def ((eq K (Bind b) 
-(Bind b)) \to (\forall (P: Prop).P)) in (let TMP_169 \def (Bind b) in (let 
-TMP_170 \def (refl_equal K TMP_169) in (let TMP_175 \def (or_introl TMP_174 
-TMP_171 TMP_170) in (eq_ind B b TMP_180 TMP_175 b0 H0)))))))))) in (let 
-TMP_168 \def (\lambda (H0: (((eq B b b0) \to (\forall (P: Prop).P)))).(let 
-TMP_166 \def (Bind b) in (let TMP_165 \def (Bind b0) in (let TMP_167 \def (eq 
-K TMP_166 TMP_165) in (let TMP_164 \def ((eq K (Bind b) (Bind b0)) \to 
-(\forall (P: Prop).P)) in (let TMP_163 \def (\lambda (H1: (eq K (Bind b) 
-(Bind b0))).(\lambda (P: Prop).(let TMP_160 \def (\lambda (e: K).(match e in 
-K with [(Bind b1) \Rightarrow b1 | (Flat _) \Rightarrow b])) in (let TMP_159 
-\def (Bind b) in (let TMP_158 \def (Bind b0) in (let H2 \def (f_equal K B 
-TMP_160 TMP_159 TMP_158 H1) in (let TMP_161 \def (\lambda (b1: B).((eq B b 
-b1) \to (\forall (P0: Prop).P0))) in (let H3 \def (eq_ind_r B b0 TMP_161 H0 b 
-H2) in (let TMP_162 \def (refl_equal B b) in (H3 TMP_162 P)))))))))) in 
-(or_intror TMP_167 TMP_164 TMP_163))))))) in (or_ind TMP_188 TMP_187 TMP_186 
-TMP_181 TMP_168 H))))))))))))) in (let TMP_157 \def (\lambda (f: F).(let 
-TMP_155 \def (Bind b) in (let TMP_154 \def (Flat f) in (let TMP_156 \def (eq 
-K TMP_155 TMP_154) in (let TMP_153 \def ((eq K (Bind b) (Flat f)) \to 
-(\forall (P: Prop).P)) in (let TMP_152 \def (\lambda (H: (eq K (Bind b) (Flat 
-f))).(\lambda (P: Prop).(let TMP_151 \def (Bind b) in (let TMP_150 \def 
-(\lambda (ee: K).(match ee in K with [(Bind _) \Rightarrow True | (Flat _) 
-\Rightarrow False])) in (let TMP_149 \def (Flat f) in (let H0 \def (eq_ind K 
-TMP_151 TMP_150 I TMP_149 H) in (False_ind P H0))))))) in (or_intror TMP_156 
-TMP_153 TMP_152))))))) in (K_ind TMP_193 TMP_189 TMP_157 k2)))))) in (let 
-TMP_148 \def (\lambda (f: F).(\lambda (k2: K).(let TMP_147 \def (\lambda (k: 
-K).(let TMP_145 \def (Flat f) in (let TMP_146 \def (eq K TMP_145 k) in (let 
-TMP_144 \def ((eq K (Flat f) k) \to (\forall (P: Prop).P)) in (or TMP_146 
-TMP_144))))) in (let TMP_143 \def (\lambda (b: B).(let TMP_141 \def (Flat f) 
-in (let TMP_140 \def (Bind b) in (let TMP_142 \def (eq K TMP_141 TMP_140) in 
-(let TMP_139 \def ((eq K (Flat f) (Bind b)) \to (\forall (P: Prop).P)) in 
-(let TMP_138 \def (\lambda (H: (eq K (Flat f) (Bind b))).(\lambda (P: 
-Prop).(let TMP_137 \def (Flat f) in (let TMP_136 \def (\lambda (ee: K).(match 
-ee in K with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])) in 
-(let TMP_135 \def (Bind b) in (let H0 \def (eq_ind K TMP_137 TMP_136 I 
-TMP_135 H) in (False_ind P H0))))))) in (or_intror TMP_142 TMP_139 
-TMP_138))))))) in (let TMP_134 \def (\lambda (f0: F).(let H_x \def 
-(terms_props__flat_dec f f0) in (let H \def H_x in (let TMP_133 \def (eq F f 
-f0) in (let TMP_132 \def ((eq F f f0) \to (\forall (P: Prop).P)) in (let 
-TMP_129 \def (Flat f) in (let TMP_128 \def (Flat f0) in (let TMP_130 \def (eq 
-K TMP_129 TMP_128) in (let TMP_127 \def ((eq K (Flat f) (Flat f0)) \to 
-(\forall (P: Prop).P)) in (let TMP_131 \def (or TMP_130 TMP_127) in (let 
-TMP_126 \def (\lambda (H0: (eq F f f0)).(let TMP_125 \def (\lambda (f1: 
-F).(let TMP_123 \def (Flat f) in (let TMP_122 \def (Flat f1) in (let TMP_124 
-\def (eq K TMP_123 TMP_122) in (let TMP_121 \def ((eq K (Flat f) (Flat f1)) 
-\to (\forall (P: Prop).P)) in (or TMP_124 TMP_121)))))) in (let TMP_118 \def 
-(Flat f) in (let TMP_117 \def (Flat f) in (let TMP_119 \def (eq K TMP_118 
-TMP_117) in (let TMP_116 \def ((eq K (Flat f) (Flat f)) \to (\forall (P: 
-Prop).P)) in (let TMP_114 \def (Flat f) in (let TMP_115 \def (refl_equal K 
-TMP_114) in (let TMP_120 \def (or_introl TMP_119 TMP_116 TMP_115) in (eq_ind 
-F f TMP_125 TMP_120 f0 H0)))))))))) in (let TMP_113 \def (\lambda (H0: (((eq 
-F f f0) \to (\forall (P: Prop).P)))).(let TMP_111 \def (Flat f) in (let 
-TMP_110 \def (Flat f0) in (let TMP_112 \def (eq K TMP_111 TMP_110) in (let 
-TMP_109 \def ((eq K (Flat f) (Flat f0)) \to (\forall (P: Prop).P)) in (let 
-TMP_108 \def (\lambda (H1: (eq K (Flat f) (Flat f0))).(\lambda (P: Prop).(let 
-TMP_105 \def (\lambda (e: K).(match e in K with [(Bind _) \Rightarrow f | 
-(Flat f1) \Rightarrow f1])) in (let TMP_104 \def (Flat f) in (let TMP_103 
-\def (Flat f0) in (let H2 \def (f_equal K F TMP_105 TMP_104 TMP_103 H1) in 
-(let TMP_106 \def (\lambda (f1: F).((eq F f f1) \to (\forall (P0: Prop).P0))) 
-in (let H3 \def (eq_ind_r F f0 TMP_106 H0 f H2) in (let TMP_107 \def 
-(refl_equal F f) in (H3 TMP_107 P)))))))))) in (or_intror TMP_112 TMP_109 
-TMP_108))))))) in (or_ind TMP_133 TMP_132 TMP_131 TMP_126 TMP_113 
-H))))))))))))) in (K_ind TMP_147 TMP_143 TMP_134 k2)))))) in (K_ind TMP_197 
-TMP_194 TMP_148 k1)))).
+ \lambda (k1: K).(let TMP_3 \def (\lambda (k: K).(\forall (k2: K).(let TMP_1 
+\def (eq K k k2) in (let TMP_2 \def ((eq K k k2) \to (\forall (P: Prop).P)) 
+in (or TMP_1 TMP_2))))) in (let TMP_49 \def (\lambda (b: B).(\lambda (k2: 
+K).(let TMP_7 \def (\lambda (k: K).(let TMP_4 \def (Bind b) in (let TMP_5 
+\def (eq K TMP_4 k) in (let TMP_6 \def ((eq K (Bind b) k) \to (\forall (P: 
+Prop).P)) in (or TMP_5 TMP_6))))) in (let TMP_39 \def (\lambda (b0: B).(let 
+H_x \def (terms_props__bind_dec b b0) in (let H \def H_x in (let TMP_8 \def 
+(eq B b b0) in (let TMP_9 \def ((eq B b b0) \to (\forall (P: Prop).P)) in 
+(let TMP_10 \def (Bind b) in (let TMP_11 \def (Bind b0) in (let TMP_12 \def 
+(eq K TMP_10 TMP_11) in (let TMP_13 \def ((eq K (Bind b) (Bind b0)) \to 
+(\forall (P: Prop).P)) in (let TMP_14 \def (or TMP_12 TMP_13) in (let TMP_27 
+\def (\lambda (H0: (eq B b b0)).(let TMP_19 \def (\lambda (b1: B).(let TMP_15 
+\def (Bind b) in (let TMP_16 \def (Bind b1) in (let TMP_17 \def (eq K TMP_15 
+TMP_16) in (let TMP_18 \def ((eq K (Bind b) (Bind b1)) \to (\forall (P: 
+Prop).P)) in (or TMP_17 TMP_18)))))) in (let TMP_20 \def (Bind b) in (let 
+TMP_21 \def (Bind b) in (let TMP_22 \def (eq K TMP_20 TMP_21) in (let TMP_23 
+\def ((eq K (Bind b) (Bind b)) \to (\forall (P: Prop).P)) in (let TMP_24 \def 
+(Bind b) in (let TMP_25 \def (refl_equal K TMP_24) in (let TMP_26 \def 
+(or_introl TMP_22 TMP_23 TMP_25) in (eq_ind B b TMP_19 TMP_26 b0 H0)))))))))) 
+in (let TMP_38 \def (\lambda (H0: (((eq B b b0) \to (\forall (P: 
+Prop).P)))).(let TMP_28 \def (Bind b) in (let TMP_29 \def (Bind b0) in (let 
+TMP_30 \def (eq K TMP_28 TMP_29) in (let TMP_31 \def ((eq K (Bind b) (Bind 
+b0)) \to (\forall (P: Prop).P)) in (let TMP_37 \def (\lambda (H1: (eq K (Bind 
+b) (Bind b0))).(\lambda (P: Prop).(let TMP_32 \def (\lambda (e: K).(match e 
+with [(Bind b1) \Rightarrow b1 | (Flat _) \Rightarrow b])) in (let TMP_33 
+\def (Bind b) in (let TMP_34 \def (Bind b0) in (let H2 \def (f_equal K B 
+TMP_32 TMP_33 TMP_34 H1) in (let TMP_35 \def (\lambda (b1: B).((eq B b b1) 
+\to (\forall (P0: Prop).P0))) in (let H3 \def (eq_ind_r B b0 TMP_35 H0 b H2) 
+in (let TMP_36 \def (refl_equal B b) in (H3 TMP_36 P)))))))))) in (or_intror 
+TMP_30 TMP_31 TMP_37))))))) in (or_ind TMP_8 TMP_9 TMP_14 TMP_27 TMP_38 
+H))))))))))))) in (let TMP_48 \def (\lambda (f: F).(let TMP_40 \def (Bind b) 
+in (let TMP_41 \def (Flat f) in (let TMP_42 \def (eq K TMP_40 TMP_41) in (let 
+TMP_43 \def ((eq K (Bind b) (Flat f)) \to (\forall (P: Prop).P)) in (let 
+TMP_47 \def (\lambda (H: (eq K (Bind b) (Flat f))).(\lambda (P: Prop).(let 
+TMP_44 \def (Bind b) in (let TMP_45 \def (\lambda (ee: K).(match ee with 
+[(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])) in (let TMP_46 
+\def (Flat f) in (let H0 \def (eq_ind K TMP_44 TMP_45 I TMP_46 H) in 
+(False_ind P H0))))))) in (or_intror TMP_42 TMP_43 TMP_47))))))) in (K_ind 
+TMP_7 TMP_39 TMP_48 k2)))))) in (let TMP_95 \def (\lambda (f: F).(\lambda 
+(k2: K).(let TMP_53 \def (\lambda (k: K).(let TMP_50 \def (Flat f) in (let 
+TMP_51 \def (eq K TMP_50 k) in (let TMP_52 \def ((eq K (Flat f) k) \to 
+(\forall (P: Prop).P)) in (or TMP_51 TMP_52))))) in (let TMP_62 \def (\lambda 
+(b: B).(let TMP_54 \def (Flat f) in (let TMP_55 \def (Bind b) in (let TMP_56 
+\def (eq K TMP_54 TMP_55) in (let TMP_57 \def ((eq K (Flat f) (Bind b)) \to 
+(\forall (P: Prop).P)) in (let TMP_61 \def (\lambda (H: (eq K (Flat f) (Bind 
+b))).(\lambda (P: Prop).(let TMP_58 \def (Flat f) in (let TMP_59 \def 
+(\lambda (ee: K).(match ee with [(Bind _) \Rightarrow False | (Flat _) 
+\Rightarrow True])) in (let TMP_60 \def (Bind b) in (let H0 \def (eq_ind K 
+TMP_58 TMP_59 I TMP_60 H) in (False_ind P H0))))))) in (or_intror TMP_56 
+TMP_57 TMP_61))))))) in (let TMP_94 \def (\lambda (f0: F).(let H_x \def 
+(terms_props__flat_dec f f0) in (let H \def H_x in (let TMP_63 \def (eq F f 
+f0) in (let TMP_64 \def ((eq F f f0) \to (\forall (P: Prop).P)) in (let 
+TMP_65 \def (Flat f) in (let TMP_66 \def (Flat f0) in (let TMP_67 \def (eq K 
+TMP_65 TMP_66) in (let TMP_68 \def ((eq K (Flat f) (Flat f0)) \to (\forall 
+(P: Prop).P)) in (let TMP_69 \def (or TMP_67 TMP_68) in (let TMP_82 \def 
+(\lambda (H0: (eq F f f0)).(let TMP_74 \def (\lambda (f1: F).(let TMP_70 \def 
+(Flat f) in (let TMP_71 \def (Flat f1) in (let TMP_72 \def (eq K TMP_70 
+TMP_71) in (let TMP_73 \def ((eq K (Flat f) (Flat f1)) \to (\forall (P: 
+Prop).P)) in (or TMP_72 TMP_73)))))) in (let TMP_75 \def (Flat f) in (let 
+TMP_76 \def (Flat f) in (let TMP_77 \def (eq K TMP_75 TMP_76) in (let TMP_78 
+\def ((eq K (Flat f) (Flat f)) \to (\forall (P: Prop).P)) in (let TMP_79 \def 
+(Flat f) in (let TMP_80 \def (refl_equal K TMP_79) in (let TMP_81 \def 
+(or_introl TMP_77 TMP_78 TMP_80) in (eq_ind F f TMP_74 TMP_81 f0 H0)))))))))) 
+in (let TMP_93 \def (\lambda (H0: (((eq F f f0) \to (\forall (P: 
+Prop).P)))).(let TMP_83 \def (Flat f) in (let TMP_84 \def (Flat f0) in (let 
+TMP_85 \def (eq K TMP_83 TMP_84) in (let TMP_86 \def ((eq K (Flat f) (Flat 
+f0)) \to (\forall (P: Prop).P)) in (let TMP_92 \def (\lambda (H1: (eq K (Flat 
+f) (Flat f0))).(\lambda (P: Prop).(let TMP_87 \def (\lambda (e: K).(match e 
+with [(Bind _) \Rightarrow f | (Flat f1) \Rightarrow f1])) in (let TMP_88 
+\def (Flat f) in (let TMP_89 \def (Flat f0) in (let H2 \def (f_equal K F 
+TMP_87 TMP_88 TMP_89 H1) in (let TMP_90 \def (\lambda (f1: F).((eq F f f1) 
+\to (\forall (P0: Prop).P0))) in (let H3 \def (eq_ind_r F f0 TMP_90 H0 f H2) 
+in (let TMP_91 \def (refl_equal F f) in (H3 TMP_91 P)))))))))) in (or_intror 
+TMP_85 TMP_86 TMP_92))))))) in (or_ind TMP_63 TMP_64 TMP_69 TMP_82 TMP_93 
+H))))))))))))) in (K_ind TMP_53 TMP_62 TMP_94 k2)))))) in (K_ind TMP_3 TMP_49 
+TMP_95 k1)))).
 
 theorem term_dec:
  \forall (t1: T).(\forall (t2: T).(or (eq T t1 t2) ((eq T t1 t2) \to (\forall 
 (P: Prop).P))))
 \def
- \lambda (t1: T).(let TMP_447 \def (\lambda (t: T).(\forall (t2: T).(let 
-TMP_446 \def (eq T t t2) in (let TMP_445 \def ((eq T t t2) \to (\forall (P: 
-Prop).P)) in (or TMP_446 TMP_445))))) in (let TMP_444 \def (\lambda (n: 
-nat).(\lambda (t2: T).(let TMP_443 \def (\lambda (t: T).(let TMP_441 \def 
-(TSort n) in (let TMP_442 \def (eq T TMP_441 t) in (let TMP_440 \def ((eq T 
-(TSort n) t) \to (\forall (P: Prop).P)) in (or TMP_442 TMP_440))))) in (let 
-TMP_439 \def (\lambda (n0: nat).(let H_x \def (nat_dec n n0) in (let H \def 
-H_x in (let TMP_438 \def (eq nat n n0) in (let TMP_437 \def ((eq nat n n0) 
-\to (\forall (P: Prop).P)) in (let TMP_434 \def (TSort n) in (let TMP_433 
-\def (TSort n0) in (let TMP_435 \def (eq T TMP_434 TMP_433) in (let TMP_432 
-\def ((eq T (TSort n) (TSort n0)) \to (\forall (P: Prop).P)) in (let TMP_436 
-\def (or TMP_435 TMP_432) in (let TMP_431 \def (\lambda (H0: (eq nat n 
-n0)).(let TMP_430 \def (\lambda (n1: nat).(let TMP_428 \def (TSort n) in (let 
-TMP_427 \def (TSort n1) in (let TMP_429 \def (eq T TMP_428 TMP_427) in (let 
-TMP_426 \def ((eq T (TSort n) (TSort n1)) \to (\forall (P: Prop).P)) in (or 
-TMP_429 TMP_426)))))) in (let TMP_423 \def (TSort n) in (let TMP_422 \def 
-(TSort n) in (let TMP_424 \def (eq T TMP_423 TMP_422) in (let TMP_421 \def 
-((eq T (TSort n) (TSort n)) \to (\forall (P: Prop).P)) in (let TMP_419 \def 
-(TSort n) in (let TMP_420 \def (refl_equal T TMP_419) in (let TMP_425 \def 
-(or_introl TMP_424 TMP_421 TMP_420) in (eq_ind nat n TMP_430 TMP_425 n0 
-H0)))))))))) in (let TMP_418 \def (\lambda (H0: (((eq nat n n0) \to (\forall 
-(P: Prop).P)))).(let TMP_416 \def (TSort n) in (let TMP_415 \def (TSort n0) 
-in (let TMP_417 \def (eq T TMP_416 TMP_415) in (let TMP_414 \def ((eq T 
-(TSort n) (TSort n0)) \to (\forall (P: Prop).P)) in (let TMP_413 \def 
-(\lambda (H1: (eq T (TSort n) (TSort n0))).(\lambda (P: Prop).(let TMP_410 
-\def (\lambda (e: T).(match e in T with [(TSort n1) \Rightarrow n1 | (TLRef 
-_) \Rightarrow n | (THead _ _ _) \Rightarrow n])) in (let TMP_409 \def (TSort 
-n) in (let TMP_408 \def (TSort n0) in (let H2 \def (f_equal T nat TMP_410 
-TMP_409 TMP_408 H1) in (let TMP_411 \def (\lambda (n1: nat).((eq nat n n1) 
-\to (\forall (P0: Prop).P0))) in (let H3 \def (eq_ind_r nat n0 TMP_411 H0 n 
-H2) in (let TMP_412 \def (refl_equal nat n) in (H3 TMP_412 P)))))))))) in 
-(or_intror TMP_417 TMP_414 TMP_413))))))) in (or_ind TMP_438 TMP_437 TMP_436 
-TMP_431 TMP_418 H))))))))))))) in (let TMP_407 \def (\lambda (n0: nat).(let 
-TMP_405 \def (TSort n) in (let TMP_404 \def (TLRef n0) in (let TMP_406 \def 
-(eq T TMP_405 TMP_404) in (let TMP_403 \def ((eq T (TSort n) (TLRef n0)) \to 
-(\forall (P: Prop).P)) in (let TMP_402 \def (\lambda (H: (eq T (TSort n) 
-(TLRef n0))).(\lambda (P: Prop).(let TMP_401 \def (TSort n) in (let TMP_400 
-\def (\lambda (ee: T).(match ee in T with [(TSort _) \Rightarrow True | 
-(TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow False])) in (let 
-TMP_399 \def (TLRef n0) in (let H0 \def (eq_ind T TMP_401 TMP_400 I TMP_399 
-H) in (False_ind P H0))))))) in (or_intror TMP_406 TMP_403 TMP_402))))))) in 
-(let TMP_398 \def (\lambda (k: K).(\lambda (t: T).(\lambda (_: (or (eq T 
-(TSort n) t) ((eq T (TSort n) t) \to (\forall (P: Prop).P)))).(\lambda (t0: 
-T).(\lambda (_: (or (eq T (TSort n) t0) ((eq T (TSort n) t0) \to (\forall (P: 
-Prop).P)))).(let TMP_396 \def (TSort n) in (let TMP_395 \def (THead k t t0) 
-in (let TMP_397 \def (eq T TMP_396 TMP_395) in (let TMP_394 \def ((eq T 
-(TSort n) (THead k t t0)) \to (\forall (P: Prop).P)) in (let TMP_393 \def 
-(\lambda (H1: (eq T (TSort n) (THead k t t0))).(\lambda (P: Prop).(let 
-TMP_392 \def (TSort n) in (let TMP_391 \def (\lambda (ee: T).(match ee in T 
-with [(TSort _) \Rightarrow True | (TLRef _) \Rightarrow False | (THead _ _ 
-_) \Rightarrow False])) in (let TMP_390 \def (THead k t t0) in (let H2 \def 
-(eq_ind T TMP_392 TMP_391 I TMP_390 H1) in (False_ind P H2))))))) in 
-(or_intror TMP_397 TMP_394 TMP_393))))))))))) in (T_ind TMP_443 TMP_439 
-TMP_407 TMP_398 t2))))))) in (let TMP_389 \def (\lambda (n: nat).(\lambda 
-(t2: T).(let TMP_388 \def (\lambda (t: T).(let TMP_386 \def (TLRef n) in (let 
-TMP_387 \def (eq T TMP_386 t) in (let TMP_385 \def ((eq T (TLRef n) t) \to 
-(\forall (P: Prop).P)) in (or TMP_387 TMP_385))))) in (let TMP_384 \def 
-(\lambda (n0: nat).(let TMP_382 \def (TLRef n) in (let TMP_381 \def (TSort 
-n0) in (let TMP_383 \def (eq T TMP_382 TMP_381) in (let TMP_380 \def ((eq T 
-(TLRef n) (TSort n0)) \to (\forall (P: Prop).P)) in (let TMP_379 \def 
-(\lambda (H: (eq T (TLRef n) (TSort n0))).(\lambda (P: Prop).(let TMP_378 
-\def (TLRef n) in (let TMP_377 \def (\lambda (ee: T).(match ee in T with 
-[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow True | (THead _ _ _) 
-\Rightarrow False])) in (let TMP_376 \def (TSort n0) in (let H0 \def (eq_ind 
-T TMP_378 TMP_377 I TMP_376 H) in (False_ind P H0))))))) in (or_intror 
-TMP_383 TMP_380 TMP_379))))))) in (let TMP_375 \def (\lambda (n0: nat).(let 
-H_x \def (nat_dec n n0) in (let H \def H_x in (let TMP_374 \def (eq nat n n0) 
-in (let TMP_373 \def ((eq nat n n0) \to (\forall (P: Prop).P)) in (let 
-TMP_370 \def (TLRef n) in (let TMP_369 \def (TLRef n0) in (let TMP_371 \def 
-(eq T TMP_370 TMP_369) in (let TMP_368 \def ((eq T (TLRef n) (TLRef n0)) \to 
-(\forall (P: Prop).P)) in (let TMP_372 \def (or TMP_371 TMP_368) in (let 
-TMP_367 \def (\lambda (H0: (eq nat n n0)).(let TMP_366 \def (\lambda (n1: 
-nat).(let TMP_364 \def (TLRef n) in (let TMP_363 \def (TLRef n1) in (let 
-TMP_365 \def (eq T TMP_364 TMP_363) in (let TMP_362 \def ((eq T (TLRef n) 
-(TLRef n1)) \to (\forall (P: Prop).P)) in (or TMP_365 TMP_362)))))) in (let 
-TMP_359 \def (TLRef n) in (let TMP_358 \def (TLRef n) in (let TMP_360 \def 
-(eq T TMP_359 TMP_358) in (let TMP_357 \def ((eq T (TLRef n) (TLRef n)) \to 
-(\forall (P: Prop).P)) in (let TMP_355 \def (TLRef n) in (let TMP_356 \def 
-(refl_equal T TMP_355) in (let TMP_361 \def (or_introl TMP_360 TMP_357 
-TMP_356) in (eq_ind nat n TMP_366 TMP_361 n0 H0)))))))))) in (let TMP_354 
-\def (\lambda (H0: (((eq nat n n0) \to (\forall (P: Prop).P)))).(let TMP_352 
-\def (TLRef n) in (let TMP_351 \def (TLRef n0) in (let TMP_353 \def (eq T 
-TMP_352 TMP_351) in (let TMP_350 \def ((eq T (TLRef n) (TLRef n0)) \to 
-(\forall (P: Prop).P)) in (let TMP_349 \def (\lambda (H1: (eq T (TLRef n) 
-(TLRef n0))).(\lambda (P: Prop).(let TMP_346 \def (\lambda (e: T).(match e in 
-T with [(TSort _) \Rightarrow n | (TLRef n1) \Rightarrow n1 | (THead _ _ _) 
-\Rightarrow n])) in (let TMP_345 \def (TLRef n) in (let TMP_344 \def (TLRef 
-n0) in (let H2 \def (f_equal T nat TMP_346 TMP_345 TMP_344 H1) in (let 
-TMP_347 \def (\lambda (n1: nat).((eq nat n n1) \to (\forall (P0: Prop).P0))) 
-in (let H3 \def (eq_ind_r nat n0 TMP_347 H0 n H2) in (let TMP_348 \def 
-(refl_equal nat n) in (H3 TMP_348 P)))))))))) in (or_intror TMP_353 TMP_350 
-TMP_349))))))) in (or_ind TMP_374 TMP_373 TMP_372 TMP_367 TMP_354 
-H))))))))))))) in (let TMP_343 \def (\lambda (k: K).(\lambda (t: T).(\lambda 
+ \lambda (t1: T).(let TMP_3 \def (\lambda (t: T).(\forall (t2: T).(let TMP_1 
+\def (eq T t t2) in (let TMP_2 \def ((eq T t t2) \to (\forall (P: Prop).P)) 
+in (or TMP_1 TMP_2))))) in (let TMP_58 \def (\lambda (n: nat).(\lambda (t2: 
+T).(let TMP_7 \def (\lambda (t: T).(let TMP_4 \def (TSort n) in (let TMP_5 
+\def (eq T TMP_4 t) in (let TMP_6 \def ((eq T (TSort n) t) \to (\forall (P: 
+Prop).P)) in (or TMP_5 TMP_6))))) in (let TMP_39 \def (\lambda (n0: nat).(let 
+H_x \def (nat_dec n n0) in (let H \def H_x in (let TMP_8 \def (eq nat n n0) 
+in (let TMP_9 \def ((eq nat n n0) \to (\forall (P: Prop).P)) in (let TMP_10 
+\def (TSort n) in (let TMP_11 \def (TSort n0) in (let TMP_12 \def (eq T 
+TMP_10 TMP_11) in (let TMP_13 \def ((eq T (TSort n) (TSort n0)) \to (\forall 
+(P: Prop).P)) in (let TMP_14 \def (or TMP_12 TMP_13) in (let TMP_27 \def 
+(\lambda (H0: (eq nat n n0)).(let TMP_19 \def (\lambda (n1: nat).(let TMP_15 
+\def (TSort n) in (let TMP_16 \def (TSort n1) in (let TMP_17 \def (eq T 
+TMP_15 TMP_16) in (let TMP_18 \def ((eq T (TSort n) (TSort n1)) \to (\forall 
+(P: Prop).P)) in (or TMP_17 TMP_18)))))) in (let TMP_20 \def (TSort n) in 
+(let TMP_21 \def (TSort n) in (let TMP_22 \def (eq T TMP_20 TMP_21) in (let 
+TMP_23 \def ((eq T (TSort n) (TSort n)) \to (\forall (P: Prop).P)) in (let 
+TMP_24 \def (TSort n) in (let TMP_25 \def (refl_equal T TMP_24) in (let 
+TMP_26 \def (or_introl TMP_22 TMP_23 TMP_25) in (eq_ind nat n TMP_19 TMP_26 
+n0 H0)))))))))) in (let TMP_38 \def (\lambda (H0: (((eq nat n n0) \to 
+(\forall (P: Prop).P)))).(let TMP_28 \def (TSort n) in (let TMP_29 \def 
+(TSort n0) in (let TMP_30 \def (eq T TMP_28 TMP_29) in (let TMP_31 \def ((eq 
+T (TSort n) (TSort n0)) \to (\forall (P: Prop).P)) in (let TMP_37 \def 
+(\lambda (H1: (eq T (TSort n) (TSort n0))).(\lambda (P: Prop).(let TMP_32 
+\def (\lambda (e: T).(match e with [(TSort n1) \Rightarrow n1 | (TLRef _) 
+\Rightarrow n | (THead _ _ _) \Rightarrow n])) in (let TMP_33 \def (TSort n) 
+in (let TMP_34 \def (TSort n0) in (let H2 \def (f_equal T nat TMP_32 TMP_33 
+TMP_34 H1) in (let TMP_35 \def (\lambda (n1: nat).((eq nat n n1) \to (\forall 
+(P0: Prop).P0))) in (let H3 \def (eq_ind_r nat n0 TMP_35 H0 n H2) in (let 
+TMP_36 \def (refl_equal nat n) in (H3 TMP_36 P)))))))))) in (or_intror TMP_30 
+TMP_31 TMP_37))))))) in (or_ind TMP_8 TMP_9 TMP_14 TMP_27 TMP_38 
+H))))))))))))) in (let TMP_48 \def (\lambda (n0: nat).(let TMP_40 \def (TSort 
+n) in (let TMP_41 \def (TLRef n0) in (let TMP_42 \def (eq T TMP_40 TMP_41) in 
+(let TMP_43 \def ((eq T (TSort n) (TLRef n0)) \to (\forall (P: Prop).P)) in 
+(let TMP_47 \def (\lambda (H: (eq T (TSort n) (TLRef n0))).(\lambda (P: 
+Prop).(let TMP_44 \def (TSort n) in (let TMP_45 \def (\lambda (ee: T).(match 
+ee with [(TSort _) \Rightarrow True | (TLRef _) \Rightarrow False | (THead _ 
+_ _) \Rightarrow False])) in (let TMP_46 \def (TLRef n0) in (let H0 \def 
+(eq_ind T TMP_44 TMP_45 I TMP_46 H) in (False_ind P H0))))))) in (or_intror 
+TMP_42 TMP_43 TMP_47))))))) in (let TMP_57 \def (\lambda (k: K).(\lambda (t: 
+T).(\lambda (_: (or (eq T (TSort n) t) ((eq T (TSort n) t) \to (\forall (P: 
+Prop).P)))).(\lambda (t0: T).(\lambda (_: (or (eq T (TSort n) t0) ((eq T 
+(TSort n) t0) \to (\forall (P: Prop).P)))).(let TMP_49 \def (TSort n) in (let 
+TMP_50 \def (THead k t t0) in (let TMP_51 \def (eq T TMP_49 TMP_50) in (let 
+TMP_52 \def ((eq T (TSort n) (THead k t t0)) \to (\forall (P: Prop).P)) in 
+(let TMP_56 \def (\lambda (H1: (eq T (TSort n) (THead k t t0))).(\lambda (P: 
+Prop).(let TMP_53 \def (TSort n) in (let TMP_54 \def (\lambda (ee: T).(match 
+ee with [(TSort _) \Rightarrow True | (TLRef _) \Rightarrow False | (THead _ 
+_ _) \Rightarrow False])) in (let TMP_55 \def (THead k t t0) in (let H2 \def 
+(eq_ind T TMP_53 TMP_54 I TMP_55 H1) in (False_ind P H2))))))) in (or_intror 
+TMP_51 TMP_52 TMP_56))))))))))) in (T_ind TMP_7 TMP_39 TMP_48 TMP_57 
+t2))))))) in (let TMP_113 \def (\lambda (n: nat).(\lambda (t2: T).(let TMP_62 
+\def (\lambda (t: T).(let TMP_59 \def (TLRef n) in (let TMP_60 \def (eq T 
+TMP_59 t) in (let TMP_61 \def ((eq T (TLRef n) t) \to (\forall (P: Prop).P)) 
+in (or TMP_60 TMP_61))))) in (let TMP_71 \def (\lambda (n0: nat).(let TMP_63 
+\def (TLRef n) in (let TMP_64 \def (TSort n0) in (let TMP_65 \def (eq T 
+TMP_63 TMP_64) in (let TMP_66 \def ((eq T (TLRef n) (TSort n0)) \to (\forall 
+(P: Prop).P)) in (let TMP_70 \def (\lambda (H: (eq T (TLRef n) (TSort 
+n0))).(\lambda (P: Prop).(let TMP_67 \def (TLRef n) in (let TMP_68 \def 
+(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
+\Rightarrow True | (THead _ _ _) \Rightarrow False])) in (let TMP_69 \def 
+(TSort n0) in (let H0 \def (eq_ind T TMP_67 TMP_68 I TMP_69 H) in (False_ind 
+P H0))))))) in (or_intror TMP_65 TMP_66 TMP_70))))))) in (let TMP_103 \def 
+(\lambda (n0: nat).(let H_x \def (nat_dec n n0) in (let H \def H_x in (let 
+TMP_72 \def (eq nat n n0) in (let TMP_73 \def ((eq nat n n0) \to (\forall (P: 
+Prop).P)) in (let TMP_74 \def (TLRef n) in (let TMP_75 \def (TLRef n0) in 
+(let TMP_76 \def (eq T TMP_74 TMP_75) in (let TMP_77 \def ((eq T (TLRef n) 
+(TLRef n0)) \to (\forall (P: Prop).P)) in (let TMP_78 \def (or TMP_76 TMP_77) 
+in (let TMP_91 \def (\lambda (H0: (eq nat n n0)).(let TMP_83 \def (\lambda 
+(n1: nat).(let TMP_79 \def (TLRef n) in (let TMP_80 \def (TLRef n1) in (let 
+TMP_81 \def (eq T TMP_79 TMP_80) in (let TMP_82 \def ((eq T (TLRef n) (TLRef 
+n1)) \to (\forall (P: Prop).P)) in (or TMP_81 TMP_82)))))) in (let TMP_84 
+\def (TLRef n) in (let TMP_85 \def (TLRef n) in (let TMP_86 \def (eq T TMP_84 
+TMP_85) in (let TMP_87 \def ((eq T (TLRef n) (TLRef n)) \to (\forall (P: 
+Prop).P)) in (let TMP_88 \def (TLRef n) in (let TMP_89 \def (refl_equal T 
+TMP_88) in (let TMP_90 \def (or_introl TMP_86 TMP_87 TMP_89) in (eq_ind nat n 
+TMP_83 TMP_90 n0 H0)))))))))) in (let TMP_102 \def (\lambda (H0: (((eq nat n 
+n0) \to (\forall (P: Prop).P)))).(let TMP_92 \def (TLRef n) in (let TMP_93 
+\def (TLRef n0) in (let TMP_94 \def (eq T TMP_92 TMP_93) in (let TMP_95 \def 
+((eq T (TLRef n) (TLRef n0)) \to (\forall (P: Prop).P)) in (let TMP_101 \def 
+(\lambda (H1: (eq T (TLRef n) (TLRef n0))).(\lambda (P: Prop).(let TMP_96 
+\def (\lambda (e: T).(match e with [(TSort _) \Rightarrow n | (TLRef n1) 
+\Rightarrow n1 | (THead _ _ _) \Rightarrow n])) in (let TMP_97 \def (TLRef n) 
+in (let TMP_98 \def (TLRef n0) in (let H2 \def (f_equal T nat TMP_96 TMP_97 
+TMP_98 H1) in (let TMP_99 \def (\lambda (n1: nat).((eq nat n n1) \to (\forall 
+(P0: Prop).P0))) in (let H3 \def (eq_ind_r nat n0 TMP_99 H0 n H2) in (let 
+TMP_100 \def (refl_equal nat n) in (H3 TMP_100 P)))))))))) in (or_intror 
+TMP_94 TMP_95 TMP_101))))))) in (or_ind TMP_72 TMP_73 TMP_78 TMP_91 TMP_102 
+H))))))))))))) in (let TMP_112 \def (\lambda (k: K).(\lambda (t: T).(\lambda 
 (_: (or (eq T (TLRef n) t) ((eq T (TLRef n) t) \to (\forall (P: 
 Prop).P)))).(\lambda (t0: T).(\lambda (_: (or (eq T (TLRef n) t0) ((eq T 
-(TLRef n) t0) \to (\forall (P: Prop).P)))).(let TMP_341 \def (TLRef n) in 
-(let TMP_340 \def (THead k t t0) in (let TMP_342 \def (eq T TMP_341 TMP_340
-in (let TMP_339 \def ((eq T (TLRef n) (THead k t t0)) \to (\forall (P: 
-Prop).P)) in (let TMP_338 \def (\lambda (H1: (eq T (TLRef n) (THead k t 
-t0))).(\lambda (P: Prop).(let TMP_337 \def (TLRef n) in (let TMP_336 \def 
-(\lambda (ee: T).(match ee in T with [(TSort _) \Rightarrow False | (TLRef _) 
-\Rightarrow True | (THead _ _ _) \Rightarrow False])) in (let TMP_335 \def 
-(THead k t t0) in (let H2 \def (eq_ind T TMP_337 TMP_336 I TMP_335 H1) in 
-(False_ind P H2))))))) in (or_intror TMP_342 TMP_339 TMP_338))))))))))) in 
-(T_ind TMP_388 TMP_384 TMP_375 TMP_343 t2))))))) in (let TMP_334 \def 
-(\lambda (k: K).(\lambda (t: T).(\lambda (H: ((\forall (t2: T).(or (eq T t 
-t2) ((eq T t t2) \to (\forall (P: Prop).P)))))).(\lambda (t0: T).(\lambda 
-(H0: ((\forall (t2: T).(or (eq T t0 t2) ((eq T t0 t2) \to (\forall (P: 
-Prop).P)))))).(\lambda (t2: T).(let TMP_333 \def (\lambda (t3: T).(let 
-TMP_331 \def (THead k t t0) in (let TMP_332 \def (eq T TMP_331 t3) in (let 
-TMP_330 \def ((eq T (THead k t t0) t3) \to (\forall (P: Prop).P)) in (or 
-TMP_332 TMP_330))))) in (let TMP_329 \def (\lambda (n: nat).(let TMP_327 \def 
-(THead k t t0) in (let TMP_326 \def (TSort n) in (let TMP_328 \def (eq T 
-TMP_327 TMP_326) in (let TMP_325 \def ((eq T (THead k t t0) (TSort n)) \to 
-(\forall (P: Prop).P)) in (let TMP_324 \def (\lambda (H1: (eq T (THead k t 
-t0) (TSort n))).(\lambda (P: Prop).(let TMP_323 \def (THead k t t0) in (let 
-TMP_322 \def (\lambda (ee: T).(match ee in T with [(TSort _) \Rightarrow 
-False | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) in 
-(let TMP_321 \def (TSort n) in (let H2 \def (eq_ind T TMP_323 TMP_322 I 
-TMP_321 H1) in (False_ind P H2))))))) in (or_intror TMP_328 TMP_325 
-TMP_324))))))) in (let TMP_320 \def (\lambda (n: nat).(let TMP_318 \def 
-(THead k t t0) in (let TMP_317 \def (TLRef n) in (let TMP_319 \def (eq T 
-TMP_318 TMP_317) in (let TMP_316 \def ((eq T (THead k t t0) (TLRef n)) \to 
-(\forall (P: Prop).P)) in (let TMP_315 \def (\lambda (H1: (eq T (THead k t 
-t0) (TLRef n))).(\lambda (P: Prop).(let TMP_314 \def (THead k t t0) in (let 
-TMP_313 \def (\lambda (ee: T).(match ee in T with [(TSort _) \Rightarrow 
-False | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) in 
-(let TMP_312 \def (TLRef n) in (let H2 \def (eq_ind T TMP_314 TMP_313 I 
-TMP_312 H1) in (False_ind P H2))))))) in (or_intror TMP_319 TMP_316 
-TMP_315))))))) in (let TMP_311 \def (\lambda (k0: K).(\lambda (t3: 
-T).(\lambda (H1: (or (eq T (THead k t t0) t3) ((eq T (THead k t t0) t3) \to 
-(\forall (P: Prop).P)))).(\lambda (t4: T).(\lambda (H2: (or (eq T (THead k t 
-t0) t4) ((eq T (THead k t t0) t4) \to (\forall (P: Prop).P)))).(let H_x \def 
-(H t3) in (let H3 \def H_x in (let TMP_310 \def (eq T t t3) in (let TMP_309 
-\def ((eq T t t3) \to (\forall (P: Prop).P)) in (let TMP_306 \def (THead k 
-t0) in (let TMP_305 \def (THead k0 t3 t4) in (let TMP_307 \def (eq T TMP_306 
-TMP_305) in (let TMP_304 \def ((eq T (THead k t t0) (THead k0 t3 t4)) \to 
-(\forall (P: Prop).P)) in (let TMP_308 \def (or TMP_307 TMP_304) in (let 
-TMP_303 \def (\lambda (H4: (eq T t t3)).(let TMP_228 \def (\lambda (t5: 
-T).(let TMP_226 \def (THead k t t0) in (let TMP_227 \def (eq T TMP_226 t5) in 
-(let TMP_225 \def ((eq T (THead k t t0) t5) \to (\forall (P: Prop).P)) in (or 
-TMP_227 TMP_225))))) in (let H5 \def (eq_ind_r T t3 TMP_228 H1 t H4) in (let 
-TMP_302 \def (\lambda (t5: T).(let TMP_300 \def (THead k t t0) in (let 
-TMP_299 \def (THead k0 t5 t4) in (let TMP_301 \def (eq T TMP_300 TMP_299) in 
-(let TMP_298 \def ((eq T (THead k t t0) (THead k0 t5 t4)) \to (\forall (P: 
-Prop).P)) in (or TMP_301 TMP_298)))))) in (let H_x0 \def (H0 t4) in (let H6 
-\def H_x0 in (let TMP_296 \def (eq T t0 t4) in (let TMP_295 \def ((eq T t0 
-t4) \to (\forall (P: Prop).P)) in (let TMP_292 \def (THead k t t0) in (let 
-TMP_291 \def (THead k0 t t4) in (let TMP_293 \def (eq T TMP_292 TMP_291) in 
-(let TMP_290 \def ((eq T (THead k t t0) (THead k0 t t4)) \to (\forall (P: 
-Prop).P)) in (let TMP_294 \def (or TMP_293 TMP_290) in (let TMP_289 \def 
-(\lambda (H7: (eq T t0 t4)).(let TMP_251 \def (\lambda (t5: T).(let TMP_249 
-\def (THead k t t0) in (let TMP_250 \def (eq T TMP_249 t5) in (let TMP_248 
-\def ((eq T (THead k t t0) t5) \to (\forall (P: Prop).P)) in (or TMP_250 
-TMP_248))))) in (let H8 \def (eq_ind_r T t4 TMP_251 H2 t0 H7) in (let TMP_288 
-\def (\lambda (t5: T).(let TMP_286 \def (THead k t t0) in (let TMP_285 \def 
-(THead k0 t t5) in (let TMP_287 \def (eq T TMP_286 TMP_285) in (let TMP_284 
-\def ((eq T (THead k t t0) (THead k0 t t5)) \to (\forall (P: Prop).P)) in (or 
-TMP_287 TMP_284)))))) in (let H_x1 \def (terms_props__kind_dec k k0) in (let 
-H9 \def H_x1 in (let TMP_282 \def (eq K k k0) in (let TMP_281 \def ((eq K k 
-k0) \to (\forall (P: Prop).P)) in (let TMP_278 \def (THead k t t0) in (let 
-TMP_277 \def (THead k0 t t0) in (let TMP_279 \def (eq T TMP_278 TMP_277) in 
-(let TMP_276 \def ((eq T (THead k t t0) (THead k0 t t0)) \to (\forall (P: 
-Prop).P)) in (let TMP_280 \def (or TMP_279 TMP_276) in (let TMP_275 \def 
-(\lambda (H10: (eq K k k0)).(let TMP_274 \def (\lambda (k1: K).(let TMP_272 
-\def (THead k t t0) in (let TMP_271 \def (THead k1 t t0) in (let TMP_273 \def 
-(eq T TMP_272 TMP_271) in (let TMP_270 \def ((eq T (THead k t t0) (THead k1 t 
-t0)) \to (\forall (P: Prop).P)) in (or TMP_273 TMP_270)))))) in (let TMP_267 
-\def (THead k t t0) in (let TMP_266 \def (THead k t t0) in (let TMP_268 \def 
-(eq T TMP_267 TMP_266) in (let TMP_265 \def ((eq T (THead k t t0) (THead k t 
-t0)) \to (\forall (P: Prop).P)) in (let TMP_263 \def (THead k t t0) in (let 
-TMP_264 \def (refl_equal T TMP_263) in (let TMP_269 \def (or_introl TMP_268 
-TMP_265 TMP_264) in (eq_ind K k TMP_274 TMP_269 k0 H10)))))))))) in (let 
-TMP_262 \def (\lambda (H10: (((eq K k k0) \to (\forall (P: Prop).P)))).(let 
-TMP_260 \def (THead k t t0) in (let TMP_259 \def (THead k0 t t0) in (let 
-TMP_261 \def (eq T TMP_260 TMP_259) in (let TMP_258 \def ((eq T (THead k t 
-t0) (THead k0 t t0)) \to (\forall (P: Prop).P)) in (let TMP_257 \def (\lambda 
-(H11: (eq T (THead k t t0) (THead k0 t t0))).(\lambda (P: Prop).(let TMP_254 
-\def (\lambda (e: T).(match e in T with [(TSort _) \Rightarrow k | (TLRef _) 
-\Rightarrow k | (THead k1 _ _) \Rightarrow k1])) in (let TMP_253 \def (THead 
-k t t0) in (let TMP_252 \def (THead k0 t t0) in (let H12 \def (f_equal T K 
-TMP_254 TMP_253 TMP_252 H11) in (let TMP_255 \def (\lambda (k1: K).((eq K k 
-k1) \to (\forall (P0: Prop).P0))) in (let H13 \def (eq_ind_r K k0 TMP_255 H10 
-k H12) in (let TMP_256 \def (refl_equal K k) in (H13 TMP_256 P)))))))))) in 
-(or_intror TMP_261 TMP_258 TMP_257))))))) in (let TMP_283 \def (or_ind 
-TMP_282 TMP_281 TMP_280 TMP_275 TMP_262 H9) in (eq_ind T t0 TMP_288 TMP_283 
-t4 H7))))))))))))))))) in (let TMP_247 \def (\lambda (H7: (((eq T t0 t4) \to 
-(\forall (P: Prop).P)))).(let TMP_245 \def (THead k t t0) in (let TMP_244 
-\def (THead k0 t t4) in (let TMP_246 \def (eq T TMP_245 TMP_244) in (let 
-TMP_243 \def ((eq T (THead k t t0) (THead k0 t t4)) \to (\forall (P: 
-Prop).P)) in (let TMP_242 \def (\lambda (H8: (eq T (THead k t t0) (THead k0 t 
-t4))).(\lambda (P: Prop).(let TMP_231 \def (\lambda (e: T).(match e in T with 
+(TLRef n) t0) \to (\forall (P: Prop).P)))).(let TMP_104 \def (TLRef n) in 
+(let TMP_105 \def (THead k t t0) in (let TMP_106 \def (eq T TMP_104 TMP_105
+in (let TMP_107 \def ((eq T (TLRef n) (THead k t t0)) \to (\forall (P: 
+Prop).P)) in (let TMP_111 \def (\lambda (H1: (eq T (TLRef n) (THead k t 
+t0))).(\lambda (P: Prop).(let TMP_108 \def (TLRef n) in (let TMP_109 \def 
+(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
+\Rightarrow True | (THead _ _ _) \Rightarrow False])) in (let TMP_110 \def 
+(THead k t t0) in (let H2 \def (eq_ind T TMP_108 TMP_109 I TMP_110 H1) in 
+(False_ind P H2))))))) in (or_intror TMP_106 TMP_107 TMP_111))))))))))) in 
+(T_ind TMP_62 TMP_71 TMP_103 TMP_112 t2))))))) in (let TMP_250 \def (\lambda 
+(k: K).(\lambda (t: T).(\lambda (H: ((\forall (t2: T).(or (eq T t t2) ((eq T 
+t t2) \to (\forall (P: Prop).P)))))).(\lambda (t0: T).(\lambda (H0: ((\forall 
+(t2: T).(or (eq T t0 t2) ((eq T t0 t2) \to (\forall (P: 
+Prop).P)))))).(\lambda (t2: T).(let TMP_117 \def (\lambda (t3: T).(let 
+TMP_114 \def (THead k t t0) in (let TMP_115 \def (eq T TMP_114 t3) in (let 
+TMP_116 \def ((eq T (THead k t t0) t3) \to (\forall (P: Prop).P)) in (or 
+TMP_115 TMP_116))))) in (let TMP_126 \def (\lambda (n: nat).(let TMP_118 \def 
+(THead k t t0) in (let TMP_119 \def (TSort n) in (let TMP_120 \def (eq T 
+TMP_118 TMP_119) in (let TMP_121 \def ((eq T (THead k t t0) (TSort n)) \to 
+(\forall (P: Prop).P)) in (let TMP_125 \def (\lambda (H1: (eq T (THead k t 
+t0) (TSort n))).(\lambda (P: Prop).(let TMP_122 \def (THead k t t0) in (let 
+TMP_123 \def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | 
+(TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) in (let 
+TMP_124 \def (TSort n) in (let H2 \def (eq_ind T TMP_122 TMP_123 I TMP_124 
+H1) in (False_ind P H2))))))) in (or_intror TMP_120 TMP_121 TMP_125))))))) in 
+(let TMP_135 \def (\lambda (n: nat).(let TMP_127 \def (THead k t t0) in (let 
+TMP_128 \def (TLRef n) in (let TMP_129 \def (eq T TMP_127 TMP_128) in (let 
+TMP_130 \def ((eq T (THead k t t0) (TLRef n)) \to (\forall (P: Prop).P)) in 
+(let TMP_134 \def (\lambda (H1: (eq T (THead k t t0) (TLRef n))).(\lambda (P: 
+Prop).(let TMP_131 \def (THead k t t0) in (let TMP_132 \def (\lambda (ee: 
+T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False 
+| (THead _ _ _) \Rightarrow True])) in (let TMP_133 \def (TLRef n) in (let H2 
+\def (eq_ind T TMP_131 TMP_132 I TMP_133 H1) in (False_ind P H2))))))) in 
+(or_intror TMP_129 TMP_130 TMP_134))))))) in (let TMP_249 \def (\lambda (k0: 
+K).(\lambda (t3: T).(\lambda (H1: (or (eq T (THead k t t0) t3) ((eq T (THead 
+k t t0) t3) \to (\forall (P: Prop).P)))).(\lambda (t4: T).(\lambda (H2: (or 
+(eq T (THead k t t0) t4) ((eq T (THead k t t0) t4) \to (\forall (P: 
+Prop).P)))).(let H_x \def (H t3) in (let H3 \def H_x in (let TMP_136 \def (eq 
+T t t3) in (let TMP_137 \def ((eq T t t3) \to (\forall (P: Prop).P)) in (let 
+TMP_138 \def (THead k t t0) in (let TMP_139 \def (THead k0 t3 t4) in (le
+TMP_140 \def (eq T TMP_138 TMP_139) in (let TMP_141 \def ((eq T (THead k t 
+t0) (THead k0 t3 t4)) \to (\forall (P: Prop).P)) in (let TMP_142 \def (or 
+TMP_140 TMP_141) in (let TMP_221 \def (\lambda (H4: (eq T t t3)).(let TMP_146 
+\def (\lambda (t5: T).(let TMP_143 \def (THead k t t0) in (let TMP_144 \def 
+(eq T TMP_143 t5) in (let TMP_145 \def ((eq T (THead k t t0) t5) \to (\forall 
+(P: Prop).P)) in (or TMP_144 TMP_145))))) in (let H5 \def (eq_ind_r T t3 
+TMP_146 H1 t H4) in (let TMP_151 \def (\lambda (t5: T).(let TMP_147 \def 
+(THead k t t0) in (let TMP_148 \def (THead k0 t5 t4) in (let TMP_149 \def (eq 
+T TMP_147 TMP_148) in (let TMP_150 \def ((eq T (THead k t t0) (THead k0 t5 
+t4)) \to (\forall (P: Prop).P)) in (or TMP_149 TMP_150)))))) in (let H_x0 
+\def (H0 t4) in (let H6 \def H_x0 in (let TMP_152 \def (eq T t0 t4) in (let 
+TMP_153 \def ((eq T t0 t4) \to (\forall (P: Prop).P)) in (let TMP_154 \def 
+(THead k t t0) in (let TMP_155 \def (THead k0 t t4) in (let TMP_156 \def (eq 
+T TMP_154 TMP_155) in (let TMP_157 \def ((eq T (THead k t t0) (THead k0 t 
+t4)) \to (\forall (P: Prop).P)) in (let TMP_158 \def (or TMP_156 TMP_157) in 
+(let TMP_200 \def (\lambda (H7: (eq T t0 t4)).(let TMP_162 \def (\lambda (t5: 
+T).(let TMP_159 \def (THead k t t0) in (let TMP_160 \def (eq T TMP_159 t5) in 
+(let TMP_161 \def ((eq T (THead k t t0) t5) \to (\forall (P: Prop).P)) in (or 
+TMP_160 TMP_161))))) in (let H8 \def (eq_ind_r T t4 TMP_162 H2 t0 H7) in (let 
+TMP_167 \def (\lambda (t5: T).(let TMP_163 \def (THead k t t0) in (let 
+TMP_164 \def (THead k0 t t5) in (let TMP_165 \def (eq T TMP_163 TMP_164) in 
+(let TMP_166 \def ((eq T (THead k t t0) (THead k0 t t5)) \to (\forall (P: 
+Prop).P)) in (or TMP_165 TMP_166)))))) in (let H_x1 \def 
+(terms_props__kind_dec k k0) in (let H9 \def H_x1 in (let TMP_168 \def (eq K 
+k k0) in (let TMP_169 \def ((eq K k k0) \to (\forall (P: Prop).P)) in (let 
+TMP_170 \def (THead k t t0) in (let TMP_171 \def (THead k0 t t0) in (let 
+TMP_172 \def (eq T TMP_170 TMP_171) in (let TMP_173 \def ((eq T (THead k t 
+t0) (THead k0 t t0)) \to (\forall (P: Prop).P)) in (let TMP_174 \def (or 
+TMP_172 TMP_173) in (let TMP_187 \def (\lambda (H10: (eq K k k0)).(let 
+TMP_179 \def (\lambda (k1: K).(let TMP_175 \def (THead k t t0) in (let 
+TMP_176 \def (THead k1 t t0) in (let TMP_177 \def (eq T TMP_175 TMP_176) in 
+(let TMP_178 \def ((eq T (THead k t t0) (THead k1 t t0)) \to (\forall (P: 
+Prop).P)) in (or TMP_177 TMP_178)))))) in (let TMP_180 \def (THead k t t0) in 
+(let TMP_181 \def (THead k t t0) in (let TMP_182 \def (eq T TMP_180 TMP_181) 
+in (let TMP_183 \def ((eq T (THead k t t0) (THead k t t0)) \to (\forall (P: 
+Prop).P)) in (let TMP_184 \def (THead k t t0) in (let TMP_185 \def 
+(refl_equal T TMP_184) in (let TMP_186 \def (or_introl TMP_182 TMP_183 
+TMP_185) in (eq_ind K k TMP_179 TMP_186 k0 H10)))))))))) in (let TMP_198 \def 
+(\lambda (H10: (((eq K k k0) \to (\forall (P: Prop).P)))).(let TMP_188 \def 
+(THead k t t0) in (let TMP_189 \def (THead k0 t t0) in (let TMP_190 \def (eq 
+T TMP_188 TMP_189) in (let TMP_191 \def ((eq T (THead k t t0) (THead k0 t 
+t0)) \to (\forall (P: Prop).P)) in (let TMP_197 \def (\lambda (H11: (eq T 
+(THead k t t0) (THead k0 t t0))).(\lambda (P: Prop).(let TMP_192 \def 
+(\lambda (e: T).(match e with [(TSort _) \Rightarrow k | (TLRef _) 
+\Rightarrow k | (THead k1 _ _) \Rightarrow k1])) in (let TMP_193 \def (THead 
+k t t0) in (let TMP_194 \def (THead k0 t t0) in (let H12 \def (f_equal T K 
+TMP_192 TMP_193 TMP_194 H11) in (let TMP_195 \def (\lambda (k1: K).((eq K k 
+k1) \to (\forall (P0: Prop).P0))) in (let H13 \def (eq_ind_r K k0 TMP_195 H10 
+k H12) in (let TMP_196 \def (refl_equal K k) in (H13 TMP_196 P)))))))))) in 
+(or_intror TMP_190 TMP_191 TMP_197))))))) in (let TMP_199 \def (or_ind 
+TMP_168 TMP_169 TMP_174 TMP_187 TMP_198 H9) in (eq_ind T t0 TMP_167 TMP_199 
+t4 H7))))))))))))))))) in (let TMP_219 \def (\lambda (H7: (((eq T t0 t4) \to 
+(\forall (P: Prop).P)))).(let TMP_201 \def (THead k t t0) in (let TMP_202 
+\def (THead k0 t t4) in (let TMP_203 \def (eq T TMP_201 TMP_202) in (let 
+TMP_204 \def ((eq T (THead k t t0) (THead k0 t t4)) \to (\forall (P: 
+Prop).P)) in (let TMP_218 \def (\lambda (H8: (eq T (THead k t t0) (THead k0 t 
+t4))).(\lambda (P: Prop).(let TMP_205 \def (\lambda (e: T).(match e with 
 [(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | (THead k1 _ _) 
-\Rightarrow k1])) in (let TMP_230 \def (THead k t t0) in (let TMP_229 \def 
-(THead k0 t t4) in (let H9 \def (f_equal T K TMP_231 TMP_230 TMP_229 H8) in 
-(let TMP_234 \def (\lambda (e: T).(match e in T with [(TSort _) \Rightarrow 
-t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t5) \Rightarrow t5])) in (let 
-TMP_233 \def (THead k t t0) in (let TMP_232 \def (THead k0 t t4) in (let H10 
-\def (f_equal T T TMP_234 TMP_233 TMP_232 H8) in (let TMP_241 \def (\lambda 
-(_: (eq K k k0)).(let TMP_235 \def (\lambda (t5: T).((eq T t0 t5) \to 
-(\forall (P0: Prop).P0))) in (let H12 \def (eq_ind_r T t4 TMP_235 H7 t0 H10) 
-in (let TMP_239 \def (\lambda (t5: T).(let TMP_237 \def (THead k t t0) in 
-(let TMP_238 \def (eq T TMP_237 t5) in (let TMP_236 \def ((eq T (THead k t 
-t0) t5) \to (\forall (P0: Prop).P0)) in (or TMP_238 TMP_236))))) in (let H13 
-\def (eq_ind_r T t4 TMP_239 H2 t0 H10) in (let TMP_240 \def (refl_equal T t0) 
-in (H12 TMP_240 P))))))) in (TMP_241 H9)))))))))))) in (or_intror TMP_246 
-TMP_243 TMP_242))))))) in (let TMP_297 \def (or_ind TMP_296 TMP_295 TMP_294 
-TMP_289 TMP_247 H6) in (eq_ind T t TMP_302 TMP_297 t3 H4))))))))))))))))) in 
-(let TMP_224 \def (\lambda (H4: (((eq T t t3) \to (\forall (P: 
-Prop).P)))).(let TMP_222 \def (THead k t t0) in (let TMP_221 \def (THead k0 
-t3 t4) in (let TMP_223 \def (eq T TMP_222 TMP_221) in (let TMP_220 \def ((eq 
-T (THead k t t0) (THead k0 t3 t4)) \to (\forall (P: Prop).P)) in (let TMP_219 
+\Rightarrow k1])) in (let TMP_206 \def (THead k t t0) in (let TMP_207 \def 
+(THead k0 t t4) in (let H9 \def (f_equal T K TMP_205 TMP_206 TMP_207 H8) in 
+(let TMP_208 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow t0 | 
+(TLRef _) \Rightarrow t0 | (THead _ _ t5) \Rightarrow t5])) in (let TMP_209 
+\def (THead k t t0) in (let TMP_210 \def (THead k0 t t4) in (let H10 \def 
+(f_equal T T TMP_208 TMP_209 TMP_210 H8) in (let TMP_217 \def (\lambda (_: 
+(eq K k k0)).(let TMP_211 \def (\lambda (t5: T).((eq T t0 t5) \to (\forall 
+(P0: Prop).P0))) in (let H12 \def (eq_ind_r T t4 TMP_211 H7 t0 H10) in (let 
+TMP_215 \def (\lambda (t5: T).(let TMP_212 \def (THead k t t0) in (let 
+TMP_213 \def (eq T TMP_212 t5) in (let TMP_214 \def ((eq T (THead k t t0) t5) 
+\to (\forall (P0: Prop).P0)) in (or TMP_213 TMP_214))))) in (let H13 \def 
+(eq_ind_r T t4 TMP_215 H2 t0 H10) in (let TMP_216 \def (refl_equal T t0) in 
+(H12 TMP_216 P))))))) in (TMP_217 H9)))))))))))) in (or_intror TMP_203 
+TMP_204 TMP_218))))))) in (let TMP_220 \def (or_ind TMP_152 TMP_153 TMP_158 
+TMP_200 TMP_219 H6) in (eq_ind T t TMP_151 TMP_220 t3 H4))))))))))))))))) in 
+(let TMP_248 \def (\lambda (H4: (((eq T t t3) \to (\forall (P: 
+Prop).P)))).(let TMP_222 \def (THead k t t0) in (let TMP_223 \def (THead k0 
+t3 t4) in (let TMP_224 \def (eq T TMP_222 TMP_223) in (let TMP_225 \def ((eq 
+T (THead k t t0) (THead k0 t3 t4)) \to (\forall (P: Prop).P)) in (let TMP_247 
 \def (\lambda (H5: (eq T (THead k t t0) (THead k0 t3 t4))).(\lambda (P: 
-Prop).(let TMP_200 \def (\lambda (e: T).(match e in T with [(TSort _) 
-\Rightarrow k | (TLRef _) \Rightarrow k | (THead k1 _ _) \Rightarrow k1])) in 
-(let TMP_199 \def (THead k t t0) in (let TMP_198 \def (THead k0 t3 t4) in 
-(let H6 \def (f_equal T K TMP_200 TMP_199 TMP_198 H5) in (let TMP_203 \def 
-(\lambda (e: T).(match e in T with [(TSort _) \Rightarrow t | (TLRef _) 
-\Rightarrow t | (THead _ t5 _) \Rightarrow t5])) in (let TMP_202 \def (THead 
-k t t0) in (let TMP_201 \def (THead k0 t3 t4) in (let H7 \def (f_equal T T 
-TMP_203 TMP_202 TMP_201 H5) in (let TMP_206 \def (\lambda (e: T).(match e in 
-T with [(TSort _) \Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t5
-\Rightarrow t5])) in (let TMP_205 \def (THead k t t0) in (let TMP_204 \def 
-(THead k0 t3 t4) in (let H8 \def (f_equal T T TMP_206 TMP_205 TMP_204 H5) in 
-(let TMP_217 \def (\lambda (H9: (eq T t t3)).(\lambda (_: (eq K k k0)).(let 
-TMP_210 \def (\lambda (t5: T).(let TMP_208 \def (THead k t t0) in (let 
-TMP_209 \def (eq T TMP_208 t5) in (let TMP_207 \def ((eq T (THead k t t0) t5) 
-\to (\forall (P0: Prop).P0)) in (or TMP_209 TMP_207))))) in (let H11 \def 
-(eq_ind_r T t4 TMP_210 H2 t0 H8) in (let TMP_211 \def (\lambda (t5: T).((eq T 
-t t5) \to (\forall (P0: Prop).P0))) in (let H12 \def (eq_ind_r T t3 TMP_211 
-H4 t H9) in (let TMP_215 \def (\lambda (t5: T).(let TMP_213 \def (THead k 
-t0) in (let TMP_214 \def (eq T TMP_213 t5) in (let TMP_212 \def ((eq T (THead 
-k t t0) t5) \to (\forall (P0: Prop).P0)) in (or TMP_214 TMP_212))))) in (let 
-H13 \def (eq_ind_r T t3 TMP_215 H1 t H9) in (let TMP_216 \def (refl_equal T 
-t) in (H12 TMP_216 P)))))))))) in (let TMP_218 \def (TMP_217 H7) in (TMP_218 
-H6))))))))))))))))) in (or_intror TMP_223 TMP_220 TMP_219))))))) in (or_ind 
-TMP_310 TMP_309 TMP_308 TMP_303 TMP_224 H3))))))))))))))))) in (T_ind TMP_333 
-TMP_329 TMP_320 TMP_311 t2))))))))))) in (T_ind TMP_447 TMP_444 TMP_389 
-TMP_334 t1))))).
+Prop).(let TMP_226 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow 
+k | (TLRef _) \Rightarrow k | (THead k1 _ _) \Rightarrow k1])) in (let 
+TMP_227 \def (THead k t t0) in (let TMP_228 \def (THead k0 t3 t4) in (let H6 
+\def (f_equal T K TMP_226 TMP_227 TMP_228 H5) in (let TMP_229 \def (\lambda 
+(e: T).(match e with [(TSort _) \Rightarrow t | (TLRef _) \Rightarrow t | 
+(THead _ t5 _) \Rightarrow t5])) in (let TMP_230 \def (THead k t t0) in (let 
+TMP_231 \def (THead k0 t3 t4) in (let H7 \def (f_equal T T TMP_229 TMP_230 
+TMP_231 H5) in (let TMP_232 \def (\lambda (e: T).(match e with [(TSort _) 
+\Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t5) \Rightarrow t5])
+in (let TMP_233 \def (THead k t t0) in (let TMP_234 \def (THead k0 t3 t4) in 
+(let H8 \def (f_equal T T TMP_232 TMP_233 TMP_234 H5) in (let TMP_245 \def 
+(\lambda (H9: (eq T t t3)).(\lambda (_: (eq K k k0)).(let TMP_238 \def 
+(\lambda (t5: T).(let TMP_235 \def (THead k t t0) in (let TMP_236 \def (eq T 
+TMP_235 t5) in (let TMP_237 \def ((eq T (THead k t t0) t5) \to (\forall (P0: 
+Prop).P0)) in (or TMP_236 TMP_237))))) in (let H11 \def (eq_ind_r T t4 
+TMP_238 H2 t0 H8) in (let TMP_239 \def (\lambda (t5: T).((eq T t t5) \to 
+(\forall (P0: Prop).P0))) in (let H12 \def (eq_ind_r T t3 TMP_239 H4 t H9) in 
+(let TMP_243 \def (\lambda (t5: T).(let TMP_240 \def (THead k t t0) in (le
+TMP_241 \def (eq T TMP_240 t5) in (let TMP_242 \def ((eq T (THead k t t0) t5) 
+\to (\forall (P0: Prop).P0)) in (or TMP_241 TMP_242))))) in (let H13 \def 
+(eq_ind_r T t3 TMP_243 H1 t H9) in (let TMP_244 \def (refl_equal T t) in (H12 
+TMP_244 P)))))))))) in (let TMP_246 \def (TMP_245 H7) in (TMP_246 
+H6))))))))))))))))) in (or_intror TMP_224 TMP_225 TMP_247))))))) in (or_ind 
+TMP_136 TMP_137 TMP_142 TMP_221 TMP_248 H3))))))))))))))))) in (T_ind TMP_117 
+TMP_126 TMP_135 TMP_249 t2))))))))))) in (T_ind TMP_3 TMP_58 TMP_113 TMP_250 
+t1))))).
 
 theorem binder_dec:
  \forall (t: T).(or (ex_3 B T T (\lambda (b: B).(\lambda (w: T).(\lambda (u: 
 T).(eq T t (THead (Bind b) w u)))))) (\forall (b: B).(\forall (w: T).(\forall 
 (u: T).((eq T t (THead (Bind b) w u)) \to (\forall (P: Prop).P))))))
 \def
- \lambda (t: T).(let TMP_516 \def (\lambda (t0: T).(let TMP_514 \def (\lambda 
-(b: B).(\lambda (w: T).(\lambda (u: T).(let TMP_512 \def (Bind b) in (let 
-TMP_513 \def (THead TMP_512 w u) in (eq T t0 TMP_513)))))) in (let TMP_515 
-\def (ex_3 B T T TMP_514) in (let TMP_511 \def (\forall (b: B).(\forall (w: 
+ \lambda (t: T).(let TMP_6 \def (\lambda (t0: T).(let TMP_3 \def (\lambda (b: 
+B).(\lambda (w: T).(\lambda (u: T).(let TMP_1 \def (Bind b) in (let TMP_2 
+\def (THead TMP_1 w u) in (eq T t0 TMP_2)))))) in (let TMP_4 \def (ex_3 B T T 
+TMP_3) in (let TMP_5 \def (\forall (b: B).(\forall (w: T).(\forall (u: 
+T).((eq T t0 (THead (Bind b) w u)) \to (\forall (P: Prop).P))))) in (or TMP_4 
+TMP_5))))) in (let TMP_18 \def (\lambda (n: nat).(let TMP_10 \def (\lambda 
+(b: B).(\lambda (w: T).(\lambda (u: T).(let TMP_7 \def (TSort n) in (let 
+TMP_8 \def (Bind b) in (let TMP_9 \def (THead TMP_8 w u) in (eq T TMP_7 
+TMP_9))))))) in (let TMP_11 \def (ex_3 B T T TMP_10) in (let TMP_12 \def 
+(\forall (b: B).(\forall (w: T).(\forall (u: T).((eq T (TSort n) (THead (Bind 
+b) w u)) \to (\forall (P: Prop).P))))) in (let TMP_17 \def (\lambda (b: 
+B).(\lambda (w: T).(\lambda (u: T).(\lambda (H: (eq T (TSort n) (THead (Bind 
+b) w u))).(\lambda (P: Prop).(let TMP_13 \def (TSort n) in (let TMP_14 \def 
+(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow True | (TLRef _) 
+\Rightarrow False | (THead _ _ _) \Rightarrow False])) in (let TMP_15 \def 
+(Bind b) in (let TMP_16 \def (THead TMP_15 w u) in (let H0 \def (eq_ind T 
+TMP_13 TMP_14 I TMP_16 H) in (False_ind P H0))))))))))) in (or_intror TMP_11 
+TMP_12 TMP_17)))))) in (let TMP_30 \def (\lambda (n: nat).(let TMP_22 \def 
+(\lambda (b: B).(\lambda (w: T).(\lambda (u: T).(let TMP_19 \def (TLRef n) in 
+(let TMP_20 \def (Bind b) in (let TMP_21 \def (THead TMP_20 w u) in (eq T 
+TMP_19 TMP_21))))))) in (let TMP_23 \def (ex_3 B T T TMP_22) in (let TMP_24 
+\def (\forall (b: B).(\forall (w: T).(\forall (u: T).((eq T (TLRef n) (THead 
+(Bind b) w u)) \to (\forall (P: Prop).P))))) in (let TMP_29 \def (\lambda (b: 
+B).(\lambda (w: T).(\lambda (u: T).(\lambda (H: (eq T (TLRef n) (THead (Bind 
+b) w u))).(\lambda (P: Prop).(let TMP_25 \def (TLRef n) in (let TMP_26 \def 
+(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
+\Rightarrow True | (THead _ _ _) \Rightarrow False])) in (let TMP_27 \def 
+(Bind b) in (let TMP_28 \def (THead TMP_27 w u) in (let H0 \def (eq_ind T 
+TMP_25 TMP_26 I TMP_28 H) in (False_ind P H0))))))))))) in (or_intror TMP_23 
+TMP_24 TMP_29)))))) in (let TMP_69 \def (\lambda (k: K).(let TMP_37 \def 
+(\lambda (k0: K).(\forall (t0: T).((or (ex_3 B T T (\lambda (b: B).(\lambda 
+(w: T).(\lambda (u: T).(eq T t0 (THead (Bind b) w u)))))) (\forall (b: 
+B).(\forall (w: T).(\forall (u: T).((eq T t0 (THead (Bind b) w u)) \to 
+(\forall (P: Prop).P)))))) \to (\forall (t1: T).((or (ex_3 B T T (\lambda (b: 
+B).(\lambda (w: T).(\lambda (u: T).(eq T t1 (THead (Bind b) w u)))))) 
+(\forall (b: B).(\forall (w: T).(\forall (u: T).((eq T t1 (THead (Bind b) w 
+u)) \to (\forall (P: Prop).P)))))) \to (let TMP_34 \def (\lambda (b: 
+B).(\lambda (w: T).(\lambda (u: T).(let TMP_31 \def (THead k0 t0 t1) in (let 
+TMP_32 \def (Bind b) in (let TMP_33 \def (THead TMP_32 w u) in (eq T TMP_31 
+TMP_33))))))) in (let TMP_35 \def (ex_3 B T T TMP_34) in (let TMP_36 \def 
+(\forall (b: B).(\forall (w: T).(\forall (u: T).((eq T (THead k0 t0 t1) 
+(THead (Bind b) w u)) \to (\forall (P: Prop).P))))) in (or TMP_35 
+TMP_36))))))))) in (let TMP_54 \def (\lambda (b: B).(\lambda (t0: T).(\lambda 
+(_: (or (ex_3 B T T (\lambda (b0: B).(\lambda (w: T).(\lambda (u: T).(eq T t0 
+(THead (Bind b0) w u)))))) (\forall (b0: B).(\forall (w: T).(\forall (u: 
+T).((eq T t0 (THead (Bind b0) w u)) \to (\forall (P: Prop).P))))))).(\lambda 
+(t1: T).(\lambda (_: (or (ex_3 B T T (\lambda (b0: B).(\lambda (w: 
+T).(\lambda (u: T).(eq T t1 (THead (Bind b0) w u)))))) (\forall (b0: 
+B).(\forall (w: T).(\forall (u: T).((eq T t1 (THead (Bind b0) w u)) \to 
+(\forall (P: Prop).P))))))).(let TMP_42 \def (\lambda (b0: B).(\lambda (w: 
+T).(\lambda (u: T).(let TMP_38 \def (Bind b) in (let TMP_39 \def (THead 
+TMP_38 t0 t1) in (let TMP_40 \def (Bind b0) in (let TMP_41 \def (THead TMP_40 
+w u) in (eq T TMP_39 TMP_41)))))))) in (let TMP_43 \def (ex_3 B T T TMP_42) 
+in (let TMP_44 \def (\forall (b0: B).(\forall (w: T).(\forall (u: T).((eq T 
+(THead (Bind b) t0 t1) (THead (Bind b0) w u)) \to (\forall (P: Prop).P))))) 
+in (let TMP_49 \def (\lambda (b0: B).(\lambda (w: T).(\lambda (u: T).(let 
+TMP_45 \def (Bind b) in (let TMP_46 \def (THead TMP_45 t0 t1) in (let TMP_47 
+\def (Bind b0) in (let TMP_48 \def (THead TMP_47 w u) in (eq T TMP_46 
+TMP_48)))))))) in (let TMP_50 \def (Bind b) in (let TMP_51 \def (THead TMP_50 
+t0 t1) in (let TMP_52 \def (refl_equal T TMP_51) in (let TMP_53 \def 
+(ex_3_intro B T T TMP_49 b t0 t1 TMP_52) in (or_introl TMP_43 TMP_44 
+TMP_53)))))))))))))) in (let TMP_68 \def (\lambda (f: F).(\lambda (t0: 
+T).(\lambda (_: (or (ex_3 B T T (\lambda (b: B).(\lambda (w: T).(\lambda (u: 
+T).(eq T t0 (THead (Bind b) w u)))))) (\forall (b: B).(\forall (w: 
 T).(\forall (u: T).((eq T t0 (THead (Bind b) w u)) \to (\forall (P: 
-Prop).P))))) in (or TMP_515 TMP_511))))) in (let TMP_510 \def (\lambda (n: 
-nat).(let TMP_508 \def (\lambda (b: B).(\lambda (w: T).(\lambda (u: T).(let 
-TMP_507 \def (TSort n) in (let TMP_505 \def (Bind b) in (let TMP_506 \def 
-(THead TMP_505 w u) in (eq T TMP_507 TMP_506))))))) in (let TMP_509 \def 
-(ex_3 B T T TMP_508) in (let TMP_504 \def (\forall (b: B).(\forall (w: 
-T).(\forall (u: T).((eq T (TSort n) (THead (Bind b) w u)) \to (\forall (P: 
-Prop).P))))) in (let TMP_503 \def (\lambda (b: B).(\lambda (w: T).(\lambda 
-(u: T).(\lambda (H: (eq T (TSort n) (THead (Bind b) w u))).(\lambda (P: 
-Prop).(let TMP_502 \def (TSort n) in (let TMP_501 \def (\lambda (ee: 
-T).(match ee in T with [(TSort _) \Rightarrow True | (TLRef _) \Rightarrow 
-False | (THead _ _ _) \Rightarrow False])) in (let TMP_499 \def (Bind b) in 
-(let TMP_500 \def (THead TMP_499 w u) in (let H0 \def (eq_ind T TMP_502 
-TMP_501 I TMP_500 H) in (False_ind P H0))))))))))) in (or_intror TMP_509 
-TMP_504 TMP_503)))))) in (let TMP_498 \def (\lambda (n: nat).(let TMP_496 
-\def (\lambda (b: B).(\lambda (w: T).(\lambda (u: T).(let TMP_495 \def (TLRef 
-n) in (let TMP_493 \def (Bind b) in (let TMP_494 \def (THead TMP_493 w u) in 
-(eq T TMP_495 TMP_494))))))) in (let TMP_497 \def (ex_3 B T T TMP_496) in 
-(let TMP_492 \def (\forall (b: B).(\forall (w: T).(\forall (u: T).((eq T 
-(TLRef n) (THead (Bind b) w u)) \to (\forall (P: Prop).P))))) in (let TMP_491 
-\def (\lambda (b: B).(\lambda (w: T).(\lambda (u: T).(\lambda (H: (eq T 
-(TLRef n) (THead (Bind b) w u))).(\lambda (P: Prop).(let TMP_490 \def (TLRef 
-n) in (let TMP_489 \def (\lambda (ee: T).(match ee in T with [(TSort _) 
-\Rightarrow False | (TLRef _) \Rightarrow True | (THead _ _ _) \Rightarrow 
-False])) in (let TMP_487 \def (Bind b) in (let TMP_488 \def (THead TMP_487 w 
-u) in (let H0 \def (eq_ind T TMP_490 TMP_489 I TMP_488 H) in (False_ind P 
-H0))))))))))) in (or_intror TMP_497 TMP_492 TMP_491)))))) in (let TMP_486 
-\def (\lambda (k: K).(let TMP_485 \def (\lambda (k0: K).(\forall (t0: T).((or 
-(ex_3 B T T (\lambda (b: B).(\lambda (w: T).(\lambda (u: T).(eq T t0 (THead 
-(Bind b) w u)))))) (\forall (b: B).(\forall (w: T).(\forall (u: T).((eq T t0 
-(THead (Bind b) w u)) \to (\forall (P: Prop).P)))))) \to (\forall (t1: 
-T).((or (ex_3 B T T (\lambda (b: B).(\lambda (w: T).(\lambda (u: T).(eq T t1 
-(THead (Bind b) w u)))))) (\forall (b: B).(\forall (w: T).(\forall (u: 
-T).((eq T t1 (THead (Bind b) w u)) \to (\forall (P: Prop).P)))))) \to (let 
-TMP_483 \def (\lambda (b: B).(\lambda (w: T).(\lambda (u: T).(let TMP_482 
-\def (THead k0 t0 t1) in (let TMP_480 \def (Bind b) in (let TMP_481 \def 
-(THead TMP_480 w u) in (eq T TMP_482 TMP_481))))))) in (let TMP_484 \def 
-(ex_3 B T T TMP_483) in (let TMP_479 \def (\forall (b: B).(\forall (w: 
-T).(\forall (u: T).((eq T (THead k0 t0 t1) (THead (Bind b) w u)) \to (\forall 
-(P: Prop).P))))) in (or TMP_484 TMP_479))))))))) in (let TMP_478 \def 
-(\lambda (b: B).(\lambda (t0: T).(\lambda (_: (or (ex_3 B T T (\lambda (b0: 
-B).(\lambda (w: T).(\lambda (u: T).(eq T t0 (THead (Bind b0) w u)))))) 
-(\forall (b0: B).(\forall (w: T).(\forall (u: T).((eq T t0 (THead (Bind b0) w 
-u)) \to (\forall (P: Prop).P))))))).(\lambda (t1: T).(\lambda (_: (or (ex_3 B 
-T T (\lambda (b0: B).(\lambda (w: T).(\lambda (u: T).(eq T t1 (THead (Bind 
-b0) w u)))))) (\forall (b0: B).(\forall (w: T).(\forall (u: T).((eq T t1 
-(THead (Bind b0) w u)) \to (\forall (P: Prop).P))))))).(let TMP_476 \def 
-(\lambda (b0: B).(\lambda (w: T).(\lambda (u: T).(let TMP_474 \def (Bind b) 
-in (let TMP_475 \def (THead TMP_474 t0 t1) in (let TMP_472 \def (Bind b0) in 
-(let TMP_473 \def (THead TMP_472 w u) in (eq T TMP_475 TMP_473)))))))) in 
-(let TMP_477 \def (ex_3 B T T TMP_476) in (let TMP_471 \def (\forall (b0: 
-B).(\forall (w: T).(\forall (u: T).((eq T (THead (Bind b) t0 t1) (THead (Bind 
-b0) w u)) \to (\forall (P: Prop).P))))) in (let TMP_469 \def (\lambda (b0: 
-B).(\lambda (w: T).(\lambda (u: T).(let TMP_467 \def (Bind b) in (let TMP_468 
-\def (THead TMP_467 t0 t1) in (let TMP_465 \def (Bind b0) in (let TMP_466 
-\def (THead TMP_465 w u) in (eq T TMP_468 TMP_466)))))))) in (let TMP_462 
-\def (Bind b) in (let TMP_463 \def (THead TMP_462 t0 t1) in (let TMP_464 \def 
-(refl_equal T TMP_463) in (let TMP_470 \def (ex_3_intro B T T TMP_469 b t0 t1 
-TMP_464) in (or_introl TMP_477 TMP_471 TMP_470)))))))))))))) in (let TMP_461 
-\def (\lambda (f: F).(\lambda (t0: T).(\lambda (_: (or (ex_3 B T T (\lambda 
-(b: B).(\lambda (w: T).(\lambda (u: T).(eq T t0 (THead (Bind b) w u)))))) 
-(\forall (b: B).(\forall (w: T).(\forall (u: T).((eq T t0 (THead (Bind b) w 
-u)) \to (\forall (P: Prop).P))))))).(\lambda (t1: T).(\lambda (_: (or (ex_3 B 
-T T (\lambda (b: B).(\lambda (w: T).(\lambda (u: T).(eq T t1 (THead (Bind b) 
-w u)))))) (\forall (b: B).(\forall (w: T).(\forall (u: T).((eq T t1 (THead 
-(Bind b) w u)) \to (\forall (P: Prop).P))))))).(let TMP_459 \def (\lambda (b: 
-B).(\lambda (w: T).(\lambda (u: T).(let TMP_457 \def (Flat f) in (let TMP_458 
-\def (THead TMP_457 t0 t1) in (let TMP_455 \def (Bind b) in (let TMP_456 \def 
-(THead TMP_455 w u) in (eq T TMP_458 TMP_456)))))))) in (let TMP_460 \def 
-(ex_3 B T T TMP_459) in (let TMP_454 \def (\forall (b: B).(\forall (w: 
-T).(\forall (u: T).((eq T (THead (Flat f) t0 t1) (THead (Bind b) w u)) \to 
-(\forall (P: Prop).P))))) in (let TMP_453 \def (\lambda (b: B).(\lambda (w: 
-T).(\lambda (u: T).(\lambda (H1: (eq T (THead (Flat f) t0 t1) (THead (Bind b) 
-w u))).(\lambda (P: Prop).(let TMP_451 \def (Flat f) in (let TMP_452 \def 
-(THead TMP_451 t0 t1) in (let TMP_450 \def (\lambda (ee: T).(match ee in T 
-with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k0 _ 
-_) \Rightarrow (match k0 in K with [(Bind _) \Rightarrow False | (Flat _) 
-\Rightarrow True])])) in (let TMP_448 \def (Bind b) in (let TMP_449 \def 
-(THead TMP_448 w u) in (let H2 \def (eq_ind T TMP_452 TMP_450 I TMP_449 H1) 
-in (False_ind P H2)))))))))))) in (or_intror TMP_460 TMP_454 
-TMP_453)))))))))) in (K_ind TMP_485 TMP_478 TMP_461 k))))) in (T_ind TMP_516 
-TMP_510 TMP_498 TMP_486 t))))).
+Prop).P))))))).(\lambda (t1: T).(\lambda (_: (or (ex_3 B T T (\lambda (b: 
+B).(\lambda (w: T).(\lambda (u: T).(eq T t1 (THead (Bind b) w u)))))) 
+(\forall (b: B).(\forall (w: T).(\forall (u: T).((eq T t1 (THead (Bind b) w 
+u)) \to (\forall (P: Prop).P))))))).(let TMP_59 \def (\lambda (b: B).(\lambda 
+(w: T).(\lambda (u: T).(let TMP_55 \def (Flat f) in (let TMP_56 \def (THead 
+TMP_55 t0 t1) in (let TMP_57 \def (Bind b) in (let TMP_58 \def (THead TMP_57 
+w u) in (eq T TMP_56 TMP_58)))))))) in (let TMP_60 \def (ex_3 B T T TMP_59) 
+in (let TMP_61 \def (\forall (b: B).(\forall (w: T).(\forall (u: T).((eq T 
+(THead (Flat f) t0 t1) (THead (Bind b) w u)) \to (\forall (P: Prop).P))))) in 
+(let TMP_67 \def (\lambda (b: B).(\lambda (w: T).(\lambda (u: T).(\lambda 
+(H1: (eq T (THead (Flat f) t0 t1) (THead (Bind b) w u))).(\lambda (P: 
+Prop).(let TMP_62 \def (Flat f) in (let TMP_63 \def (THead TMP_62 t0 t1) in 
+(let TMP_64 \def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False 
+| (TLRef _) \Rightarrow False | (THead k0 _ _) \Rightarrow (match k0 with 
+[(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) in (let TMP_65 
+\def (Bind b) in (let TMP_66 \def (THead TMP_65 w u) in (let H2 \def (eq_ind 
+T TMP_63 TMP_64 I TMP_66 H1) in (False_ind P H2)))))))))))) in (or_intror 
+TMP_60 TMP_61 TMP_67)))))))))) in (K_ind TMP_37 TMP_54 TMP_68 k))))) in 
+(T_ind TMP_6 TMP_18 TMP_30 TMP_69 t))))).
 
 theorem abst_dec:
  \forall (u: T).(\forall (v: T).(or (ex T (\lambda (t: T).(eq T u (THead 
 (Bind Abst) v t)))) (\forall (t: T).((eq T u (THead (Bind Abst) v t)) \to 
 (\forall (P: Prop).P)))))
 \def
- \lambda (u: T).(let TMP_646 \def (\lambda (t: T).(\forall (v: T).(let 
-TMP_644 \def (\lambda (t0: T).(let TMP_642 \def (Bind Abst) in (let TMP_643 
-\def (THead TMP_642 v t0) in (eq T t TMP_643)))) in (let TMP_645 \def (ex T 
-TMP_644) in (let TMP_641 \def (\forall (t0: T).((eq T t (THead (Bind Abst) v 
-t0)) \to (\forall (P: Prop).P))) in (or TMP_645 TMP_641)))))) in (let TMP_640 
-\def (\lambda (n: nat).(\lambda (v: T).(let TMP_638 \def (\lambda (t: T).(let 
-TMP_637 \def (TSort n) in (let TMP_635 \def (Bind Abst) in (let TMP_636 \def 
-(THead TMP_635 v t) in (eq T TMP_637 TMP_636))))) in (let TMP_639 \def (ex T 
-TMP_638) in (let TMP_634 \def (\forall (t: T).((eq T (TSort n) (THead (Bind 
-Abst) v t)) \to (\forall (P: Prop).P))) in (let TMP_633 \def (\lambda (t: 
-T).(\lambda (H: (eq T (TSort n) (THead (Bind Abst) v t))).(\lambda (P: 
-Prop).(let TMP_632 \def (TSort n) in (let TMP_631 \def (\lambda (ee: 
-T).(match ee in T with [(TSort _) \Rightarrow True | (TLRef _) \Rightarrow 
-False | (THead _ _ _) \Rightarrow False])) in (let TMP_629 \def (Bind Abst) 
-in (let TMP_630 \def (THead TMP_629 v t) in (let H0 \def (eq_ind T TMP_632 
-TMP_631 I TMP_630 H) in (False_ind P H0))))))))) in (or_intror TMP_639 
-TMP_634 TMP_633))))))) in (let TMP_628 \def (\lambda (n: nat).(\lambda (v: 
-T).(let TMP_626 \def (\lambda (t: T).(let TMP_625 \def (TLRef n) in (let 
-TMP_623 \def (Bind Abst) in (let TMP_624 \def (THead TMP_623 v t) in (eq T 
-TMP_625 TMP_624))))) in (let TMP_627 \def (ex T TMP_626) in (let TMP_622 \def 
-(\forall (t: T).((eq T (TLRef n) (THead (Bind Abst) v t)) \to (\forall (P: 
-Prop).P))) in (let TMP_621 \def (\lambda (t: T).(\lambda (H: (eq T (TLRef n) 
-(THead (Bind Abst) v t))).(\lambda (P: Prop).(let TMP_620 \def (TLRef n) in 
-(let TMP_619 \def (\lambda (ee: T).(match ee in T with [(TSort _) \Rightarrow 
-False | (TLRef _) \Rightarrow True | (THead _ _ _) \Rightarrow False])) in 
-(let TMP_617 \def (Bind Abst) in (let TMP_618 \def (THead TMP_617 v t) in 
-(let H0 \def (eq_ind T TMP_620 TMP_619 I TMP_618 H) in (False_ind P 
-H0))))))))) in (or_intror TMP_627 TMP_622 TMP_621))))))) in (let TMP_616 \def 
-(\lambda (k: K).(\lambda (t: T).(\lambda (_: ((\forall (v: T).(or (ex T 
-(\lambda (t0: T).(eq T t (THead (Bind Abst) v t0)))) (\forall (t0: T).((eq T 
-t (THead (Bind Abst) v t0)) \to (\forall (P: Prop).P))))))).(\lambda (t0: 
-T).(\lambda (_: ((\forall (v: T).(or (ex T (\lambda (t1: T).(eq T t0 (THead 
-(Bind Abst) v t1)))) (\forall (t1: T).((eq T t0 (THead (Bind Abst) v t1)) \to 
-(\forall (P: Prop).P))))))).(\lambda (v: T).(let TMP_517 \def (Bind Abst) in 
-(let H_x \def (terms_props__kind_dec k TMP_517) in (let H1 \def H_x in (let 
-TMP_614 \def (Bind Abst) in (let TMP_615 \def (eq K k TMP_614) in (let 
-TMP_613 \def ((eq K k (Bind Abst)) \to (\forall (P: Prop).P)) in (let TMP_610 
-\def (\lambda (t1: T).(let TMP_609 \def (THead k t t0) in (let TMP_607 \def 
-(Bind Abst) in (let TMP_608 \def (THead TMP_607 v t1) in (eq T TMP_609 
-TMP_608))))) in (let TMP_611 \def (ex T TMP_610) in (let TMP_606 \def 
-(\forall (t1: T).((eq T (THead k t t0) (THead (Bind Abst) v t1)) \to (\forall 
-(P: Prop).P))) in (let TMP_612 \def (or TMP_611 TMP_606) in (let TMP_605 \def 
-(\lambda (H2: (eq K k (Bind Abst))).(let TMP_604 \def (Bind Abst) in (let 
-TMP_603 \def (\lambda (k0: K).(let TMP_601 \def (\lambda (t1: T).(let TMP_600 
-\def (THead k0 t t0) in (let TMP_598 \def (Bind Abst) in (let TMP_599 \def 
-(THead TMP_598 v t1) in (eq T TMP_600 TMP_599))))) in (let TMP_602 \def (ex T 
-TMP_601) in (let TMP_597 \def (\forall (t1: T).((eq T (THead k0 t t0) (THead 
-(Bind Abst) v t1)) \to (\forall (P: Prop).P))) in (or TMP_602 TMP_597))))) in 
-(let H_x0 \def (term_dec t v) in (let H3 \def H_x0 in (let TMP_595 \def (eq T 
-t v) in (let TMP_594 \def ((eq T t v) \to (\forall (P: Prop).P)) in (let 
-TMP_591 \def (\lambda (t1: T).(let TMP_589 \def (Bind Abst) in (let TMP_590 
-\def (THead TMP_589 t t0) in (let TMP_587 \def (Bind Abst) in (let TMP_588 
-\def (THead TMP_587 v t1) in (eq T TMP_590 TMP_588)))))) in (let TMP_592 \def 
-(ex T TMP_591) in (let TMP_586 \def (\forall (t1: T).((eq T (THead (Bind 
-Abst) t t0) (THead (Bind Abst) v t1)) \to (\forall (P: Prop).P))) in (let 
-TMP_593 \def (or TMP_592 TMP_586) in (let TMP_585 \def (\lambda (H4: (eq T t 
-v)).(let TMP_584 \def (\lambda (t1: T).(let TMP_582 \def (\lambda (t2: 
-T).(let TMP_580 \def (Bind Abst) in (let TMP_581 \def (THead TMP_580 t t0) in 
-(let TMP_578 \def (Bind Abst) in (let TMP_579 \def (THead TMP_578 t1 t2) in 
-(eq T TMP_581 TMP_579)))))) in (let TMP_583 \def (ex T TMP_582) in (let 
-TMP_577 \def (\forall (t2: T).((eq T (THead (Bind Abst) t t0) (THead (Bind 
-Abst) t1 t2)) \to (\forall (P: Prop).P))) in (or TMP_583 TMP_577))))) in (let 
-TMP_574 \def (\lambda (t1: T).(let TMP_572 \def (Bind Abst) in (let TMP_573 
-\def (THead TMP_572 t t0) in (let TMP_570 \def (Bind Abst) in (let TMP_571 
-\def (THead TMP_570 t t1) in (eq T TMP_573 TMP_571)))))) in (let TMP_575 \def 
-(ex T TMP_574) in (let TMP_569 \def (\forall (t1: T).((eq T (THead (Bind 
-Abst) t t0) (THead (Bind Abst) t t1)) \to (\forall (P: Prop).P))) in (let 
-TMP_567 \def (\lambda (t1: T).(let TMP_565 \def (Bind Abst) in (let TMP_566 
-\def (THead TMP_565 t t0) in (let TMP_563 \def (Bind Abst) in (let TMP_564 
-\def (THead TMP_563 t t1) in (eq T TMP_566 TMP_564)))))) in (let TMP_560 \def 
-(Bind Abst) in (let TMP_561 \def (THead TMP_560 t t0) in (let TMP_562 \def 
-(refl_equal T TMP_561) in (let TMP_568 \def (ex_intro T TMP_567 t0 TMP_562) 
-in (let TMP_576 \def (or_introl TMP_575 TMP_569 TMP_568) in (eq_ind T t 
-TMP_584 TMP_576 v H4)))))))))))) in (let TMP_559 \def (\lambda (H4: (((eq T t 
-v) \to (\forall (P: Prop).P)))).(let TMP_557 \def (\lambda (t1: T).(let 
-TMP_555 \def (Bind Abst) in (let TMP_556 \def (THead TMP_555 t t0) in (let 
-TMP_553 \def (Bind Abst) in (let TMP_554 \def (THead TMP_553 v t1) in (eq T 
-TMP_556 TMP_554)))))) in (let TMP_558 \def (ex T TMP_557) in (let TMP_552 
-\def (\forall (t1: T).((eq T (THead (Bind Abst) t t0) (THead (Bind Abst) v 
-t1)) \to (\forall (P: Prop).P))) in (let TMP_551 \def (\lambda (t1: 
-T).(\lambda (H5: (eq T (THead (Bind Abst) t t0) (THead (Bind Abst) v 
-t1))).(\lambda (P: Prop).(let TMP_544 \def (\lambda (e: T).(match e in T with 
+ \lambda (u: T).(let TMP_6 \def (\lambda (t: T).(\forall (v: T).(let TMP_3 
+\def (\lambda (t0: T).(let TMP_1 \def (Bind Abst) in (let TMP_2 \def (THead 
+TMP_1 v t0) in (eq T t TMP_2)))) in (let TMP_4 \def (ex T TMP_3) in (let 
+TMP_5 \def (\forall (t0: T).((eq T t (THead (Bind Abst) v t0)) \to (\forall 
+(P: Prop).P))) in (or TMP_4 TMP_5)))))) in (let TMP_18 \def (\lambda (n: 
+nat).(\lambda (v: T).(let TMP_10 \def (\lambda (t: T).(let TMP_7 \def (TSort 
+n) in (let TMP_8 \def (Bind Abst) in (let TMP_9 \def (THead TMP_8 v t) in (eq 
+T TMP_7 TMP_9))))) in (let TMP_11 \def (ex T TMP_10) in (let TMP_12 \def 
+(\forall (t: T).((eq T (TSort n) (THead (Bind Abst) v t)) \to (\forall (P: 
+Prop).P))) in (let TMP_17 \def (\lambda (t: T).(\lambda (H: (eq T (TSort n) 
+(THead (Bind Abst) v t))).(\lambda (P: Prop).(let TMP_13 \def (TSort n) in 
+(let TMP_14 \def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow True 
+| (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow False])) in (let 
+TMP_15 \def (Bind Abst) in (let TMP_16 \def (THead TMP_15 v t) in (let H0 
+\def (eq_ind T TMP_13 TMP_14 I TMP_16 H) in (False_ind P H0))))))))) in 
+(or_intror TMP_11 TMP_12 TMP_17))))))) in (let TMP_30 \def (\lambda (n: 
+nat).(\lambda (v: T).(let TMP_22 \def (\lambda (t: T).(let TMP_19 \def (TLRef 
+n) in (let TMP_20 \def (Bind Abst) in (let TMP_21 \def (THead TMP_20 v t) in 
+(eq T TMP_19 TMP_21))))) in (let TMP_23 \def (ex T TMP_22) in (let TMP_24 
+\def (\forall (t: T).((eq T (TLRef n) (THead (Bind Abst) v t)) \to (\forall 
+(P: Prop).P))) in (let TMP_29 \def (\lambda (t: T).(\lambda (H: (eq T (TLRef 
+n) (THead (Bind Abst) v t))).(\lambda (P: Prop).(let TMP_25 \def (TLRef n) in 
+(let TMP_26 \def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False 
+| (TLRef _) \Rightarrow True | (THead _ _ _) \Rightarrow False])) in (let 
+TMP_27 \def (Bind Abst) in (let TMP_28 \def (THead TMP_27 v t) in (let H0 
+\def (eq_ind T TMP_25 TMP_26 I TMP_28 H) in (False_ind P H0))))))))) in 
+(or_intror TMP_23 TMP_24 TMP_29))))))) in (let TMP_130 \def (\lambda (k: 
+K).(\lambda (t: T).(\lambda (_: ((\forall (v: T).(or (ex T (\lambda (t0: 
+T).(eq T t (THead (Bind Abst) v t0)))) (\forall (t0: T).((eq T t (THead (Bind 
+Abst) v t0)) \to (\forall (P: Prop).P))))))).(\lambda (t0: T).(\lambda (_: 
+((\forall (v: T).(or (ex T (\lambda (t1: T).(eq T t0 (THead (Bind Abst) v 
+t1)))) (\forall (t1: T).((eq T t0 (THead (Bind Abst) v t1)) \to (\forall (P: 
+Prop).P))))))).(\lambda (v: T).(let TMP_31 \def (Bind Abst) in (let H_x \def 
+(terms_props__kind_dec k TMP_31) in (let H1 \def H_x in (let TMP_32 \def 
+(Bind Abst) in (let TMP_33 \def (eq K k TMP_32) in (let TMP_34 \def ((eq K k 
+(Bind Abst)) \to (\forall (P: Prop).P)) in (let TMP_38 \def (\lambda (t1: 
+T).(let TMP_35 \def (THead k t t0) in (let TMP_36 \def (Bind Abst) in (let 
+TMP_37 \def (THead TMP_36 v t1) in (eq T TMP_35 TMP_37))))) in (let TMP_39 
+\def (ex T TMP_38) in (let TMP_40 \def (\forall (t1: T).((eq T (THead k t t0) 
+(THead (Bind Abst) v t1)) \to (\forall (P: Prop).P))) in (let TMP_41 \def (or 
+TMP_39 TMP_40) in (let TMP_107 \def (\lambda (H2: (eq K k (Bind Abst))).(let 
+TMP_42 \def (Bind Abst) in (let TMP_49 \def (\lambda (k0: K).(let TMP_46 \def 
+(\lambda (t1: T).(let TMP_43 \def (THead k0 t t0) in (let TMP_44 \def (Bind 
+Abst) in (let TMP_45 \def (THead TMP_44 v t1) in (eq T TMP_43 TMP_45))))) in 
+(let TMP_47 \def (ex T TMP_46) in (let TMP_48 \def (\forall (t1: T).((eq T 
+(THead k0 t t0) (THead (Bind Abst) v t1)) \to (\forall (P: Prop).P))) in (or 
+TMP_47 TMP_48))))) in (let H_x0 \def (term_dec t v) in (let H3 \def H_x0 in 
+(let TMP_50 \def (eq T t v) in (let TMP_51 \def ((eq T t v) \to (\forall (P: 
+Prop).P)) in (let TMP_56 \def (\lambda (t1: T).(let TMP_52 \def (Bind Abst) 
+in (let TMP_53 \def (THead TMP_52 t t0) in (let TMP_54 \def (Bind Abst) in 
+(let TMP_55 \def (THead TMP_54 v t1) in (eq T TMP_53 TMP_55)))))) in (let 
+TMP_57 \def (ex T TMP_56) in (let TMP_58 \def (\forall (t1: T).((eq T (THead 
+(Bind Abst) t t0) (THead (Bind Abst) v t1)) \to (\forall (P: Prop).P))) in 
+(let TMP_59 \def (or TMP_57 TMP_58) in (let TMP_85 \def (\lambda (H4: (eq T t 
+v)).(let TMP_67 \def (\lambda (t1: T).(let TMP_64 \def (\lambda (t2: T).(let 
+TMP_60 \def (Bind Abst) in (let TMP_61 \def (THead TMP_60 t t0) in (let 
+TMP_62 \def (Bind Abst) in (let TMP_63 \def (THead TMP_62 t1 t2) in (eq T 
+TMP_61 TMP_63)))))) in (let TMP_65 \def (ex T TMP_64) in (let TMP_66 \def 
+(\forall (t2: T).((eq T (THead (Bind Abst) t t0) (THead (Bind Abst) t1 t2)) 
+\to (\forall (P: Prop).P))) in (or TMP_65 TMP_66))))) in (let TMP_72 \def 
+(\lambda (t1: T).(let TMP_68 \def (Bind Abst) in (let TMP_69 \def (THead 
+TMP_68 t t0) in (let TMP_70 \def (Bind Abst) in (let TMP_71 \def (THead 
+TMP_70 t t1) in (eq T TMP_69 TMP_71)))))) in (let TMP_73 \def (ex T TMP_72) 
+in (let TMP_74 \def (\forall (t1: T).((eq T (THead (Bind Abst) t t0) (THead 
+(Bind Abst) t t1)) \to (\forall (P: Prop).P))) in (let TMP_79 \def (\lambda 
+(t1: T).(let TMP_75 \def (Bind Abst) in (let TMP_76 \def (THead TMP_75 t t0) 
+in (let TMP_77 \def (Bind Abst) in (let TMP_78 \def (THead TMP_77 t t1) in 
+(eq T TMP_76 TMP_78)))))) in (let TMP_80 \def (Bind Abst) in (let TMP_81 \def 
+(THead TMP_80 t t0) in (let TMP_82 \def (refl_equal T TMP_81) in (let TMP_83 
+\def (ex_intro T TMP_79 t0 TMP_82) in (let TMP_84 \def (or_introl TMP_73 
+TMP_74 TMP_83) in (eq_ind T t TMP_67 TMP_84 v H4)))))))))))) in (let TMP_105 
+\def (\lambda (H4: (((eq T t v) \to (\forall (P: Prop).P)))).(let TMP_90 \def 
+(\lambda (t1: T).(let TMP_86 \def (Bind Abst) in (let TMP_87 \def (THead 
+TMP_86 t t0) in (let TMP_88 \def (Bind Abst) in (let TMP_89 \def (THead 
+TMP_88 v t1) in (eq T TMP_87 TMP_89)))))) in (let TMP_91 \def (ex T TMP_90) 
+in (let TMP_92 \def (\forall (t1: T).((eq T (THead (Bind Abst) t t0) (THead 
+(Bind Abst) v t1)) \to (\forall (P: Prop).P))) in (let TMP_104 \def (\lambda 
+(t1: T).(\lambda (H5: (eq T (THead (Bind Abst) t t0) (THead (Bind Abst) v 
+t1))).(\lambda (P: Prop).(let TMP_93 \def (\lambda (e: T).(match e with 
 [(TSort _) \Rightarrow t | (TLRef _) \Rightarrow t | (THead _ t2 _) 
-\Rightarrow t2])) in (let TMP_542 \def (Bind Abst) in (let TMP_543 \def 
-(THead TMP_542 t t0) in (let TMP_540 \def (Bind Abst) in (let TMP_541 \def 
-(THead TMP_540 v t1) in (let H6 \def (f_equal T T TMP_544 TMP_543 TMP_541 H5) 
-in (let TMP_549 \def (\lambda (e: T).(match e in T with [(TSort _) 
-\Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t2) \Rightarrow t2])) 
-in (let TMP_547 \def (Bind Abst) in (let TMP_548 \def (THead TMP_547 t t0) in 
-(let TMP_545 \def (Bind Abst) in (let TMP_546 \def (THead TMP_545 v t1) in 
-(let H7 \def (f_equal T T TMP_549 TMP_548 TMP_546 H5) in (let TMP_550 \def 
-(\lambda (H8: (eq T t v)).(H4 H8 P)) in (TMP_550 H6))))))))))))))))) in 
-(or_intror TMP_558 TMP_552 TMP_551)))))) in (let TMP_596 \def (or_ind TMP_595 
-TMP_594 TMP_593 TMP_585 TMP_559 H3) in (eq_ind_r K TMP_604 TMP_603 TMP_596 k 
-H2))))))))))))))) in (let TMP_539 \def (\lambda (H2: (((eq K k (Bind Abst)) 
-\to (\forall (P: Prop).P)))).(let TMP_537 \def (\lambda (t1: T).(let TMP_536 
-\def (THead k t t0) in (let TMP_534 \def (Bind Abst) in (let TMP_535 \def 
-(THead TMP_534 v t1) in (eq T TMP_536 TMP_535))))) in (let TMP_538 \def (ex T 
-TMP_537) in (let TMP_533 \def (\forall (t1: T).((eq T (THead k t t0) (THead 
-(Bind Abst) v t1)) \to (\forall (P: Prop).P))) in (let TMP_532 \def (\lambda 
-(t1: T).(\lambda (H3: (eq T (THead k t t0) (THead (Bind Abst) v 
-t1))).(\lambda (P: Prop).(let TMP_521 \def (\lambda (e: T).(match e in T with 
-[(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | (THead k0 _ _) 
-\Rightarrow k0])) in (let TMP_520 \def (THead k t t0) in (let TMP_518 \def 
-(Bind Abst) in (let TMP_519 \def (THead TMP_518 v t1) in (let H4 \def 
-(f_equal T K TMP_521 TMP_520 TMP_519 H3) in (let TMP_525 \def (\lambda (e: 
-T).(match e in T with [(TSort _) \Rightarrow t | (TLRef _) \Rightarrow t | 
-(THead _ t2 _) \Rightarrow t2])) in (let TMP_524 \def (THead k t t0) in (let 
-TMP_522 \def (Bind Abst) in (let TMP_523 \def (THead TMP_522 v t1) in (let H5 
-\def (f_equal T T TMP_525 TMP_524 TMP_523 H3) in (let TMP_529 \def (\lambda 
-(e: T).(match e in T with [(TSort _) \Rightarrow t0 | (TLRef _) \Rightarrow 
-t0 | (THead _ _ t2) \Rightarrow t2])) in (let TMP_528 \def (THead k t t0) in 
-(let TMP_526 \def (Bind Abst) in (let TMP_527 \def (THead TMP_526 v t1) in 
-(let H6 \def (f_equal T T TMP_529 TMP_528 TMP_527 H3) in (let TMP_530 \def 
-(\lambda (_: (eq T t v)).(\lambda (H8: (eq K k (Bind Abst))).(H2 H8 P))) in 
-(let TMP_531 \def (TMP_530 H5) in (TMP_531 H4))))))))))))))))))))) in 
-(or_intror TMP_538 TMP_533 TMP_532)))))) in (or_ind TMP_615 TMP_613 TMP_612 
-TMP_605 TMP_539 H1))))))))))))))))))) in (T_ind TMP_646 TMP_640 TMP_628 
-TMP_616 u))))).
+\Rightarrow t2])) in (let TMP_94 \def (Bind Abst) in (let TMP_95 \def (THead 
+TMP_94 t t0) in (let TMP_96 \def (Bind Abst) in (let TMP_97 \def (THead 
+TMP_96 v t1) in (let H6 \def (f_equal T T TMP_93 TMP_95 TMP_97 H5) in (let 
+TMP_98 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow t0 | (TLRef 
+_) \Rightarrow t0 | (THead _ _ t2) \Rightarrow t2])) in (let TMP_99 \def 
+(Bind Abst) in (let TMP_100 \def (THead TMP_99 t t0) in (let TMP_101 \def 
+(Bind Abst) in (let TMP_102 \def (THead TMP_101 v t1) in (let H7 \def 
+(f_equal T T TMP_98 TMP_100 TMP_102 H5) in (let TMP_103 \def (\lambda (H8: 
+(eq T t v)).(H4 H8 P)) in (TMP_103 H6))))))))))))))))) in (or_intror TMP_91 
+TMP_92 TMP_104)))))) in (let TMP_106 \def (or_ind TMP_50 TMP_51 TMP_59 TMP_85 
+TMP_105 H3) in (eq_ind_r K TMP_42 TMP_49 TMP_106 k H2))))))))))))))) in (let 
+TMP_129 \def (\lambda (H2: (((eq K k (Bind Abst)) \to (\forall (P: 
+Prop).P)))).(let TMP_111 \def (\lambda (t1: T).(let TMP_108 \def (THead k t 
+t0) in (let TMP_109 \def (Bind Abst) in (let TMP_110 \def (THead TMP_109 v 
+t1) in (eq T TMP_108 TMP_110))))) in (let TMP_112 \def (ex T TMP_111) in (let 
+TMP_113 \def (\forall (t1: T).((eq T (THead k t t0) (THead (Bind Abst) v t1)) 
+\to (\forall (P: Prop).P))) in (let TMP_128 \def (\lambda (t1: T).(\lambda 
+(H3: (eq T (THead k t t0) (THead (Bind Abst) v t1))).(\lambda (P: Prop).(let 
+TMP_114 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow k | (TLRef 
+_) \Rightarrow k | (THead k0 _ _) \Rightarrow k0])) in (let TMP_115 \def 
+(THead k t t0) in (let TMP_116 \def (Bind Abst) in (let TMP_117 \def (THead 
+TMP_116 v t1) in (let H4 \def (f_equal T K TMP_114 TMP_115 TMP_117 H3) in 
+(let TMP_118 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow t | 
+(TLRef _) \Rightarrow t | (THead _ t2 _) \Rightarrow t2])) in (let TMP_119 
+\def (THead k t t0) in (let TMP_120 \def (Bind Abst) in (let TMP_121 \def 
+(THead TMP_120 v t1) in (let H5 \def (f_equal T T TMP_118 TMP_119 TMP_121 H3) 
+in (let TMP_122 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow t0 
+| (TLRef _) \Rightarrow t0 | (THead _ _ t2) \Rightarrow t2])) in (let TMP_123 
+\def (THead k t t0) in (let TMP_124 \def (Bind Abst) in (let TMP_125 \def 
+(THead TMP_124 v t1) in (let H6 \def (f_equal T T TMP_122 TMP_123 TMP_125 H3) 
+in (let TMP_126 \def (\lambda (_: (eq T t v)).(\lambda (H8: (eq K k (Bind 
+Abst))).(H2 H8 P))) in (let TMP_127 \def (TMP_126 H5) in (TMP_127 
+H4))))))))))))))))))))) in (or_intror TMP_112 TMP_113 TMP_128)))))) in 
+(or_ind TMP_33 TMP_34 TMP_41 TMP_107 TMP_129 H1))))))))))))))))))) in (T_ind 
+TMP_6 TMP_18 TMP_30 TMP_130 u))))).
 
index c065188f30ebcbabedf12eddc0a231d716ec2d55..313ac01ae018433d5390cc01260518c5d68e742a 100644 (file)
@@ -35,7 +35,7 @@ inductive T: Type[0] \def
 | THead: K \to (T \to (T \to T)).
 
 let rec tweight (t: T) on t: nat \def match t with [(TSort _) \Rightarrow (S 
-O) | (TLRef _) \Rightarrow (S O) | (THead _ u t0) \Rightarrow (let TMP_1824 
-\def (tweight u) in (let TMP_1823 \def (tweight t0) in (let TMP_1825 \def 
-(plus TMP_1824 TMP_1823) in (S TMP_1825))))].
+O) | (TLRef _) \Rightarrow (S O) | (THead _ u t0) \Rightarrow (let TMP_1 \def 
+(tweight u) in (let TMP_2 \def (tweight t0) in (let TMP_3 \def (plus TMP_1 
+TMP_2) in (S TMP_3))))].
 
index 32ca6cbc8315d1bd6a5e2a51c7f10aac8f139c9b..f08b62d8c11b4f36a1753073e0338b406d216c37 100644 (file)
@@ -19,10 +19,9 @@ include "basic_1/T/defs.ma".
 let rec T_rect (P: (T \to Type[0])) (f: (\forall (n: nat).(P (TSort n)))) 
 (f0: (\forall (n: nat).(P (TLRef n)))) (f1: (\forall (k: K).(\forall (t: 
 T).((P t) \to (\forall (t0: T).((P t0) \to (P (THead k t t0)))))))) (t: T) on 
-t: P t \def match t in T with [(TSort n) \Rightarrow (f n) | (TLRef n) 
-\Rightarrow (f0 n) | (THead k t0 t1) \Rightarrow (let TMP_2 \def ((T_rect P f 
-f0 f1) t0) in (let TMP_1 \def ((T_rect P f f0 f1) t1) in (f1 k t0 TMP_2 t1 
-TMP_1)))].
+t: P t \def match t with [(TSort n) \Rightarrow (f n) | (TLRef n) \Rightarrow 
+(f0 n) | (THead k t0 t1) \Rightarrow (let TMP_1 \def ((T_rect P f f0 f1) t0) 
+in (let TMP_2 \def ((T_rect P f f0 f1) t1) in (f1 k t0 TMP_1 t1 TMP_2)))].
 
 theorem T_ind:
  \forall (P: ((T \to Prop))).(((\forall (n: nat).(P (TSort n)))) \to 
@@ -36,42 +35,41 @@ theorem thead_x_y_y:
  \forall (k: K).(\forall (v: T).(\forall (t: T).((eq T (THead k v t) t) \to 
 (\forall (P: Prop).P))))
 \def
- \lambda (k: K).(\lambda (v: T).(\lambda (t: T).(let TMP_676 \def (\lambda 
-(t0: T).((eq T (THead k v t0) t0) \to (\forall (P: Prop).P))) in (let TMP_675 
-\def (\lambda (n: nat).(\lambda (H: (eq T (THead k v (TSort n)) (TSort 
-n))).(\lambda (P: Prop).(let TMP_673 \def (TSort n) in (let TMP_674 \def 
-(THead k v TMP_673) in (let TMP_672 \def (\lambda (ee: T).(match ee in T with 
-[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead _ _ _) 
-\Rightarrow True])) in (let TMP_671 \def (TSort n) in (let H0 \def (eq_ind T 
-TMP_674 TMP_672 I TMP_671 H) in (False_ind P H0))))))))) in (let TMP_670 \def 
-(\lambda (n: nat).(\lambda (H: (eq T (THead k v (TLRef n)) (TLRef 
-n))).(\lambda (P: Prop).(let TMP_668 \def (TLRef n) in (let TMP_669 \def 
-(THead k v TMP_668) in (let TMP_667 \def (\lambda (ee: T).(match ee in T with 
-[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead _ _ _) 
-\Rightarrow True])) in (let TMP_666 \def (TLRef n) in (let H0 \def (eq_ind T 
-TMP_669 TMP_667 I TMP_666 H) in (False_ind P H0))))))))) in (let TMP_665 \def 
-(\lambda (k0: K).(\lambda (t0: T).(\lambda (_: (((eq T (THead k v t0) t0) \to 
-(\forall (P: Prop).P)))).(\lambda (t1: T).(\lambda (H0: (((eq T (THead k v 
-t1) t1) \to (\forall (P: Prop).P)))).(\lambda (H1: (eq T (THead k v (THead k0 
-t0 t1)) (THead k0 t0 t1))).(\lambda (P: Prop).(let TMP_652 \def (\lambda (e: 
-T).(match e in T with [(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | 
-(THead k1 _ _) \Rightarrow k1])) in (let TMP_650 \def (THead k0 t0 t1) in 
-(let TMP_651 \def (THead k v TMP_650) in (let TMP_649 \def (THead k0 t0 t1) 
-in (let H2 \def (f_equal T K TMP_652 TMP_651 TMP_649 H1) in (let TMP_656 \def 
-(\lambda (e: T).(match e in T with [(TSort _) \Rightarrow v | (TLRef _) 
-\Rightarrow v | (THead _ t2 _) \Rightarrow t2])) in (let TMP_654 \def (THead 
-k0 t0 t1) in (let TMP_655 \def (THead k v TMP_654) in (let TMP_653 \def 
-(THead k0 t0 t1) in (let H3 \def (f_equal T T TMP_656 TMP_655 TMP_653 H1) in 
-(let TMP_660 \def (\lambda (e: T).(match e in T with [(TSort _) \Rightarrow 
-(THead k0 t0 t1) | (TLRef _) \Rightarrow (THead k0 t0 t1) | (THead _ _ t2) 
-\Rightarrow t2])) in (let TMP_658 \def (THead k0 t0 t1) in (let TMP_659 \def 
-(THead k v TMP_658) in (let TMP_657 \def (THead k0 t0 t1) in (let H4 \def 
-(f_equal T T TMP_660 TMP_659 TMP_657 H1) in (let TMP_663 \def (\lambda (H5: 
-(eq T v t0)).(\lambda (H6: (eq K k k0)).(let TMP_661 \def (\lambda (t2: 
-T).((eq T (THead k t2 t1) t1) \to (\forall (P0: Prop).P0))) in (let H7 \def 
-(eq_ind T v TMP_661 H0 t0 H5) in (let TMP_662 \def (\lambda (k1: K).((eq T 
-(THead k1 t0 t1) t1) \to (\forall (P0: Prop).P0))) in (let H8 \def (eq_ind K 
-k TMP_662 H7 k0 H6) in (H8 H4 P))))))) in (let TMP_664 \def (TMP_663 H3) in 
-(TMP_664 H2))))))))))))))))))))))))) in (T_ind TMP_676 TMP_675 TMP_670 
-TMP_665 t))))))).
+ \lambda (k: K).(\lambda (v: T).(\lambda (t: T).(let TMP_1 \def (\lambda (t0: 
+T).((eq T (THead k v t0) t0) \to (\forall (P: Prop).P))) in (let TMP_6 \def 
+(\lambda (n: nat).(\lambda (H: (eq T (THead k v (TSort n)) (TSort 
+n))).(\lambda (P: Prop).(let TMP_2 \def (TSort n) in (let TMP_3 \def (THead k 
+v TMP_2) in (let TMP_4 \def (\lambda (ee: T).(match ee with [(TSort _) 
+\Rightarrow False | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow 
+True])) in (let TMP_5 \def (TSort n) in (let H0 \def (eq_ind T TMP_3 TMP_4 I 
+TMP_5 H) in (False_ind P H0))))))))) in (let TMP_11 \def (\lambda (n: 
+nat).(\lambda (H: (eq T (THead k v (TLRef n)) (TLRef n))).(\lambda (P: 
+Prop).(let TMP_7 \def (TLRef n) in (let TMP_8 \def (THead k v TMP_7) in (let 
+TMP_9 \def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | 
+(TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) in (let 
+TMP_10 \def (TLRef n) in (let H0 \def (eq_ind T TMP_8 TMP_9 I TMP_10 H) in 
+(False_ind P H0))))))))) in (let TMP_28 \def (\lambda (k0: K).(\lambda (t0: 
+T).(\lambda (_: (((eq T (THead k v t0) t0) \to (\forall (P: 
+Prop).P)))).(\lambda (t1: T).(\lambda (H0: (((eq T (THead k v t1) t1) \to 
+(\forall (P: Prop).P)))).(\lambda (H1: (eq T (THead k v (THead k0 t0 t1)) 
+(THead k0 t0 t1))).(\lambda (P: Prop).(let TMP_12 \def (\lambda (e: T).(match 
+e with [(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | (THead k1 _ _) 
+\Rightarrow k1])) in (let TMP_13 \def (THead k0 t0 t1) in (let TMP_14 \def 
+(THead k v TMP_13) in (let TMP_15 \def (THead k0 t0 t1) in (let H2 \def 
+(f_equal T K TMP_12 TMP_14 TMP_15 H1) in (let TMP_16 \def (\lambda (e: 
+T).(match e with [(TSort _) \Rightarrow v | (TLRef _) \Rightarrow v | (THead 
+_ t2 _) \Rightarrow t2])) in (let TMP_17 \def (THead k0 t0 t1) in (let TMP_18 
+\def (THead k v TMP_17) in (let TMP_19 \def (THead k0 t0 t1) in (let H3 \def 
+(f_equal T T TMP_16 TMP_18 TMP_19 H1) in (let TMP_20 \def (\lambda (e: 
+T).(match e with [(TSort _) \Rightarrow (THead k0 t0 t1) | (TLRef _) 
+\Rightarrow (THead k0 t0 t1) | (THead _ _ t2) \Rightarrow t2])) in (let 
+TMP_21 \def (THead k0 t0 t1) in (let TMP_22 \def (THead k v TMP_21) in (let 
+TMP_23 \def (THead k0 t0 t1) in (let H4 \def (f_equal T T TMP_20 TMP_22 
+TMP_23 H1) in (let TMP_26 \def (\lambda (H5: (eq T v t0)).(\lambda (H6: (eq K 
+k k0)).(let TMP_24 \def (\lambda (t2: T).((eq T (THead k t2 t1) t1) \to 
+(\forall (P0: Prop).P0))) in (let H7 \def (eq_ind T v TMP_24 H0 t0 H5) in 
+(let TMP_25 \def (\lambda (k1: K).((eq T (THead k1 t0 t1) t1) \to (\forall 
+(P0: Prop).P0))) in (let H8 \def (eq_ind K k TMP_25 H7 k0 H6) in (H8 H4 
+P))))))) in (let TMP_27 \def (TMP_26 H3) in (TMP_27 
+H2))))))))))))))))))))))))) in (T_ind TMP_1 TMP_6 TMP_11 TMP_28 t))))))).
 
index 9b7a03f1dd104f7d44ba82b75bcc0ff345a74a78..cce311989ed62153b122f9e4bb934af1ca43e409 100644 (file)
@@ -19,48 +19,46 @@ include "basic_1/T/fwd.ma".
 theorem not_abbr_abst:
  not (eq B Abbr Abst)
 \def
- \lambda (H: (eq B Abbr Abst)).(let TMP_1 \def (\lambda (ee: B).(match ee in 
-with [Abbr \Rightarrow True | Abst \Rightarrow False | Void \Rightarrow 
+ \lambda (H: (eq B Abbr Abst)).(let TMP_1 \def (\lambda (ee: B).(match ee 
+with [Abbr \Rightarrow True | Abst \Rightarrow False | Void \Rightarrow 
 False])) in (let H0 \def (eq_ind B Abbr TMP_1 I Abst H) in (False_ind False 
 H0))).
 
 theorem not_void_abst:
  not (eq B Void Abst)
 \def
- \lambda (H: (eq B Void Abst)).(let TMP_2 \def (\lambda (ee: B).(match ee in 
-with [Abbr \Rightarrow False | Abst \Rightarrow False | Void \Rightarrow 
-True])) in (let H0 \def (eq_ind B Void TMP_2 I Abst H) in (False_ind False 
+ \lambda (H: (eq B Void Abst)).(let TMP_1 \def (\lambda (ee: B).(match ee 
+with [Abbr \Rightarrow False | Abst \Rightarrow False | Void \Rightarrow 
+True])) in (let H0 \def (eq_ind B Void TMP_1 I Abst H) in (False_ind False 
 H0))).
 
 theorem not_abbr_void:
  not (eq B Abbr Void)
 \def
- \lambda (H: (eq B Abbr Void)).(let TMP_3 \def (\lambda (ee: B).(match ee in 
-with [Abbr \Rightarrow True | Abst \Rightarrow False | Void \Rightarrow 
-False])) in (let H0 \def (eq_ind B Abbr TMP_3 I Void H) in (False_ind False 
+ \lambda (H: (eq B Abbr Void)).(let TMP_1 \def (\lambda (ee: B).(match ee 
+with [Abbr \Rightarrow True | Abst \Rightarrow False | Void \Rightarrow 
+False])) in (let H0 \def (eq_ind B Abbr TMP_1 I Void H) in (False_ind False 
 H0))).
 
 theorem not_abst_void:
  not (eq B Abst Void)
 \def
- \lambda (H: (eq B Abst Void)).(let TMP_4 \def (\lambda (ee: B).(match ee in 
-with [Abbr \Rightarrow False | Abst \Rightarrow True | Void \Rightarrow 
-False])) in (let H0 \def (eq_ind B Abst TMP_4 I Void H) in (False_ind False 
+ \lambda (H: (eq B Abst Void)).(let TMP_1 \def (\lambda (ee: B).(match ee 
+with [Abbr \Rightarrow False | Abst \Rightarrow True | Void \Rightarrow 
+False])) in (let H0 \def (eq_ind B Abst TMP_1 I Void H) in (False_ind False 
 H0))).
 
 theorem tweight_lt:
  \forall (t: T).(lt O (tweight t))
 \def
- \lambda (t: T).(let TMP_1848 \def (\lambda (t0: T).(let TMP_1847 \def 
-(tweight t0) in (lt O TMP_1847))) in (let TMP_1846 \def (\lambda (_: 
-nat).(let TMP_1845 \def (S O) in (le_n TMP_1845))) in (let TMP_1844 \def 
-(\lambda (_: nat).(let TMP_1843 \def (S O) in (le_n TMP_1843))) in (let 
-TMP_1842 \def (\lambda (_: K).(\lambda (t0: T).(\lambda (H: (lt O (tweight 
-t0))).(\lambda (t1: T).(\lambda (_: (lt O (tweight t1))).(let TMP_1841 \def 
-(S O) in (let TMP_1839 \def (tweight t0) in (let TMP_1838 \def (tweight t1) 
-in (let TMP_1840 \def (plus TMP_1839 TMP_1838) in (let TMP_1836 \def (S O) in 
-(let TMP_1835 \def (tweight t0) in (let TMP_1834 \def (tweight t1) in (let 
-TMP_1837 \def (le_plus_trans TMP_1836 TMP_1835 TMP_1834 H) in (le_S TMP_1841 
-TMP_1840 TMP_1837)))))))))))))) in (T_ind TMP_1848 TMP_1846 TMP_1844 TMP_1842 
-t))))).
+ \lambda (t: T).(let TMP_2 \def (\lambda (t0: T).(let TMP_1 \def (tweight t0) 
+in (lt O TMP_1))) in (let TMP_4 \def (\lambda (_: nat).(let TMP_3 \def (S O) 
+in (le_n TMP_3))) in (let TMP_6 \def (\lambda (_: nat).(let TMP_5 \def (S O) 
+in (le_n TMP_5))) in (let TMP_15 \def (\lambda (_: K).(\lambda (t0: 
+T).(\lambda (H: (lt O (tweight t0))).(\lambda (t1: T).(\lambda (_: (lt O 
+(tweight t1))).(let TMP_7 \def (S O) in (let TMP_8 \def (tweight t0) in (let 
+TMP_9 \def (tweight t1) in (let TMP_10 \def (plus TMP_8 TMP_9) in (let TMP_11 
+\def (S O) in (let TMP_12 \def (tweight t0) in (let TMP_13 \def (tweight t1) 
+in (let TMP_14 \def (le_plus_trans TMP_11 TMP_12 TMP_13 H) in (le_S TMP_7 
+TMP_10 TMP_14)))))))))))))) in (T_ind TMP_2 TMP_4 TMP_6 TMP_15 t))))).
 
index 0d1fb7914fc1dc66fd344434b11ae4b430294f45..9a2f29db91870f26dce2e989ab44d6590c01fa66 100644 (file)
@@ -14,7 +14,7 @@
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/T/defs.ma".
+include "basic_1/T/defs.ma".
 
 definition s:
  K \to (nat \to nat)
diff --git a/matita/matita/contribs/lambdadelta/basic_1/s/fwd.ma b/matita/matita/contribs/lambdadelta/basic_1/s/fwd.ma
new file mode 100644 (file)
index 0000000..c9ab5db
--- /dev/null
@@ -0,0 +1,51 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+(* This file was automatically generated: do not edit *********************)
+
+include "basic_1/s/defs.ma".
+
+theorem s_inj:
+ \forall (k: K).(\forall (i: nat).(\forall (j: nat).((eq nat (s k i) (s k j)) 
+\to (eq nat i j))))
+\def
+ \lambda (k: K).(let TMP_1 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
+(j: nat).((eq nat (s k0 i) (s k0 j)) \to (eq nat i j))))) in (let TMP_2 \def 
+(\lambda (b: B).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: (eq nat (s 
+(Bind b) i) (s (Bind b) j))).(eq_add_S i j H))))) in (let TMP_3 \def (\lambda 
+(f: F).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: (eq nat (s (Flat f) 
+i) (s (Flat f) j))).H)))) in (K_ind TMP_1 TMP_2 TMP_3 k)))).
+
+theorem s_le_gen:
+ \forall (k: K).(\forall (i: nat).(\forall (j: nat).((le (s k i) (s k j)) \to 
+(le i j))))
+\def
+ \lambda (k: K).(let TMP_1 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
+(j: nat).((le (s k0 i) (s k0 j)) \to (le i j))))) in (let TMP_2 \def (\lambda 
+(b: B).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: (le (s (Bind b) i) (s 
+(Bind b) j))).(le_S_n i j H))))) in (let TMP_3 \def (\lambda (f: F).(\lambda 
+(i: nat).(\lambda (j: nat).(\lambda (H: (le (s (Flat f) i) (s (Flat f) 
+j))).H)))) in (K_ind TMP_1 TMP_2 TMP_3 k)))).
+
+theorem s_lt_gen:
+ \forall (k: K).(\forall (i: nat).(\forall (j: nat).((lt (s k i) (s k j)) \to 
+(lt i j))))
+\def
+ \lambda (k: K).(let TMP_1 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
+(j: nat).((lt (s k0 i) (s k0 j)) \to (lt i j))))) in (let TMP_3 \def (\lambda 
+(b: B).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: (lt (s (Bind b) i) (s 
+(Bind b) j))).(let TMP_2 \def (S i) in (le_S_n TMP_2 j H)))))) in (let TMP_4 
+\def (\lambda (f: F).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: (lt (s 
+(Flat f) i) (s (Flat f) j))).H)))) in (K_ind TMP_1 TMP_3 TMP_4 k)))).
+
index 3cb4fbd741a230babdff2138ceabd076ed404d68..5727eee556048d5baf3e2470dfcd1961d0596357 100644 (file)
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/s/defs.ma".
+include "basic_1/s/defs.ma".
 
 theorem s_S:
  \forall (k: K).(\forall (i: nat).(eq nat (s k (S i)) (S (s k i))))
 \def
- \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(eq nat (s k0 (S 
-i)) (S (s k0 i))))) (\lambda (b: B).(\lambda (i: nat).(refl_equal nat (S (s 
-(Bind b) i))))) (\lambda (f: F).(\lambda (i: nat).(refl_equal nat (S (s (Flat 
-f) i))))) k).
-(* COMMENTS
-Initial nodes: 65
-END *)
+ \lambda (k: K).(let TMP_5 \def (\lambda (k0: K).(\forall (i: nat).(let TMP_1 
+\def (S i) in (let TMP_2 \def (s k0 TMP_1) in (let TMP_3 \def (s k0 i) in 
+(let TMP_4 \def (S TMP_3) in (eq nat TMP_2 TMP_4))))))) in (let TMP_9 \def 
+(\lambda (b: B).(\lambda (i: nat).(let TMP_6 \def (Bind b) in (let TMP_7 \def 
+(s TMP_6 i) in (let TMP_8 \def (S TMP_7) in (refl_equal nat TMP_8)))))) in 
+(let TMP_13 \def (\lambda (f: F).(\lambda (i: nat).(let TMP_10 \def (Flat f) 
+in (let TMP_11 \def (s TMP_10 i) in (let TMP_12 \def (S TMP_11) in 
+(refl_equal nat TMP_12)))))) in (K_ind TMP_5 TMP_9 TMP_13 k)))).
 
 theorem s_plus:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).(eq nat (s k (plus i j)) 
 (plus (s k i) j))))
 \def
- \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
-nat).(eq nat (s k0 (plus i j)) (plus (s k0 i) j))))) (\lambda (b: B).(\lambda 
-(i: nat).(\lambda (j: nat).(refl_equal nat (plus (s (Bind b) i) j))))) 
-(\lambda (f: F).(\lambda (i: nat).(\lambda (j: nat).(refl_equal nat (plus (s 
-(Flat f) i) j))))) k).
-(* COMMENTS
-Initial nodes: 79
-END *)
+ \lambda (k: K).(let TMP_5 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
+(j: nat).(let TMP_1 \def (plus i j) in (let TMP_2 \def (s k0 TMP_1) in (let 
+TMP_3 \def (s k0 i) in (let TMP_4 \def (plus TMP_3 j) in (eq nat TMP_2 
+TMP_4)))))))) in (let TMP_9 \def (\lambda (b: B).(\lambda (i: nat).(\lambda 
+(j: nat).(let TMP_6 \def (Bind b) in (let TMP_7 \def (s TMP_6 i) in (let 
+TMP_8 \def (plus TMP_7 j) in (refl_equal nat TMP_8))))))) in (let TMP_13 \def 
+(\lambda (f: F).(\lambda (i: nat).(\lambda (j: nat).(let TMP_10 \def (Flat f) 
+in (let TMP_11 \def (s TMP_10 i) in (let TMP_12 \def (plus TMP_11 j) in 
+(refl_equal nat TMP_12))))))) in (K_ind TMP_5 TMP_9 TMP_13 k)))).
 
 theorem s_plus_sym:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).(eq nat (s k (plus i j)) 
 (plus i (s k j)))))
 \def
- \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
-nat).(eq nat (s k0 (plus i j)) (plus i (s k0 j)))))) (\lambda (_: B).(\lambda 
-(i: nat).(\lambda (j: nat).(eq_ind_r nat (plus i (S j)) (\lambda (n: nat).(eq 
-nat n (plus i (S j)))) (refl_equal nat (plus i (S j))) (S (plus i j)) 
-(plus_n_Sm i j))))) (\lambda (f: F).(\lambda (i: nat).(\lambda (j: 
-nat).(refl_equal nat (plus i (s (Flat f) j)))))) k).
-(* COMMENTS
-Initial nodes: 117
-END *)
+ \lambda (k: K).(let TMP_5 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
+(j: nat).(let TMP_1 \def (plus i j) in (let TMP_2 \def (s k0 TMP_1) in (let 
+TMP_3 \def (s k0 j) in (let TMP_4 \def (plus i TMP_3) in (eq nat TMP_2 
+TMP_4)))))))) in (let TMP_17 \def (\lambda (_: B).(\lambda (i: nat).(\lambda 
+(j: nat).(let TMP_6 \def (S j) in (let TMP_7 \def (plus i TMP_6) in (let 
+TMP_10 \def (\lambda (n: nat).(let TMP_8 \def (S j) in (let TMP_9 \def (plus 
+i TMP_8) in (eq nat n TMP_9)))) in (let TMP_11 \def (S j) in (let TMP_12 \def 
+(plus i TMP_11) in (let TMP_13 \def (refl_equal nat TMP_12) in (let TMP_14 
+\def (plus i j) in (let TMP_15 \def (S TMP_14) in (let TMP_16 \def (plus_n_Sm 
+i j) in (eq_ind_r nat TMP_7 TMP_10 TMP_13 TMP_15 TMP_16))))))))))))) in (let 
+TMP_21 \def (\lambda (f: F).(\lambda (i: nat).(\lambda (j: nat).(let TMP_18 
+\def (Flat f) in (let TMP_19 \def (s TMP_18 j) in (let TMP_20 \def (plus i 
+TMP_19) in (refl_equal nat TMP_20))))))) in (K_ind TMP_5 TMP_17 TMP_21 k)))).
 
 theorem s_minus:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).((le j i) \to (eq nat (s 
 k (minus i j)) (minus (s k i) j)))))
 \def
- \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
-nat).((le j i) \to (eq nat (s k0 (minus i j)) (minus (s k0 i) j)))))) 
-(\lambda (_: B).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: (le j 
-i)).(eq_ind_r nat (minus (S i) j) (\lambda (n: nat).(eq nat n (minus (S i) 
-j))) (refl_equal nat (minus (S i) j)) (S (minus i j)) (minus_Sn_m i j H)))))) 
-(\lambda (f: F).(\lambda (i: nat).(\lambda (j: nat).(\lambda (_: (le j 
-i)).(refl_equal nat (minus (s (Flat f) i) j)))))) k).
-(* COMMENTS
-Initial nodes: 137
-END *)
+ \lambda (k: K).(let TMP_5 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
+(j: nat).((le j i) \to (let TMP_1 \def (minus i j) in (let TMP_2 \def (s k0 
+TMP_1) in (let TMP_3 \def (s k0 i) in (let TMP_4 \def (minus TMP_3 j) in (eq 
+nat TMP_2 TMP_4))))))))) in (let TMP_17 \def (\lambda (_: B).(\lambda (i: 
+nat).(\lambda (j: nat).(\lambda (H: (le j i)).(let TMP_6 \def (S i) in (let 
+TMP_7 \def (minus TMP_6 j) in (let TMP_10 \def (\lambda (n: nat).(let TMP_8 
+\def (S i) in (let TMP_9 \def (minus TMP_8 j) in (eq nat n TMP_9)))) in (let 
+TMP_11 \def (S i) in (let TMP_12 \def (minus TMP_11 j) in (let TMP_13 \def 
+(refl_equal nat TMP_12) in (let TMP_14 \def (minus i j) in (let TMP_15 \def 
+(S TMP_14) in (let TMP_16 \def (minus_Sn_m i j H) in (eq_ind_r nat TMP_7 
+TMP_10 TMP_13 TMP_15 TMP_16)))))))))))))) in (let TMP_21 \def (\lambda (f: 
+F).(\lambda (i: nat).(\lambda (j: nat).(\lambda (_: (le j i)).(let TMP_18 
+\def (Flat f) in (let TMP_19 \def (s TMP_18 i) in (let TMP_20 \def (minus 
+TMP_19 j) in (refl_equal nat TMP_20)))))))) in (K_ind TMP_5 TMP_17 TMP_21 
+k)))).
 
 theorem minus_s_s:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).(eq nat (minus (s k i) (s 
 k j)) (minus i j))))
 \def
- \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
-nat).(eq nat (minus (s k0 i) (s k0 j)) (minus i j))))) (\lambda (_: 
-B).(\lambda (i: nat).(\lambda (j: nat).(refl_equal nat (minus i j))))) 
-(\lambda (_: F).(\lambda (i: nat).(\lambda (j: nat).(refl_equal nat (minus i 
-j))))) k).
-(* COMMENTS
-Initial nodes: 67
-END *)
+ \lambda (k: K).(let TMP_5 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
+(j: nat).(let TMP_1 \def (s k0 i) in (let TMP_2 \def (s k0 j) in (let TMP_3 
+\def (minus TMP_1 TMP_2) in (let TMP_4 \def (minus i j) in (eq nat TMP_3 
+TMP_4)))))))) in (let TMP_7 \def (\lambda (_: B).(\lambda (i: nat).(\lambda 
+(j: nat).(let TMP_6 \def (minus i j) in (refl_equal nat TMP_6))))) in (let 
+TMP_9 \def (\lambda (_: F).(\lambda (i: nat).(\lambda (j: nat).(let TMP_8 
+\def (minus i j) in (refl_equal nat TMP_8))))) in (K_ind TMP_5 TMP_7 TMP_9 
+k)))).
 
 theorem s_le:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).((le i j) \to (le (s k i) 
 (s k j)))))
 \def
- \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
-nat).((le i j) \to (le (s k0 i) (s k0 j)))))) (\lambda (_: B).(\lambda (i: 
-nat).(\lambda (j: nat).(\lambda (H: (le i j)).(le_n_S i j H))))) (\lambda (_: 
-F).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: (le i j)).H)))) k).
-(* COMMENTS
-Initial nodes: 65
-END *)
+ \lambda (k: K).(let TMP_3 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
+(j: nat).((le i j) \to (let TMP_1 \def (s k0 i) in (let TMP_2 \def (s k0 j) 
+in (le TMP_1 TMP_2))))))) in (let TMP_4 \def (\lambda (_: B).(\lambda (i: 
+nat).(\lambda (j: nat).(\lambda (H: (le i j)).(le_n_S i j H))))) in (let 
+TMP_5 \def (\lambda (_: F).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: 
+(le i j)).H)))) in (K_ind TMP_3 TMP_4 TMP_5 k)))).
 
 theorem s_lt:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).((lt i j) \to (lt (s k i) 
 (s k j)))))
 \def
- \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
-nat).((lt i j) \to (lt (s k0 i) (s k0 j)))))) (\lambda (_: B).(\lambda (i: 
-nat).(\lambda (j: nat).(\lambda (H: (lt i j)).(le_n_S (S i) j H))))) (\lambda 
-(_: F).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: (lt i j)).H)))) k).
-(* COMMENTS
-Initial nodes: 67
-END *)
-
-theorem s_inj:
- \forall (k: K).(\forall (i: nat).(\forall (j: nat).((eq nat (s k i) (s k j)) 
-\to (eq nat i j))))
-\def
- \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
-nat).((eq nat (s k0 i) (s k0 j)) \to (eq nat i j))))) (\lambda (b: 
-B).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: (eq nat (s (Bind b) i) (s 
-(Bind b) j))).(eq_add_S i j H))))) (\lambda (f: F).(\lambda (i: nat).(\lambda 
-(j: nat).(\lambda (H: (eq nat (s (Flat f) i) (s (Flat f) j))).H)))) k).
-(* COMMENTS
-Initial nodes: 97
-END *)
+ \lambda (k: K).(let TMP_3 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
+(j: nat).((lt i j) \to (let TMP_1 \def (s k0 i) in (let TMP_2 \def (s k0 j) 
+in (lt TMP_1 TMP_2))))))) in (let TMP_4 \def (\lambda (_: B).(\lambda (i: 
+nat).(\lambda (j: nat).(\lambda (H: (lt i j)).(lt_n_S i j H))))) in (let 
+TMP_5 \def (\lambda (_: F).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: 
+(lt i j)).H)))) in (K_ind TMP_3 TMP_4 TMP_5 k)))).
 
 theorem s_inc:
  \forall (k: K).(\forall (i: nat).(le i (s k i)))
 \def
- \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(le i (s k0 i)))) 
-(\lambda (b: B).(\lambda (i: nat).(le_S_n i (s (Bind b) i) (le_S (S i) (s 
-(Bind b) i) (le_n (s (Bind b) i)))))) (\lambda (f: F).(\lambda (i: nat).(le_n 
-(s (Flat f) i)))) k).
-(* COMMENTS
-Initial nodes: 73
-END *)
+ \lambda (k: K).(let TMP_2 \def (\lambda (k0: K).(\forall (i: nat).(let TMP_1 
+\def (s k0 i) in (le i TMP_1)))) in (let TMP_30 \def (\lambda (b: B).(\lambda 
+(i: nat).(let TMP_3 \def (Bind b) in (let TMP_4 \def (s TMP_3 i) in (let 
+TMP_5 \def (S i) in (let TMP_6 \def (Bind b) in (let TMP_7 \def (s TMP_6 i) 
+in (let TMP_8 \def (S TMP_7) in (let TMP_9 \def (S i) in (let TMP_10 \def (S 
+TMP_9) in (let TMP_11 \def (Bind b) in (let TMP_12 \def (s TMP_11 i) in (let 
+TMP_13 \def (S TMP_12) in (let TMP_14 \def (S TMP_13) in (let TMP_15 \def (S 
+i) in (let TMP_16 \def (S TMP_15) in (let TMP_17 \def (S TMP_16) in (let 
+TMP_18 \def (Bind b) in (let TMP_19 \def (s TMP_18 i) in (let TMP_20 \def (S 
+TMP_19) in (let TMP_21 \def (S TMP_20) in (let TMP_22 \def (Bind b) in (let 
+TMP_23 \def (s TMP_22 i) in (let TMP_24 \def (S TMP_23) in (let TMP_25 \def 
+(S TMP_24) in (let TMP_26 \def (le_n TMP_25) in (let TMP_27 \def (le_S TMP_17 
+TMP_21 TMP_26) in (let TMP_28 \def (le_S_n TMP_10 TMP_14 TMP_27) in (let 
+TMP_29 \def (le_S_n TMP_5 TMP_8 TMP_28) in (le_S_n i TMP_4 
+TMP_29)))))))))))))))))))))))))))))) in (let TMP_33 \def (\lambda (f: 
+F).(\lambda (i: nat).(let TMP_31 \def (Flat f) in (let TMP_32 \def (s TMP_31 
+i) in (le_n TMP_32))))) in (K_ind TMP_2 TMP_30 TMP_33 k)))).
 
 theorem s_arith0:
  \forall (k: K).(\forall (i: nat).(eq nat (minus (s k i) (s k O)) i))
 \def
- \lambda (k: K).(\lambda (i: nat).(eq_ind_r nat (minus i O) (\lambda (n: 
-nat).(eq nat n i)) (eq_ind nat i (\lambda (n: nat).(eq nat n i)) (refl_equal 
-nat i) (minus i O) (minus_n_O i)) (minus (s k i) (s k O)) (minus_s_s k i O))).
-(* COMMENTS
-Initial nodes: 77
-END *)
+ \lambda (k: K).(\lambda (i: nat).(let TMP_1 \def (minus i O) in (let TMP_2 
+\def (\lambda (n: nat).(eq nat n i)) in (let TMP_3 \def (\lambda (n: nat).(eq 
+nat n i)) in (let TMP_4 \def (refl_equal nat i) in (let TMP_5 \def (minus i 
+O) in (let TMP_6 \def (minus_n_O i) in (let TMP_7 \def (eq_ind nat i TMP_3 
+TMP_4 TMP_5 TMP_6) in (let TMP_8 \def (s k i) in (let TMP_9 \def (s k O) in 
+(let TMP_10 \def (minus TMP_8 TMP_9) in (let TMP_11 \def (minus_s_s k i O) in 
+(eq_ind_r nat TMP_1 TMP_2 TMP_7 TMP_10 TMP_11))))))))))))).
 
 theorem s_arith1:
  \forall (b: B).(\forall (i: nat).(eq nat (minus (s (Bind b) i) (S O)) i))
 \def
- \lambda (_: B).(\lambda (i: nat).(eq_ind nat i (\lambda (n: nat).(eq nat n 
-i)) (refl_equal nat i) (minus i O) (minus_n_O i))).
-(* COMMENTS
-Initial nodes: 35
-END *)
+ \lambda (_: B).(\lambda (i: nat).(let TMP_1 \def (\lambda (n: nat).(eq nat n 
+i)) in (let TMP_2 \def (refl_equal nat i) in (let TMP_3 \def (minus i O) in 
+(let TMP_4 \def (minus_n_O i) in (eq_ind nat i TMP_1 TMP_2 TMP_3 TMP_4)))))).
 
index 9445013d42ded787b4727d854c46438859da4c3d..557e41021af2120f46ed778c6787e1706fa5fa8b 100644 (file)
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/T/defs.ma".
+include "basic_1/T/defs.ma".
 
-inductive TList: Set \def
+inductive TList: Type[0] \def
 | TNil: TList
 | TCons: T \to (TList \to TList).
 
-definition THeads:
- K \to (TList \to (T \to T))
-\def
- let rec THeads (k: K) (us: TList) on us: (T \to T) \def (\lambda (t: 
-T).(match us with [TNil \Rightarrow t | (TCons u ul) \Rightarrow (THead k u 
-(THeads k ul t))])) in THeads.
+let rec THeads (k: K) (us: TList) on us: T \to T \def \lambda (t: T).(match 
+us with [TNil \Rightarrow t | (TCons u ul) \Rightarrow (let TMP_1 \def 
+(THeads k ul t) in (THead k u TMP_1))]).
 
-definition TApp:
- TList \to (T \to TList)
-\def
- let rec TApp (ts: TList) on ts: (T \to TList) \def (\lambda (v: T).(match ts 
-with [TNil \Rightarrow (TCons v TNil) | (TCons t ts0) \Rightarrow (TCons t 
-(TApp ts0 v))])) in TApp.
+let rec TApp (ts: TList) on ts: T \to TList \def \lambda (v: T).(match ts 
+with [TNil \Rightarrow (TCons v TNil) | (TCons t ts0) \Rightarrow (let TMP_1 
+\def (TApp ts0 v) in (TCons t TMP_1))]).
 
-definition tslen:
- TList \to nat
-\def
- let rec tslen (ts: TList) on ts: nat \def (match ts with [TNil \Rightarrow O 
-| (TCons _ ts0) \Rightarrow (S (tslen ts0))]) in tslen.
+let rec tslen (ts: TList) on ts: nat \def match ts with [TNil \Rightarrow O | 
+(TCons _ ts0) \Rightarrow (let TMP_1 \def (tslen ts0) in (S TMP_1))].
 
 definition tslt:
  TList \to (TList \to Prop)
 \def
- \lambda (ts1: TList).(\lambda (ts2: TList).(lt (tslen ts1) (tslen ts2))).
+ \lambda (ts1: TList).(\lambda (ts2: TList).(let TMP_1 \def (tslen ts1) in 
+(let TMP_2 \def (tslen ts2) in (lt TMP_1 TMP_2)))).
 
diff --git a/matita/matita/contribs/lambdadelta/basic_1/tlist/fwd.ma b/matita/matita/contribs/lambdadelta/basic_1/tlist/fwd.ma
new file mode 100644 (file)
index 0000000..ed68fca
--- /dev/null
@@ -0,0 +1,85 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+(* This file was automatically generated: do not edit *********************)
+
+include "basic_1/tlist/props.ma".
+
+theorem tslt_wf__q_ind:
+ \forall (P: ((TList \to Prop))).(((\forall (n: nat).((\lambda (P0: ((TList 
+\to Prop))).(\lambda (n0: nat).(\forall (ts: TList).((eq nat (tslen ts) n0) 
+\to (P0 ts))))) P n))) \to (\forall (ts: TList).(P ts)))
+\def
+ let Q \def (\lambda (P: ((TList \to Prop))).(\lambda (n: nat).(\forall (ts: 
+TList).((eq nat (tslen ts) n) \to (P ts))))) in (\lambda (P: ((TList \to 
+Prop))).(\lambda (H: ((\forall (n: nat).(\forall (ts: TList).((eq nat (tslen 
+ts) n) \to (P ts)))))).(\lambda (ts: TList).(let TMP_1 \def (tslen ts) in 
+(let TMP_2 \def (tslen ts) in (let TMP_3 \def (refl_equal nat TMP_2) in (H 
+TMP_1 ts TMP_3))))))).
+
+theorem tslt_wf_ind:
+ \forall (P: ((TList \to Prop))).(((\forall (ts2: TList).(((\forall (ts1: 
+TList).((tslt ts1 ts2) \to (P ts1)))) \to (P ts2)))) \to (\forall (ts: 
+TList).(P ts)))
+\def
+ let Q \def (\lambda (P: ((TList \to Prop))).(\lambda (n: nat).(\forall (ts: 
+TList).((eq nat (tslen ts) n) \to (P ts))))) in (\lambda (P: ((TList \to 
+Prop))).(\lambda (H: ((\forall (ts2: TList).(((\forall (ts1: TList).((lt 
+(tslen ts1) (tslen ts2)) \to (P ts1)))) \to (P ts2))))).(\lambda (ts: 
+TList).(let TMP_1 \def (\lambda (t: TList).(P t)) in (let TMP_11 \def 
+(\lambda (n: nat).(let TMP_2 \def (\lambda (t: TList).(P t)) in (let TMP_3 
+\def (Q TMP_2) in (let TMP_10 \def (\lambda (n0: nat).(\lambda (H0: ((\forall 
+(m: nat).((lt m n0) \to (Q (\lambda (t: TList).(P t)) m))))).(\lambda (ts0: 
+TList).(\lambda (H1: (eq nat (tslen ts0) n0)).(let TMP_4 \def (\lambda (n1: 
+nat).(\forall (m: nat).((lt m n1) \to (\forall (ts1: TList).((eq nat (tslen 
+ts1) m) \to (P ts1)))))) in (let TMP_5 \def (tslen ts0) in (let H2 \def 
+(eq_ind_r nat n0 TMP_4 H0 TMP_5 H1) in (let TMP_9 \def (\lambda (ts1: 
+TList).(\lambda (H3: (lt (tslen ts1) (tslen ts0))).(let TMP_6 \def (tslen 
+ts1) in (let TMP_7 \def (tslen ts1) in (let TMP_8 \def (refl_equal nat TMP_7) 
+in (H2 TMP_6 H3 ts1 TMP_8)))))) in (H ts0 TMP_9))))))))) in (lt_wf_ind n 
+TMP_3 TMP_10))))) in (tslt_wf__q_ind TMP_1 TMP_11 ts)))))).
+
+theorem tlist_ind_rev:
+ \forall (P: ((TList \to Prop))).((P TNil) \to (((\forall (ts: 
+TList).(\forall (t: T).((P ts) \to (P (TApp ts t)))))) \to (\forall (ts: 
+TList).(P ts))))
+\def
+ \lambda (P: ((TList \to Prop))).(\lambda (H: (P TNil)).(\lambda (H0: 
+((\forall (ts: TList).(\forall (t: T).((P ts) \to (P (TApp ts 
+t))))))).(\lambda (ts: TList).(let TMP_1 \def (\lambda (t: TList).(P t)) in 
+(let TMP_28 \def (\lambda (ts2: TList).(let TMP_2 \def (\lambda (t: 
+TList).(((\forall (ts1: TList).((tslt ts1 t) \to (P ts1)))) \to (P t))) in 
+(let TMP_3 \def (\lambda (_: ((\forall (ts1: TList).((tslt ts1 TNil) \to (P 
+ts1))))).H) in (let TMP_27 \def (\lambda (t: T).(\lambda (t0: TList).(\lambda 
+(_: ((((\forall (ts1: TList).((tslt ts1 t0) \to (P ts1)))) \to (P 
+t0)))).(\lambda (H2: ((\forall (ts1: TList).((tslt ts1 (TCons t t0)) \to (P 
+ts1))))).(let H_x \def (tcons_tapp_ex t0 t) in (let H3 \def H_x in (let TMP_6 
+\def (\lambda (ts3: TList).(\lambda (t2: T).(let TMP_4 \def (TCons t t0) in 
+(let TMP_5 \def (TApp ts3 t2) in (eq TList TMP_4 TMP_5))))) in (let TMP_9 
+\def (\lambda (ts3: TList).(\lambda (_: T).(let TMP_7 \def (tslen t0) in (let 
+TMP_8 \def (tslen ts3) in (eq nat TMP_7 TMP_8))))) in (let TMP_10 \def (TCons 
+t t0) in (let TMP_11 \def (P TMP_10) in (let TMP_26 \def (\lambda (x0: 
+TList).(\lambda (x1: T).(\lambda (H4: (eq TList (TCons t t0) (TApp x0 
+x1))).(\lambda (H5: (eq nat (tslen t0) (tslen x0))).(let TMP_12 \def (TApp x0 
+x1) in (let TMP_13 \def (\lambda (t1: TList).(P t1)) in (let TMP_14 \def 
+(tslen t0) in (let TMP_17 \def (\lambda (n: nat).(let TMP_15 \def (TCons t 
+t0) in (let TMP_16 \def (tslen TMP_15) in (lt n TMP_16)))) in (let TMP_18 
+\def (TCons t t0) in (let TMP_19 \def (tslen TMP_18) in (let TMP_20 \def 
+(le_n TMP_19) in (let TMP_21 \def (tslen x0) in (let TMP_22 \def (eq_ind nat 
+TMP_14 TMP_17 TMP_20 TMP_21 H5) in (let TMP_23 \def (H2 x0 TMP_22) in (let 
+TMP_24 \def (H0 x0 x1 TMP_23) in (let TMP_25 \def (TCons t t0) in (eq_ind_r 
+TList TMP_12 TMP_13 TMP_24 TMP_25 H4))))))))))))))))) in (ex2_2_ind TList T 
+TMP_6 TMP_9 TMP_11 TMP_26 H3)))))))))))) in (TList_ind TMP_2 TMP_3 TMP_27 
+ts2))))) in (tslt_wf_ind TMP_1 TMP_28 ts)))))).
+
index 92b0d05ffa1b186877b57effe12c71ee93e47deb..ea801d6cb4b87aa0b1ab21a7f4cb4d98924fc24e 100644 (file)
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/tlist/defs.ma".
-
-theorem tslt_wf__q_ind:
- \forall (P: ((TList \to Prop))).(((\forall (n: nat).((\lambda (P0: ((TList 
-\to Prop))).(\lambda (n0: nat).(\forall (ts: TList).((eq nat (tslen ts) n0) 
-\to (P0 ts))))) P n))) \to (\forall (ts: TList).(P ts)))
-\def
- let Q \def (\lambda (P: ((TList \to Prop))).(\lambda (n: nat).(\forall (ts: 
-TList).((eq nat (tslen ts) n) \to (P ts))))) in (\lambda (P: ((TList \to 
-Prop))).(\lambda (H: ((\forall (n: nat).(\forall (ts: TList).((eq nat (tslen 
-ts) n) \to (P ts)))))).(\lambda (ts: TList).(H (tslen ts) ts (refl_equal nat 
-(tslen ts)))))).
-(* COMMENTS
-Initial nodes: 61
-END *)
-
-theorem tslt_wf_ind:
- \forall (P: ((TList \to Prop))).(((\forall (ts2: TList).(((\forall (ts1: 
-TList).((tslt ts1 ts2) \to (P ts1)))) \to (P ts2)))) \to (\forall (ts: 
-TList).(P ts)))
-\def
- let Q \def (\lambda (P: ((TList \to Prop))).(\lambda (n: nat).(\forall (ts: 
-TList).((eq nat (tslen ts) n) \to (P ts))))) in (\lambda (P: ((TList \to 
-Prop))).(\lambda (H: ((\forall (ts2: TList).(((\forall (ts1: TList).((lt 
-(tslen ts1) (tslen ts2)) \to (P ts1)))) \to (P ts2))))).(\lambda (ts: 
-TList).(tslt_wf__q_ind (\lambda (t: TList).(P t)) (\lambda (n: 
-nat).(lt_wf_ind n (Q (\lambda (t: TList).(P t))) (\lambda (n0: nat).(\lambda 
-(H0: ((\forall (m: nat).((lt m n0) \to (Q (\lambda (t: TList).(P t)) 
-m))))).(\lambda (ts0: TList).(\lambda (H1: (eq nat (tslen ts0) n0)).(let H2 
-\def (eq_ind_r nat n0 (\lambda (n1: nat).(\forall (m: nat).((lt m n1) \to 
-(\forall (ts1: TList).((eq nat (tslen ts1) m) \to (P ts1)))))) H0 (tslen ts0) 
-H1) in (H ts0 (\lambda (ts1: TList).(\lambda (H3: (lt (tslen ts1) (tslen 
-ts0))).(H2 (tslen ts1) H3 ts1 (refl_equal nat (tslen ts1))))))))))))) ts)))).
-(* COMMENTS
-Initial nodes: 179
-END *)
+include "basic_1/tlist/defs.ma".
 
 theorem theads_tapp:
  \forall (k: K).(\forall (v: T).(\forall (t: T).(\forall (vs: TList).(eq T 
 (THeads k (TApp vs v) t) (THeads k vs (THead k v t))))))
 \def
- \lambda (k: K).(\lambda (v: T).(\lambda (t: T).(\lambda (vs: 
-TList).(TList_ind (\lambda (t0: TList).(eq T (THeads k (TApp t0 v) t) (THeads 
-k t0 (THead k v t)))) (refl_equal T (THead k v t)) (\lambda (t0: T).(\lambda 
-(t1: TList).(\lambda (H: (eq T (THeads k (TApp t1 v) t) (THeads k t1 (THead k 
-v t)))).(eq_ind T (THeads k (TApp t1 v) t) (\lambda (t2: T).(eq T (THead k t0 
-(THeads k (TApp t1 v) t)) (THead k t0 t2))) (refl_equal T (THead k t0 (THeads 
-k (TApp t1 v) t))) (THeads k t1 (THead k v t)) H)))) vs)))).
-(* COMMENTS
-Initial nodes: 175
-END *)
+ \lambda (k: K).(\lambda (v: T).(\lambda (t: T).(\lambda (vs: TList).(let 
+TMP_5 \def (\lambda (t0: TList).(let TMP_1 \def (TApp t0 v) in (let TMP_2 
+\def (THeads k TMP_1 t) in (let TMP_3 \def (THead k v t) in (let TMP_4 \def 
+(THeads k t0 TMP_3) in (eq T TMP_2 TMP_4)))))) in (let TMP_6 \def (THead k v 
+t) in (let TMP_7 \def (refl_equal T TMP_6) in (let TMP_21 \def (\lambda (t0: 
+T).(\lambda (t1: TList).(\lambda (H: (eq T (THeads k (TApp t1 v) t) (THeads k 
+t1 (THead k v t)))).(let TMP_8 \def (TApp t1 v) in (let TMP_9 \def (THeads k 
+TMP_8 t) in (let TMP_14 \def (\lambda (t2: T).(let TMP_10 \def (TApp t1 v) in 
+(let TMP_11 \def (THeads k TMP_10 t) in (let TMP_12 \def (THead k t0 TMP_11) 
+in (let TMP_13 \def (THead k t0 t2) in (eq T TMP_12 TMP_13)))))) in (let 
+TMP_15 \def (TApp t1 v) in (let TMP_16 \def (THeads k TMP_15 t) in (let 
+TMP_17 \def (THead k t0 TMP_16) in (let TMP_18 \def (refl_equal T TMP_17) in 
+(let TMP_19 \def (THead k v t) in (let TMP_20 \def (THeads k t1 TMP_19) in 
+(eq_ind T TMP_9 TMP_14 TMP_18 TMP_20 H))))))))))))) in (TList_ind TMP_5 TMP_7 
+TMP_21 vs)))))))).
 
 theorem tcons_tapp_ex:
  \forall (ts1: TList).(\forall (t1: T).(ex2_2 TList T (\lambda (ts2: 
 TList).(\lambda (t2: T).(eq TList (TCons t1 ts1) (TApp ts2 t2)))) (\lambda 
 (ts2: TList).(\lambda (_: T).(eq nat (tslen ts1) (tslen ts2))))))
 \def
- \lambda (ts1: TList).(TList_ind (\lambda (t: TList).(\forall (t1: T).(ex2_2 
-TList T (\lambda (ts2: TList).(\lambda (t2: T).(eq TList (TCons t1 t) (TApp 
-ts2 t2)))) (\lambda (ts2: TList).(\lambda (_: T).(eq nat (tslen t) (tslen 
-ts2))))))) (\lambda (t1: T).(ex2_2_intro TList T (\lambda (ts2: 
-TList).(\lambda (t2: T).(eq TList (TCons t1 TNil) (TApp ts2 t2)))) (\lambda 
-(ts2: TList).(\lambda (_: T).(eq nat O (tslen ts2)))) TNil t1 (refl_equal 
-TList (TApp TNil t1)) (refl_equal nat (tslen TNil)))) (\lambda (t: 
+ \lambda (ts1: TList).(let TMP_7 \def (\lambda (t: TList).(\forall (t1: 
+T).(let TMP_3 \def (\lambda (ts2: TList).(\lambda (t2: T).(let TMP_1 \def 
+(TCons t1 t) in (let TMP_2 \def (TApp ts2 t2) in (eq TList TMP_1 TMP_2))))) 
+in (let TMP_6 \def (\lambda (ts2: TList).(\lambda (_: T).(let TMP_4 \def 
+(tslen t) in (let TMP_5 \def (tslen ts2) in (eq nat TMP_4 TMP_5))))) in 
+(ex2_2 TList T TMP_3 TMP_6))))) in (let TMP_17 \def (\lambda (t1: T).(let 
+TMP_10 \def (\lambda (ts2: TList).(\lambda (t2: T).(let TMP_8 \def (TCons t1 
+TNil) in (let TMP_9 \def (TApp ts2 t2) in (eq TList TMP_8 TMP_9))))) in (let 
+TMP_12 \def (\lambda (ts2: TList).(\lambda (_: T).(let TMP_11 \def (tslen 
+ts2) in (eq nat O TMP_11)))) in (let TMP_13 \def (TApp TNil t1) in (let 
+TMP_14 \def (refl_equal TList TMP_13) in (let TMP_15 \def (tslen TNil) in 
+(let TMP_16 \def (refl_equal nat TMP_15) in (ex2_2_intro TList T TMP_10 
+TMP_12 TNil t1 TMP_14 TMP_16)))))))) in (let TMP_71 \def (\lambda (t: 
 T).(\lambda (t0: TList).(\lambda (H: ((\forall (t1: T).(ex2_2 TList T 
 (\lambda (ts2: TList).(\lambda (t2: T).(eq TList (TCons t1 t0) (TApp ts2 
 t2)))) (\lambda (ts2: TList).(\lambda (_: T).(eq nat (tslen t0) (tslen 
-ts2)))))))).(\lambda (t1: T).(let H_x \def (H t) in (let H0 \def H_x in 
-(ex2_2_ind TList T (\lambda (ts2: TList).(\lambda (t2: T).(eq TList (TCons t 
-t0) (TApp ts2 t2)))) (\lambda (ts2: TList).(\lambda (_: T).(eq nat (tslen t0) 
-(tslen ts2)))) (ex2_2 TList T (\lambda (ts2: TList).(\lambda (t2: T).(eq 
-TList (TCons t1 (TCons t t0)) (TApp ts2 t2)))) (\lambda (ts2: TList).(\lambda 
-(_: T).(eq nat (S (tslen t0)) (tslen ts2))))) (\lambda (x0: TList).(\lambda 
-(x1: T).(\lambda (H1: (eq TList (TCons t t0) (TApp x0 x1))).(\lambda (H2: (eq 
-nat (tslen t0) (tslen x0))).(eq_ind_r TList (TApp x0 x1) (\lambda (t2: 
-TList).(ex2_2 TList T (\lambda (ts2: TList).(\lambda (t3: T).(eq TList (TCons 
-t1 t2) (TApp ts2 t3)))) (\lambda (ts2: TList).(\lambda (_: T).(eq nat (S 
-(tslen t0)) (tslen ts2)))))) (eq_ind_r nat (tslen x0) (\lambda (n: 
-nat).(ex2_2 TList T (\lambda (ts2: TList).(\lambda (t2: T).(eq TList (TCons 
-t1 (TApp x0 x1)) (TApp ts2 t2)))) (\lambda (ts2: TList).(\lambda (_: T).(eq 
-nat (S n) (tslen ts2)))))) (ex2_2_intro TList T (\lambda (ts2: 
-TList).(\lambda (t2: T).(eq TList (TCons t1 (TApp x0 x1)) (TApp ts2 t2)))) 
-(\lambda (ts2: TList).(\lambda (_: T).(eq nat (S (tslen x0)) (tslen ts2)))) 
-(TCons t1 x0) x1 (refl_equal TList (TApp (TCons t1 x0) x1)) (refl_equal nat 
-(tslen (TCons t1 x0)))) (tslen t0) H2) (TCons t t0) H1))))) H0))))))) ts1).
-(* COMMENTS
-Initial nodes: 503
-END *)
-
-theorem tlist_ind_rev:
- \forall (P: ((TList \to Prop))).((P TNil) \to (((\forall (ts: 
-TList).(\forall (t: T).((P ts) \to (P (TApp ts t)))))) \to (\forall (ts: 
-TList).(P ts))))
-\def
- \lambda (P: ((TList \to Prop))).(\lambda (H: (P TNil)).(\lambda (H0: 
-((\forall (ts: TList).(\forall (t: T).((P ts) \to (P (TApp ts 
-t))))))).(\lambda (ts: TList).(tslt_wf_ind (\lambda (t: TList).(P t)) 
-(\lambda (ts2: TList).(TList_ind (\lambda (t: TList).(((\forall (ts1: 
-TList).((tslt ts1 t) \to (P ts1)))) \to (P t))) (\lambda (_: ((\forall (ts1: 
-TList).((tslt ts1 TNil) \to (P ts1))))).H) (\lambda (t: T).(\lambda (t0: 
-TList).(\lambda (_: ((((\forall (ts1: TList).((tslt ts1 t0) \to (P ts1)))) 
-\to (P t0)))).(\lambda (H2: ((\forall (ts1: TList).((tslt ts1 (TCons t t0)) 
-\to (P ts1))))).(let H_x \def (tcons_tapp_ex t0 t) in (let H3 \def H_x in 
-(ex2_2_ind TList T (\lambda (ts3: TList).(\lambda (t2: T).(eq TList (TCons t 
-t0) (TApp ts3 t2)))) (\lambda (ts3: TList).(\lambda (_: T).(eq nat (tslen t0) 
-(tslen ts3)))) (P (TCons t t0)) (\lambda (x0: TList).(\lambda (x1: 
-T).(\lambda (H4: (eq TList (TCons t t0) (TApp x0 x1))).(\lambda (H5: (eq nat 
-(tslen t0) (tslen x0))).(eq_ind_r TList (TApp x0 x1) (\lambda (t1: TList).(P 
-t1)) (H0 x0 x1 (H2 x0 (eq_ind nat (tslen t0) (\lambda (n: nat).(lt n (tslen 
-(TCons t t0)))) (le_n (tslen (TCons t t0))) (tslen x0) H5))) (TCons t t0) 
-H4))))) H3))))))) ts2)) ts)))).
-(* COMMENTS
-Initial nodes: 273
-END *)
+ts2)))))))).(\lambda (t1: T).(let H_x \def (H t) in (let H0 \def H_x in (let 
+TMP_20 \def (\lambda (ts2: TList).(\lambda (t2: T).(let TMP_18 \def (TCons t 
+t0) in (let TMP_19 \def (TApp ts2 t2) in (eq TList TMP_18 TMP_19))))) in (let 
+TMP_23 \def (\lambda (ts2: TList).(\lambda (_: T).(let TMP_21 \def (tslen t0) 
+in (let TMP_22 \def (tslen ts2) in (eq nat TMP_21 TMP_22))))) in (let TMP_27 
+\def (\lambda (ts2: TList).(\lambda (t2: T).(let TMP_24 \def (TCons t t0) in 
+(let TMP_25 \def (TCons t1 TMP_24) in (let TMP_26 \def (TApp ts2 t2) in (eq 
+TList TMP_25 TMP_26)))))) in (let TMP_31 \def (\lambda (ts2: TList).(\lambda 
+(_: T).(let TMP_28 \def (tslen t0) in (let TMP_29 \def (S TMP_28) in (let 
+TMP_30 \def (tslen ts2) in (eq nat TMP_29 TMP_30)))))) in (let TMP_32 \def 
+(ex2_2 TList T TMP_27 TMP_31) in (let TMP_70 \def (\lambda (x0: 
+TList).(\lambda (x1: T).(\lambda (H1: (eq TList (TCons t t0) (TApp x0 
+x1))).(\lambda (H2: (eq nat (tslen t0) (tslen x0))).(let TMP_33 \def (TApp x0 
+x1) in (let TMP_41 \def (\lambda (t2: TList).(let TMP_36 \def (\lambda (ts2: 
+TList).(\lambda (t3: T).(let TMP_34 \def (TCons t1 t2) in (let TMP_35 \def 
+(TApp ts2 t3) in (eq TList TMP_34 TMP_35))))) in (let TMP_40 \def (\lambda 
+(ts2: TList).(\lambda (_: T).(let TMP_37 \def (tslen t0) in (let TMP_38 \def 
+(S TMP_37) in (let TMP_39 \def (tslen ts2) in (eq nat TMP_38 TMP_39)))))) in 
+(ex2_2 TList T TMP_36 TMP_40)))) in (let TMP_42 \def (tslen x0) in (let 
+TMP_50 \def (\lambda (n: nat).(let TMP_46 \def (\lambda (ts2: TList).(\lambda 
+(t2: T).(let TMP_43 \def (TApp x0 x1) in (let TMP_44 \def (TCons t1 TMP_43) 
+in (let TMP_45 \def (TApp ts2 t2) in (eq TList TMP_44 TMP_45)))))) in (let 
+TMP_49 \def (\lambda (ts2: TList).(\lambda (_: T).(let TMP_47 \def (S n) in 
+(let TMP_48 \def (tslen ts2) in (eq nat TMP_47 TMP_48))))) in (ex2_2 TList T 
+TMP_46 TMP_49)))) in (let TMP_54 \def (\lambda (ts2: TList).(\lambda (t2: 
+T).(let TMP_51 \def (TApp x0 x1) in (let TMP_52 \def (TCons t1 TMP_51) in 
+(let TMP_53 \def (TApp ts2 t2) in (eq TList TMP_52 TMP_53)))))) in (let 
+TMP_58 \def (\lambda (ts2: TList).(\lambda (_: T).(let TMP_55 \def (tslen x0) 
+in (let TMP_56 \def (S TMP_55) in (let TMP_57 \def (tslen ts2) in (eq nat 
+TMP_56 TMP_57)))))) in (let TMP_59 \def (TCons t1 x0) in (let TMP_60 \def 
+(TCons t1 x0) in (let TMP_61 \def (TApp TMP_60 x1) in (let TMP_62 \def 
+(refl_equal TList TMP_61) in (let TMP_63 \def (TCons t1 x0) in (let TMP_64 
+\def (tslen TMP_63) in (let TMP_65 \def (refl_equal nat TMP_64) in (let 
+TMP_66 \def (ex2_2_intro TList T TMP_54 TMP_58 TMP_59 x1 TMP_62 TMP_65) in 
+(let TMP_67 \def (tslen t0) in (let TMP_68 \def (eq_ind_r nat TMP_42 TMP_50 
+TMP_66 TMP_67 H2) in (let TMP_69 \def (TCons t t0) in (eq_ind_r TList TMP_33 
+TMP_41 TMP_68 TMP_69 H1)))))))))))))))))))))) in (ex2_2_ind TList T TMP_20 
+TMP_23 TMP_32 TMP_70 H0))))))))))))) in (TList_ind TMP_7 TMP_17 TMP_71 
+ts1)))).
 
index 3a1a6c27050be678b794cab226f5d678da78f709..2b189447ef62219c0597513702bb5120558cdb90 100644 (file)
@@ -19,106 +19,102 @@ include "ground_1/blt/defs.ma".
 theorem lt_blt:
  \forall (x: nat).(\forall (y: nat).((lt y x) \to (eq bool (blt y x) true)))
 \def
- \lambda (x: nat).(let TMP_793 \def (\lambda (n: nat).(\forall (y: nat).((lt 
-y n) \to (let TMP_792 \def (blt y n) in (eq bool TMP_792 true))))) in (let 
-TMP_791 \def (\lambda (y: nat).(\lambda (H: (lt y O)).(let H0 \def (match H 
-in le with [le_n \Rightarrow (\lambda (H0: (eq nat (S y) O)).(let TMP_787 
-\def (S y) in (let TMP_786 \def (\lambda (e: nat).(match e in nat with [O 
-\Rightarrow False | (S _) \Rightarrow True])) in (let H1 \def (eq_ind nat 
-TMP_787 TMP_786 I O H0) in (let TMP_788 \def (blt y O) in (let TMP_789 \def 
-(eq bool TMP_788 true) in (False_ind TMP_789 H1))))))) | (le_S m H0) 
-\Rightarrow (\lambda (H1: (eq nat (S m) O)).(let TMP_782 \def (S m) in (let 
-TMP_781 \def (\lambda (e: nat).(match e in nat with [O \Rightarrow False | (S 
-_) \Rightarrow True])) in (let H2 \def (eq_ind nat TMP_782 TMP_781 I O H1) in 
-(let TMP_784 \def ((le (S y) m) \to (let TMP_783 \def (blt y O) in (eq bool 
-TMP_783 true))) in (let TMP_785 \def (False_ind TMP_784 H2) in (TMP_785 
-H0)))))))]) in (let TMP_790 \def (refl_equal nat O) in (H0 TMP_790))))) in 
-(let TMP_780 \def (\lambda (n: nat).(\lambda (H: ((\forall (y: nat).((lt y n) 
-\to (eq bool (blt y n) true))))).(\lambda (y: nat).(let TMP_779 \def (\lambda 
-(n0: nat).((lt n0 (S n)) \to (let TMP_777 \def (S n) in (let TMP_778 \def 
-(blt n0 TMP_777) in (eq bool TMP_778 true))))) in (let TMP_776 \def (\lambda 
-(_: (lt O (S n))).(refl_equal bool true)) in (let TMP_775 \def (\lambda (n0: 
-nat).(\lambda (_: (((lt n0 (S n)) \to (eq bool (match n0 with [O \Rightarrow 
-true | (S m) \Rightarrow (blt m n)]) true)))).(\lambda (H1: (lt (S n0) (S 
-n))).(let TMP_773 \def (S n0) in (let TMP_774 \def (le_S_n TMP_773 n H1) in 
-(H n0 TMP_774)))))) in (nat_ind TMP_779 TMP_776 TMP_775 y))))))) in (nat_ind 
-TMP_793 TMP_791 TMP_780 x)))).
+ \lambda (x: nat).(let TMP_2 \def (\lambda (n: nat).(\forall (y: nat).((lt y 
+n) \to (let TMP_1 \def (blt y n) in (eq bool TMP_1 true))))) in (let TMP_13 
+\def (\lambda (y: nat).(\lambda (H: (lt y O)).(let H0 \def (match H with 
+[le_n \Rightarrow (\lambda (H0: (eq nat (S y) O)).(let TMP_8 \def (S y) in 
+(let TMP_9 \def (\lambda (e: nat).(match e with [O \Rightarrow False | (S _) 
+\Rightarrow True])) in (let H1 \def (eq_ind nat TMP_8 TMP_9 I O H0) in (let 
+TMP_10 \def (blt y O) in (let TMP_11 \def (eq bool TMP_10 true) in (False_ind 
+TMP_11 H1))))))) | (le_S m H0) \Rightarrow (\lambda (H1: (eq nat (S m) 
+O)).(let TMP_3 \def (S m) in (let TMP_4 \def (\lambda (e: nat).(match e with 
+[O \Rightarrow False | (S _) \Rightarrow True])) in (let H2 \def (eq_ind nat 
+TMP_3 TMP_4 I O H1) in (let TMP_6 \def ((le (S y) m) \to (let TMP_5 \def (blt 
+y O) in (eq bool TMP_5 true))) in (let TMP_7 \def (False_ind TMP_6 H2) in 
+(TMP_7 H0)))))))]) in (let TMP_12 \def (refl_equal nat O) in (H0 TMP_12))))) 
+in (let TMP_21 \def (\lambda (n: nat).(\lambda (H: ((\forall (y: nat).((lt y 
+n) \to (eq bool (blt y n) true))))).(\lambda (y: nat).(let TMP_16 \def 
+(\lambda (n0: nat).((lt n0 (S n)) \to (let TMP_14 \def (S n) in (let TMP_15 
+\def (blt n0 TMP_14) in (eq bool TMP_15 true))))) in (let TMP_17 \def 
+(\lambda (_: (lt O (S n))).(refl_equal bool true)) in (let TMP_20 \def 
+(\lambda (n0: nat).(\lambda (_: (((lt n0 (S n)) \to (eq bool (match n0 with 
+[O \Rightarrow true | (S m) \Rightarrow (blt m n)]) true)))).(\lambda (H1: 
+(lt (S n0) (S n))).(let TMP_18 \def (S n0) in (let TMP_19 \def (le_S_n TMP_18 
+n H1) in (H n0 TMP_19)))))) in (nat_ind TMP_16 TMP_17 TMP_20 y))))))) in 
+(nat_ind TMP_2 TMP_13 TMP_21 x)))).
 
 theorem le_bge:
  \forall (x: nat).(\forall (y: nat).((le x y) \to (eq bool (blt y x) false)))
 \def
- \lambda (x: nat).(let TMP_815 \def (\lambda (n: nat).(\forall (y: nat).((le 
-n y) \to (let TMP_814 \def (blt y n) in (eq bool TMP_814 false))))) in (let 
-TMP_813 \def (\lambda (y: nat).(\lambda (_: (le O y)).(refl_equal bool 
-false))) in (let TMP_812 \def (\lambda (n: nat).(\lambda (H: ((\forall (y: 
-nat).((le n y) \to (eq bool (blt y n) false))))).(\lambda (y: nat).(let 
-TMP_811 \def (\lambda (n0: nat).((le (S n) n0) \to (let TMP_809 \def (S n) in 
-(let TMP_810 \def (blt n0 TMP_809) in (eq bool TMP_810 false))))) in (let 
-TMP_808 \def (\lambda (H0: (le (S n) O)).(let H1 \def (match H0 in le with 
-[le_n \Rightarrow (\lambda (H1: (eq nat (S n) O)).(let TMP_803 \def (S n) in 
-(let TMP_802 \def (\lambda (e: nat).(match e in nat with [O \Rightarrow False 
-| (S _) \Rightarrow True])) in (let H2 \def (eq_ind nat TMP_803 TMP_802 I O 
-H1) in (let TMP_804 \def (S n) in (let TMP_805 \def (blt O TMP_804) in (let 
-TMP_806 \def (eq bool TMP_805 false) in (False_ind TMP_806 H2)))))))) | (le_S 
-m H1) \Rightarrow (\lambda (H2: (eq nat (S m) O)).(let TMP_797 \def (S m) in 
-(let TMP_796 \def (\lambda (e: nat).(match e in nat with [O \Rightarrow False 
-| (S _) \Rightarrow True])) in (let H3 \def (eq_ind nat TMP_797 TMP_796 I O 
-H2) in (let TMP_800 \def ((le (S n) m) \to (let TMP_798 \def (S n) in (let 
-TMP_799 \def (blt O TMP_798) in (eq bool TMP_799 false)))) in (let TMP_801 
-\def (False_ind TMP_800 H3) in (TMP_801 H1)))))))]) in (let TMP_807 \def 
-(refl_equal nat O) in (H1 TMP_807)))) in (let TMP_795 \def (\lambda (n0: 
+ \lambda (x: nat).(let TMP_2 \def (\lambda (n: nat).(\forall (y: nat).((le n 
+y) \to (let TMP_1 \def (blt y n) in (eq bool TMP_1 false))))) in (let TMP_3 
+\def (\lambda (y: nat).(\lambda (_: (le O y)).(refl_equal bool false))) in 
+(let TMP_22 \def (\lambda (n: nat).(\lambda (H: ((\forall (y: nat).((le n y) 
+\to (eq bool (blt y n) false))))).(\lambda (y: nat).(let TMP_6 \def (\lambda 
+(n0: nat).((le (S n) n0) \to (let TMP_4 \def (S n) in (let TMP_5 \def (blt n0 
+TMP_4) in (eq bool TMP_5 false))))) in (let TMP_19 \def (\lambda (H0: (le (S 
+n) O)).(let H1 \def (match H0 with [le_n \Rightarrow (\lambda (H1: (eq nat (S 
+n) O)).(let TMP_13 \def (S n) in (let TMP_14 \def (\lambda (e: nat).(match e 
+with [O \Rightarrow False | (S _) \Rightarrow True])) in (let H2 \def (eq_ind 
+nat TMP_13 TMP_14 I O H1) in (let TMP_15 \def (S n) in (let TMP_16 \def (blt 
+O TMP_15) in (let TMP_17 \def (eq bool TMP_16 false) in (False_ind TMP_17 
+H2)))))))) | (le_S m H1) \Rightarrow (\lambda (H2: (eq nat (S m) O)).(let 
+TMP_7 \def (S m) in (let TMP_8 \def (\lambda (e: nat).(match e with [O 
+\Rightarrow False | (S _) \Rightarrow True])) in (let H3 \def (eq_ind nat 
+TMP_7 TMP_8 I O H2) in (let TMP_11 \def ((le (S n) m) \to (let TMP_9 \def (S 
+n) in (let TMP_10 \def (blt O TMP_9) in (eq bool TMP_10 false)))) in (let 
+TMP_12 \def (False_ind TMP_11 H3) in (TMP_12 H1)))))))]) in (let TMP_18 \def 
+(refl_equal nat O) in (H1 TMP_18)))) in (let TMP_21 \def (\lambda (n0: 
 nat).(\lambda (_: (((le (S n) n0) \to (eq bool (blt n0 (S n)) 
-false)))).(\lambda (H1: (le (S n) (S n0))).(let TMP_794 \def (le_S_n n n0 H1) 
-in (H n0 TMP_794))))) in (nat_ind TMP_811 TMP_808 TMP_795 y))))))) in 
-(nat_ind TMP_815 TMP_813 TMP_812 x)))).
+false)))).(\lambda (H1: (le (S n) (S n0))).(let TMP_20 \def (le_S_n n n0 H1) 
+in (H n0 TMP_20))))) in (nat_ind TMP_6 TMP_19 TMP_21 y))))))) in (nat_ind 
+TMP_2 TMP_3 TMP_22 x)))).
 
 theorem blt_lt:
  \forall (x: nat).(\forall (y: nat).((eq bool (blt y x) true) \to (lt y x)))
 \def
- \lambda (x: nat).(let TMP_834 \def (\lambda (n: nat).(\forall (y: nat).((eq 
-bool (blt y n) true) \to (lt y n)))) in (let TMP_833 \def (\lambda (y: 
-nat).(\lambda (H: (eq bool (blt y O) true)).(let H0 \def (match H in eq with 
-[refl_equal \Rightarrow (\lambda (H0: (eq bool (blt y O) true)).(let TMP_830 
-\def (blt y O) in (let TMP_829 \def (\lambda (e: bool).(match e in bool with 
-[true \Rightarrow False | false \Rightarrow True])) in (let H1 \def (eq_ind 
-bool TMP_830 TMP_829 I true H0) in (let TMP_831 \def (lt y O) in (False_ind 
-TMP_831 H1))))))]) in (let TMP_832 \def (refl_equal bool true) in (H0 
-TMP_832))))) in (let TMP_828 \def (\lambda (n: nat).(\lambda (H: ((\forall 
-(y: nat).((eq bool (blt y n) true) \to (lt y n))))).(\lambda (y: nat).(let 
-TMP_827 \def (\lambda (n0: nat).((eq bool (blt n0 (S n)) true) \to (let 
-TMP_826 \def (S n) in (lt n0 TMP_826)))) in (let TMP_825 \def (\lambda (_: 
-(eq bool true true)).(let TMP_824 \def (S O) in (let TMP_823 \def (S n) in 
-(let TMP_821 \def (S O) in (let TMP_820 \def (S n) in (let TMP_818 \def 
-(le_O_n n) in (let TMP_819 \def (le_n_S O n TMP_818) in (let TMP_822 \def 
-(le_n_S TMP_821 TMP_820 TMP_819) in (le_S_n TMP_824 TMP_823 TMP_822))))))))) 
-in (let TMP_817 \def (\lambda (n0: nat).(\lambda (_: (((eq bool (match n0 
-with [O \Rightarrow true | (S m) \Rightarrow (blt m n)]) true) \to (lt n0 (S 
-n))))).(\lambda (H1: (eq bool (blt n0 n) true)).(let TMP_816 \def (H n0 H1) 
-in (lt_n_S n0 n TMP_816))))) in (nat_ind TMP_827 TMP_825 TMP_817 y))))))) in 
-(nat_ind TMP_834 TMP_833 TMP_828 x)))).
+ \lambda (x: nat).(let TMP_1 \def (\lambda (n: nat).(\forall (y: nat).((eq 
+bool (blt y n) true) \to (lt y n)))) in (let TMP_6 \def (\lambda (y: 
+nat).(\lambda (H: (eq bool (blt y O) true)).(let H0 \def (match H with 
+[refl_equal \Rightarrow (\lambda (H0: (eq bool (blt y O) true)).(let TMP_2 
+\def (blt y O) in (let TMP_3 \def (\lambda (e: bool).(match e with [true 
+\Rightarrow False | false \Rightarrow True])) in (let H1 \def (eq_ind bool 
+TMP_2 TMP_3 I true H0) in (let TMP_4 \def (lt y O) in (False_ind TMP_4 
+H1))))))]) in (let TMP_5 \def (refl_equal bool true) in (H0 TMP_5))))) in 
+(let TMP_19 \def (\lambda (n: nat).(\lambda (H: ((\forall (y: nat).((eq bool 
+(blt y n) true) \to (lt y n))))).(\lambda (y: nat).(let TMP_8 \def (\lambda 
+(n0: nat).((eq bool (blt n0 (S n)) true) \to (let TMP_7 \def (S n) in (lt n0 
+TMP_7)))) in (let TMP_16 \def (\lambda (_: (eq bool true true)).(let TMP_9 
+\def (S O) in (let TMP_10 \def (S n) in (let TMP_11 \def (S O) in (let TMP_12 
+\def (S n) in (let TMP_13 \def (le_O_n n) in (let TMP_14 \def (le_n_S O n 
+TMP_13) in (let TMP_15 \def (le_n_S TMP_11 TMP_12 TMP_14) in (le_S_n TMP_9 
+TMP_10 TMP_15))))))))) in (let TMP_18 \def (\lambda (n0: nat).(\lambda (_: 
+(((eq bool (match n0 with [O \Rightarrow true | (S m) \Rightarrow (blt m n)]) 
+true) \to (lt n0 (S n))))).(\lambda (H1: (eq bool (blt n0 n) true)).(let 
+TMP_17 \def (H n0 H1) in (lt_n_S n0 n TMP_17))))) in (nat_ind TMP_8 TMP_16 
+TMP_18 y))))))) in (nat_ind TMP_1 TMP_6 TMP_19 x)))).
 
 theorem bge_le:
  \forall (x: nat).(\forall (y: nat).((eq bool (blt y x) false) \to (le x y)))
 \def
- \lambda (x: nat).(let TMP_854 \def (\lambda (n: nat).(\forall (y: nat).((eq 
-bool (blt y n) false) \to (le n y)))) in (let TMP_853 \def (\lambda (y: 
-nat).(\lambda (_: (eq bool (blt y O) false)).(le_O_n y))) in (let TMP_852 
-\def (\lambda (n: nat).(\lambda (H: ((\forall (y: nat).((eq bool (blt y n) 
-false) \to (le n y))))).(\lambda (y: nat).(let TMP_851 \def (\lambda (n0: 
-nat).((eq bool (blt n0 (S n)) false) \to (let TMP_850 \def (S n) in (le 
-TMP_850 n0)))) in (let TMP_849 \def (\lambda (H0: (eq bool (blt O (S n)) 
-false)).(let H1 \def (match H0 in eq with [refl_equal \Rightarrow (\lambda 
-(H1: (eq bool (blt O (S n)) false)).(let TMP_844 \def (S n) in (let TMP_845 
-\def (blt O TMP_844) in (let TMP_843 \def (\lambda (e: bool).(match e in bool 
-with [true \Rightarrow True | false \Rightarrow False])) in (let H2 \def 
-(eq_ind bool TMP_845 TMP_843 I false H1) in (let TMP_846 \def (S n) in (let 
-TMP_847 \def (le TMP_846 O) in (False_ind TMP_847 H2))))))))]) in (let 
-TMP_848 \def (refl_equal bool false) in (H1 TMP_848)))) in (let TMP_842 \def 
-(\lambda (n0: nat).(\lambda (_: (((eq bool (blt n0 (S n)) false) \to (le (S 
-n) n0)))).(\lambda (H1: (eq bool (blt (S n0) (S n)) false)).(let TMP_841 \def 
-(S n) in (let TMP_840 \def (S n0) in (let TMP_838 \def (S n) in (let TMP_837 
-\def (S n0) in (let TMP_835 \def (H n0 H1) in (let TMP_836 \def (le_n_S n n0 
-TMP_835) in (let TMP_839 \def (le_n_S TMP_838 TMP_837 TMP_836) in (le_S_n 
-TMP_841 TMP_840 TMP_839))))))))))) in (nat_ind TMP_851 TMP_849 TMP_842 
-y))))))) in (nat_ind TMP_854 TMP_853 TMP_852 x)))).
+ \lambda (x: nat).(let TMP_1 \def (\lambda (n: nat).(\forall (y: nat).((eq 
+bool (blt y n) false) \to (le n y)))) in (let TMP_2 \def (\lambda (y: 
+nat).(\lambda (_: (eq bool (blt y O) false)).(le_O_n y))) in (let TMP_20 \def 
+(\lambda (n: nat).(\lambda (H: ((\forall (y: nat).((eq bool (blt y n) false) 
+\to (le n y))))).(\lambda (y: nat).(let TMP_4 \def (\lambda (n0: nat).((eq 
+bool (blt n0 (S n)) false) \to (let TMP_3 \def (S n) in (le TMP_3 n0)))) in 
+(let TMP_11 \def (\lambda (H0: (eq bool (blt O (S n)) false)).(let H1 \def 
+(match H0 with [refl_equal \Rightarrow (\lambda (H1: (eq bool (blt O (S n)) 
+false)).(let TMP_5 \def (S n) in (let TMP_6 \def (blt O TMP_5) in (let TMP_7 
+\def (\lambda (e: bool).(match e with [true \Rightarrow True | false 
+\Rightarrow False])) in (let H2 \def (eq_ind bool TMP_6 TMP_7 I false H1) in 
+(let TMP_8 \def (S n) in (let TMP_9 \def (le TMP_8 O) in (False_ind TMP_9 
+H2))))))))]) in (let TMP_10 \def (refl_equal bool false) in (H1 TMP_10)))) in 
+(let TMP_19 \def (\lambda (n0: nat).(\lambda (_: (((eq bool (blt n0 (S n)) 
+false) \to (le (S n) n0)))).(\lambda (H1: (eq bool (blt (S n0) (S n)) 
+false)).(let TMP_12 \def (S n) in (let TMP_13 \def (S n0) in (let TMP_14 \def 
+(S n) in (let TMP_15 \def (S n0) in (let TMP_16 \def (H n0 H1) in (let TMP_17 
+\def (le_n_S n n0 TMP_16) in (let TMP_18 \def (le_n_S TMP_14 TMP_15 TMP_17) 
+in (le_S_n TMP_12 TMP_13 TMP_18))))))))))) in (nat_ind TMP_4 TMP_11 TMP_19 
+y))))))) in (nat_ind TMP_1 TMP_2 TMP_20 x)))).
 
index 393440c2591179487cddcf5afbc2b6c2b55a7ed6..637a865983c21346706b1fcb04c711d5c1c8fe93 100644 (file)
@@ -20,212 +20,204 @@ theorem nat_dec:
  \forall (n1: nat).(\forall (n2: nat).(or (eq nat n1 n2) ((eq nat n1 n2) \to 
 (\forall (P: Prop).P))))
 \def
- \lambda (n1: nat).(let TMP_81 \def (\lambda (n: nat).(\forall (n2: nat).(let 
-TMP_80 \def (eq nat n n2) in (let TMP_79 \def ((eq nat n n2) \to (\forall (P: 
-Prop).P)) in (or TMP_80 TMP_79))))) in (let TMP_78 \def (\lambda (n2: 
-nat).(let TMP_77 \def (\lambda (n: nat).(let TMP_76 \def (eq nat O n) in (let 
-TMP_75 \def ((eq nat O n) \to (\forall (P: Prop).P)) in (or TMP_76 TMP_75)))) 
-in (let TMP_73 \def (eq nat O O) in (let TMP_72 \def ((eq nat O O) \to 
-(\forall (P: Prop).P)) in (let TMP_71 \def (refl_equal nat O) in (let TMP_74 
-\def (or_introl TMP_73 TMP_72 TMP_71) in (let TMP_70 \def (\lambda (n: 
-nat).(\lambda (_: (or (eq nat O n) ((eq nat O n) \to (\forall (P: 
-Prop).P)))).(let TMP_68 \def (S n) in (let TMP_69 \def (eq nat O TMP_68) in 
-(let TMP_67 \def ((eq nat O (S n)) \to (\forall (P: Prop).P)) in (let TMP_66 
-\def (\lambda (H0: (eq nat O (S n))).(\lambda (P: Prop).(let TMP_65 \def 
-(\lambda (ee: nat).(match ee in nat with [O \Rightarrow True | (S _) 
-\Rightarrow False])) in (let TMP_64 \def (S n) in (let H1 \def (eq_ind nat O 
-TMP_65 I TMP_64 H0) in (False_ind P H1)))))) in (or_intror TMP_69 TMP_67 
-TMP_66))))))) in (nat_ind TMP_77 TMP_74 TMP_70 n2)))))))) in (let TMP_63 \def 
-(\lambda (n: nat).(\lambda (H: ((\forall (n2: nat).(or (eq nat n n2) ((eq nat 
-n n2) \to (\forall (P: Prop).P)))))).(\lambda (n2: nat).(let TMP_62 \def 
-(\lambda (n0: nat).(let TMP_60 \def (S n) in (let TMP_61 \def (eq nat TMP_60 
-n0) in (let TMP_59 \def ((eq nat (S n) n0) \to (\forall (P: Prop).P)) in (or 
-TMP_61 TMP_59))))) in (let TMP_56 \def (S n) in (let TMP_57 \def (eq nat 
-TMP_56 O) in (let TMP_55 \def ((eq nat (S n) O) \to (\forall (P: Prop).P)) in 
-(let TMP_54 \def (\lambda (H0: (eq nat (S n) O)).(\lambda (P: Prop).(let 
-TMP_53 \def (S n) in (let TMP_52 \def (\lambda (ee: nat).(match ee in nat 
-with [O \Rightarrow False | (S _) \Rightarrow True])) in (let H1 \def (eq_ind 
-nat TMP_53 TMP_52 I O H0) in (False_ind P H1)))))) in (let TMP_58 \def 
-(or_intror TMP_57 TMP_55 TMP_54) in (let TMP_51 \def (\lambda (n0: 
-nat).(\lambda (H0: (or (eq nat (S n) n0) ((eq nat (S n) n0) \to (\forall (P: 
-Prop).P)))).(let TMP_50 \def (eq nat n n0) in (let TMP_49 \def ((eq nat n n0) 
-\to (\forall (P: Prop).P)) in (let TMP_46 \def (S n) in (let TMP_45 \def (S 
-n0) in (let TMP_47 \def (eq nat TMP_46 TMP_45) in (let TMP_44 \def ((eq nat 
-(S n) (S n0)) \to (\forall (P: Prop).P)) in (let TMP_48 \def (or TMP_47 
-TMP_44) in (let TMP_43 \def (\lambda (H1: (eq nat n n0)).(let TMP_30 \def 
-(\lambda (n3: nat).(let TMP_28 \def (S n) in (let TMP_29 \def (eq nat TMP_28 
-n3) in (let TMP_27 \def ((eq nat (S n) n3) \to (\forall (P: Prop).P)) in (or 
-TMP_29 TMP_27))))) in (let H2 \def (eq_ind_r nat n0 TMP_30 H0 n H1) in (let 
-TMP_42 \def (\lambda (n3: nat).(let TMP_40 \def (S n) in (let TMP_39 \def (S 
-n3) in (let TMP_41 \def (eq nat TMP_40 TMP_39) in (let TMP_38 \def ((eq nat 
-(S n) (S n3)) \to (\forall (P: Prop).P)) in (or TMP_41 TMP_38)))))) in (let 
-TMP_35 \def (S n) in (let TMP_34 \def (S n) in (let TMP_36 \def (eq nat 
-TMP_35 TMP_34) in (let TMP_33 \def ((eq nat (S n) (S n)) \to (\forall (P: 
-Prop).P)) in (let TMP_31 \def (S n) in (let TMP_32 \def (refl_equal nat 
-TMP_31) in (let TMP_37 \def (or_introl TMP_36 TMP_33 TMP_32) in (eq_ind nat n 
-TMP_42 TMP_37 n0 H1)))))))))))) in (let TMP_26 \def (\lambda (H1: (((eq nat n 
-n0) \to (\forall (P: Prop).P)))).(let TMP_24 \def (S n) in (let TMP_23 \def 
-(S n0) in (let TMP_25 \def (eq nat TMP_24 TMP_23) in (let TMP_22 \def ((eq 
-nat (S n) (S n0)) \to (\forall (P: Prop).P)) in (let TMP_21 \def (\lambda 
-(H2: (eq nat (S n) (S n0))).(\lambda (P: Prop).(let TMP_14 \def (\lambda (e: 
-nat).(match e in nat with [O \Rightarrow n | (S n3) \Rightarrow n3])) in (let 
-TMP_13 \def (S n) in (let TMP_12 \def (S n0) in (let H3 \def (f_equal nat nat 
-TMP_14 TMP_13 TMP_12 H2) in (let TMP_15 \def (\lambda (n3: nat).((eq nat n 
-n3) \to (\forall (P0: Prop).P0))) in (let H4 \def (eq_ind_r nat n0 TMP_15 H1 
-n H3) in (let TMP_19 \def (\lambda (n3: nat).(let TMP_17 \def (S n) in (let 
-TMP_18 \def (eq nat TMP_17 n3) in (let TMP_16 \def ((eq nat (S n) n3) \to 
-(\forall (P0: Prop).P0)) in (or TMP_18 TMP_16))))) in (let H5 \def (eq_ind_r 
-nat n0 TMP_19 H0 n H3) in (let TMP_20 \def (refl_equal nat n) in (H4 TMP_20 
-P)))))))))))) in (or_intror TMP_25 TMP_22 TMP_21))))))) in (let TMP_11 \def 
-(H n0) in (or_ind TMP_50 TMP_49 TMP_48 TMP_43 TMP_26 TMP_11))))))))))))) in 
-(nat_ind TMP_62 TMP_58 TMP_51 n2))))))))))) in (nat_ind TMP_81 TMP_78 TMP_63 
-n1)))).
+ \lambda (n1: nat).(let TMP_3 \def (\lambda (n: nat).(\forall (n2: nat).(let 
+TMP_1 \def (eq nat n n2) in (let TMP_2 \def ((eq nat n n2) \to (\forall (P: 
+Prop).P)) in (or TMP_1 TMP_2))))) in (let TMP_18 \def (\lambda (n2: nat).(let 
+TMP_6 \def (\lambda (n: nat).(let TMP_4 \def (eq nat O n) in (let TMP_5 \def 
+((eq nat O n) \to (\forall (P: Prop).P)) in (or TMP_4 TMP_5)))) in (let TMP_7 
+\def (eq nat O O) in (let TMP_8 \def ((eq nat O O) \to (\forall (P: Prop).P)) 
+in (let TMP_9 \def (refl_equal nat O) in (let TMP_10 \def (or_introl TMP_7 
+TMP_8 TMP_9) in (let TMP_17 \def (\lambda (n: nat).(\lambda (_: (or (eq nat O 
+n) ((eq nat O n) \to (\forall (P: Prop).P)))).(let TMP_11 \def (S n) in (let 
+TMP_12 \def (eq nat O TMP_11) in (let TMP_13 \def ((eq nat O (S n)) \to 
+(\forall (P: Prop).P)) in (let TMP_16 \def (\lambda (H0: (eq nat O (S 
+n))).(\lambda (P: Prop).(let TMP_14 \def (\lambda (ee: nat).(match ee with [O 
+\Rightarrow True | (S _) \Rightarrow False])) in (let TMP_15 \def (S n) in 
+(let H1 \def (eq_ind nat O TMP_14 I TMP_15 H0) in (False_ind P H1)))))) in 
+(or_intror TMP_12 TMP_13 TMP_16))))))) in (nat_ind TMP_6 TMP_10 TMP_17 
+n2)))))))) in (let TMP_71 \def (\lambda (n: nat).(\lambda (H: ((\forall (n2: 
+nat).(or (eq nat n n2) ((eq nat n n2) \to (\forall (P: Prop).P)))))).(\lambda 
+(n2: nat).(let TMP_22 \def (\lambda (n0: nat).(let TMP_19 \def (S n) in (let 
+TMP_20 \def (eq nat TMP_19 n0) in (let TMP_21 \def ((eq nat (S n) n0) \to 
+(\forall (P: Prop).P)) in (or TMP_20 TMP_21))))) in (let TMP_23 \def (S n) in 
+(let TMP_24 \def (eq nat TMP_23 O) in (let TMP_25 \def ((eq nat (S n) O) \to 
+(\forall (P: Prop).P)) in (let TMP_28 \def (\lambda (H0: (eq nat (S n) 
+O)).(\lambda (P: Prop).(let TMP_26 \def (S n) in (let TMP_27 \def (\lambda 
+(ee: nat).(match ee with [O \Rightarrow False | (S _) \Rightarrow True])) in 
+(let H1 \def (eq_ind nat TMP_26 TMP_27 I O H0) in (False_ind P H1)))))) in 
+(let TMP_29 \def (or_intror TMP_24 TMP_25 TMP_28) in (let TMP_70 \def 
+(\lambda (n0: nat).(\lambda (H0: (or (eq nat (S n) n0) ((eq nat (S n) n0) \to 
+(\forall (P: Prop).P)))).(let TMP_30 \def (eq nat n n0) in (let TMP_31 \def 
+((eq nat n n0) \to (\forall (P: Prop).P)) in (let TMP_32 \def (S n) in (let 
+TMP_33 \def (S n0) in (let TMP_34 \def (eq nat TMP_32 TMP_33) in (let TMP_35 
+\def ((eq nat (S n) (S n0)) \to (\forall (P: Prop).P)) in (let TMP_36 \def 
+(or TMP_34 TMP_35) in (let TMP_53 \def (\lambda (H1: (eq nat n n0)).(let 
+TMP_40 \def (\lambda (n3: nat).(let TMP_37 \def (S n) in (let TMP_38 \def (eq 
+nat TMP_37 n3) in (let TMP_39 \def ((eq nat (S n) n3) \to (\forall (P: 
+Prop).P)) in (or TMP_38 TMP_39))))) in (let H2 \def (eq_ind_r nat n0 TMP_40 
+H0 n H1) in (let TMP_45 \def (\lambda (n3: nat).(let TMP_41 \def (S n) in 
+(let TMP_42 \def (S n3) in (let TMP_43 \def (eq nat TMP_41 TMP_42) in (let 
+TMP_44 \def ((eq nat (S n) (S n3)) \to (\forall (P: Prop).P)) in (or TMP_43 
+TMP_44)))))) in (let TMP_46 \def (S n) in (let TMP_47 \def (S n) in (let 
+TMP_48 \def (eq nat TMP_46 TMP_47) in (let TMP_49 \def ((eq nat (S n) (S n)) 
+\to (\forall (P: Prop).P)) in (let TMP_50 \def (S n) in (let TMP_51 \def 
+(refl_equal nat TMP_50) in (let TMP_52 \def (or_introl TMP_48 TMP_49 TMP_51) 
+in (eq_ind nat n TMP_45 TMP_52 n0 H1)))))))))))) in (let TMP_68 \def (\lambda 
+(H1: (((eq nat n n0) \to (\forall (P: Prop).P)))).(let TMP_54 \def (S n) in 
+(let TMP_55 \def (S n0) in (let TMP_56 \def (eq nat TMP_54 TMP_55) in (let 
+TMP_57 \def ((eq nat (S n) (S n0)) \to (\forall (P: Prop).P)) in (let TMP_67 
+\def (\lambda (H2: (eq nat (S n) (S n0))).(\lambda (P: Prop).(let TMP_58 \def 
+(\lambda (e: nat).(match e with [O \Rightarrow n | (S n3) \Rightarrow n3])) 
+in (let TMP_59 \def (S n) in (let TMP_60 \def (S n0) in (let H3 \def (f_equal 
+nat nat TMP_58 TMP_59 TMP_60 H2) in (let TMP_61 \def (\lambda (n3: nat).((eq 
+nat n n3) \to (\forall (P0: Prop).P0))) in (let H4 \def (eq_ind_r nat n0 
+TMP_61 H1 n H3) in (let TMP_65 \def (\lambda (n3: nat).(let TMP_62 \def (S n) 
+in (let TMP_63 \def (eq nat TMP_62 n3) in (let TMP_64 \def ((eq nat (S n) n3) 
+\to (\forall (P0: Prop).P0)) in (or TMP_63 TMP_64))))) in (let H5 \def 
+(eq_ind_r nat n0 TMP_65 H0 n H3) in (let TMP_66 \def (refl_equal nat n) in 
+(H4 TMP_66 P)))))))))))) in (or_intror TMP_56 TMP_57 TMP_67))))))) in (let 
+TMP_69 \def (H n0) in (or_ind TMP_30 TMP_31 TMP_36 TMP_53 TMP_68 
+TMP_69))))))))))))) in (nat_ind TMP_22 TMP_29 TMP_70 n2))))))))))) in 
+(nat_ind TMP_3 TMP_18 TMP_71 n1)))).
 
 theorem simpl_plus_r:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).((eq nat (plus m n) 
 (plus p n)) \to (eq nat m p))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(\lambda (H: (eq nat 
-(plus m n) (plus p n))).(let TMP_92 \def (plus m n) in (let TMP_91 \def 
-(\lambda (n0: nat).(let TMP_90 \def (plus n p) in (eq nat n0 TMP_90))) in 
-(let TMP_88 \def (plus p n) in (let TMP_87 \def (\lambda (n0: nat).(let 
-TMP_86 \def (plus n p) in (eq nat n0 TMP_86))) in (let TMP_85 \def (plus_sym 
-p n) in (let TMP_84 \def (plus m n) in (let TMP_89 \def (eq_ind_r nat TMP_88 
-TMP_87 TMP_85 TMP_84 H) in (let TMP_83 \def (plus n m) in (let TMP_82 \def 
-(plus_sym n m) in (let TMP_93 \def (eq_ind_r nat TMP_92 TMP_91 TMP_89 TMP_83 
-TMP_82) in (simpl_plus_l n m p TMP_93)))))))))))))).
+(plus m n) (plus p n))).(let TMP_1 \def (plus m n) in (let TMP_3 \def 
+(\lambda (n0: nat).(let TMP_2 \def (plus n p) in (eq nat n0 TMP_2))) in (let 
+TMP_4 \def (plus p n) in (let TMP_6 \def (\lambda (n0: nat).(let TMP_5 \def 
+(plus n p) in (eq nat n0 TMP_5))) in (let TMP_7 \def (plus_sym p n) in (let 
+TMP_8 \def (plus m n) in (let TMP_9 \def (eq_ind_r nat TMP_4 TMP_6 TMP_7 
+TMP_8 H) in (let TMP_10 \def (plus n m) in (let TMP_11 \def (plus_sym n m) in 
+(let TMP_12 \def (eq_ind_r nat TMP_1 TMP_3 TMP_9 TMP_10 TMP_11) in 
+(simpl_plus_l n m p TMP_12)))))))))))))).
 
 theorem minus_Sx_Sy:
  \forall (x: nat).(\forall (y: nat).(eq nat (minus (S x) (S y)) (minus x y)))
 \def
- \lambda (x: nat).(\lambda (y: nat).(let TMP_94 \def (minus x y) in 
-(refl_equal nat TMP_94))).
+ \lambda (x: nat).(\lambda (y: nat).(let TMP_1 \def (minus x y) in 
+(refl_equal nat TMP_1))).
 
 theorem minus_plus_r:
  \forall (m: nat).(\forall (n: nat).(eq nat (minus (plus m n) n) m))
 \def
- \lambda (m: nat).(\lambda (n: nat).(let TMP_100 \def (plus n m) in (let 
-TMP_99 \def (\lambda (n0: nat).(let TMP_98 \def (minus n0 n) in (eq nat 
-TMP_98 m))) in (let TMP_97 \def (minus_plus n m) in (let TMP_96 \def (plus m 
-n) in (let TMP_95 \def (plus_sym m n) in (eq_ind_r nat TMP_100 TMP_99 TMP_97 
-TMP_96 TMP_95))))))).
+ \lambda (m: nat).(\lambda (n: nat).(let TMP_1 \def (plus n m) in (let TMP_3 
+\def (\lambda (n0: nat).(let TMP_2 \def (minus n0 n) in (eq nat TMP_2 m))) in 
+(let TMP_4 \def (minus_plus n m) in (let TMP_5 \def (plus m n) in (let TMP_6 
+\def (plus_sym m n) in (eq_ind_r nat TMP_1 TMP_3 TMP_4 TMP_5 TMP_6))))))).
 
 theorem plus_permute_2_in_3:
  \forall (x: nat).(\forall (y: nat).(\forall (z: nat).(eq nat (plus (plus x 
 y) z) (plus (plus x z) y))))
 \def
- \lambda (x: nat).(\lambda (y: nat).(\lambda (z: nat).(let TMP_127 \def (plus 
-y z) in (let TMP_128 \def (plus x TMP_127) in (let TMP_126 \def (\lambda (n: 
-nat).(let TMP_124 \def (plus x z) in (let TMP_125 \def (plus TMP_124 y) in 
-(eq nat n TMP_125)))) in (let TMP_122 \def (plus z y) in (let TMP_121 \def 
-(\lambda (n: nat).(let TMP_120 \def (plus x n) in (let TMP_118 \def (plus x 
-z) in (let TMP_119 \def (plus TMP_118 y) in (eq nat TMP_120 TMP_119))))) in 
-(let TMP_115 \def (plus x z) in (let TMP_116 \def (plus TMP_115 y) in (let 
-TMP_114 \def (\lambda (n: nat).(let TMP_112 \def (plus x z) in (let TMP_113 
-\def (plus TMP_112 y) in (eq nat n TMP_113)))) in (let TMP_109 \def (plus x 
-z) in (let TMP_110 \def (plus TMP_109 y) in (let TMP_111 \def (refl_equal nat 
-TMP_110) in (let TMP_107 \def (plus z y) in (let TMP_108 \def (plus x 
-TMP_107) in (let TMP_106 \def (plus_assoc_r x z y) in (let TMP_117 \def 
-(eq_ind nat TMP_116 TMP_114 TMP_111 TMP_108 TMP_106) in (let TMP_105 \def 
-(plus y z) in (let TMP_104 \def (plus_sym y z) in (let TMP_123 \def (eq_ind_r 
-nat TMP_122 TMP_121 TMP_117 TMP_105 TMP_104) in (let TMP_102 \def (plus x y) 
-in (let TMP_103 \def (plus TMP_102 z) in (let TMP_101 \def (plus_assoc_r x y 
-z) in (eq_ind_r nat TMP_128 TMP_126 TMP_123 TMP_103 
-TMP_101)))))))))))))))))))))))).
+ \lambda (x: nat).(\lambda (y: nat).(\lambda (z: nat).(let TMP_1 \def (plus y 
+z) in (let TMP_2 \def (plus x TMP_1) in (let TMP_5 \def (\lambda (n: 
+nat).(let TMP_3 \def (plus x z) in (let TMP_4 \def (plus TMP_3 y) in (eq nat 
+n TMP_4)))) in (let TMP_6 \def (plus z y) in (let TMP_10 \def (\lambda (n: 
+nat).(let TMP_7 \def (plus x n) in (let TMP_8 \def (plus x z) in (let TMP_9 
+\def (plus TMP_8 y) in (eq nat TMP_7 TMP_9))))) in (let TMP_11 \def (plus x 
+z) in (let TMP_12 \def (plus TMP_11 y) in (let TMP_15 \def (\lambda (n: 
+nat).(let TMP_13 \def (plus x z) in (let TMP_14 \def (plus TMP_13 y) in (eq 
+nat n TMP_14)))) in (let TMP_16 \def (plus x z) in (let TMP_17 \def (plus 
+TMP_16 y) in (let TMP_18 \def (refl_equal nat TMP_17) in (let TMP_19 \def 
+(plus z y) in (let TMP_20 \def (plus x TMP_19) in (let TMP_21 \def 
+(plus_assoc_r x z y) in (let TMP_22 \def (eq_ind nat TMP_12 TMP_15 TMP_18 
+TMP_20 TMP_21) in (let TMP_23 \def (plus y z) in (let TMP_24 \def (plus_sym y 
+z) in (let TMP_25 \def (eq_ind_r nat TMP_6 TMP_10 TMP_22 TMP_23 TMP_24) in 
+(let TMP_26 \def (plus x y) in (let TMP_27 \def (plus TMP_26 z) in (let 
+TMP_28 \def (plus_assoc_r x y z) in (eq_ind_r nat TMP_2 TMP_5 TMP_25 TMP_27 
+TMP_28)))))))))))))))))))))))).
 
 theorem plus_permute_2_in_3_assoc:
  \forall (n: nat).(\forall (h: nat).(\forall (k: nat).(eq nat (plus (plus n 
 h) k) (plus n (plus k h)))))
 \def
- \lambda (n: nat).(\lambda (h: nat).(\lambda (k: nat).(let TMP_147 \def (plus 
-n k) in (let TMP_148 \def (plus TMP_147 h) in (let TMP_146 \def (\lambda (n0: 
-nat).(let TMP_144 \def (plus k h) in (let TMP_145 \def (plus n TMP_144) in 
-(eq nat n0 TMP_145)))) in (let TMP_141 \def (plus n k) in (let TMP_142 \def 
-(plus TMP_141 h) in (let TMP_140 \def (\lambda (n0: nat).(let TMP_138 \def 
-(plus n k) in (let TMP_139 \def (plus TMP_138 h) in (eq nat TMP_139 n0)))) in 
-(let TMP_135 \def (plus n k) in (let TMP_136 \def (plus TMP_135 h) in (let 
-TMP_137 \def (refl_equal nat TMP_136) in (let TMP_133 \def (plus k h) in (let 
-TMP_134 \def (plus n TMP_133) in (let TMP_132 \def (plus_assoc_l n k h) in 
-(let TMP_143 \def (eq_ind_r nat TMP_142 TMP_140 TMP_137 TMP_134 TMP_132) in 
-(let TMP_130 \def (plus n h) in (let TMP_131 \def (plus TMP_130 k) in (let 
-TMP_129 \def (plus_permute_2_in_3 n h k) in (eq_ind_r nat TMP_148 TMP_146 
-TMP_143 TMP_131 TMP_129))))))))))))))))))).
+ \lambda (n: nat).(\lambda (h: nat).(\lambda (k: nat).(let TMP_1 \def (plus n 
+k) in (let TMP_2 \def (plus TMP_1 h) in (let TMP_5 \def (\lambda (n0: 
+nat).(let TMP_3 \def (plus k h) in (let TMP_4 \def (plus n TMP_3) in (eq nat 
+n0 TMP_4)))) in (let TMP_6 \def (plus n k) in (let TMP_7 \def (plus TMP_6 h) 
+in (let TMP_10 \def (\lambda (n0: nat).(let TMP_8 \def (plus n k) in (let 
+TMP_9 \def (plus TMP_8 h) in (eq nat TMP_9 n0)))) in (let TMP_11 \def (plus n 
+k) in (let TMP_12 \def (plus TMP_11 h) in (let TMP_13 \def (refl_equal nat 
+TMP_12) in (let TMP_14 \def (plus k h) in (let TMP_15 \def (plus n TMP_14) in 
+(let TMP_16 \def (plus_assoc_l n k h) in (let TMP_17 \def (eq_ind_r nat TMP_7 
+TMP_10 TMP_13 TMP_15 TMP_16) in (let TMP_18 \def (plus n h) in (let TMP_19 
+\def (plus TMP_18 k) in (let TMP_20 \def (plus_permute_2_in_3 n h k) in 
+(eq_ind_r nat TMP_2 TMP_5 TMP_17 TMP_19 TMP_20))))))))))))))))))).
 
 theorem plus_O:
  \forall (x: nat).(\forall (y: nat).((eq nat (plus x y) O) \to (land (eq nat 
 x O) (eq nat y O))))
 \def
- \lambda (x: nat).(let TMP_164 \def (\lambda (n: nat).(\forall (y: nat).((eq 
-nat (plus n y) O) \to (let TMP_163 \def (eq nat n O) in (let TMP_162 \def (eq 
-nat y O) in (land TMP_163 TMP_162)))))) in (let TMP_161 \def (\lambda (y: 
-nat).(\lambda (H: (eq nat (plus O y) O)).(let TMP_160 \def (eq nat O O) in 
-(let TMP_159 \def (eq nat y O) in (let TMP_158 \def (refl_equal nat O) in 
-(conj TMP_160 TMP_159 TMP_158 H)))))) in (let TMP_157 \def (\lambda (n: 
-nat).(\lambda (_: ((\forall (y: nat).((eq nat (plus n y) O) \to (land (eq nat 
-n O) (eq nat y O)))))).(\lambda (y: nat).(\lambda (H0: (eq nat (plus (S n) y) 
-O)).(let H1 \def (match H0 in eq with [refl_equal \Rightarrow (\lambda (H1: 
-(eq nat (plus (S n) y) O)).(let TMP_150 \def (S n) in (let TMP_151 \def (plus 
-TMP_150 y) in (let TMP_149 \def (\lambda (e: nat).(match e in nat with [O 
-\Rightarrow False | (S _) \Rightarrow True])) in (let H2 \def (eq_ind nat 
-TMP_151 TMP_149 I O H1) in (let TMP_153 \def (S n) in (let TMP_154 \def (eq 
-nat TMP_153 O) in (let TMP_152 \def (eq nat y O) in (let TMP_155 \def (land 
-TMP_154 TMP_152) in (False_ind TMP_155 H2))))))))))]) in (let TMP_156 \def 
-(refl_equal nat O) in (H1 TMP_156))))))) in (nat_ind TMP_164 TMP_161 TMP_157 
+ \lambda (x: nat).(let TMP_3 \def (\lambda (n: nat).(\forall (y: nat).((eq 
+nat (plus n y) O) \to (let TMP_1 \def (eq nat n O) in (let TMP_2 \def (eq nat 
+y O) in (land TMP_1 TMP_2)))))) in (let TMP_7 \def (\lambda (y: nat).(\lambda 
+(H: (eq nat (plus O y) O)).(let TMP_4 \def (eq nat O O) in (let TMP_5 \def 
+(eq nat y O) in (let TMP_6 \def (refl_equal nat O) in (conj TMP_4 TMP_5 TMP_6 
+H)))))) in (let TMP_16 \def (\lambda (n: nat).(\lambda (_: ((\forall (y: 
+nat).((eq nat (plus n y) O) \to (land (eq nat n O) (eq nat y O)))))).(\lambda 
+(y: nat).(\lambda (H0: (eq nat (plus (S n) y) O)).(let H1 \def (match H0 with 
+[refl_equal \Rightarrow (\lambda (H1: (eq nat (plus (S n) y) O)).(let TMP_8 
+\def (S n) in (let TMP_9 \def (plus TMP_8 y) in (let TMP_10 \def (\lambda (e: 
+nat).(match e with [O \Rightarrow False | (S _) \Rightarrow True])) in (let 
+H2 \def (eq_ind nat TMP_9 TMP_10 I O H1) in (let TMP_11 \def (S n) in (let 
+TMP_12 \def (eq nat TMP_11 O) in (let TMP_13 \def (eq nat y O) in (let TMP_14 
+\def (land TMP_12 TMP_13) in (False_ind TMP_14 H2))))))))))]) in (let TMP_15 
+\def (refl_equal nat O) in (H1 TMP_15))))))) in (nat_ind TMP_3 TMP_7 TMP_16 
 x)))).
 
 theorem minus_Sx_SO:
  \forall (x: nat).(eq nat (minus (S x) (S O)) x)
 \def
- \lambda (x: nat).(let TMP_168 \def (\lambda (n: nat).(eq nat n x)) in (let 
-TMP_167 \def (refl_equal nat x) in (let TMP_166 \def (minus x O) in (let 
-TMP_165 \def (minus_n_O x) in (eq_ind nat x TMP_168 TMP_167 TMP_166 
-TMP_165))))).
+ \lambda (x: nat).(let TMP_1 \def (\lambda (n: nat).(eq nat n x)) in (let 
+TMP_2 \def (refl_equal nat x) in (let TMP_3 \def (minus x O) in (let TMP_4 
+\def (minus_n_O x) in (eq_ind nat x TMP_1 TMP_2 TMP_3 TMP_4))))).
 
 theorem nat_dec_neg:
  \forall (i: nat).(\forall (j: nat).(or (not (eq nat i j)) (eq nat i j)))
 \def
- \lambda (i: nat).(let TMP_236 \def (\lambda (n: nat).(\forall (j: nat).(let 
-TMP_234 \def (eq nat n j) in (let TMP_235 \def (not TMP_234) in (let TMP_233 
-\def (eq nat n j) in (or TMP_235 TMP_233)))))) in (let TMP_232 \def (\lambda 
-(j: nat).(let TMP_231 \def (\lambda (n: nat).(let TMP_229 \def (eq nat O n) 
-in (let TMP_230 \def (not TMP_229) in (let TMP_228 \def (eq nat O n) in (or 
-TMP_230 TMP_228))))) in (let TMP_225 \def (eq nat O O) in (let TMP_226 \def 
-(not TMP_225) in (let TMP_224 \def (eq nat O O) in (let TMP_223 \def 
-(refl_equal nat O) in (let TMP_227 \def (or_intror TMP_226 TMP_224 TMP_223) 
-in (let TMP_222 \def (\lambda (n: nat).(\lambda (_: (or (not (eq nat O n)) 
-(eq nat O n))).(let TMP_219 \def (S n) in (let TMP_220 \def (eq nat O 
-TMP_219) in (let TMP_221 \def (not TMP_220) in (let TMP_217 \def (S n) in 
-(let TMP_218 \def (eq nat O TMP_217) in (let TMP_216 \def (O_S n) in 
-(or_introl TMP_221 TMP_218 TMP_216))))))))) in (nat_ind TMP_231 TMP_227 
-TMP_222 j))))))))) in (let TMP_215 \def (\lambda (n: nat).(\lambda (H: 
+ \lambda (i: nat).(let TMP_4 \def (\lambda (n: nat).(\forall (j: nat).(let 
+TMP_1 \def (eq nat n j) in (let TMP_2 \def (not TMP_1) in (let TMP_3 \def (eq 
+nat n j) in (or TMP_2 TMP_3)))))) in (let TMP_21 \def (\lambda (j: nat).(let 
+TMP_8 \def (\lambda (n: nat).(let TMP_5 \def (eq nat O n) in (let TMP_6 \def 
+(not TMP_5) in (let TMP_7 \def (eq nat O n) in (or TMP_6 TMP_7))))) in (let 
+TMP_9 \def (eq nat O O) in (let TMP_10 \def (not TMP_9) in (let TMP_11 \def 
+(eq nat O O) in (let TMP_12 \def (refl_equal nat O) in (let TMP_13 \def 
+(or_intror TMP_10 TMP_11 TMP_12) in (let TMP_20 \def (\lambda (n: 
+nat).(\lambda (_: (or (not (eq nat O n)) (eq nat O n))).(let TMP_14 \def (S 
+n) in (let TMP_15 \def (eq nat O TMP_14) in (let TMP_16 \def (not TMP_15) in 
+(let TMP_17 \def (S n) in (let TMP_18 \def (eq nat O TMP_17) in (let TMP_19 
+\def (O_S n) in (or_introl TMP_16 TMP_18 TMP_19))))))))) in (nat_ind TMP_8 
+TMP_13 TMP_20 j))))))))) in (let TMP_68 \def (\lambda (n: nat).(\lambda (H: 
 ((\forall (j: nat).(or (not (eq nat n j)) (eq nat n j))))).(\lambda (j: 
-nat).(let TMP_214 \def (\lambda (n0: nat).(let TMP_211 \def (S n) in (let 
-TMP_212 \def (eq nat TMP_211 n0) in (let TMP_213 \def (not TMP_212) in (let 
-TMP_209 \def (S n) in (let TMP_210 \def (eq nat TMP_209 n0) in (or TMP_213 
-TMP_210))))))) in (let TMP_205 \def (S n) in (let TMP_206 \def (eq nat 
-TMP_205 O) in (let TMP_207 \def (not TMP_206) in (let TMP_203 \def (S n) in 
-(let TMP_204 \def (eq nat TMP_203 O) in (let TMP_201 \def (S n) in (let 
-TMP_200 \def (O_S n) in (let TMP_202 \def (sym_not_eq nat O TMP_201 TMP_200) 
-in (let TMP_208 \def (or_introl TMP_207 TMP_204 TMP_202) in (let TMP_199 \def 
-(\lambda (n0: nat).(\lambda (_: (or (not (eq nat (S n) n0)) (eq nat (S n) 
-n0))).(let TMP_197 \def (eq nat n n0) in (let TMP_198 \def (not TMP_197) in 
-(let TMP_196 \def (eq nat n n0) in (let TMP_192 \def (S n) in (let TMP_191 
-\def (S n0) in (let TMP_193 \def (eq nat TMP_192 TMP_191) in (let TMP_194 
-\def (not TMP_193) in (let TMP_189 \def (S n) in (let TMP_188 \def (S n0) in 
-(let TMP_190 \def (eq nat TMP_189 TMP_188) in (let TMP_195 \def (or TMP_194 
-TMP_190) in (let TMP_187 \def (\lambda (H1: (not (eq nat n n0))).(let TMP_184 
-\def (S n) in (let TMP_183 \def (S n0) in (let TMP_185 \def (eq nat TMP_184 
-TMP_183) in (let TMP_186 \def (not TMP_185) in (let TMP_181 \def (S n) in 
-(let TMP_180 \def (S n0) in (let TMP_182 \def (eq nat TMP_181 TMP_180) in 
-(let TMP_179 \def (not_eq_S n n0 H1) in (or_introl TMP_186 TMP_182 
-TMP_179)))))))))) in (let TMP_178 \def (\lambda (H1: (eq nat n n0)).(let 
-TMP_175 \def (S n) in (let TMP_174 \def (S n0) in (let TMP_176 \def (eq nat 
-TMP_175 TMP_174) in (let TMP_177 \def (not TMP_176) in (let TMP_172 \def (S 
-n) in (let TMP_171 \def (S n0) in (let TMP_173 \def (eq nat TMP_172 TMP_171) 
-in (let TMP_170 \def (f_equal nat nat S n n0 H1) in (or_intror TMP_177 
-TMP_173 TMP_170)))))))))) in (let TMP_169 \def (H n0) in (or_ind TMP_198 
-TMP_196 TMP_195 TMP_187 TMP_178 TMP_169))))))))))))))))) in (nat_ind TMP_214 
-TMP_208 TMP_199 j))))))))))))))) in (nat_ind TMP_236 TMP_232 TMP_215 i)))).
+nat).(let TMP_27 \def (\lambda (n0: nat).(let TMP_22 \def (S n) in (let 
+TMP_23 \def (eq nat TMP_22 n0) in (let TMP_24 \def (not TMP_23) in (let 
+TMP_25 \def (S n) in (let TMP_26 \def (eq nat TMP_25 n0) in (or TMP_24 
+TMP_26))))))) in (let TMP_28 \def (S n) in (let TMP_29 \def (eq nat TMP_28 O) 
+in (let TMP_30 \def (not TMP_29) in (let TMP_31 \def (S n) in (let TMP_32 
+\def (eq nat TMP_31 O) in (let TMP_33 \def (S n) in (let TMP_34 \def (O_S n) 
+in (let TMP_35 \def (sym_not_eq nat O TMP_33 TMP_34) in (let TMP_36 \def 
+(or_introl TMP_30 TMP_32 TMP_35) in (let TMP_67 \def (\lambda (n0: 
+nat).(\lambda (_: (or (not (eq nat (S n) n0)) (eq nat (S n) n0))).(let TMP_37 
+\def (eq nat n n0) in (let TMP_38 \def (not TMP_37) in (let TMP_39 \def (eq 
+nat n n0) in (let TMP_40 \def (S n) in (let TMP_41 \def (S n0) in (let TMP_42 
+\def (eq nat TMP_40 TMP_41) in (let TMP_43 \def (not TMP_42) in (let TMP_44 
+\def (S n) in (let TMP_45 \def (S n0) in (let TMP_46 \def (eq nat TMP_44 
+TMP_45) in (let TMP_47 \def (or TMP_43 TMP_46) in (let TMP_56 \def (\lambda 
+(H1: (not (eq nat n n0))).(let TMP_48 \def (S n) in (let TMP_49 \def (S n0) 
+in (let TMP_50 \def (eq nat TMP_48 TMP_49) in (let TMP_51 \def (not TMP_50) 
+in (let TMP_52 \def (S n) in (let TMP_53 \def (S n0) in (let TMP_54 \def (eq 
+nat TMP_52 TMP_53) in (let TMP_55 \def (not_eq_S n n0 H1) in (or_introl 
+TMP_51 TMP_54 TMP_55)))))))))) in (let TMP_65 \def (\lambda (H1: (eq nat n 
+n0)).(let TMP_57 \def (S n) in (let TMP_58 \def (S n0) in (let TMP_59 \def 
+(eq nat TMP_57 TMP_58) in (let TMP_60 \def (not TMP_59) in (let TMP_61 \def 
+(S n) in (let TMP_62 \def (S n0) in (let TMP_63 \def (eq nat TMP_61 TMP_62) 
+in (let TMP_64 \def (f_equal nat nat S n n0 H1) in (or_intror TMP_60 TMP_63 
+TMP_64)))))))))) in (let TMP_66 \def (H n0) in (or_ind TMP_38 TMP_39 TMP_47 
+TMP_56 TMP_65 TMP_66))))))))))))))))) in (nat_ind TMP_27 TMP_36 TMP_67 
+j))))))))))))))) in (nat_ind TMP_4 TMP_21 TMP_68 i)))).
 
 theorem neq_eq_e:
  \forall (i: nat).(\forall (j: nat).(\forall (P: Prop).((((not (eq nat i j)) 
@@ -233,348 +225,337 @@ theorem neq_eq_e:
 \def
  \lambda (i: nat).(\lambda (j: nat).(\lambda (P: Prop).(\lambda (H: (((not 
 (eq nat i j)) \to P))).(\lambda (H0: (((eq nat i j) \to P))).(let o \def 
-(nat_dec_neg i j) in (let TMP_238 \def (eq nat i j) in (let TMP_239 \def (not 
-TMP_238) in (let TMP_237 \def (eq nat i j) in (or_ind TMP_239 TMP_237 P H H0 
+(nat_dec_neg i j) in (let TMP_1 \def (eq nat i j) in (let TMP_2 \def (not 
+TMP_1) in (let TMP_3 \def (eq nat i j) in (or_ind TMP_2 TMP_3 P H H0 
 o))))))))).
 
 theorem le_false:
  \forall (m: nat).(\forall (n: nat).(\forall (P: Prop).((le m n) \to ((le (S 
 n) m) \to P))))
 \def
- \lambda (m: nat).(let TMP_262 \def (\lambda (n: nat).(\forall (n0: 
+ \lambda (m: nat).(let TMP_1 \def (\lambda (n: nat).(\forall (n0: 
 nat).(\forall (P: Prop).((le n n0) \to ((le (S n0) n) \to P))))) in (let 
-TMP_261 \def (\lambda (n: nat).(\lambda (P: Prop).(\lambda (_: (le O 
-n)).(\lambda (H0: (le (S n) O)).(let H1 \def (match H0 in le with [le_n 
-\Rightarrow (\lambda (H1: (eq nat (S n) O)).(let TMP_259 \def (S n) in (let 
-TMP_258 \def (\lambda (e: nat).(match e in nat with [O \Rightarrow False | (S 
-_) \Rightarrow True])) in (let H2 \def (eq_ind nat TMP_259 TMP_258 I O H1) in 
-(False_ind P H2))))) | (le_S m0 H1) \Rightarrow (\lambda (H2: (eq nat (S m0) 
-O)).(let TMP_255 \def (S m0) in (let TMP_254 \def (\lambda (e: nat).(match e 
-in nat with [O \Rightarrow False | (S _) \Rightarrow True])) in (let H3 \def 
-(eq_ind nat TMP_255 TMP_254 I O H2) in (let TMP_256 \def ((le (S n) m0) \to 
-P) in (let TMP_257 \def (False_ind TMP_256 H3) in (TMP_257 H1)))))))]) in 
-(let TMP_260 \def (refl_equal nat O) in (H1 TMP_260))))))) in (let TMP_253 
-\def (\lambda (n: nat).(\lambda (H: ((\forall (n0: nat).(\forall (P: 
-Prop).((le n n0) \to ((le (S n0) n) \to P)))))).(\lambda (n0: nat).(let 
-TMP_252 \def (\lambda (n1: nat).(\forall (P: Prop).((le (S n) n1) \to ((le (S 
-n1) (S n)) \to P)))) in (let TMP_251 \def (\lambda (P: Prop).(\lambda (H0: 
-(le (S n) O)).(\lambda (_: (le (S O) (S n))).(let H2 \def (match H0 in le 
-with [le_n \Rightarrow (\lambda (H2: (eq nat (S n) O)).(let TMP_249 \def (S 
-n) in (let TMP_248 \def (\lambda (e: nat).(match e in nat with [O \Rightarrow 
-False | (S _) \Rightarrow True])) in (let H3 \def (eq_ind nat TMP_249 TMP_248 
-I O H2) in (False_ind P H3))))) | (le_S m0 H2) \Rightarrow (\lambda (H3: (eq 
-nat (S m0) O)).(let TMP_245 \def (S m0) in (let TMP_244 \def (\lambda (e: 
-nat).(match e in nat with [O \Rightarrow False | (S _) \Rightarrow True])) in 
-(let H4 \def (eq_ind nat TMP_245 TMP_244 I O H3) in (let TMP_246 \def ((le (S 
-n) m0) \to P) in (let TMP_247 \def (False_ind TMP_246 H4) in (TMP_247 
-H2)))))))]) in (let TMP_250 \def (refl_equal nat O) in (H2 TMP_250)))))) in 
-(let TMP_243 \def (\lambda (n1: nat).(\lambda (_: ((\forall (P: Prop).((le (S 
-n) n1) \to ((le (S n1) (S n)) \to P))))).(\lambda (P: Prop).(\lambda (H1: (le 
-(S n) (S n1))).(\lambda (H2: (le (S (S n1)) (S n))).(let TMP_242 \def (le_S_n 
-n n1 H1) in (let TMP_240 \def (S n1) in (let TMP_241 \def (le_S_n TMP_240 n 
-H2) in (H n1 P TMP_242 TMP_241))))))))) in (nat_ind TMP_252 TMP_251 TMP_243 
-n0))))))) in (nat_ind TMP_262 TMP_261 TMP_253 m)))).
+TMP_9 \def (\lambda (n: nat).(\lambda (P: Prop).(\lambda (_: (le O 
+n)).(\lambda (H0: (le (S n) O)).(let H1 \def (match H0 with [le_n \Rightarrow 
+(\lambda (H1: (eq nat (S n) O)).(let TMP_6 \def (S n) in (let TMP_7 \def 
+(\lambda (e: nat).(match e with [O \Rightarrow False | (S _) \Rightarrow 
+True])) in (let H2 \def (eq_ind nat TMP_6 TMP_7 I O H1) in (False_ind P 
+H2))))) | (le_S m0 H1) \Rightarrow (\lambda (H2: (eq nat (S m0) O)).(let 
+TMP_2 \def (S m0) in (let TMP_3 \def (\lambda (e: nat).(match e with [O 
+\Rightarrow False | (S _) \Rightarrow True])) in (let H3 \def (eq_ind nat 
+TMP_2 TMP_3 I O H2) in (let TMP_4 \def ((le (S n) m0) \to P) in (let TMP_5 
+\def (False_ind TMP_4 H3) in (TMP_5 H1)))))))]) in (let TMP_8 \def 
+(refl_equal nat O) in (H1 TMP_8))))))) in (let TMP_23 \def (\lambda (n: 
+nat).(\lambda (H: ((\forall (n0: nat).(\forall (P: Prop).((le n n0) \to ((le 
+(S n0) n) \to P)))))).(\lambda (n0: nat).(let TMP_10 \def (\lambda (n1: 
+nat).(\forall (P: Prop).((le (S n) n1) \to ((le (S n1) (S n)) \to P)))) in 
+(let TMP_18 \def (\lambda (P: Prop).(\lambda (H0: (le (S n) O)).(\lambda (_: 
+(le (S O) (S n))).(let H2 \def (match H0 with [le_n \Rightarrow (\lambda (H2: 
+(eq nat (S n) O)).(let TMP_15 \def (S n) in (let TMP_16 \def (\lambda (e: 
+nat).(match e with [O \Rightarrow False | (S _) \Rightarrow True])) in (let 
+H3 \def (eq_ind nat TMP_15 TMP_16 I O H2) in (False_ind P H3))))) | (le_S m0 
+H2) \Rightarrow (\lambda (H3: (eq nat (S m0) O)).(let TMP_11 \def (S m0) in 
+(let TMP_12 \def (\lambda (e: nat).(match e with [O \Rightarrow False | (S _) 
+\Rightarrow True])) in (let H4 \def (eq_ind nat TMP_11 TMP_12 I O H3) in (let 
+TMP_13 \def ((le (S n) m0) \to P) in (let TMP_14 \def (False_ind TMP_13 H4) 
+in (TMP_14 H2)))))))]) in (let TMP_17 \def (refl_equal nat O) in (H2 
+TMP_17)))))) in (let TMP_22 \def (\lambda (n1: nat).(\lambda (_: ((\forall 
+(P: Prop).((le (S n) n1) \to ((le (S n1) (S n)) \to P))))).(\lambda (P: 
+Prop).(\lambda (H1: (le (S n) (S n1))).(\lambda (H2: (le (S (S n1)) (S 
+n))).(let TMP_19 \def (le_S_n n n1 H1) in (let TMP_20 \def (S n1) in (let 
+TMP_21 \def (le_S_n TMP_20 n H2) in (H n1 P TMP_19 TMP_21))))))))) in 
+(nat_ind TMP_10 TMP_18 TMP_22 n0))))))) in (nat_ind TMP_1 TMP_9 TMP_23 m)))).
 
 theorem le_Sx_x:
  \forall (x: nat).((le (S x) x) \to (\forall (P: Prop).P))
 \def
  \lambda (x: nat).(\lambda (H: (le (S x) x)).(\lambda (P: Prop).(let H0 \def 
-le_Sn_n in (let TMP_263 \def (H0 x H) in (False_ind P TMP_263))))).
+le_Sn_n in (let TMP_1 \def (H0 x H) in (False_ind P TMP_1))))).
 
 theorem le_n_pred:
  \forall (n: nat).(\forall (m: nat).((le n m) \to (le (pred n) (pred m))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(let TMP_272 \def 
-(\lambda (n0: nat).(let TMP_271 \def (pred n) in (let TMP_270 \def (pred n0) 
-in (le TMP_271 TMP_270)))) in (let TMP_268 \def (pred n) in (let TMP_269 \def 
-(le_n TMP_268) in (let TMP_267 \def (\lambda (m0: nat).(\lambda (_: (le n 
-m0)).(\lambda (H1: (le (pred n) (pred m0))).(let TMP_266 \def (pred n) in 
-(let TMP_265 \def (pred m0) in (let TMP_264 \def (le_pred_n m0) in (le_trans 
-TMP_266 TMP_265 m0 H1 TMP_264))))))) in (le_ind n TMP_272 TMP_269 TMP_267 m 
-H))))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(let TMP_3 \def 
+(\lambda (n0: nat).(let TMP_1 \def (pred n) in (let TMP_2 \def (pred n0) in 
+(le TMP_1 TMP_2)))) in (let TMP_4 \def (pred n) in (let TMP_5 \def (le_n 
+TMP_4) in (let TMP_9 \def (\lambda (m0: nat).(\lambda (_: (le n m0)).(\lambda 
+(H1: (le (pred n) (pred m0))).(let TMP_6 \def (pred n) in (let TMP_7 \def 
+(pred m0) in (let TMP_8 \def (le_pred_n m0) in (le_trans TMP_6 TMP_7 m0 H1 
+TMP_8))))))) in (le_ind n TMP_3 TMP_5 TMP_9 m H))))))).
 
 theorem minus_le:
  \forall (x: nat).(\forall (y: nat).(le (minus x y) x))
 \def
- \lambda (x: nat).(let TMP_285 \def (\lambda (n: nat).(\forall (y: nat).(let 
-TMP_284 \def (minus n y) in (le TMP_284 n)))) in (let TMP_283 \def (\lambda 
-(_: nat).(le_O_n O)) in (let TMP_282 \def (\lambda (n: nat).(\lambda (H: 
-((\forall (y: nat).(le (minus n y) n)))).(\lambda (y: nat).(let TMP_281 \def 
-(\lambda (n0: nat).(let TMP_279 \def (S n) in (let TMP_280 \def (minus 
-TMP_279 n0) in (let TMP_278 \def (S n) in (le TMP_280 TMP_278))))) in (let 
-TMP_276 \def (S n) in (let TMP_277 \def (le_n TMP_276) in (let TMP_275 \def 
-(\lambda (n0: nat).(\lambda (_: (le (match n0 with [O \Rightarrow (S n) | (S 
-l) \Rightarrow (minus n l)]) (S n))).(let TMP_274 \def (minus n n0) in (let 
-TMP_273 \def (H n0) in (le_S TMP_274 n TMP_273))))) in (nat_ind TMP_281 
-TMP_277 TMP_275 y)))))))) in (nat_ind TMP_285 TMP_283 TMP_282 x)))).
+ \lambda (x: nat).(let TMP_2 \def (\lambda (n: nat).(\forall (y: nat).(let 
+TMP_1 \def (minus n y) in (le TMP_1 n)))) in (let TMP_3 \def (\lambda (_: 
+nat).(le_O_n O)) in (let TMP_13 \def (\lambda (n: nat).(\lambda (H: ((\forall 
+(y: nat).(le (minus n y) n)))).(\lambda (y: nat).(let TMP_7 \def (\lambda 
+(n0: nat).(let TMP_4 \def (S n) in (let TMP_5 \def (minus TMP_4 n0) in (let 
+TMP_6 \def (S n) in (le TMP_5 TMP_6))))) in (let TMP_8 \def (S n) in (let 
+TMP_9 \def (le_n TMP_8) in (let TMP_12 \def (\lambda (n0: nat).(\lambda (_: 
+(le (match n0 with [O \Rightarrow (S n) | (S l) \Rightarrow (minus n l)]) (S 
+n))).(let TMP_10 \def (minus n n0) in (let TMP_11 \def (H n0) in (le_S TMP_10 
+n TMP_11))))) in (nat_ind TMP_7 TMP_9 TMP_12 y)))))))) in (nat_ind TMP_2 
+TMP_3 TMP_13 x)))).
 
 theorem le_plus_minus_sym:
  \forall (n: nat).(\forall (m: nat).((le n m) \to (eq nat m (plus (minus m n) 
 n))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(let TMP_292 \def 
-(minus m n) in (let TMP_293 \def (plus n TMP_292) in (let TMP_291 \def 
-(\lambda (n0: nat).(eq nat m n0)) in (let TMP_290 \def (le_plus_minus n m H) 
-in (let TMP_288 \def (minus m n) in (let TMP_289 \def (plus TMP_288 n) in 
-(let TMP_286 \def (minus m n) in (let TMP_287 \def (plus_sym TMP_286 n) in 
-(eq_ind_r nat TMP_293 TMP_291 TMP_290 TMP_289 TMP_287))))))))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(let TMP_1 \def 
+(minus m n) in (let TMP_2 \def (plus n TMP_1) in (let TMP_3 \def (\lambda 
+(n0: nat).(eq nat m n0)) in (let TMP_4 \def (le_plus_minus n m H) in (let 
+TMP_5 \def (minus m n) in (let TMP_6 \def (plus TMP_5 n) in (let TMP_7 \def 
+(minus m n) in (let TMP_8 \def (plus_sym TMP_7 n) in (eq_ind_r nat TMP_2 
+TMP_3 TMP_4 TMP_6 TMP_8))))))))))).
 
 theorem le_minus_minus:
  \forall (x: nat).(\forall (y: nat).((le x y) \to (\forall (z: nat).((le y z) 
 \to (le (minus y x) (minus z x))))))
 \def
  \lambda (x: nat).(\lambda (y: nat).(\lambda (H: (le x y)).(\lambda (z: 
-nat).(\lambda (H0: (le y z)).(let TMP_308 \def (minus y x) in (let TMP_307 
-\def (minus z x) in (let TMP_305 \def (\lambda (n: nat).(let TMP_303 \def 
-(minus z x) in (let TMP_304 \def (plus x TMP_303) in (le n TMP_304)))) in 
-(let TMP_301 \def (\lambda (n: nat).(le y n)) in (let TMP_299 \def (minus z 
-x) in (let TMP_300 \def (plus x TMP_299) in (let TMP_297 \def (le_trans x y z 
-H H0) in (let TMP_298 \def (le_plus_minus_r x z TMP_297) in (let TMP_302 \def 
-(eq_ind_r nat z TMP_301 H0 TMP_300 TMP_298) in (let TMP_295 \def (minus y x) 
-in (let TMP_296 \def (plus x TMP_295) in (let TMP_294 \def (le_plus_minus_r x 
-y H) in (let TMP_306 \def (eq_ind_r nat y TMP_305 TMP_302 TMP_296 TMP_294) in 
-(simpl_le_plus_l x TMP_308 TMP_307 TMP_306)))))))))))))))))).
+nat).(\lambda (H0: (le y z)).(let TMP_1 \def (minus y x) in (let TMP_2 \def 
+(minus z x) in (let TMP_5 \def (\lambda (n: nat).(let TMP_3 \def (minus z x) 
+in (let TMP_4 \def (plus x TMP_3) in (le n TMP_4)))) in (let TMP_6 \def 
+(\lambda (n: nat).(le y n)) in (let TMP_7 \def (minus z x) in (let TMP_8 \def 
+(plus x TMP_7) in (let TMP_9 \def (le_trans x y z H H0) in (let TMP_10 \def 
+(le_plus_minus_r x z TMP_9) in (let TMP_11 \def (eq_ind_r nat z TMP_6 H0 
+TMP_8 TMP_10) in (let TMP_12 \def (minus y x) in (let TMP_13 \def (plus x 
+TMP_12) in (let TMP_14 \def (le_plus_minus_r x y H) in (let TMP_15 \def 
+(eq_ind_r nat y TMP_5 TMP_11 TMP_13 TMP_14) in (simpl_le_plus_l x TMP_1 TMP_2 
+TMP_15)))))))))))))))))).
 
 theorem le_minus_plus:
  \forall (z: nat).(\forall (x: nat).((le z x) \to (\forall (y: nat).(eq nat 
 (minus (plus x y) z) (plus (minus x z) y)))))
 \def
- \lambda (z: nat).(let TMP_368 \def (\lambda (n: nat).(\forall (x: nat).((le 
-n x) \to (\forall (y: nat).(let TMP_366 \def (plus x y) in (let TMP_367 \def 
-(minus TMP_366 n) in (let TMP_364 \def (minus x n) in (let TMP_365 \def (plus 
-TMP_364 y) in (eq nat TMP_367 TMP_365))))))))) in (let TMP_363 \def (\lambda 
-(x: nat).(\lambda (H: (le O x)).(let H0 \def (match H in le with [le_n 
-\Rightarrow (\lambda (H0: (eq nat O x)).(let TMP_361 \def (\lambda (n: 
-nat).(\forall (y: nat).(let TMP_359 \def (plus n y) in (let TMP_360 \def 
-(minus TMP_359 O) in (let TMP_357 \def (minus n O) in (let TMP_358 \def (plus 
-TMP_357 y) in (eq nat TMP_360 TMP_358))))))) in (let TMP_356 \def (\lambda 
-(y: nat).(let TMP_354 \def (minus O O) in (let TMP_355 \def (plus TMP_354 y) 
-in (let TMP_352 \def (plus O y) in (let TMP_353 \def (minus TMP_352 O) in 
-(let TMP_350 \def (plus O y) in (let TMP_351 \def (minus_n_O TMP_350) in 
-(sym_eq nat TMP_355 TMP_353 TMP_351)))))))) in (eq_ind nat O TMP_361 TMP_356 
-x H0)))) | (le_S m H0) \Rightarrow (\lambda (H1: (eq nat (S m) x)).(let 
-TMP_349 \def (S m) in (let TMP_348 \def (\lambda (n: nat).((le O m) \to 
-(\forall (y: nat).(let TMP_346 \def (plus n y) in (let TMP_347 \def (minus 
-TMP_346 O) in (let TMP_344 \def (minus n O) in (let TMP_345 \def (plus 
-TMP_344 y) in (eq nat TMP_347 TMP_345)))))))) in (let TMP_343 \def (\lambda 
-(_: (le O m)).(\lambda (y: nat).(let TMP_340 \def (S m) in (let TMP_341 \def 
-(minus TMP_340 O) in (let TMP_342 \def (plus TMP_341 y) in (refl_equal nat 
-TMP_342)))))) in (eq_ind nat TMP_349 TMP_348 TMP_343 x H1 H0)))))]) in (let 
-TMP_362 \def (refl_equal nat x) in (H0 TMP_362))))) in (let TMP_339 \def 
-(\lambda (z0: nat).(\lambda (H: ((\forall (x: nat).((le z0 x) \to (\forall 
-(y: nat).(eq nat (minus (plus x y) z0) (plus (minus x z0) y))))))).(\lambda 
-(x: nat).(let TMP_338 \def (\lambda (n: nat).((le (S z0) n) \to (\forall (y: 
-nat).(let TMP_336 \def (plus n y) in (let TMP_335 \def (S z0) in (let TMP_337 
-\def (minus TMP_336 TMP_335) in (let TMP_332 \def (S z0) in (let TMP_333 \def 
-(minus n TMP_332) in (let TMP_334 \def (plus TMP_333 y) in (eq nat TMP_337 
-TMP_334)))))))))) in (let TMP_331 \def (\lambda (H0: (le (S z0) O)).(\lambda 
-(y: nat).(let H1 \def (match H0 in le with [le_n \Rightarrow (\lambda (H1: 
-(eq nat (S z0) O)).(let TMP_322 \def (S z0) in (let TMP_321 \def (\lambda (e: 
-nat).(match e in nat with [O \Rightarrow False | (S _) \Rightarrow True])) in 
-(let H2 \def (eq_ind nat TMP_322 TMP_321 I O H1) in (let TMP_327 \def (plus O 
-y) in (let TMP_326 \def (S z0) in (let TMP_328 \def (minus TMP_327 TMP_326) 
-in (let TMP_323 \def (S z0) in (let TMP_324 \def (minus O TMP_323) in (let 
-TMP_325 \def (plus TMP_324 y) in (let TMP_329 \def (eq nat TMP_328 TMP_325) 
-in (False_ind TMP_329 H2)))))))))))) | (le_S m H1) \Rightarrow (\lambda (H2: 
-(eq nat (S m) O)).(let TMP_312 \def (S m) in (let TMP_311 \def (\lambda (e: 
-nat).(match e in nat with [O \Rightarrow False | (S _) \Rightarrow True])) in 
-(let H3 \def (eq_ind nat TMP_312 TMP_311 I O H2) in (let TMP_319 \def ((le (S 
-z0) m) \to (let TMP_317 \def (plus O y) in (let TMP_316 \def (S z0) in (let 
-TMP_318 \def (minus TMP_317 TMP_316) in (let TMP_313 \def (S z0) in (let 
-TMP_314 \def (minus O TMP_313) in (let TMP_315 \def (plus TMP_314 y) in (eq 
-nat TMP_318 TMP_315)))))))) in (let TMP_320 \def (False_ind TMP_319 H3) in 
-(TMP_320 H1)))))))]) in (let TMP_330 \def (refl_equal nat O) in (H1 
-TMP_330))))) in (let TMP_310 \def (\lambda (n: nat).(\lambda (_: (((le (S z0) 
-n) \to (\forall (y: nat).(eq nat (minus (plus n y) (S z0)) (plus (minus n (S 
-z0)) y)))))).(\lambda (H1: (le (S z0) (S n))).(\lambda (y: nat).(let TMP_309 
-\def (le_S_n z0 n H1) in (H n TMP_309 y)))))) in (nat_ind TMP_338 TMP_331 
-TMP_310 x))))))) in (nat_ind TMP_368 TMP_363 TMP_339 z)))).
+ \lambda (z: nat).(let TMP_5 \def (\lambda (n: nat).(\forall (x: nat).((le n 
+x) \to (\forall (y: nat).(let TMP_1 \def (plus x y) in (let TMP_2 \def (minus 
+TMP_1 n) in (let TMP_3 \def (minus x n) in (let TMP_4 \def (plus TMP_3 y) in 
+(eq nat TMP_2 TMP_4))))))))) in (let TMP_29 \def (\lambda (x: nat).(\lambda 
+(H: (le O x)).(let H0 \def (match H with [le_n \Rightarrow (\lambda (H0: (eq 
+nat O x)).(let TMP_20 \def (\lambda (n: nat).(\forall (y: nat).(let TMP_16 
+\def (plus n y) in (let TMP_17 \def (minus TMP_16 O) in (let TMP_18 \def 
+(minus n O) in (let TMP_19 \def (plus TMP_18 y) in (eq nat TMP_17 
+TMP_19))))))) in (let TMP_27 \def (\lambda (y: nat).(let TMP_21 \def (minus O 
+O) in (let TMP_22 \def (plus TMP_21 y) in (let TMP_23 \def (plus O y) in (let 
+TMP_24 \def (minus TMP_23 O) in (let TMP_25 \def (plus O y) in (let TMP_26 
+\def (minus_n_O TMP_25) in (sym_eq nat TMP_22 TMP_24 TMP_26)))))))) in 
+(eq_ind nat O TMP_20 TMP_27 x H0)))) | (le_S m H0) \Rightarrow (\lambda (H1: 
+(eq nat (S m) x)).(let TMP_6 \def (S m) in (let TMP_11 \def (\lambda (n: 
+nat).((le O m) \to (\forall (y: nat).(let TMP_7 \def (plus n y) in (let TMP_8 
+\def (minus TMP_7 O) in (let TMP_9 \def (minus n O) in (let TMP_10 \def (plus 
+TMP_9 y) in (eq nat TMP_8 TMP_10)))))))) in (let TMP_15 \def (\lambda (_: (le 
+O m)).(\lambda (y: nat).(let TMP_12 \def (S m) in (let TMP_13 \def (minus 
+TMP_12 O) in (let TMP_14 \def (plus TMP_13 y) in (refl_equal nat TMP_14)))))) 
+in (eq_ind nat TMP_6 TMP_11 TMP_15 x H1 H0)))))]) in (let TMP_28 \def 
+(refl_equal nat x) in (H0 TMP_28))))) in (let TMP_60 \def (\lambda (z0: 
+nat).(\lambda (H: ((\forall (x: nat).((le z0 x) \to (\forall (y: nat).(eq nat 
+(minus (plus x y) z0) (plus (minus x z0) y))))))).(\lambda (x: nat).(let 
+TMP_36 \def (\lambda (n: nat).((le (S z0) n) \to (\forall (y: nat).(let 
+TMP_30 \def (plus n y) in (let TMP_31 \def (S z0) in (let TMP_32 \def (minus 
+TMP_30 TMP_31) in (let TMP_33 \def (S z0) in (let TMP_34 \def (minus n 
+TMP_33) in (let TMP_35 \def (plus TMP_34 y) in (eq nat TMP_32 
+TMP_35)))))))))) in (let TMP_57 \def (\lambda (H0: (le (S z0) O)).(\lambda 
+(y: nat).(let H1 \def (match H0 with [le_n \Rightarrow (\lambda (H1: (eq nat 
+(S z0) O)).(let TMP_47 \def (S z0) in (let TMP_48 \def (\lambda (e: 
+nat).(match e with [O \Rightarrow False | (S _) \Rightarrow True])) in (let 
+H2 \def (eq_ind nat TMP_47 TMP_48 I O H1) in (let TMP_49 \def (plus O y) in 
+(let TMP_50 \def (S z0) in (let TMP_51 \def (minus TMP_49 TMP_50) in (let 
+TMP_52 \def (S z0) in (let TMP_53 \def (minus O TMP_52) in (let TMP_54 \def 
+(plus TMP_53 y) in (let TMP_55 \def (eq nat TMP_51 TMP_54) in (False_ind 
+TMP_55 H2)))))))))))) | (le_S m H1) \Rightarrow (\lambda (H2: (eq nat (S m) 
+O)).(let TMP_37 \def (S m) in (let TMP_38 \def (\lambda (e: nat).(match e 
+with [O \Rightarrow False | (S _) \Rightarrow True])) in (let H3 \def (eq_ind 
+nat TMP_37 TMP_38 I O H2) in (let TMP_45 \def ((le (S z0) m) \to (let TMP_39 
+\def (plus O y) in (let TMP_40 \def (S z0) in (let TMP_41 \def (minus TMP_39 
+TMP_40) in (let TMP_42 \def (S z0) in (let TMP_43 \def (minus O TMP_42) in 
+(let TMP_44 \def (plus TMP_43 y) in (eq nat TMP_41 TMP_44)))))))) in (let 
+TMP_46 \def (False_ind TMP_45 H3) in (TMP_46 H1)))))))]) in (let TMP_56 \def 
+(refl_equal nat O) in (H1 TMP_56))))) in (let TMP_59 \def (\lambda (n: 
+nat).(\lambda (_: (((le (S z0) n) \to (\forall (y: nat).(eq nat (minus (plus 
+n y) (S z0)) (plus (minus n (S z0)) y)))))).(\lambda (H1: (le (S z0) (S 
+n))).(\lambda (y: nat).(let TMP_58 \def (le_S_n z0 n H1) in (H n TMP_58 
+y)))))) in (nat_ind TMP_36 TMP_57 TMP_59 x))))))) in (nat_ind TMP_5 TMP_29 
+TMP_60 z)))).
 
 theorem le_minus:
  \forall (x: nat).(\forall (z: nat).(\forall (y: nat).((le (plus x y) z) \to 
 (le x (minus z y)))))
 \def
  \lambda (x: nat).(\lambda (z: nat).(\lambda (y: nat).(\lambda (H: (le (plus 
-x y) z)).(let TMP_375 \def (plus x y) in (let TMP_376 \def (minus TMP_375 y) 
-in (let TMP_374 \def (\lambda (n: nat).(let TMP_373 \def (minus z y) in (le n 
-TMP_373))) in (let TMP_371 \def (plus x y) in (let TMP_370 \def (le_plus_r x 
-y) in (let TMP_372 \def (le_minus_minus y TMP_371 TMP_370 z H) in (let 
-TMP_369 \def (minus_plus_r x y) in (eq_ind nat TMP_376 TMP_374 TMP_372 x 
-TMP_369))))))))))).
+x y) z)).(let TMP_1 \def (plus x y) in (let TMP_2 \def (minus TMP_1 y) in 
+(let TMP_4 \def (\lambda (n: nat).(let TMP_3 \def (minus z y) in (le n 
+TMP_3))) in (let TMP_5 \def (plus x y) in (let TMP_6 \def (le_plus_r x y) in 
+(let TMP_7 \def (le_minus_minus y TMP_5 TMP_6 z H) in (let TMP_8 \def 
+(minus_plus_r x y) in (eq_ind nat TMP_2 TMP_4 TMP_7 x TMP_8))))))))))).
 
 theorem le_trans_plus_r:
  \forall (x: nat).(\forall (y: nat).(\forall (z: nat).((le (plus x y) z) \to 
 (le y z))))
 \def
  \lambda (x: nat).(\lambda (y: nat).(\lambda (z: nat).(\lambda (H: (le (plus 
-x y) z)).(let TMP_378 \def (plus x y) in (let TMP_377 \def (le_plus_r x y) in 
-(le_trans y TMP_378 z TMP_377 H)))))).
+x y) z)).(let TMP_1 \def (plus x y) in (let TMP_2 \def (le_plus_r x y) in 
+(le_trans y TMP_1 z TMP_2 H)))))).
 
 theorem lt_x_O:
  \forall (x: nat).((lt x O) \to (\forall (P: Prop).P))
 \def
- \lambda (x: nat).(\lambda (H: (le (S x) O)).(\lambda (P: Prop).(let TMP_379 
-\def (S x) in (let H_y \def (le_n_O_eq TMP_379 H) in (let TMP_381 \def 
-(\lambda (ee: nat).(match ee in nat with [O \Rightarrow True | (S _) 
-\Rightarrow False])) in (let TMP_380 \def (S x) in (let H0 \def (eq_ind nat O 
-TMP_381 I TMP_380 H_y) in (False_ind P H0)))))))).
+ \lambda (x: nat).(\lambda (H: (le (S x) O)).(\lambda (P: Prop).(let TMP_1 
+\def (S x) in (let H_y \def (le_n_O_eq TMP_1 H) in (let TMP_2 \def (\lambda 
+(ee: nat).(match ee with [O \Rightarrow True | (S _) \Rightarrow False])) in 
+(let TMP_3 \def (S x) in (let H0 \def (eq_ind nat O TMP_2 I TMP_3 H_y) in 
+(False_ind P H0)))))))).
 
 theorem le_gen_S:
  \forall (m: nat).(\forall (x: nat).((le (S m) x) \to (ex2 nat (\lambda (n: 
 nat).(eq nat x (S n))) (\lambda (n: nat).(le m n)))))
 \def
  \lambda (m: nat).(\lambda (x: nat).(\lambda (H: (le (S m) x)).(let H0 \def 
-(match H in le with [le_n \Rightarrow (\lambda (H0: (eq nat (S m) x)).(let 
-TMP_409 \def (S m) in (let TMP_408 \def (\lambda (n: nat).(let TMP_407 \def 
-(\lambda (n0: nat).(let TMP_406 \def (S n0) in (eq nat n TMP_406))) in (let 
-TMP_405 \def (\lambda (n0: nat).(le m n0)) in (ex2 nat TMP_407 TMP_405)))) in 
-(let TMP_403 \def (\lambda (n: nat).(let TMP_402 \def (S m) in (let TMP_401 
-\def (S n) in (eq nat TMP_402 TMP_401)))) in (let TMP_400 \def (\lambda (n: 
-nat).(le m n)) in (let TMP_398 \def (S m) in (let TMP_399 \def (refl_equal 
-nat TMP_398) in (let TMP_397 \def (le_n m) in (let TMP_404 \def (ex_intro2 
-nat TMP_403 TMP_400 m TMP_399 TMP_397) in (eq_ind nat TMP_409 TMP_408 TMP_404 
-x H0)))))))))) | (le_S m0 H0) \Rightarrow (\lambda (H1: (eq nat (S m0) 
-x)).(let TMP_396 \def (S m0) in (let TMP_395 \def (\lambda (n: nat).((le (S 
-m) m0) \to (let TMP_394 \def (\lambda (n0: nat).(let TMP_393 \def (S n0) in 
-(eq nat n TMP_393))) in (let TMP_392 \def (\lambda (n0: nat).(le m n0)) in 
-(ex2 nat TMP_394 TMP_392))))) in (let TMP_391 \def (\lambda (H2: (le (S m) 
-m0)).(let TMP_390 \def (\lambda (n: nat).(let TMP_389 \def (S m0) in (let 
-TMP_388 \def (S n) in (eq nat TMP_389 TMP_388)))) in (let TMP_387 \def 
-(\lambda (n: nat).(le m n)) in (let TMP_385 \def (S m0) in (let TMP_386 \def 
-(refl_equal nat TMP_385) in (let TMP_382 \def (S m) in (let TMP_383 \def 
-(le_S TMP_382 m0 H2) in (let TMP_384 \def (le_S_n m m0 TMP_383) in (ex_intro2 
-nat TMP_390 TMP_387 m0 TMP_386 TMP_384))))))))) in (eq_ind nat TMP_396 
-TMP_395 TMP_391 x H1 H0)))))]) in (let TMP_410 \def (refl_equal nat x) in (H0 
-TMP_410))))).
+(match H with [le_n \Rightarrow (\lambda (H0: (eq nat (S m) x)).(let TMP_16 
+\def (S m) in (let TMP_20 \def (\lambda (n: nat).(let TMP_18 \def (\lambda 
+(n0: nat).(let TMP_17 \def (S n0) in (eq nat n TMP_17))) in (let TMP_19 \def 
+(\lambda (n0: nat).(le m n0)) in (ex2 nat TMP_18 TMP_19)))) in (let TMP_23 
+\def (\lambda (n: nat).(let TMP_21 \def (S m) in (let TMP_22 \def (S n) in 
+(eq nat TMP_21 TMP_22)))) in (let TMP_24 \def (\lambda (n: nat).(le m n)) in 
+(let TMP_25 \def (S m) in (let TMP_26 \def (refl_equal nat TMP_25) in (let 
+TMP_27 \def (le_n m) in (let TMP_28 \def (ex_intro2 nat TMP_23 TMP_24 m 
+TMP_26 TMP_27) in (eq_ind nat TMP_16 TMP_20 TMP_28 x H0)))))))))) | (le_S m0 
+H0) \Rightarrow (\lambda (H1: (eq nat (S m0) x)).(let TMP_1 \def (S m0) in 
+(let TMP_5 \def (\lambda (n: nat).((le (S m) m0) \to (let TMP_3 \def (\lambda 
+(n0: nat).(let TMP_2 \def (S n0) in (eq nat n TMP_2))) in (let TMP_4 \def 
+(\lambda (n0: nat).(le m n0)) in (ex2 nat TMP_3 TMP_4))))) in (let TMP_15 
+\def (\lambda (H2: (le (S m) m0)).(let TMP_8 \def (\lambda (n: nat).(let 
+TMP_6 \def (S m0) in (let TMP_7 \def (S n) in (eq nat TMP_6 TMP_7)))) in (let 
+TMP_9 \def (\lambda (n: nat).(le m n)) in (let TMP_10 \def (S m0) in (let 
+TMP_11 \def (refl_equal nat TMP_10) in (let TMP_12 \def (S m) in (let TMP_13 
+\def (le_S TMP_12 m0 H2) in (let TMP_14 \def (le_S_n m m0 TMP_13) in 
+(ex_intro2 nat TMP_8 TMP_9 m0 TMP_11 TMP_14))))))))) in (eq_ind nat TMP_1 
+TMP_5 TMP_15 x H1 H0)))))]) in (let TMP_29 \def (refl_equal nat x) in (H0 
+TMP_29))))).
 
 theorem lt_x_plus_x_Sy:
  \forall (x: nat).(\forall (y: nat).(lt x (plus x (S y))))
 \def
- \lambda (x: nat).(\lambda (y: nat).(let TMP_427 \def (S y) in (let TMP_428 
-\def (plus TMP_427 x) in (let TMP_426 \def (\lambda (n: nat).(lt x n)) in 
-(let TMP_424 \def (S x) in (let TMP_422 \def (plus y x) in (let TMP_423 \def 
-(S TMP_422) in (let TMP_420 \def (S x) in (let TMP_418 \def (plus y x) in 
-(let TMP_419 \def (S TMP_418) in (let TMP_416 \def (plus y x) in (let TMP_415 
-\def (le_plus_r y x) in (let TMP_417 \def (le_n_S x TMP_416 TMP_415) in (let 
-TMP_421 \def (le_n_S TMP_420 TMP_419 TMP_417) in (let TMP_425 \def (le_S_n 
-TMP_424 TMP_423 TMP_421) in (let TMP_413 \def (S y) in (let TMP_414 \def 
-(plus x TMP_413) in (let TMP_411 \def (S y) in (let TMP_412 \def (plus_sym x 
-TMP_411) in (eq_ind_r nat TMP_428 TMP_426 TMP_425 TMP_414 
-TMP_412)))))))))))))))))))).
+ \lambda (x: nat).(\lambda (y: nat).(let TMP_1 \def (S y) in (let TMP_2 \def 
+(plus TMP_1 x) in (let TMP_3 \def (\lambda (n: nat).(lt x n)) in (let TMP_4 
+\def (S x) in (let TMP_5 \def (plus y x) in (let TMP_6 \def (S TMP_5) in (let 
+TMP_7 \def (S x) in (let TMP_8 \def (plus y x) in (let TMP_9 \def (S TMP_8) 
+in (let TMP_10 \def (plus y x) in (let TMP_11 \def (le_plus_r y x) in (let 
+TMP_12 \def (le_n_S x TMP_10 TMP_11) in (let TMP_13 \def (le_n_S TMP_7 TMP_9 
+TMP_12) in (let TMP_14 \def (le_S_n TMP_4 TMP_6 TMP_13) in (let TMP_15 \def 
+(S y) in (let TMP_16 \def (plus x TMP_15) in (let TMP_17 \def (S y) in (let 
+TMP_18 \def (plus_sym x TMP_17) in (eq_ind_r nat TMP_2 TMP_3 TMP_14 TMP_16 
+TMP_18)))))))))))))))))))).
 
 theorem simpl_lt_plus_r:
  \forall (p: nat).(\forall (n: nat).(\forall (m: nat).((lt (plus n p) (plus m 
 p)) \to (lt n m))))
 \def
  \lambda (p: nat).(\lambda (n: nat).(\lambda (m: nat).(\lambda (H: (lt (plus 
-n p) (plus m p))).(let TMP_433 \def (plus n p) in (let TMP_432 \def (\lambda 
-(n0: nat).(let TMP_431 \def (plus m p) in (lt n0 TMP_431))) in (let TMP_430 
-\def (plus p n) in (let TMP_429 \def (plus_sym n p) in (let H0 \def (eq_ind 
-nat TMP_433 TMP_432 H TMP_430 TMP_429) in (let TMP_438 \def (plus m p) in 
-(let TMP_437 \def (\lambda (n0: nat).(let TMP_436 \def (plus p n) in (lt 
-TMP_436 n0))) in (let TMP_435 \def (plus p m) in (let TMP_434 \def (plus_sym 
-m p) in (let H1 \def (eq_ind nat TMP_438 TMP_437 H0 TMP_435 TMP_434) in 
-(simpl_lt_plus_l n m p H1)))))))))))))).
+n p) (plus m p))).(let TMP_1 \def (plus n p) in (let TMP_3 \def (\lambda (n0: 
+nat).(let TMP_2 \def (plus m p) in (lt n0 TMP_2))) in (let TMP_4 \def (plus p 
+n) in (let TMP_5 \def (plus_sym n p) in (let H0 \def (eq_ind nat TMP_1 TMP_3 
+H TMP_4 TMP_5) in (let TMP_6 \def (plus m p) in (let TMP_8 \def (\lambda (n0: 
+nat).(let TMP_7 \def (plus p n) in (lt TMP_7 n0))) in (let TMP_9 \def (plus p 
+m) in (let TMP_10 \def (plus_sym m p) in (let H1 \def (eq_ind nat TMP_6 TMP_8 
+H0 TMP_9 TMP_10) in (simpl_lt_plus_l n m p H1)))))))))))))).
 
 theorem minus_x_Sy:
  \forall (x: nat).(\forall (y: nat).((lt y x) \to (eq nat (minus x y) (S 
 (minus x (S y))))))
 \def
- \lambda (x: nat).(let TMP_478 \def (\lambda (n: nat).(\forall (y: nat).((lt 
-y n) \to (let TMP_477 \def (minus n y) in (let TMP_474 \def (S y) in (let 
-TMP_475 \def (minus n TMP_474) in (let TMP_476 \def (S TMP_475) in (eq nat 
-TMP_477 TMP_476)))))))) in (let TMP_473 \def (\lambda (y: nat).(\lambda (H: 
-(lt y O)).(let H0 \def (match H in le with [le_n \Rightarrow (\lambda (H0: 
-(eq nat (S y) O)).(let TMP_466 \def (S y) in (let TMP_465 \def (\lambda (e: 
-nat).(match e in nat with [O \Rightarrow False | (S _) \Rightarrow True])) in 
-(let H1 \def (eq_ind nat TMP_466 TMP_465 I O H0) in (let TMP_470 \def (minus 
-O y) in (let TMP_467 \def (S y) in (let TMP_468 \def (minus O TMP_467) in 
-(let TMP_469 \def (S TMP_468) in (let TMP_471 \def (eq nat TMP_470 TMP_469) 
-in (False_ind TMP_471 H1)))))))))) | (le_S m H0) \Rightarrow (\lambda (H1: 
-(eq nat (S m) O)).(let TMP_458 \def (S m) in (let TMP_457 \def (\lambda (e: 
-nat).(match e in nat with [O \Rightarrow False | (S _) \Rightarrow True])) in 
-(let H2 \def (eq_ind nat TMP_458 TMP_457 I O H1) in (let TMP_463 \def ((le (S 
-y) m) \to (let TMP_462 \def (minus O y) in (let TMP_459 \def (S y) in (let 
-TMP_460 \def (minus O TMP_459) in (let TMP_461 \def (S TMP_460) in (eq nat 
-TMP_462 TMP_461)))))) in (let TMP_464 \def (False_ind TMP_463 H2) in (TMP_464 
-H0)))))))]) in (let TMP_472 \def (refl_equal nat O) in (H0 TMP_472))))) in 
-(let TMP_456 \def (\lambda (n: nat).(\lambda (H: ((\forall (y: nat).((lt y n) 
-\to (eq nat (minus n y) (S (minus n (S y)))))))).(\lambda (y: nat).(let 
-TMP_455 \def (\lambda (n0: nat).((lt n0 (S n)) \to (let TMP_453 \def (S n) in 
-(let TMP_454 \def (minus TMP_453 n0) in (let TMP_450 \def (S n) in (let 
-TMP_449 \def (S n0) in (let TMP_451 \def (minus TMP_450 TMP_449) in (let 
-TMP_452 \def (S TMP_451) in (eq nat TMP_454 TMP_452))))))))) in (let TMP_448 
-\def (\lambda (_: (lt O (S n))).(let TMP_447 \def (\lambda (n0: nat).(let 
-TMP_446 \def (S n) in (let TMP_445 \def (S n0) in (eq nat TMP_446 TMP_445)))) 
-in (let TMP_443 \def (S n) in (let TMP_444 \def (refl_equal nat TMP_443) in 
-(let TMP_442 \def (minus n O) in (let TMP_441 \def (minus_n_O n) in (eq_ind 
-nat n TMP_447 TMP_444 TMP_442 TMP_441))))))) in (let TMP_440 \def (\lambda 
-(n0: nat).(\lambda (_: (((lt n0 (S n)) \to (eq nat (minus (S n) n0) (S (minus 
-(S n) (S n0))))))).(\lambda (H1: (lt (S n0) (S n))).(let TMP_439 \def (S n0) 
-in (let H2 \def (le_S_n TMP_439 n H1) in (H n0 H2)))))) in (nat_ind TMP_455 
-TMP_448 TMP_440 y))))))) in (nat_ind TMP_478 TMP_473 TMP_456 x)))).
+ \lambda (x: nat).(let TMP_5 \def (\lambda (n: nat).(\forall (y: nat).((lt y 
+n) \to (let TMP_1 \def (minus n y) in (let TMP_2 \def (S y) in (let TMP_3 
+\def (minus n TMP_2) in (let TMP_4 \def (S TMP_3) in (eq nat TMP_1 
+TMP_4)))))))) in (let TMP_22 \def (\lambda (y: nat).(\lambda (H: (lt y 
+O)).(let H0 \def (match H with [le_n \Rightarrow (\lambda (H0: (eq nat (S y) 
+O)).(let TMP_14 \def (S y) in (let TMP_15 \def (\lambda (e: nat).(match e 
+with [O \Rightarrow False | (S _) \Rightarrow True])) in (let H1 \def (eq_ind 
+nat TMP_14 TMP_15 I O H0) in (let TMP_16 \def (minus O y) in (let TMP_17 \def 
+(S y) in (let TMP_18 \def (minus O TMP_17) in (let TMP_19 \def (S TMP_18) in 
+(let TMP_20 \def (eq nat TMP_16 TMP_19) in (False_ind TMP_20 H1)))))))))) | 
+(le_S m H0) \Rightarrow (\lambda (H1: (eq nat (S m) O)).(let TMP_6 \def (S m) 
+in (let TMP_7 \def (\lambda (e: nat).(match e with [O \Rightarrow False | (S 
+_) \Rightarrow True])) in (let H2 \def (eq_ind nat TMP_6 TMP_7 I O H1) in 
+(let TMP_12 \def ((le (S y) m) \to (let TMP_8 \def (minus O y) in (let TMP_9 
+\def (S y) in (let TMP_10 \def (minus O TMP_9) in (let TMP_11 \def (S TMP_10) 
+in (eq nat TMP_8 TMP_11)))))) in (let TMP_13 \def (False_ind TMP_12 H2) in 
+(TMP_13 H0)))))))]) in (let TMP_21 \def (refl_equal nat O) in (H0 TMP_21))))) 
+in (let TMP_40 \def (\lambda (n: nat).(\lambda (H: ((\forall (y: nat).((lt y 
+n) \to (eq nat (minus n y) (S (minus n (S y)))))))).(\lambda (y: nat).(let 
+TMP_29 \def (\lambda (n0: nat).((lt n0 (S n)) \to (let TMP_23 \def (S n) in 
+(let TMP_24 \def (minus TMP_23 n0) in (let TMP_25 \def (S n) in (let TMP_26 
+\def (S n0) in (let TMP_27 \def (minus TMP_25 TMP_26) in (let TMP_28 \def (S 
+TMP_27) in (eq nat TMP_24 TMP_28))))))))) in (let TMP_37 \def (\lambda (_: 
+(lt O (S n))).(let TMP_32 \def (\lambda (n0: nat).(let TMP_30 \def (S n) in 
+(let TMP_31 \def (S n0) in (eq nat TMP_30 TMP_31)))) in (let TMP_33 \def (S 
+n) in (let TMP_34 \def (refl_equal nat TMP_33) in (let TMP_35 \def (minus n 
+O) in (let TMP_36 \def (minus_n_O n) in (eq_ind nat n TMP_32 TMP_34 TMP_35 
+TMP_36))))))) in (let TMP_39 \def (\lambda (n0: nat).(\lambda (_: (((lt n0 (S 
+n)) \to (eq nat (minus (S n) n0) (S (minus (S n) (S n0))))))).(\lambda (H1: 
+(lt (S n0) (S n))).(let TMP_38 \def (S n0) in (let H2 \def (le_S_n TMP_38 n 
+H1) in (H n0 H2)))))) in (nat_ind TMP_29 TMP_37 TMP_39 y))))))) in (nat_ind 
+TMP_5 TMP_22 TMP_40 x)))).
 
 theorem lt_plus_minus:
  \forall (x: nat).(\forall (y: nat).((lt x y) \to (eq nat y (S (plus x (minus 
 y (S x)))))))
 \def
- \lambda (x: nat).(\lambda (y: nat).(\lambda (H: (lt x y)).(let TMP_479 \def 
-(S x) in (le_plus_minus TMP_479 y H)))).
+ \lambda (x: nat).(\lambda (y: nat).(\lambda (H: (lt x y)).(let TMP_1 \def (S 
+x) in (le_plus_minus TMP_1 y H)))).
 
 theorem lt_plus_minus_r:
  \forall (x: nat).(\forall (y: nat).((lt x y) \to (eq nat y (S (plus (minus y 
 (S x)) x)))))
 \def
- \lambda (x: nat).(\lambda (y: nat).(\lambda (H: (lt x y)).(let TMP_489 \def 
-(S x) in (let TMP_490 \def (minus y TMP_489) in (let TMP_491 \def (plus x 
-TMP_490) in (let TMP_488 \def (\lambda (n: nat).(let TMP_487 \def (S n) in 
-(eq nat y TMP_487))) in (let TMP_486 \def (lt_plus_minus x y H) in (let 
-TMP_483 \def (S x) in (let TMP_484 \def (minus y TMP_483) in (let TMP_485 
-\def (plus TMP_484 x) in (let TMP_480 \def (S x) in (let TMP_481 \def (minus 
-y TMP_480) in (let TMP_482 \def (plus_sym TMP_481 x) in (eq_ind_r nat TMP_491 
-TMP_488 TMP_486 TMP_485 TMP_482)))))))))))))).
+ \lambda (x: nat).(\lambda (y: nat).(\lambda (H: (lt x y)).(let TMP_1 \def (S 
+x) in (let TMP_2 \def (minus y TMP_1) in (let TMP_3 \def (plus x TMP_2) in 
+(let TMP_5 \def (\lambda (n: nat).(let TMP_4 \def (S n) in (eq nat y TMP_4))) 
+in (let TMP_6 \def (lt_plus_minus x y H) in (let TMP_7 \def (S x) in (let 
+TMP_8 \def (minus y TMP_7) in (let TMP_9 \def (plus TMP_8 x) in (let TMP_10 
+\def (S x) in (let TMP_11 \def (minus y TMP_10) in (let TMP_12 \def (plus_sym 
+TMP_11 x) in (eq_ind_r nat TMP_3 TMP_5 TMP_6 TMP_9 TMP_12)))))))))))))).
 
 theorem minus_x_SO:
  \forall (x: nat).((lt O x) \to (eq nat x (S (minus x (S O)))))
 \def
- \lambda (x: nat).(\lambda (H: (lt O x)).(let TMP_502 \def (minus x O) in 
-(let TMP_501 \def (\lambda (n: nat).(eq nat x n)) in (let TMP_499 \def 
-(\lambda (n: nat).(eq nat x n)) in (let TMP_498 \def (refl_equal nat x) in 
-(let TMP_497 \def (minus x O) in (let TMP_496 \def (minus_n_O x) in (let 
-TMP_500 \def (eq_ind nat x TMP_499 TMP_498 TMP_497 TMP_496) in (let TMP_493 
-\def (S O) in (let TMP_494 \def (minus x TMP_493) in (let TMP_495 \def (S 
-TMP_494) in (let TMP_492 \def (minus_x_Sy x O H) in (eq_ind nat TMP_502 
-TMP_501 TMP_500 TMP_495 TMP_492))))))))))))).
+ \lambda (x: nat).(\lambda (H: (lt O x)).(let TMP_1 \def (minus x O) in (let 
+TMP_2 \def (\lambda (n: nat).(eq nat x n)) in (let TMP_3 \def (\lambda (n: 
+nat).(eq nat x n)) in (let TMP_4 \def (refl_equal nat x) in (let TMP_5 \def 
+(minus x O) in (let TMP_6 \def (minus_n_O x) in (let TMP_7 \def (eq_ind nat x 
+TMP_3 TMP_4 TMP_5 TMP_6) in (let TMP_8 \def (S O) in (let TMP_9 \def (minus x 
+TMP_8) in (let TMP_10 \def (S TMP_9) in (let TMP_11 \def (minus_x_Sy x O H) 
+in (eq_ind nat TMP_1 TMP_2 TMP_7 TMP_10 TMP_11))))))))))))).
 
 theorem le_x_pred_y:
  \forall (y: nat).(\forall (x: nat).((lt x y) \to (le x (pred y))))
 \def
- \lambda (y: nat).(let TMP_514 \def (\lambda (n: nat).(\forall (x: nat).((lt 
-x n) \to (let TMP_513 \def (pred n) in (le x TMP_513))))) in (let TMP_512 
-\def (\lambda (x: nat).(\lambda (H: (lt x O)).(let H0 \def (match H in le 
-with [le_n \Rightarrow (\lambda (H0: (eq nat (S x) O)).(let TMP_509 \def (S 
-x) in (let TMP_508 \def (\lambda (e: nat).(match e in nat with [O \Rightarrow 
-False | (S _) \Rightarrow True])) in (let H1 \def (eq_ind nat TMP_509 TMP_508 
-I O H0) in (let TMP_510 \def (le x O) in (False_ind TMP_510 H1)))))) | (le_S 
-m H0) \Rightarrow (\lambda (H1: (eq nat (S m) O)).(let TMP_505 \def (S m) in 
-(let TMP_504 \def (\lambda (e: nat).(match e in nat with [O \Rightarrow False 
-| (S _) \Rightarrow True])) in (let H2 \def (eq_ind nat TMP_505 TMP_504 I O 
-H1) in (let TMP_506 \def ((le (S x) m) \to (le x O)) in (let TMP_507 \def 
-(False_ind TMP_506 H2) in (TMP_507 H0)))))))]) in (let TMP_511 \def 
-(refl_equal nat O) in (H0 TMP_511))))) in (let TMP_503 \def (\lambda (n: 
-nat).(\lambda (_: ((\forall (x: nat).((lt x n) \to (le x (pred 
-n)))))).(\lambda (x: nat).(\lambda (H0: (lt x (S n))).(le_S_n x n H0))))) in 
-(nat_ind TMP_514 TMP_512 TMP_503 y)))).
+ \lambda (y: nat).(let TMP_2 \def (\lambda (n: nat).(\forall (x: nat).((lt x 
+n) \to (let TMP_1 \def (pred n) in (le x TMP_1))))) in (let TMP_11 \def 
+(\lambda (x: nat).(\lambda (H: (lt x O)).(let H0 \def (match H with [le_n 
+\Rightarrow (\lambda (H0: (eq nat (S x) O)).(let TMP_7 \def (S x) in (let 
+TMP_8 \def (\lambda (e: nat).(match e with [O \Rightarrow False | (S _) 
+\Rightarrow True])) in (let H1 \def (eq_ind nat TMP_7 TMP_8 I O H0) in (let 
+TMP_9 \def (le x O) in (False_ind TMP_9 H1)))))) | (le_S m H0) \Rightarrow 
+(\lambda (H1: (eq nat (S m) O)).(let TMP_3 \def (S m) in (let TMP_4 \def 
+(\lambda (e: nat).(match e with [O \Rightarrow False | (S _) \Rightarrow 
+True])) in (let H2 \def (eq_ind nat TMP_3 TMP_4 I O H1) in (let TMP_5 \def 
+((le (S x) m) \to (le x O)) in (let TMP_6 \def (False_ind TMP_5 H2) in (TMP_6 
+H0)))))))]) in (let TMP_10 \def (refl_equal nat O) in (H0 TMP_10))))) in (let 
+TMP_12 \def (\lambda (n: nat).(\lambda (_: ((\forall (x: nat).((lt x n) \to 
+(le x (pred n)))))).(\lambda (x: nat).(\lambda (H0: (lt x (S n))).(le_S_n x n 
+H0))))) in (nat_ind TMP_2 TMP_11 TMP_12 y)))).
 
 theorem lt_le_minus:
  \forall (x: nat).(\forall (y: nat).((lt x y) \to (le x (minus y (S O)))))
 \def
- \lambda (x: nat).(\lambda (y: nat).(\lambda (H: (lt x y)).(let TMP_523 \def 
-(S O) in (let TMP_520 \def (S O) in (let TMP_521 \def (plus TMP_520 x) in 
-(let TMP_519 \def (\lambda (n: nat).(le n y)) in (let TMP_517 \def (S O) in 
-(let TMP_518 \def (plus x TMP_517) in (let TMP_515 \def (S O) in (let TMP_516 
-\def (plus_sym x TMP_515) in (let TMP_522 \def (eq_ind_r nat TMP_521 TMP_519 
-H TMP_518 TMP_516) in (le_minus x y TMP_523 TMP_522)))))))))))).
+ \lambda (x: nat).(\lambda (y: nat).(\lambda (H: (lt x y)).(let TMP_1 \def (S 
+O) in (let TMP_2 \def (S O) in (let TMP_3 \def (plus TMP_2 x) in (let TMP_4 
+\def (\lambda (n: nat).(le n y)) in (let TMP_5 \def (S O) in (let TMP_6 \def 
+(plus x TMP_5) in (let TMP_7 \def (S O) in (let TMP_8 \def (plus_sym x TMP_7) 
+in (let TMP_9 \def (eq_ind_r nat TMP_3 TMP_4 H TMP_6 TMP_8) in (le_minus x y 
+TMP_1 TMP_9)))))))))))).
 
 theorem lt_le_e:
  \forall (n: nat).(\forall (d: nat).(\forall (P: Prop).((((lt n d) \to P)) 
@@ -582,8 +563,8 @@ theorem lt_le_e:
 \def
  \lambda (n: nat).(\lambda (d: nat).(\lambda (P: Prop).(\lambda (H: (((lt n 
 d) \to P))).(\lambda (H0: (((le d n) \to P))).(let H1 \def (le_or_lt d n) in 
-(let TMP_525 \def (le d n) in (let TMP_524 \def (lt n d) in (or_ind TMP_525 
-TMP_524 P H0 H H1)))))))).
+(let TMP_1 \def (le d n) in (let TMP_2 \def (lt n d) in (or_ind TMP_1 TMP_2 P 
+H0 H H1)))))))).
 
 theorem lt_eq_e:
  \forall (x: nat).(\forall (y: nat).(\forall (P: Prop).((((lt x y) \to P)) 
@@ -591,9 +572,8 @@ theorem lt_eq_e:
 \def
  \lambda (x: nat).(\lambda (y: nat).(\lambda (P: Prop).(\lambda (H: (((lt x 
 y) \to P))).(\lambda (H0: (((eq nat x y) \to P))).(\lambda (H1: (le x 
-y)).(let TMP_528 \def (lt x y) in (let TMP_527 \def (eq nat x y) in (let 
-TMP_526 \def (le_lt_or_eq x y H1) in (or_ind TMP_528 TMP_527 P H H0 
-TMP_526))))))))).
+y)).(let TMP_1 \def (lt x y) in (let TMP_2 \def (eq nat x y) in (let TMP_3 
+\def (le_lt_or_eq x y H1) in (or_ind TMP_1 TMP_2 P H H0 TMP_3))))))))).
 
 theorem lt_eq_gt_e:
  \forall (x: nat).(\forall (y: nat).(\forall (P: Prop).((((lt x y) \to P)) 
@@ -601,298 +581,289 @@ theorem lt_eq_gt_e:
 \def
  \lambda (x: nat).(\lambda (y: nat).(\lambda (P: Prop).(\lambda (H: (((lt x 
 y) \to P))).(\lambda (H0: (((eq nat x y) \to P))).(\lambda (H1: (((lt y x) 
-\to P))).(let TMP_531 \def (\lambda (H2: (le y x)).(let TMP_530 \def (\lambda 
-(H3: (eq nat y x)).(let TMP_529 \def (sym_eq nat y x H3) in (H0 TMP_529))) in 
-(lt_eq_e y x P H1 TMP_530 H2))) in (lt_le_e x y P H TMP_531))))))).
+\to P))).(let TMP_3 \def (\lambda (H2: (le y x)).(let TMP_2 \def (\lambda 
+(H3: (eq nat y x)).(let TMP_1 \def (sym_eq nat y x H3) in (H0 TMP_1))) in 
+(lt_eq_e y x P H1 TMP_2 H2))) in (lt_le_e x y P H TMP_3))))))).
 
 theorem lt_gen_xS:
  \forall (x: nat).(\forall (n: nat).((lt x (S n)) \to (or (eq nat x O) (ex2 
 nat (\lambda (m: nat).(eq nat x (S m))) (\lambda (m: nat).(lt m n))))))
 \def
- \lambda (x: nat).(let TMP_561 \def (\lambda (n: nat).(\forall (n0: nat).((lt 
-n (S n0)) \to (let TMP_560 \def (eq nat n O) in (let TMP_558 \def (\lambda 
-(m: nat).(let TMP_557 \def (S m) in (eq nat n TMP_557))) in (let TMP_556 \def 
-(\lambda (m: nat).(lt m n0)) in (let TMP_559 \def (ex2 nat TMP_558 TMP_556) 
-in (or TMP_560 TMP_559)))))))) in (let TMP_555 \def (\lambda (n: 
-nat).(\lambda (_: (lt O (S n))).(let TMP_554 \def (eq nat O O) in (let 
-TMP_552 \def (\lambda (m: nat).(let TMP_551 \def (S m) in (eq nat O 
-TMP_551))) in (let TMP_550 \def (\lambda (m: nat).(lt m n)) in (let TMP_553 
-\def (ex2 nat TMP_552 TMP_550) in (let TMP_549 \def (refl_equal nat O) in 
-(or_introl TMP_554 TMP_553 TMP_549)))))))) in (let TMP_548 \def (\lambda (n: 
-nat).(\lambda (_: ((\forall (n0: nat).((lt n (S n0)) \to (or (eq nat n O) 
-(ex2 nat (\lambda (m: nat).(eq nat n (S m))) (\lambda (m: nat).(lt m 
-n0)))))))).(\lambda (n0: nat).(\lambda (H0: (lt (S n) (S n0))).(let TMP_546 
-\def (S n) in (let TMP_547 \def (eq nat TMP_546 O) in (let TMP_544 \def 
-(\lambda (m: nat).(let TMP_543 \def (S n) in (let TMP_542 \def (S m) in (eq 
-nat TMP_543 TMP_542)))) in (let TMP_541 \def (\lambda (m: nat).(lt m n0)) in 
-(let TMP_545 \def (ex2 nat TMP_544 TMP_541) in (let TMP_539 \def (\lambda (m: 
-nat).(let TMP_538 \def (S n) in (let TMP_537 \def (S m) in (eq nat TMP_538 
-TMP_537)))) in (let TMP_536 \def (\lambda (m: nat).(lt m n0)) in (let TMP_534 
-\def (S n) in (let TMP_535 \def (refl_equal nat TMP_534) in (let TMP_532 \def 
-(S n) in (let TMP_533 \def (le_S_n TMP_532 n0 H0) in (let TMP_540 \def 
-(ex_intro2 nat TMP_539 TMP_536 n TMP_535 TMP_533) in (or_intror TMP_547 
-TMP_545 TMP_540))))))))))))))))) in (nat_ind TMP_561 TMP_555 TMP_548 x)))).
+ \lambda (x: nat).(let TMP_6 \def (\lambda (n: nat).(\forall (n0: nat).((lt n 
+(S n0)) \to (let TMP_1 \def (eq nat n O) in (let TMP_3 \def (\lambda (m: 
+nat).(let TMP_2 \def (S m) in (eq nat n TMP_2))) in (let TMP_4 \def (\lambda 
+(m: nat).(lt m n0)) in (let TMP_5 \def (ex2 nat TMP_3 TMP_4) in (or TMP_1 
+TMP_5)))))))) in (let TMP_13 \def (\lambda (n: nat).(\lambda (_: (lt O (S 
+n))).(let TMP_7 \def (eq nat O O) in (let TMP_9 \def (\lambda (m: nat).(let 
+TMP_8 \def (S m) in (eq nat O TMP_8))) in (let TMP_10 \def (\lambda (m: 
+nat).(lt m n)) in (let TMP_11 \def (ex2 nat TMP_9 TMP_10) in (let TMP_12 \def 
+(refl_equal nat O) in (or_introl TMP_7 TMP_11 TMP_12)))))))) in (let TMP_30 
+\def (\lambda (n: nat).(\lambda (_: ((\forall (n0: nat).((lt n (S n0)) \to 
+(or (eq nat n O) (ex2 nat (\lambda (m: nat).(eq nat n (S m))) (\lambda (m: 
+nat).(lt m n0)))))))).(\lambda (n0: nat).(\lambda (H0: (lt (S n) (S 
+n0))).(let TMP_14 \def (S n) in (let TMP_15 \def (eq nat TMP_14 O) in (let 
+TMP_18 \def (\lambda (m: nat).(let TMP_16 \def (S n) in (let TMP_17 \def (S 
+m) in (eq nat TMP_16 TMP_17)))) in (let TMP_19 \def (\lambda (m: nat).(lt m 
+n0)) in (let TMP_20 \def (ex2 nat TMP_18 TMP_19) in (let TMP_23 \def (\lambda 
+(m: nat).(let TMP_21 \def (S n) in (let TMP_22 \def (S m) in (eq nat TMP_21 
+TMP_22)))) in (let TMP_24 \def (\lambda (m: nat).(lt m n0)) in (let TMP_25 
+\def (S n) in (let TMP_26 \def (refl_equal nat TMP_25) in (let TMP_27 \def (S 
+n) in (let TMP_28 \def (le_S_n TMP_27 n0 H0) in (let TMP_29 \def (ex_intro2 
+nat TMP_23 TMP_24 n TMP_26 TMP_28) in (or_intror TMP_15 TMP_20 
+TMP_29))))))))))))))))) in (nat_ind TMP_6 TMP_13 TMP_30 x)))).
 
 theorem le_lt_false:
  \forall (x: nat).(\forall (y: nat).((le x y) \to ((lt y x) \to (\forall (P: 
 Prop).P))))
 \def
  \lambda (x: nat).(\lambda (y: nat).(\lambda (H: (le x y)).(\lambda (H0: (lt 
-y x)).(\lambda (P: Prop).(let TMP_562 \def (le_not_lt x y H H0) in (False_ind 
-P TMP_562)))))).
+y x)).(\lambda (P: Prop).(let TMP_1 \def (le_not_lt x y H H0) in (False_ind P 
+TMP_1)))))).
 
 theorem lt_neq:
  \forall (x: nat).(\forall (y: nat).((lt x y) \to (not (eq nat x y))))
 \def
  \lambda (x: nat).(\lambda (y: nat).(\lambda (H: (lt x y)).(\lambda (H0: (eq 
-nat x y)).(let TMP_563 \def (\lambda (n: nat).(lt n y)) in (let H1 \def 
-(eq_ind nat x TMP_563 H y H0) in (lt_n_n y H1)))))).
+nat x y)).(let TMP_1 \def (\lambda (n: nat).(lt n y)) in (let H1 \def (eq_ind 
+nat x TMP_1 H y H0) in (lt_n_n y H1)))))).
 
 theorem arith0:
  \forall (h2: nat).(\forall (d2: nat).(\forall (n: nat).((le (plus d2 h2) n) 
 \to (\forall (h1: nat).(le (plus d2 h1) (minus (plus n h1) h2))))))
 \def
  \lambda (h2: nat).(\lambda (d2: nat).(\lambda (n: nat).(\lambda (H: (le 
-(plus d2 h2) n)).(\lambda (h1: nat).(let TMP_602 \def (plus d2 h1) in (let 
-TMP_603 \def (plus h2 TMP_602) in (let TMP_604 \def (minus TMP_603 h2) in 
-(let TMP_601 \def (\lambda (n0: nat).(let TMP_599 \def (plus n h1) in (let 
-TMP_600 \def (minus TMP_599 h2) in (le n0 TMP_600)))) in (let TMP_596 \def 
-(plus d2 h1) in (let TMP_597 \def (plus h2 TMP_596) in (let TMP_594 \def 
-(plus d2 h1) in (let TMP_595 \def (le_plus_l h2 TMP_594) in (let TMP_593 \def 
-(plus n h1) in (let TMP_590 \def (plus h2 d2) in (let TMP_591 \def (plus 
-TMP_590 h1) in (let TMP_589 \def (\lambda (n0: nat).(let TMP_588 \def (plus n 
-h1) in (le n0 TMP_588))) in (let TMP_586 \def (plus d2 h2) in (let TMP_585 
-\def (\lambda (n0: nat).(let TMP_584 \def (plus n0 h1) in (let TMP_583 \def 
-(plus n h1) in (le TMP_584 TMP_583)))) in (let TMP_580 \def (plus d2 h2) in 
-(let TMP_581 \def (plus TMP_580 h1) in (let TMP_579 \def (plus n h1) in (let 
-TMP_576 \def (plus d2 h2) in (let TMP_577 \def (plus TMP_576 h1) in (let 
-TMP_575 \def (plus n h1) in (let TMP_573 \def (plus d2 h2) in (let TMP_572 
-\def (le_n h1) in (let TMP_574 \def (le_plus_plus TMP_573 n h1 h1 H TMP_572) 
-in (let TMP_578 \def (le_n_S TMP_577 TMP_575 TMP_574) in (let TMP_582 \def 
-(le_S_n TMP_581 TMP_579 TMP_578) in (let TMP_571 \def (plus h2 d2) in (let 
-TMP_570 \def (plus_sym h2 d2) in (let TMP_587 \def (eq_ind_r nat TMP_586 
-TMP_585 TMP_582 TMP_571 TMP_570) in (let TMP_568 \def (plus d2 h1) in (let 
-TMP_569 \def (plus h2 TMP_568) in (let TMP_567 \def (plus_assoc_l h2 d2 h1) 
-in (let TMP_592 \def (eq_ind_r nat TMP_591 TMP_589 TMP_587 TMP_569 TMP_567) 
-in (let TMP_598 \def (le_minus_minus h2 TMP_597 TMP_595 TMP_593 TMP_592) in 
-(let TMP_566 \def (plus d2 h1) in (let TMP_564 \def (plus d2 h1) in (let 
-TMP_565 \def (minus_plus h2 TMP_564) in (eq_ind nat TMP_604 TMP_601 TMP_598 
-TMP_566 TMP_565))))))))))))))))))))))))))))))))))))))))).
+(plus d2 h2) n)).(\lambda (h1: nat).(let TMP_1 \def (plus d2 h1) in (let 
+TMP_2 \def (plus h2 TMP_1) in (let TMP_3 \def (minus TMP_2 h2) in (let TMP_6 
+\def (\lambda (n0: nat).(let TMP_4 \def (plus n h1) in (let TMP_5 \def (minus 
+TMP_4 h2) in (le n0 TMP_5)))) in (let TMP_7 \def (plus d2 h1) in (let TMP_8 
+\def (plus h2 TMP_7) in (let TMP_9 \def (plus d2 h1) in (let TMP_10 \def 
+(le_plus_l h2 TMP_9) in (let TMP_11 \def (plus n h1) in (let TMP_12 \def 
+(plus h2 d2) in (let TMP_13 \def (plus TMP_12 h1) in (let TMP_15 \def 
+(\lambda (n0: nat).(let TMP_14 \def (plus n h1) in (le n0 TMP_14))) in (let 
+TMP_16 \def (plus d2 h2) in (let TMP_19 \def (\lambda (n0: nat).(let TMP_17 
+\def (plus n0 h1) in (let TMP_18 \def (plus n h1) in (le TMP_17 TMP_18)))) in 
+(let TMP_20 \def (plus d2 h2) in (let TMP_21 \def (plus TMP_20 h1) in (let 
+TMP_22 \def (plus n h1) in (let TMP_23 \def (plus d2 h2) in (let TMP_24 \def 
+(plus TMP_23 h1) in (let TMP_25 \def (plus n h1) in (let TMP_26 \def (plus d2 
+h2) in (let TMP_27 \def (le_n h1) in (let TMP_28 \def (le_plus_plus TMP_26 n 
+h1 h1 H TMP_27) in (let TMP_29 \def (le_n_S TMP_24 TMP_25 TMP_28) in (let 
+TMP_30 \def (le_S_n TMP_21 TMP_22 TMP_29) in (let TMP_31 \def (plus h2 d2) in 
+(let TMP_32 \def (plus_sym h2 d2) in (let TMP_33 \def (eq_ind_r nat TMP_16 
+TMP_19 TMP_30 TMP_31 TMP_32) in (let TMP_34 \def (plus d2 h1) in (let TMP_35 
+\def (plus h2 TMP_34) in (let TMP_36 \def (plus_assoc_l h2 d2 h1) in (let 
+TMP_37 \def (eq_ind_r nat TMP_13 TMP_15 TMP_33 TMP_35 TMP_36) in (let TMP_38 
+\def (le_minus_minus h2 TMP_8 TMP_10 TMP_11 TMP_37) in (let TMP_39 \def (plus 
+d2 h1) in (let TMP_40 \def (plus d2 h1) in (let TMP_41 \def (minus_plus h2 
+TMP_40) in (eq_ind nat TMP_3 TMP_6 TMP_38 TMP_39 
+TMP_41))))))))))))))))))))))))))))))))))))))))).
 
 theorem O_minus:
  \forall (x: nat).(\forall (y: nat).((le x y) \to (eq nat (minus x y) O)))
 \def
- \lambda (x: nat).(let TMP_624 \def (\lambda (n: nat).(\forall (y: nat).((le 
-n y) \to (let TMP_623 \def (minus n y) in (eq nat TMP_623 O))))) in (let 
-TMP_622 \def (\lambda (y: nat).(\lambda (_: (le O y)).(refl_equal nat O))) in 
-(let TMP_621 \def (\lambda (x0: nat).(\lambda (H: ((\forall (y: nat).((le x0 
-y) \to (eq nat (minus x0 y) O))))).(\lambda (y: nat).(let TMP_620 \def 
-(\lambda (n: nat).((le (S x0) n) \to (let TMP_619 \def (match n with [O 
-\Rightarrow (S x0) | (S l) \Rightarrow (minus x0 l)]) in (eq nat TMP_619 
-O)))) in (let TMP_618 \def (\lambda (H0: (le (S x0) O)).(let TMP_617 \def 
-(\lambda (n: nat).(let TMP_616 \def (S n) in (eq nat O TMP_616))) in (let 
-TMP_615 \def (\lambda (n: nat).(le x0 n)) in (let TMP_613 \def (S x0) in (let 
-TMP_614 \def (eq nat TMP_613 O) in (let TMP_612 \def (\lambda (x1: 
-nat).(\lambda (H1: (eq nat O (S x1))).(\lambda (_: (le x0 x1)).(let TMP_609 
-\def (\lambda (ee: nat).(match ee in nat with [O \Rightarrow True | (S _) 
-\Rightarrow False])) in (let TMP_608 \def (S x1) in (let H3 \def (eq_ind nat 
-O TMP_609 I TMP_608 H1) in (let TMP_610 \def (S x0) in (let TMP_611 \def (eq 
-nat TMP_610 O) in (False_ind TMP_611 H3))))))))) in (let TMP_607 \def 
-(le_gen_S x0 O H0) in (ex2_ind nat TMP_617 TMP_615 TMP_614 TMP_612 
-TMP_607)))))))) in (let TMP_606 \def (\lambda (n: nat).(\lambda (_: (((le (S 
-x0) n) \to (eq nat (match n with [O \Rightarrow (S x0) | (S l) \Rightarrow 
-(minus x0 l)]) O)))).(\lambda (H1: (le (S x0) (S n))).(let TMP_605 \def 
-(le_S_n x0 n H1) in (H n TMP_605))))) in (nat_ind TMP_620 TMP_618 TMP_606 
-y))))))) in (nat_ind TMP_624 TMP_622 TMP_621 x)))).
+ \lambda (x: nat).(let TMP_2 \def (\lambda (n: nat).(\forall (y: nat).((le n 
+y) \to (let TMP_1 \def (minus n y) in (eq nat TMP_1 O))))) in (let TMP_3 \def 
+(\lambda (y: nat).(\lambda (_: (le O y)).(refl_equal nat O))) in (let TMP_20 
+\def (\lambda (x0: nat).(\lambda (H: ((\forall (y: nat).((le x0 y) \to (eq 
+nat (minus x0 y) O))))).(\lambda (y: nat).(let TMP_5 \def (\lambda (n: 
+nat).((le (S x0) n) \to (let TMP_4 \def (match n with [O \Rightarrow (S x0) | 
+(S l) \Rightarrow (minus x0 l)]) in (eq nat TMP_4 O)))) in (let TMP_17 \def 
+(\lambda (H0: (le (S x0) O)).(let TMP_7 \def (\lambda (n: nat).(let TMP_6 
+\def (S n) in (eq nat O TMP_6))) in (let TMP_8 \def (\lambda (n: nat).(le x0 
+n)) in (let TMP_9 \def (S x0) in (let TMP_10 \def (eq nat TMP_9 O) in (let 
+TMP_15 \def (\lambda (x1: nat).(\lambda (H1: (eq nat O (S x1))).(\lambda (_: 
+(le x0 x1)).(let TMP_11 \def (\lambda (ee: nat).(match ee with [O \Rightarrow 
+True | (S _) \Rightarrow False])) in (let TMP_12 \def (S x1) in (let H3 \def 
+(eq_ind nat O TMP_11 I TMP_12 H1) in (let TMP_13 \def (S x0) in (let TMP_14 
+\def (eq nat TMP_13 O) in (False_ind TMP_14 H3))))))))) in (let TMP_16 \def 
+(le_gen_S x0 O H0) in (ex2_ind nat TMP_7 TMP_8 TMP_10 TMP_15 TMP_16)))))))) 
+in (let TMP_19 \def (\lambda (n: nat).(\lambda (_: (((le (S x0) n) \to (eq 
+nat (match n with [O \Rightarrow (S x0) | (S l) \Rightarrow (minus x0 l)]) 
+O)))).(\lambda (H1: (le (S x0) (S n))).(let TMP_18 \def (le_S_n x0 n H1) in 
+(H n TMP_18))))) in (nat_ind TMP_5 TMP_17 TMP_19 y))))))) in (nat_ind TMP_2 
+TMP_3 TMP_20 x)))).
 
 theorem minus_minus:
  \forall (z: nat).(\forall (x: nat).(\forall (y: nat).((le z x) \to ((le z y) 
 \to ((eq nat (minus x z) (minus y z)) \to (eq nat x y))))))
 \def
- \lambda (z: nat).(let TMP_664 \def (\lambda (n: nat).(\forall (x: 
+ \lambda (z: nat).(let TMP_1 \def (\lambda (n: nat).(\forall (x: 
 nat).(\forall (y: nat).((le n x) \to ((le n y) \to ((eq nat (minus x n) 
-(minus y n)) \to (eq nat x y))))))) in (let TMP_663 \def (\lambda (x: 
+(minus y n)) \to (eq nat x y))))))) in (let TMP_9 \def (\lambda (x: 
 nat).(\lambda (y: nat).(\lambda (_: (le O x)).(\lambda (_: (le O y)).(\lambda 
-(H1: (eq nat (minus x O) (minus y O))).(let TMP_659 \def (minus x O) in (let 
-TMP_658 \def (\lambda (n: nat).(let TMP_657 \def (minus y O) in (eq nat n 
-TMP_657))) in (let TMP_656 \def (minus_n_O x) in (let H2 \def (eq_ind_r nat 
-TMP_659 TMP_658 H1 x TMP_656) in (let TMP_662 \def (minus y O) in (let 
-TMP_661 \def (\lambda (n: nat).(eq nat x n)) in (let TMP_660 \def (minus_n_O 
-y) in (let H3 \def (eq_ind_r nat TMP_662 TMP_661 H2 y TMP_660) in 
-H3))))))))))))) in (let TMP_655 \def (\lambda (z0: nat).(\lambda (IH: 
-((\forall (x: nat).(\forall (y: nat).((le z0 x) \to ((le z0 y) \to ((eq nat 
-(minus x z0) (minus y z0)) \to (eq nat x y)))))))).(\lambda (x: nat).(let 
-TMP_654 \def (\lambda (n: nat).(\forall (y: nat).((le (S z0) n) \to ((le (S 
-z0) y) \to ((eq nat (minus n (S z0)) (minus y (S z0))) \to (eq nat n y)))))) 
-in (let TMP_653 \def (\lambda (y: nat).(\lambda (H: (le (S z0) O)).(\lambda 
-(_: (le (S z0) y)).(\lambda (_: (eq nat (minus O (S z0)) (minus y (S 
-z0)))).(let TMP_652 \def (\lambda (n: nat).(let TMP_651 \def (S n) in (eq nat 
-O TMP_651))) in (let TMP_650 \def (\lambda (n: nat).(le z0 n)) in (let 
-TMP_649 \def (eq nat O y) in (let TMP_648 \def (\lambda (x0: nat).(\lambda 
-(H2: (eq nat O (S x0))).(\lambda (_: (le z0 x0)).(let TMP_646 \def (\lambda 
-(ee: nat).(match ee in nat with [O \Rightarrow True | (S _) \Rightarrow 
-False])) in (let TMP_645 \def (S x0) in (let H4 \def (eq_ind nat O TMP_646 I 
-TMP_645 H2) in (let TMP_647 \def (eq nat O y) in (False_ind TMP_647 
-H4)))))))) in (let TMP_644 \def (le_gen_S z0 O H) in (ex2_ind nat TMP_652 
-TMP_650 TMP_649 TMP_648 TMP_644)))))))))) in (let TMP_643 \def (\lambda (x0: 
+(H1: (eq nat (minus x O) (minus y O))).(let TMP_2 \def (minus x O) in (let 
+TMP_4 \def (\lambda (n: nat).(let TMP_3 \def (minus y O) in (eq nat n 
+TMP_3))) in (let TMP_5 \def (minus_n_O x) in (let H2 \def (eq_ind_r nat TMP_2 
+TMP_4 H1 x TMP_5) in (let TMP_6 \def (minus y O) in (let TMP_7 \def (\lambda 
+(n: nat).(eq nat x n)) in (let TMP_8 \def (minus_n_O y) in (let H3 \def 
+(eq_ind_r nat TMP_6 TMP_7 H2 y TMP_8) in H3))))))))))))) in (let TMP_40 \def 
+(\lambda (z0: nat).(\lambda (IH: ((\forall (x: nat).(\forall (y: nat).((le z0 
+x) \to ((le z0 y) \to ((eq nat (minus x z0) (minus y z0)) \to (eq nat x 
+y)))))))).(\lambda (x: nat).(let TMP_10 \def (\lambda (n: nat).(\forall (y: 
+nat).((le (S z0) n) \to ((le (S z0) y) \to ((eq nat (minus n (S z0)) (minus y 
+(S z0))) \to (eq nat n y)))))) in (let TMP_20 \def (\lambda (y: nat).(\lambda 
+(H: (le (S z0) O)).(\lambda (_: (le (S z0) y)).(\lambda (_: (eq nat (minus O 
+(S z0)) (minus y (S z0)))).(let TMP_12 \def (\lambda (n: nat).(let TMP_11 
+\def (S n) in (eq nat O TMP_11))) in (let TMP_13 \def (\lambda (n: nat).(le 
+z0 n)) in (let TMP_14 \def (eq nat O y) in (let TMP_18 \def (\lambda (x0: 
+nat).(\lambda (H2: (eq nat O (S x0))).(\lambda (_: (le z0 x0)).(let TMP_15 
+\def (\lambda (ee: nat).(match ee with [O \Rightarrow True | (S _) 
+\Rightarrow False])) in (let TMP_16 \def (S x0) in (let H4 \def (eq_ind nat O 
+TMP_15 I TMP_16 H2) in (let TMP_17 \def (eq nat O y) in (False_ind TMP_17 
+H4)))))))) in (let TMP_19 \def (le_gen_S z0 O H) in (ex2_ind nat TMP_12 
+TMP_13 TMP_14 TMP_18 TMP_19)))))))))) in (let TMP_39 \def (\lambda (x0: 
 nat).(\lambda (_: ((\forall (y: nat).((le (S z0) x0) \to ((le (S z0) y) \to 
 ((eq nat (minus x0 (S z0)) (minus y (S z0))) \to (eq nat x0 y))))))).(\lambda 
-(y: nat).(let TMP_642 \def (\lambda (n: nat).((le (S z0) (S x0)) \to ((le (S 
-z0) n) \to ((eq nat (minus (S x0) (S z0)) (minus n (S z0))) \to (let TMP_641 
-\def (S x0) in (eq nat TMP_641 n)))))) in (let TMP_640 \def (\lambda (H: (le 
-(S z0) (S x0))).(\lambda (H0: (le (S z0) O)).(\lambda (_: (eq nat (minus (S 
-x0) (S z0)) (minus O (S z0)))).(let H_y \def (le_S_n z0 x0 H) in (let TMP_639 
-\def (\lambda (n: nat).(let TMP_638 \def (S n) in (eq nat O TMP_638))) in 
-(let TMP_637 \def (\lambda (n: nat).(le z0 n)) in (let TMP_635 \def (S x0) in 
-(let TMP_636 \def (eq nat TMP_635 O) in (let TMP_634 \def (\lambda (x1: 
-nat).(\lambda (H2: (eq nat O (S x1))).(\lambda (_: (le z0 x1)).(let TMP_631 
-\def (\lambda (ee: nat).(match ee in nat with [O \Rightarrow True | (S _) 
-\Rightarrow False])) in (let TMP_630 \def (S x1) in (let H4 \def (eq_ind nat 
-O TMP_631 I TMP_630 H2) in (let TMP_632 \def (S x0) in (let TMP_633 \def (eq 
-nat TMP_632 O) in (False_ind TMP_633 H4))))))))) in (let TMP_629 \def 
-(le_gen_S z0 O H0) in (ex2_ind nat TMP_639 TMP_637 TMP_636 TMP_634 
-TMP_629))))))))))) in (let TMP_628 \def (\lambda (y0: nat).(\lambda (_: (((le 
-(S z0) (S x0)) \to ((le (S z0) y0) \to ((eq nat (minus (S x0) (S z0)) (minus 
-y0 (S z0))) \to (eq nat (S x0) y0)))))).(\lambda (H: (le (S z0) (S 
-x0))).(\lambda (H0: (le (S z0) (S y0))).(\lambda (H1: (eq nat (minus (S x0) 
-(S z0)) (minus (S y0) (S z0)))).(let TMP_626 \def (le_S_n z0 x0 H) in (let 
-TMP_625 \def (le_S_n z0 y0 H0) in (let TMP_627 \def (IH x0 y0 TMP_626 TMP_625 
-H1) in (f_equal nat nat S x0 y0 TMP_627))))))))) in (nat_ind TMP_642 TMP_640 
-TMP_628 y))))))) in (nat_ind TMP_654 TMP_653 TMP_643 x))))))) in (nat_ind 
-TMP_664 TMP_663 TMP_655 z)))).
+(y: nat).(let TMP_22 \def (\lambda (n: nat).((le (S z0) (S x0)) \to ((le (S 
+z0) n) \to ((eq nat (minus (S x0) (S z0)) (minus n (S z0))) \to (let TMP_21 
+\def (S x0) in (eq nat TMP_21 n)))))) in (let TMP_34 \def (\lambda (H: (le (S 
+z0) (S x0))).(\lambda (H0: (le (S z0) O)).(\lambda (_: (eq nat (minus (S x0) 
+(S z0)) (minus O (S z0)))).(let H_y \def (le_S_n z0 x0 H) in (let TMP_24 \def 
+(\lambda (n: nat).(let TMP_23 \def (S n) in (eq nat O TMP_23))) in (let 
+TMP_25 \def (\lambda (n: nat).(le z0 n)) in (let TMP_26 \def (S x0) in (let 
+TMP_27 \def (eq nat TMP_26 O) in (let TMP_32 \def (\lambda (x1: nat).(\lambda 
+(H2: (eq nat O (S x1))).(\lambda (_: (le z0 x1)).(let TMP_28 \def (\lambda 
+(ee: nat).(match ee with [O \Rightarrow True | (S _) \Rightarrow False])) in 
+(let TMP_29 \def (S x1) in (let H4 \def (eq_ind nat O TMP_28 I TMP_29 H2) in 
+(let TMP_30 \def (S x0) in (let TMP_31 \def (eq nat TMP_30 O) in (False_ind 
+TMP_31 H4))))))))) in (let TMP_33 \def (le_gen_S z0 O H0) in (ex2_ind nat 
+TMP_24 TMP_25 TMP_27 TMP_32 TMP_33))))))))))) in (let TMP_38 \def (\lambda 
+(y0: nat).(\lambda (_: (((le (S z0) (S x0)) \to ((le (S z0) y0) \to ((eq nat 
+(minus (S x0) (S z0)) (minus y0 (S z0))) \to (eq nat (S x0) y0)))))).(\lambda 
+(H: (le (S z0) (S x0))).(\lambda (H0: (le (S z0) (S y0))).(\lambda (H1: (eq 
+nat (minus (S x0) (S z0)) (minus (S y0) (S z0)))).(let TMP_35 \def (le_S_n z0 
+x0 H) in (let TMP_36 \def (le_S_n z0 y0 H0) in (let TMP_37 \def (IH x0 y0 
+TMP_35 TMP_36 H1) in (f_equal nat nat S x0 y0 TMP_37))))))))) in (nat_ind 
+TMP_22 TMP_34 TMP_38 y))))))) in (nat_ind TMP_10 TMP_20 TMP_39 x))))))) in 
+(nat_ind TMP_1 TMP_9 TMP_40 z)))).
 
 theorem plus_plus:
  \forall (z: nat).(\forall (x1: nat).(\forall (x2: nat).(\forall (y1: 
 nat).(\forall (y2: nat).((le x1 z) \to ((le x2 z) \to ((eq nat (plus (minus z 
 x1) y1) (plus (minus z x2) y2)) \to (eq nat (plus x1 y2) (plus x2 y1)))))))))
 \def
- \lambda (z: nat).(let TMP_755 \def (\lambda (n: nat).(\forall (x1: 
+ \lambda (z: nat).(let TMP_3 \def (\lambda (n: nat).(\forall (x1: 
 nat).(\forall (x2: nat).(\forall (y1: nat).(\forall (y2: nat).((le x1 n) \to 
 ((le x2 n) \to ((eq nat (plus (minus n x1) y1) (plus (minus n x2) y2)) \to 
-(let TMP_754 \def (plus x1 y2) in (let TMP_753 \def (plus x2 y1) in (eq nat 
-TMP_754 TMP_753))))))))))) in (let TMP_752 \def (\lambda (x1: nat).(\lambda 
-(x2: nat).(\lambda (y1: nat).(\lambda (y2: nat).(\lambda (H: (le x1 
-O)).(\lambda (H0: (le x2 O)).(\lambda (H1: (eq nat y1 y2)).(let TMP_751 \def 
-(\lambda (n: nat).(let TMP_750 \def (plus x1 n) in (let TMP_749 \def (plus x2 
-y1) in (eq nat TMP_750 TMP_749)))) in (let H_y \def (le_n_O_eq x2 H0) in (let 
-TMP_747 \def (\lambda (n: nat).(let TMP_746 \def (plus x1 y1) in (let TMP_745 
-\def (plus n y1) in (eq nat TMP_746 TMP_745)))) in (let H_y0 \def (le_n_O_eq 
-x1 H) in (let TMP_743 \def (\lambda (n: nat).(let TMP_742 \def (plus n y1) in 
-(let TMP_741 \def (plus O y1) in (eq nat TMP_742 TMP_741)))) in (let TMP_739 
-\def (plus O y1) in (let TMP_740 \def (refl_equal nat TMP_739) in (let 
-TMP_744 \def (eq_ind nat O TMP_743 TMP_740 x1 H_y0) in (let TMP_748 \def 
-(eq_ind nat O TMP_747 TMP_744 x2 H_y) in (eq_ind nat y1 TMP_751 TMP_748 y2 
-H1))))))))))))))))) in (let TMP_738 \def (\lambda (z0: nat).(\lambda (IH: 
-((\forall (x1: nat).(\forall (x2: nat).(\forall (y1: nat).(\forall (y2: 
-nat).((le x1 z0) \to ((le x2 z0) \to ((eq nat (plus (minus z0 x1) y1) (plus 
-(minus z0 x2) y2)) \to (eq nat (plus x1 y2) (plus x2 y1))))))))))).(\lambda 
-(x1: nat).(let TMP_737 \def (\lambda (n: nat).(\forall (x2: nat).(\forall 
-(y1: nat).(\forall (y2: nat).((le n (S z0)) \to ((le x2 (S z0)) \to ((eq nat 
-(plus (minus (S z0) n) y1) (plus (minus (S z0) x2) y2)) \to (let TMP_736 \def 
-(plus n y2) in (let TMP_735 \def (plus x2 y1) in (eq nat TMP_736 
-TMP_735)))))))))) in (let TMP_734 \def (\lambda (x2: nat).(let TMP_733 \def 
-(\lambda (n: nat).(\forall (y1: nat).(\forall (y2: nat).((le O (S z0)) \to 
-((le n (S z0)) \to ((eq nat (plus (minus (S z0) O) y1) (plus (minus (S z0) n) 
-y2)) \to (let TMP_732 \def (plus O y2) in (let TMP_731 \def (plus n y1) in 
-(eq nat TMP_732 TMP_731))))))))) in (let TMP_730 \def (\lambda (y1: 
-nat).(\lambda (y2: nat).(\lambda (_: (le O (S z0))).(\lambda (_: (le O (S 
-z0))).(\lambda (H1: (eq nat (S (plus z0 y1)) (S (plus z0 y2)))).(let H_y \def 
-(IH O O) in (let TMP_724 \def (minus z0 O) in (let TMP_723 \def (\lambda (n: 
-nat).(\forall (y3: nat).(\forall (y4: nat).((le O z0) \to ((le O z0) \to ((eq 
-nat (plus n y3) (plus n y4)) \to (eq nat y4 y3))))))) in (let TMP_722 \def 
-(minus_n_O z0) in (let H2 \def (eq_ind_r nat TMP_724 TMP_723 H_y z0 TMP_722) 
-in (let TMP_729 \def (le_O_n z0) in (let TMP_728 \def (le_O_n z0) in (let 
-TMP_726 \def (plus z0 y1) in (let TMP_725 \def (plus z0 y2) in (let TMP_727 
-\def (eq_add_S TMP_726 TMP_725 H1) in (H2 y1 y2 TMP_729 TMP_728 
-TMP_727)))))))))))))))) in (let TMP_721 \def (\lambda (x3: nat).(\lambda (_: 
+(let TMP_1 \def (plus x1 y2) in (let TMP_2 \def (plus x2 y1) in (eq nat TMP_1 
+TMP_2))))))))))) in (let TMP_17 \def (\lambda (x1: nat).(\lambda (x2: 
+nat).(\lambda (y1: nat).(\lambda (y2: nat).(\lambda (H: (le x1 O)).(\lambda 
+(H0: (le x2 O)).(\lambda (H1: (eq nat y1 y2)).(let TMP_6 \def (\lambda (n: 
+nat).(let TMP_4 \def (plus x1 n) in (let TMP_5 \def (plus x2 y1) in (eq nat 
+TMP_4 TMP_5)))) in (let H_y \def (le_n_O_eq x2 H0) in (let TMP_9 \def 
+(\lambda (n: nat).(let TMP_7 \def (plus x1 y1) in (let TMP_8 \def (plus n y1) 
+in (eq nat TMP_7 TMP_8)))) in (let H_y0 \def (le_n_O_eq x1 H) in (let TMP_12 
+\def (\lambda (n: nat).(let TMP_10 \def (plus n y1) in (let TMP_11 \def (plus 
+O y1) in (eq nat TMP_10 TMP_11)))) in (let TMP_13 \def (plus O y1) in (let 
+TMP_14 \def (refl_equal nat TMP_13) in (let TMP_15 \def (eq_ind nat O TMP_12 
+TMP_14 x1 H_y0) in (let TMP_16 \def (eq_ind nat O TMP_9 TMP_15 x2 H_y) in 
+(eq_ind nat y1 TMP_6 TMP_16 y2 H1))))))))))))))))) in (let TMP_91 \def 
+(\lambda (z0: nat).(\lambda (IH: ((\forall (x1: nat).(\forall (x2: 
+nat).(\forall (y1: nat).(\forall (y2: nat).((le x1 z0) \to ((le x2 z0) \to 
+((eq nat (plus (minus z0 x1) y1) (plus (minus z0 x2) y2)) \to (eq nat (plus 
+x1 y2) (plus x2 y1))))))))))).(\lambda (x1: nat).(let TMP_20 \def (\lambda 
+(n: nat).(\forall (x2: nat).(\forall (y1: nat).(\forall (y2: nat).((le n (S 
+z0)) \to ((le x2 (S z0)) \to ((eq nat (plus (minus (S z0) n) y1) (plus (minus 
+(S z0) x2) y2)) \to (let TMP_18 \def (plus n y2) in (let TMP_19 \def (plus x2 
+y1) in (eq nat TMP_18 TMP_19)))))))))) in (let TMP_56 \def (\lambda (x2: 
+nat).(let TMP_23 \def (\lambda (n: nat).(\forall (y1: nat).(\forall (y2: 
+nat).((le O (S z0)) \to ((le n (S z0)) \to ((eq nat (plus (minus (S z0) O) 
+y1) (plus (minus (S z0) n) y2)) \to (let TMP_21 \def (plus O y2) in (let 
+TMP_22 \def (plus n y1) in (eq nat TMP_21 TMP_22))))))))) in (let TMP_32 \def 
+(\lambda (y1: nat).(\lambda (y2: nat).(\lambda (_: (le O (S z0))).(\lambda 
+(_: (le O (S z0))).(\lambda (H1: (eq nat (S (plus z0 y1)) (S (plus z0 
+y2)))).(let H_y \def (IH O O) in (let TMP_24 \def (minus z0 O) in (let TMP_25 
+\def (\lambda (n: nat).(\forall (y3: nat).(\forall (y4: nat).((le O z0) \to 
+((le O z0) \to ((eq nat (plus n y3) (plus n y4)) \to (eq nat y4 y3))))))) in 
+(let TMP_26 \def (minus_n_O z0) in (let H2 \def (eq_ind_r nat TMP_24 TMP_25 
+H_y z0 TMP_26) in (let TMP_27 \def (le_O_n z0) in (let TMP_28 \def (le_O_n 
+z0) in (let TMP_29 \def (plus z0 y1) in (let TMP_30 \def (plus z0 y2) in (let 
+TMP_31 \def (eq_add_S TMP_29 TMP_30 H1) in (H2 y1 y2 TMP_27 TMP_28 
+TMP_31)))))))))))))))) in (let TMP_55 \def (\lambda (x3: nat).(\lambda (_: 
 ((\forall (y1: nat).(\forall (y2: nat).((le O (S z0)) \to ((le x3 (S z0)) \to 
 ((eq nat (S (plus z0 y1)) (plus (match x3 with [O \Rightarrow (S z0) | (S l) 
 \Rightarrow (minus z0 l)]) y2)) \to (eq nat y2 (plus x3 y1))))))))).(\lambda 
 (y1: nat).(\lambda (y2: nat).(\lambda (_: (le O (S z0))).(\lambda (H0: (le (S 
 x3) (S z0))).(\lambda (H1: (eq nat (S (plus z0 y1)) (plus (minus z0 x3) 
-y2))).(let TMP_699 \def (S y1) in (let H_y \def (IH O x3 TMP_699) in (let 
-TMP_704 \def (minus z0 O) in (let TMP_703 \def (\lambda (n: nat).(\forall 
-(y3: nat).((le O z0) \to ((le x3 z0) \to ((eq nat (plus n (S y1)) (plus 
-(minus z0 x3) y3)) \to (let TMP_701 \def (S y1) in (let TMP_702 \def (plus x3 
-TMP_701) in (eq nat y3 TMP_702)))))))) in (let TMP_700 \def (minus_n_O z0) in 
-(let H2 \def (eq_ind_r nat TMP_704 TMP_703 H_y z0 TMP_700) in (let TMP_711 
-\def (S y1) in (let TMP_712 \def (plus z0 TMP_711) in (let TMP_710 \def 
-(\lambda (n: nat).(\forall (y3: nat).((le O z0) \to ((le x3 z0) \to ((eq nat 
-n (plus (minus z0 x3) y3)) \to (let TMP_708 \def (S y1) in (let TMP_709 \def 
-(plus x3 TMP_708) in (eq nat y3 TMP_709)))))))) in (let TMP_706 \def (plus z0 
-y1) in (let TMP_707 \def (S TMP_706) in (let TMP_705 \def (plus_n_Sm z0 y1) 
-in (let H3 \def (eq_ind_r nat TMP_712 TMP_710 H2 TMP_707 TMP_705) in (let 
-TMP_717 \def (S y1) in (let TMP_718 \def (plus x3 TMP_717) in (let TMP_716 
-\def (\lambda (n: nat).(\forall (y3: nat).((le O z0) \to ((le x3 z0) \to ((eq 
-nat (S (plus z0 y1)) (plus (minus z0 x3) y3)) \to (eq nat y3 n)))))) in (let 
-TMP_714 \def (plus x3 y1) in (let TMP_715 \def (S TMP_714) in (let TMP_713 
-\def (plus_n_Sm x3 y1) in (let H4 \def (eq_ind_r nat TMP_718 TMP_716 H3 
-TMP_715 TMP_713) in (let TMP_720 \def (le_O_n z0) in (let TMP_719 \def 
-(le_S_n x3 z0 H0) in (H4 y2 TMP_720 TMP_719 H1)))))))))))))))))))))))))))))) 
-in (nat_ind TMP_733 TMP_730 TMP_721 x2))))) in (let TMP_698 \def (\lambda 
-(x2: nat).(\lambda (_: ((\forall (x3: nat).(\forall (y1: nat).(\forall (y2: 
-nat).((le x2 (S z0)) \to ((le x3 (S z0)) \to ((eq nat (plus (minus (S z0) x2) 
-y1) (plus (minus (S z0) x3) y2)) \to (eq nat (plus x2 y2) (plus x3 
-y1)))))))))).(\lambda (x3: nat).(let TMP_697 \def (\lambda (n: nat).(\forall 
-(y1: nat).(\forall (y2: nat).((le (S x2) (S z0)) \to ((le n (S z0)) \to ((eq 
-nat (plus (minus (S z0) (S x2)) y1) (plus (minus (S z0) n) y2)) \to (let 
-TMP_695 \def (S x2) in (let TMP_696 \def (plus TMP_695 y2) in (let TMP_694 
-\def (plus n y1) in (eq nat TMP_696 TMP_694)))))))))) in (let TMP_693 \def 
-(\lambda (y1: nat).(\lambda (y2: nat).(\lambda (H: (le (S x2) (S 
+y2))).(let TMP_33 \def (S y1) in (let H_y \def (IH O x3 TMP_33) in (let 
+TMP_34 \def (minus z0 O) in (let TMP_37 \def (\lambda (n: nat).(\forall (y3: 
+nat).((le O z0) \to ((le x3 z0) \to ((eq nat (plus n (S y1)) (plus (minus z0 
+x3) y3)) \to (let TMP_35 \def (S y1) in (let TMP_36 \def (plus x3 TMP_35) in 
+(eq nat y3 TMP_36)))))))) in (let TMP_38 \def (minus_n_O z0) in (let H2 \def 
+(eq_ind_r nat TMP_34 TMP_37 H_y z0 TMP_38) in (let TMP_39 \def (S y1) in (let 
+TMP_40 \def (plus z0 TMP_39) in (let TMP_43 \def (\lambda (n: nat).(\forall 
+(y3: nat).((le O z0) \to ((le x3 z0) \to ((eq nat n (plus (minus z0 x3) y3)) 
+\to (let TMP_41 \def (S y1) in (let TMP_42 \def (plus x3 TMP_41) in (eq nat 
+y3 TMP_42)))))))) in (let TMP_44 \def (plus z0 y1) in (let TMP_45 \def (S 
+TMP_44) in (let TMP_46 \def (plus_n_Sm z0 y1) in (let H3 \def (eq_ind_r nat 
+TMP_40 TMP_43 H2 TMP_45 TMP_46) in (let TMP_47 \def (S y1) in (let TMP_48 
+\def (plus x3 TMP_47) in (let TMP_49 \def (\lambda (n: nat).(\forall (y3: 
+nat).((le O z0) \to ((le x3 z0) \to ((eq nat (S (plus z0 y1)) (plus (minus z0 
+x3) y3)) \to (eq nat y3 n)))))) in (let TMP_50 \def (plus x3 y1) in (let 
+TMP_51 \def (S TMP_50) in (let TMP_52 \def (plus_n_Sm x3 y1) in (let H4 \def 
+(eq_ind_r nat TMP_48 TMP_49 H3 TMP_51 TMP_52) in (let TMP_53 \def (le_O_n z0) 
+in (let TMP_54 \def (le_S_n x3 z0 H0) in (H4 y2 TMP_53 TMP_54 
+H1)))))))))))))))))))))))))))))) in (nat_ind TMP_23 TMP_32 TMP_55 x2))))) in 
+(let TMP_90 \def (\lambda (x2: nat).(\lambda (_: ((\forall (x3: nat).(\forall 
+(y1: nat).(\forall (y2: nat).((le x2 (S z0)) \to ((le x3 (S z0)) \to ((eq nat 
+(plus (minus (S z0) x2) y1) (plus (minus (S z0) x3) y2)) \to (eq nat (plus x2 
+y2) (plus x3 y1)))))))))).(\lambda (x3: nat).(let TMP_60 \def (\lambda (n: 
+nat).(\forall (y1: nat).(\forall (y2: nat).((le (S x2) (S z0)) \to ((le n (S 
+z0)) \to ((eq nat (plus (minus (S z0) (S x2)) y1) (plus (minus (S z0) n) y2)) 
+\to (let TMP_57 \def (S x2) in (let TMP_58 \def (plus TMP_57 y2) in (let 
+TMP_59 \def (plus n y1) in (eq nat TMP_58 TMP_59)))))))))) in (let TMP_83 
+\def (\lambda (y1: nat).(\lambda (y2: nat).(\lambda (H: (le (S x2) (S 
 z0))).(\lambda (_: (le O (S z0))).(\lambda (H1: (eq nat (plus (minus z0 x2) 
-y1) (S (plus z0 y2)))).(let TMP_671 \def (S y2) in (let H_y \def (IH x2 O y1 
-TMP_671) in (let TMP_676 \def (minus z0 O) in (let TMP_675 \def (\lambda (n: 
+y1) (S (plus z0 y2)))).(let TMP_61 \def (S y2) in (let H_y \def (IH x2 O y1 
+TMP_61) in (let TMP_62 \def (minus z0 O) in (let TMP_65 \def (\lambda (n: 
 nat).((le x2 z0) \to ((le O z0) \to ((eq nat (plus (minus z0 x2) y1) (plus n 
-(S y2))) \to (let TMP_673 \def (S y2) in (let TMP_674 \def (plus x2 TMP_673) 
-in (eq nat TMP_674 y1))))))) in (let TMP_672 \def (minus_n_O z0) in (let H2 
-\def (eq_ind_r nat TMP_676 TMP_675 H_y z0 TMP_672) in (let TMP_683 \def (S 
-y2) in (let TMP_684 \def (plus z0 TMP_683) in (let TMP_682 \def (\lambda (n: 
-nat).((le x2 z0) \to ((le O z0) \to ((eq nat (plus (minus z0 x2) y1) n) \to 
-(let TMP_680 \def (S y2) in (let TMP_681 \def (plus x2 TMP_680) in (eq nat 
-TMP_681 y1))))))) in (let TMP_678 \def (plus z0 y2) in (let TMP_679 \def (S 
-TMP_678) in (let TMP_677 \def (plus_n_Sm z0 y2) in (let H3 \def (eq_ind_r nat 
-TMP_684 TMP_682 H2 TMP_679 TMP_677) in (let TMP_689 \def (S y2) in (let 
-TMP_690 \def (plus x2 TMP_689) in (let TMP_688 \def (\lambda (n: nat).((le x2 
-z0) \to ((le O z0) \to ((eq nat (plus (minus z0 x2) y1) (S (plus z0 y2))) \to 
-(eq nat n y1))))) in (let TMP_686 \def (plus x2 y2) in (let TMP_687 \def (S 
-TMP_686) in (let TMP_685 \def (plus_n_Sm x2 y2) in (let H4 \def (eq_ind_r nat 
-TMP_690 TMP_688 H3 TMP_687 TMP_685) in (let TMP_692 \def (le_S_n x2 z0 H) in 
-(let TMP_691 \def (le_O_n z0) in (H4 TMP_692 TMP_691 
-H1)))))))))))))))))))))))))))) in (let TMP_670 \def (\lambda (x4: 
-nat).(\lambda (_: ((\forall (y1: nat).(\forall (y2: nat).((le (S x2) (S z0)) 
-\to ((le x4 (S z0)) \to ((eq nat (plus (minus z0 x2) y1) (plus (match x4 with 
-[O \Rightarrow (S z0) | (S l) \Rightarrow (minus z0 l)]) y2)) \to (eq nat (S 
-(plus x2 y2)) (plus x4 y1))))))))).(\lambda (y1: nat).(\lambda (y2: 
-nat).(\lambda (H: (le (S x2) (S z0))).(\lambda (H0: (le (S x4) (S 
+(S y2))) \to (let TMP_63 \def (S y2) in (let TMP_64 \def (plus x2 TMP_63) in 
+(eq nat TMP_64 y1))))))) in (let TMP_66 \def (minus_n_O z0) in (let H2 \def 
+(eq_ind_r nat TMP_62 TMP_65 H_y z0 TMP_66) in (let TMP_67 \def (S y2) in (let 
+TMP_68 \def (plus z0 TMP_67) in (let TMP_71 \def (\lambda (n: nat).((le x2 
+z0) \to ((le O z0) \to ((eq nat (plus (minus z0 x2) y1) n) \to (let TMP_69 
+\def (S y2) in (let TMP_70 \def (plus x2 TMP_69) in (eq nat TMP_70 y1))))))) 
+in (let TMP_72 \def (plus z0 y2) in (let TMP_73 \def (S TMP_72) in (let 
+TMP_74 \def (plus_n_Sm z0 y2) in (let H3 \def (eq_ind_r nat TMP_68 TMP_71 H2 
+TMP_73 TMP_74) in (let TMP_75 \def (S y2) in (let TMP_76 \def (plus x2 
+TMP_75) in (let TMP_77 \def (\lambda (n: nat).((le x2 z0) \to ((le O z0) \to 
+((eq nat (plus (minus z0 x2) y1) (S (plus z0 y2))) \to (eq nat n y1))))) in 
+(let TMP_78 \def (plus x2 y2) in (let TMP_79 \def (S TMP_78) in (let TMP_80 
+\def (plus_n_Sm x2 y2) in (let H4 \def (eq_ind_r nat TMP_76 TMP_77 H3 TMP_79 
+TMP_80) in (let TMP_81 \def (le_S_n x2 z0 H) in (let TMP_82 \def (le_O_n z0) 
+in (H4 TMP_81 TMP_82 H1)))))))))))))))))))))))))))) in (let TMP_89 \def 
+(\lambda (x4: nat).(\lambda (_: ((\forall (y1: nat).(\forall (y2: nat).((le 
+(S x2) (S z0)) \to ((le x4 (S z0)) \to ((eq nat (plus (minus z0 x2) y1) (plus 
+(match x4 with [O \Rightarrow (S z0) | (S l) \Rightarrow (minus z0 l)]) y2)) 
+\to (eq nat (S (plus x2 y2)) (plus x4 y1))))))))).(\lambda (y1: nat).(\lambda 
+(y2: nat).(\lambda (H: (le (S x2) (S z0))).(\lambda (H0: (le (S x4) (S 
 z0))).(\lambda (H1: (eq nat (plus (minus z0 x2) y1) (plus (minus z0 x4) 
-y2))).(let TMP_669 \def (plus x2 y2) in (let TMP_668 \def (plus x4 y1) in 
-(let TMP_666 \def (le_S_n x2 z0 H) in (let TMP_665 \def (le_S_n x4 z0 H0) in 
-(let TMP_667 \def (IH x2 x4 y1 y2 TMP_666 TMP_665 H1) in (f_equal nat nat S 
-TMP_669 TMP_668 TMP_667))))))))))))) in (nat_ind TMP_697 TMP_693 TMP_670 
-x3))))))) in (nat_ind TMP_737 TMP_734 TMP_698 x1))))))) in (nat_ind TMP_755 
-TMP_752 TMP_738 z)))).
+y2))).(let TMP_84 \def (plus x2 y2) in (let TMP_85 \def (plus x4 y1) in (let 
+TMP_86 \def (le_S_n x2 z0 H) in (let TMP_87 \def (le_S_n x4 z0 H0) in (let 
+TMP_88 \def (IH x2 x4 y1 y2 TMP_86 TMP_87 H1) in (f_equal nat nat S TMP_84 
+TMP_85 TMP_88))))))))))))) in (nat_ind TMP_60 TMP_83 TMP_89 x3))))))) in 
+(nat_ind TMP_20 TMP_56 TMP_90 x1))))))) in (nat_ind TMP_3 TMP_17 TMP_91 z)))).
 
 theorem le_S_minus:
  \forall (d: nat).(\forall (h: nat).(\forall (n: nat).((le (plus d h) n) \to 
 (le d (S (minus n h))))))
 \def
  \lambda (d: nat).(\lambda (h: nat).(\lambda (n: nat).(\lambda (H: (le (plus 
-d h) n)).(let TMP_757 \def (plus d h) in (let TMP_756 \def (le_plus_l d h) in 
-(let H0 \def (le_trans d TMP_757 n TMP_756 H) in (let TMP_764 \def (\lambda 
-(n0: nat).(le d n0)) in (let TMP_762 \def (minus n h) in (let TMP_763 \def 
-(plus TMP_762 h) in (let TMP_759 \def (plus d h) in (let TMP_758 \def 
-(le_plus_r d h) in (let TMP_760 \def (le_trans h TMP_759 n TMP_758 H) in (let 
-TMP_761 \def (le_plus_minus_sym h n TMP_760) in (let H1 \def (eq_ind nat n 
-TMP_764 H0 TMP_763 TMP_761) in (let TMP_766 \def (minus n h) in (let TMP_765 
-\def (le_minus d n h H) in (le_S d TMP_766 TMP_765))))))))))))))))).
+d h) n)).(let TMP_1 \def (plus d h) in (let TMP_2 \def (le_plus_l d h) in 
+(let H0 \def (le_trans d TMP_1 n TMP_2 H) in (let TMP_3 \def (\lambda (n0: 
+nat).(le d n0)) in (let TMP_4 \def (minus n h) in (let TMP_5 \def (plus TMP_4 
+h) in (let TMP_6 \def (plus d h) in (let TMP_7 \def (le_plus_r d h) in (let 
+TMP_8 \def (le_trans h TMP_6 n TMP_7 H) in (let TMP_9 \def (le_plus_minus_sym 
+h n TMP_8) in (let H1 \def (eq_ind nat n TMP_3 H0 TMP_5 TMP_9) in (let TMP_10 
+\def (minus n h) in (let TMP_11 \def (le_minus d n h H) in (le_S d TMP_10 
+TMP_11))))))))))))))))).
 
 theorem lt_x_pred_y:
  \forall (x: nat).(\forall (y: nat).((lt x (pred y)) \to (lt (S x) y)))
 \def
- \lambda (x: nat).(\lambda (y: nat).(let TMP_772 \def (\lambda (n: nat).((lt 
-x (pred n)) \to (let TMP_771 \def (S x) in (lt TMP_771 n)))) in (let TMP_770 
-\def (\lambda (H: (lt x O)).(let TMP_768 \def (S x) in (let TMP_769 \def (lt 
-TMP_768 O) in (lt_x_O x H TMP_769)))) in (let TMP_767 \def (\lambda (n
-nat).(\lambda (_: (((lt x (pred n)) \to (lt (S x) n)))).(\lambda (H0: (lt x 
-n)).(lt_n_S x n H0)))) in (nat_ind TMP_772 TMP_770 TMP_767 y))))).
+ \lambda (x: nat).(\lambda (y: nat).(let TMP_2 \def (\lambda (n: nat).((lt x 
+(pred n)) \to (let TMP_1 \def (S x) in (lt TMP_1 n)))) in (let TMP_5 \def 
+(\lambda (H: (lt x O)).(let TMP_3 \def (S x) in (let TMP_4 \def (lt TMP_3 O) 
+in (lt_x_O x H TMP_4)))) in (let TMP_6 \def (\lambda (n: nat).(\lambda (_
+(((lt x (pred n)) \to (lt (S x) n)))).(\lambda (H0: (lt x n)).(lt_n_S x n 
+H0)))) in (nat_ind TMP_2 TMP_5 TMP_6 y))))).
 
index a868d6db8c53a5f15dc620389313368086c02ca8..ef7d48075c148b5adf6db4c302b34026f16b0bca 100644 (file)
@@ -38,6 +38,6 @@ theorem xinduction:
 (x: A).((eq A t x) \to (P x)))) \to (P t))))
 \def
  \lambda (A: Type[0]).(\lambda (t: A).(\lambda (P: ((A \to Prop))).(\lambda 
-(H: ((\forall (x: A).((eq A t x) \to (P x))))).(let TMP_2 \def (refl_equal A 
-t) in (H t TMP_2))))).
+(H: ((\forall (x: A).((eq A t x) \to (P x))))).(let TMP_1 \def (refl_equal A 
+t) in (H t TMP_1))))).
 
index 0084937220ebd24e4be8977d2a43e84942b636eb..fb5163dde66c142ddb6df118b42bc2800769f16c 100644 (file)
@@ -22,14 +22,14 @@ inductive PList: Type[0] \def
 
 let rec PConsTail (hds: PList) on hds: nat \to (nat \to PList) \def \lambda 
 (h0: nat).(\lambda (d0: nat).(match hds with [PNil \Rightarrow (PCons h0 d0 
-PNil) | (PCons h d hds0) \Rightarrow (let TMP_855 \def (PConsTail hds0 h0 d0) 
-in (PCons h d TMP_855))])).
+PNil) | (PCons h d hds0) \Rightarrow (let TMP_1 \def (PConsTail hds0 h0 d0) 
+in (PCons h d TMP_1))])).
 
 let rec Ss (hds: PList) on hds: PList \def match hds with [PNil \Rightarrow 
-PNil | (PCons h d hds0) \Rightarrow (let TMP_857 \def (S d) in (let TMP_856 
-\def (Ss hds0) in (PCons h TMP_857 TMP_856)))].
+PNil | (PCons h d hds0) \Rightarrow (let TMP_1 \def (S d) in (let TMP_2 \def 
+(Ss hds0) in (PCons h TMP_1 TMP_2)))].
 
 let rec papp (a: PList) on a: PList \to PList \def \lambda (b: PList).(match 
-a with [PNil \Rightarrow b | (PCons h d a0) \Rightarrow (let TMP_858 \def 
-(papp a0 b) in (PCons h d TMP_858))]).
+a with [PNil \Rightarrow b | (PCons h d a0) \Rightarrow (let TMP_1 \def (papp 
+a0 b) in (PCons h d TMP_1))]).
 
index 18cf0589eedf4ec26a1703ac2d713b90f4d978b8..81bf3f928c3a103191f71568a42167c77a87fdff 100644 (file)
@@ -20,23 +20,22 @@ theorem papp_ss:
  \forall (is1: PList).(\forall (is2: PList).(eq PList (papp (Ss is1) (Ss 
 is2)) (Ss (papp is1 is2))))
 \def
- \lambda (is1: PList).(let TMP_885 \def (\lambda (p: PList).(\forall (is2: 
-PList).(let TMP_883 \def (Ss p) in (let TMP_882 \def (Ss is2) in (let TMP_884 
-\def (papp TMP_883 TMP_882) in (let TMP_880 \def (papp p is2) in (let TMP_881 
-\def (Ss TMP_880) in (eq PList TMP_884 TMP_881)))))))) in (let TMP_879 \def 
-(\lambda (is2: PList).(let TMP_878 \def (Ss is2) in (refl_equal PList 
-TMP_878))) in (let TMP_877 \def (\lambda (n: nat).(\lambda (n0: nat).(\lambda 
-(p: PList).(\lambda (H: ((\forall (is2: PList).(eq PList (papp (Ss p) (Ss 
-is2)) (Ss (papp p is2)))))).(\lambda (is2: PList).(let TMP_875 \def (papp p 
-is2) in (let TMP_876 \def (Ss TMP_875) in (let TMP_874 \def (\lambda (p0: 
-PList).(let TMP_872 \def (S n0) in (let TMP_873 \def (PCons n TMP_872 p0) in 
-(let TMP_870 \def (S n0) in (let TMP_868 \def (papp p is2) in (let TMP_869 
-\def (Ss TMP_868) in (let TMP_871 \def (PCons n TMP_870 TMP_869) in (eq PList 
-TMP_873 TMP_871)))))))) in (let TMP_865 \def (S n0) in (let TMP_863 \def 
-(papp p is2) in (let TMP_864 \def (Ss TMP_863) in (let TMP_866 \def (PCons n 
-TMP_865 TMP_864) in (let TMP_867 \def (refl_equal PList TMP_866) in (let 
-TMP_861 \def (Ss p) in (let TMP_860 \def (Ss is2) in (let TMP_862 \def (papp 
-TMP_861 TMP_860) in (let TMP_859 \def (H is2) in (eq_ind_r PList TMP_876 
-TMP_874 TMP_867 TMP_862 TMP_859)))))))))))))))))) in (PList_ind TMP_885 
-TMP_879 TMP_877 is1)))).
+ \lambda (is1: PList).(let TMP_6 \def (\lambda (p: PList).(\forall (is2: 
+PList).(let TMP_1 \def (Ss p) in (let TMP_2 \def (Ss is2) in (let TMP_3 \def 
+(papp TMP_1 TMP_2) in (let TMP_4 \def (papp p is2) in (let TMP_5 \def (Ss 
+TMP_4) in (eq PList TMP_3 TMP_5)))))))) in (let TMP_8 \def (\lambda (is2: 
+PList).(let TMP_7 \def (Ss is2) in (refl_equal PList TMP_7))) in (let TMP_27 
+\def (\lambda (n: nat).(\lambda (n0: nat).(\lambda (p: PList).(\lambda (H: 
+((\forall (is2: PList).(eq PList (papp (Ss p) (Ss is2)) (Ss (papp p 
+is2)))))).(\lambda (is2: PList).(let TMP_9 \def (papp p is2) in (let TMP_10 
+\def (Ss TMP_9) in (let TMP_17 \def (\lambda (p0: PList).(let TMP_11 \def (S 
+n0) in (let TMP_12 \def (PCons n TMP_11 p0) in (let TMP_13 \def (S n0) in 
+(let TMP_14 \def (papp p is2) in (let TMP_15 \def (Ss TMP_14) in (let TMP_16 
+\def (PCons n TMP_13 TMP_15) in (eq PList TMP_12 TMP_16)))))))) in (let 
+TMP_18 \def (S n0) in (let TMP_19 \def (papp p is2) in (let TMP_20 \def (Ss 
+TMP_19) in (let TMP_21 \def (PCons n TMP_18 TMP_20) in (let TMP_22 \def 
+(refl_equal PList TMP_21) in (let TMP_23 \def (Ss p) in (let TMP_24 \def (Ss 
+is2) in (let TMP_25 \def (papp TMP_23 TMP_24) in (let TMP_26 \def (H is2) in 
+(eq_ind_r PList TMP_10 TMP_17 TMP_22 TMP_25 TMP_26)))))))))))))))))) in 
+(PList_ind TMP_6 TMP_8 TMP_27 is1)))).
 
index e563c691a7d9ccfe5c3aec3b377a6bfda3f4bb0a..2f706544344f8341c9a2a6c0bca627b54d43f6d5 100644 (file)
@@ -16,6 +16,8 @@
 
 include "ground_1/ext/tactics.ma".
 
+include "ground_1/types/fwd.ma".
+
 include "ground_1/types/props.ma".
 
 include "ground_1/ext/arith.ma".
diff --git a/matita/matita/contribs/lambdadelta/ground_1/types/fwd.ma b/matita/matita/contribs/lambdadelta/ground_1/types/fwd.ma
new file mode 100644 (file)
index 0000000..d113951
--- /dev/null
@@ -0,0 +1,419 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+(* This file was automatically generated: do not edit *********************)
+
+include "ground_1/types/defs.ma".
+
+theorem and3_rect:
+ \forall (P0: Prop).(\forall (P1: Prop).(\forall (P2: Prop).(\forall (P: 
+Type[0]).(((P0 \to (P1 \to (P2 \to P)))) \to ((and3 P0 P1 P2) \to P)))))
+\def
+ \lambda (P0: Prop).(\lambda (P1: Prop).(\lambda (P2: Prop).(\lambda (P: 
+Type[0]).(\lambda (f: ((P0 \to (P1 \to (P2 \to P))))).(\lambda (a: (and3 P0 
+P1 P2)).(match a with [(and3_intro x x0 x1) \Rightarrow (f x x0 x1)])))))).
+
+theorem and3_ind:
+ \forall (P0: Prop).(\forall (P1: Prop).(\forall (P2: Prop).(\forall (P: 
+Prop).(((P0 \to (P1 \to (P2 \to P)))) \to ((and3 P0 P1 P2) \to P)))))
+\def
+ \lambda (P0: Prop).(\lambda (P1: Prop).(\lambda (P2: Prop).(\lambda (P: 
+Prop).(and3_rect P0 P1 P2 P)))).
+
+theorem and4_rect:
+ \forall (P0: Prop).(\forall (P1: Prop).(\forall (P2: Prop).(\forall (P3: 
+Prop).(\forall (P: Type[0]).(((P0 \to (P1 \to (P2 \to (P3 \to P))))) \to 
+((and4 P0 P1 P2 P3) \to P))))))
+\def
+ \lambda (P0: Prop).(\lambda (P1: Prop).(\lambda (P2: Prop).(\lambda (P3: 
+Prop).(\lambda (P: Type[0]).(\lambda (f: ((P0 \to (P1 \to (P2 \to (P3 \to 
+P)))))).(\lambda (a: (and4 P0 P1 P2 P3)).(match a with [(and4_intro x x0 x1 
+x2) \Rightarrow (f x x0 x1 x2)]))))))).
+
+theorem and4_ind:
+ \forall (P0: Prop).(\forall (P1: Prop).(\forall (P2: Prop).(\forall (P3: 
+Prop).(\forall (P: Prop).(((P0 \to (P1 \to (P2 \to (P3 \to P))))) \to ((and4 
+P0 P1 P2 P3) \to P))))))
+\def
+ \lambda (P0: Prop).(\lambda (P1: Prop).(\lambda (P2: Prop).(\lambda (P3: 
+Prop).(\lambda (P: Prop).(and4_rect P0 P1 P2 P3 P))))).
+
+theorem and5_rect:
+ \forall (P0: Prop).(\forall (P1: Prop).(\forall (P2: Prop).(\forall (P3: 
+Prop).(\forall (P4: Prop).(\forall (P: Type[0]).(((P0 \to (P1 \to (P2 \to (P3 
+\to (P4 \to P)))))) \to ((and5 P0 P1 P2 P3 P4) \to P)))))))
+\def
+ \lambda (P0: Prop).(\lambda (P1: Prop).(\lambda (P2: Prop).(\lambda (P3: 
+Prop).(\lambda (P4: Prop).(\lambda (P: Type[0]).(\lambda (f: ((P0 \to (P1 \to 
+(P2 \to (P3 \to (P4 \to P))))))).(\lambda (a: (and5 P0 P1 P2 P3 P4)).(match a 
+with [(and5_intro x x0 x1 x2 x3) \Rightarrow (f x x0 x1 x2 x3)])))))))).
+
+theorem and5_ind:
+ \forall (P0: Prop).(\forall (P1: Prop).(\forall (P2: Prop).(\forall (P3: 
+Prop).(\forall (P4: Prop).(\forall (P: Prop).(((P0 \to (P1 \to (P2 \to (P3 
+\to (P4 \to P)))))) \to ((and5 P0 P1 P2 P3 P4) \to P)))))))
+\def
+ \lambda (P0: Prop).(\lambda (P1: Prop).(\lambda (P2: Prop).(\lambda (P3: 
+Prop).(\lambda (P4: Prop).(\lambda (P: Prop).(and5_rect P0 P1 P2 P3 P4 
+P)))))).
+
+theorem or3_ind:
+ \forall (P0: Prop).(\forall (P1: Prop).(\forall (P2: Prop).(\forall (P: 
+Prop).(((P0 \to P)) \to (((P1 \to P)) \to (((P2 \to P)) \to ((or3 P0 P1 P2) 
+\to P)))))))
+\def
+ \lambda (P0: Prop).(\lambda (P1: Prop).(\lambda (P2: Prop).(\lambda (P: 
+Prop).(\lambda (f: ((P0 \to P))).(\lambda (f0: ((P1 \to P))).(\lambda (f1: 
+((P2 \to P))).(\lambda (o: (or3 P0 P1 P2)).(match o with [(or3_intro0 x) 
+\Rightarrow (f x) | (or3_intro1 x) \Rightarrow (f0 x) | (or3_intro2 x) 
+\Rightarrow (f1 x)])))))))).
+
+theorem or4_ind:
+ \forall (P0: Prop).(\forall (P1: Prop).(\forall (P2: Prop).(\forall (P3: 
+Prop).(\forall (P: Prop).(((P0 \to P)) \to (((P1 \to P)) \to (((P2 \to P)) 
+\to (((P3 \to P)) \to ((or4 P0 P1 P2 P3) \to P)))))))))
+\def
+ \lambda (P0: Prop).(\lambda (P1: Prop).(\lambda (P2: Prop).(\lambda (P3: 
+Prop).(\lambda (P: Prop).(\lambda (f: ((P0 \to P))).(\lambda (f0: ((P1 \to 
+P))).(\lambda (f1: ((P2 \to P))).(\lambda (f2: ((P3 \to P))).(\lambda (o: 
+(or4 P0 P1 P2 P3)).(match o with [(or4_intro0 x) \Rightarrow (f x) | 
+(or4_intro1 x) \Rightarrow (f0 x) | (or4_intro2 x) \Rightarrow (f1 x) | 
+(or4_intro3 x) \Rightarrow (f2 x)])))))))))).
+
+theorem or5_ind:
+ \forall (P0: Prop).(\forall (P1: Prop).(\forall (P2: Prop).(\forall (P3: 
+Prop).(\forall (P4: Prop).(\forall (P: Prop).(((P0 \to P)) \to (((P1 \to P)) 
+\to (((P2 \to P)) \to (((P3 \to P)) \to (((P4 \to P)) \to ((or5 P0 P1 P2 P3 
+P4) \to P)))))))))))
+\def
+ \lambda (P0: Prop).(\lambda (P1: Prop).(\lambda (P2: Prop).(\lambda (P3: 
+Prop).(\lambda (P4: Prop).(\lambda (P: Prop).(\lambda (f: ((P0 \to 
+P))).(\lambda (f0: ((P1 \to P))).(\lambda (f1: ((P2 \to P))).(\lambda (f2: 
+((P3 \to P))).(\lambda (f3: ((P4 \to P))).(\lambda (o: (or5 P0 P1 P2 P3 
+P4)).(match o with [(or5_intro0 x) \Rightarrow (f x) | (or5_intro1 x) 
+\Rightarrow (f0 x) | (or5_intro2 x) \Rightarrow (f1 x) | (or5_intro3 x) 
+\Rightarrow (f2 x) | (or5_intro4 x) \Rightarrow (f3 x)])))))))))))).
+
+theorem ex3_ind:
+ \forall (A0: Type[0]).(\forall (P0: ((A0 \to Prop))).(\forall (P1: ((A0 \to 
+Prop))).(\forall (P2: ((A0 \to Prop))).(\forall (P: Prop).(((\forall (x0: 
+A0).((P0 x0) \to ((P1 x0) \to ((P2 x0) \to P))))) \to ((ex3 A0 P0 P1 P2) \to 
+P))))))
+\def
+ \lambda (A0: Type[0]).(\lambda (P0: ((A0 \to Prop))).(\lambda (P1: ((A0 \to 
+Prop))).(\lambda (P2: ((A0 \to Prop))).(\lambda (P: Prop).(\lambda (f: 
+((\forall (x0: A0).((P0 x0) \to ((P1 x0) \to ((P2 x0) \to P)))))).(\lambda 
+(e: (ex3 A0 P0 P1 P2)).(match e with [(ex3_intro x x0 x1 x2) \Rightarrow (f x 
+x0 x1 x2)]))))))).
+
+theorem ex4_ind:
+ \forall (A0: Type[0]).(\forall (P0: ((A0 \to Prop))).(\forall (P1: ((A0 \to 
+Prop))).(\forall (P2: ((A0 \to Prop))).(\forall (P3: ((A0 \to 
+Prop))).(\forall (P: Prop).(((\forall (x0: A0).((P0 x0) \to ((P1 x0) \to ((P2 
+x0) \to ((P3 x0) \to P)))))) \to ((ex4 A0 P0 P1 P2 P3) \to P)))))))
+\def
+ \lambda (A0: Type[0]).(\lambda (P0: ((A0 \to Prop))).(\lambda (P1: ((A0 \to 
+Prop))).(\lambda (P2: ((A0 \to Prop))).(\lambda (P3: ((A0 \to 
+Prop))).(\lambda (P: Prop).(\lambda (f: ((\forall (x0: A0).((P0 x0) \to ((P1 
+x0) \to ((P2 x0) \to ((P3 x0) \to P))))))).(\lambda (e: (ex4 A0 P0 P1 P2 
+P3)).(match e with [(ex4_intro x x0 x1 x2 x3) \Rightarrow (f x x0 x1 x2 
+x3)])))))))).
+
+theorem ex_2_ind:
+ \forall (A0: Type[0]).(\forall (A1: Type[0]).(\forall (P0: ((A0 \to (A1 \to 
+Prop)))).(\forall (P: Prop).(((\forall (x0: A0).(\forall (x1: A1).((P0 x0 x1) 
+\to P)))) \to ((ex_2 A0 A1 P0) \to P)))))
+\def
+ \lambda (A0: Type[0]).(\lambda (A1: Type[0]).(\lambda (P0: ((A0 \to (A1 \to 
+Prop)))).(\lambda (P: Prop).(\lambda (f: ((\forall (x0: A0).(\forall (x1: 
+A1).((P0 x0 x1) \to P))))).(\lambda (e: (ex_2 A0 A1 P0)).(match e with 
+[(ex_2_intro x x0 x1) \Rightarrow (f x x0 x1)])))))).
+
+theorem ex2_2_ind:
+ \forall (A0: Type[0]).(\forall (A1: Type[0]).(\forall (P0: ((A0 \to (A1 \to 
+Prop)))).(\forall (P1: ((A0 \to (A1 \to Prop)))).(\forall (P: 
+Prop).(((\forall (x0: A0).(\forall (x1: A1).((P0 x0 x1) \to ((P1 x0 x1) \to 
+P))))) \to ((ex2_2 A0 A1 P0 P1) \to P))))))
+\def
+ \lambda (A0: Type[0]).(\lambda (A1: Type[0]).(\lambda (P0: ((A0 \to (A1 \to 
+Prop)))).(\lambda (P1: ((A0 \to (A1 \to Prop)))).(\lambda (P: Prop).(\lambda 
+(f: ((\forall (x0: A0).(\forall (x1: A1).((P0 x0 x1) \to ((P1 x0 x1) \to 
+P)))))).(\lambda (e: (ex2_2 A0 A1 P0 P1)).(match e with [(ex2_2_intro x x0 x1 
+x2) \Rightarrow (f x x0 x1 x2)]))))))).
+
+theorem ex3_2_ind:
+ \forall (A0: Type[0]).(\forall (A1: Type[0]).(\forall (P0: ((A0 \to (A1 \to 
+Prop)))).(\forall (P1: ((A0 \to (A1 \to Prop)))).(\forall (P2: ((A0 \to (A1 
+\to Prop)))).(\forall (P: Prop).(((\forall (x0: A0).(\forall (x1: A1).((P0 x0 
+x1) \to ((P1 x0 x1) \to ((P2 x0 x1) \to P)))))) \to ((ex3_2 A0 A1 P0 P1 P2) 
+\to P)))))))
+\def
+ \lambda (A0: Type[0]).(\lambda (A1: Type[0]).(\lambda (P0: ((A0 \to (A1 \to 
+Prop)))).(\lambda (P1: ((A0 \to (A1 \to Prop)))).(\lambda (P2: ((A0 \to (A1 
+\to Prop)))).(\lambda (P: Prop).(\lambda (f: ((\forall (x0: A0).(\forall (x1: 
+A1).((P0 x0 x1) \to ((P1 x0 x1) \to ((P2 x0 x1) \to P))))))).(\lambda (e: 
+(ex3_2 A0 A1 P0 P1 P2)).(match e with [(ex3_2_intro x x0 x1 x2 x3) 
+\Rightarrow (f x x0 x1 x2 x3)])))))))).
+
+theorem ex4_2_ind:
+ \forall (A0: Type[0]).(\forall (A1: Type[0]).(\forall (P0: ((A0 \to (A1 \to 
+Prop)))).(\forall (P1: ((A0 \to (A1 \to Prop)))).(\forall (P2: ((A0 \to (A1 
+\to Prop)))).(\forall (P3: ((A0 \to (A1 \to Prop)))).(\forall (P: 
+Prop).(((\forall (x0: A0).(\forall (x1: A1).((P0 x0 x1) \to ((P1 x0 x1) \to 
+((P2 x0 x1) \to ((P3 x0 x1) \to P))))))) \to ((ex4_2 A0 A1 P0 P1 P2 P3) \to 
+P))))))))
+\def
+ \lambda (A0: Type[0]).(\lambda (A1: Type[0]).(\lambda (P0: ((A0 \to (A1 \to 
+Prop)))).(\lambda (P1: ((A0 \to (A1 \to Prop)))).(\lambda (P2: ((A0 \to (A1 
+\to Prop)))).(\lambda (P3: ((A0 \to (A1 \to Prop)))).(\lambda (P: 
+Prop).(\lambda (f: ((\forall (x0: A0).(\forall (x1: A1).((P0 x0 x1) \to ((P1 
+x0 x1) \to ((P2 x0 x1) \to ((P3 x0 x1) \to P)))))))).(\lambda (e: (ex4_2 A0 
+A1 P0 P1 P2 P3)).(match e with [(ex4_2_intro x x0 x1 x2 x3 x4) \Rightarrow (f 
+x x0 x1 x2 x3 x4)]))))))))).
+
+theorem ex_3_ind:
+ \forall (A0: Type[0]).(\forall (A1: Type[0]).(\forall (A2: Type[0]).(\forall 
+(P0: ((A0 \to (A1 \to (A2 \to Prop))))).(\forall (P: Prop).(((\forall (x0: 
+A0).(\forall (x1: A1).(\forall (x2: A2).((P0 x0 x1 x2) \to P))))) \to ((ex_3 
+A0 A1 A2 P0) \to P))))))
+\def
+ \lambda (A0: Type[0]).(\lambda (A1: Type[0]).(\lambda (A2: Type[0]).(\lambda 
+(P0: ((A0 \to (A1 \to (A2 \to Prop))))).(\lambda (P: Prop).(\lambda (f: 
+((\forall (x0: A0).(\forall (x1: A1).(\forall (x2: A2).((P0 x0 x1 x2) \to 
+P)))))).(\lambda (e: (ex_3 A0 A1 A2 P0)).(match e with [(ex_3_intro x x0 x1 
+x2) \Rightarrow (f x x0 x1 x2)]))))))).
+
+theorem ex2_3_ind:
+ \forall (A0: Type[0]).(\forall (A1: Type[0]).(\forall (A2: Type[0]).(\forall 
+(P0: ((A0 \to (A1 \to (A2 \to Prop))))).(\forall (P1: ((A0 \to (A1 \to (A2 
+\to Prop))))).(\forall (P: Prop).(((\forall (x0: A0).(\forall (x1: 
+A1).(\forall (x2: A2).((P0 x0 x1 x2) \to ((P1 x0 x1 x2) \to P)))))) \to 
+((ex2_3 A0 A1 A2 P0 P1) \to P)))))))
+\def
+ \lambda (A0: Type[0]).(\lambda (A1: Type[0]).(\lambda (A2: Type[0]).(\lambda 
+(P0: ((A0 \to (A1 \to (A2 \to Prop))))).(\lambda (P1: ((A0 \to (A1 \to (A2 
+\to Prop))))).(\lambda (P: Prop).(\lambda (f: ((\forall (x0: A0).(\forall 
+(x1: A1).(\forall (x2: A2).((P0 x0 x1 x2) \to ((P1 x0 x1 x2) \to 
+P))))))).(\lambda (e: (ex2_3 A0 A1 A2 P0 P1)).(match e with [(ex2_3_intro x 
+x0 x1 x2 x3) \Rightarrow (f x x0 x1 x2 x3)])))))))).
+
+theorem ex3_3_ind:
+ \forall (A0: Type[0]).(\forall (A1: Type[0]).(\forall (A2: Type[0]).(\forall 
+(P0: ((A0 \to (A1 \to (A2 \to Prop))))).(\forall (P1: ((A0 \to (A1 \to (A2 
+\to Prop))))).(\forall (P2: ((A0 \to (A1 \to (A2 \to Prop))))).(\forall (P: 
+Prop).(((\forall (x0: A0).(\forall (x1: A1).(\forall (x2: A2).((P0 x0 x1 x2) 
+\to ((P1 x0 x1 x2) \to ((P2 x0 x1 x2) \to P))))))) \to ((ex3_3 A0 A1 A2 P0 P1 
+P2) \to P))))))))
+\def
+ \lambda (A0: Type[0]).(\lambda (A1: Type[0]).(\lambda (A2: Type[0]).(\lambda 
+(P0: ((A0 \to (A1 \to (A2 \to Prop))))).(\lambda (P1: ((A0 \to (A1 \to (A2 
+\to Prop))))).(\lambda (P2: ((A0 \to (A1 \to (A2 \to Prop))))).(\lambda (P: 
+Prop).(\lambda (f: ((\forall (x0: A0).(\forall (x1: A1).(\forall (x2: 
+A2).((P0 x0 x1 x2) \to ((P1 x0 x1 x2) \to ((P2 x0 x1 x2) \to 
+P)))))))).(\lambda (e: (ex3_3 A0 A1 A2 P0 P1 P2)).(match e with [(ex3_3_intro 
+x x0 x1 x2 x3 x4) \Rightarrow (f x x0 x1 x2 x3 x4)]))))))))).
+
+theorem ex4_3_ind:
+ \forall (A0: Type[0]).(\forall (A1: Type[0]).(\forall (A2: Type[0]).(\forall 
+(P0: ((A0 \to (A1 \to (A2 \to Prop))))).(\forall (P1: ((A0 \to (A1 \to (A2 
+\to Prop))))).(\forall (P2: ((A0 \to (A1 \to (A2 \to Prop))))).(\forall (P3: 
+((A0 \to (A1 \to (A2 \to Prop))))).(\forall (P: Prop).(((\forall (x0: 
+A0).(\forall (x1: A1).(\forall (x2: A2).((P0 x0 x1 x2) \to ((P1 x0 x1 x2) \to 
+((P2 x0 x1 x2) \to ((P3 x0 x1 x2) \to P)))))))) \to ((ex4_3 A0 A1 A2 P0 P1 P2 
+P3) \to P)))))))))
+\def
+ \lambda (A0: Type[0]).(\lambda (A1: Type[0]).(\lambda (A2: Type[0]).(\lambda 
+(P0: ((A0 \to (A1 \to (A2 \to Prop))))).(\lambda (P1: ((A0 \to (A1 \to (A2 
+\to Prop))))).(\lambda (P2: ((A0 \to (A1 \to (A2 \to Prop))))).(\lambda (P3: 
+((A0 \to (A1 \to (A2 \to Prop))))).(\lambda (P: Prop).(\lambda (f: ((\forall 
+(x0: A0).(\forall (x1: A1).(\forall (x2: A2).((P0 x0 x1 x2) \to ((P1 x0 x1 
+x2) \to ((P2 x0 x1 x2) \to ((P3 x0 x1 x2) \to P))))))))).(\lambda (e: (ex4_3 
+A0 A1 A2 P0 P1 P2 P3)).(match e with [(ex4_3_intro x x0 x1 x2 x3 x4 x5) 
+\Rightarrow (f x x0 x1 x2 x3 x4 x5)])))))))))).
+
+theorem ex5_3_ind:
+ \forall (A0: Type[0]).(\forall (A1: Type[0]).(\forall (A2: Type[0]).(\forall 
+(P0: ((A0 \to (A1 \to (A2 \to Prop))))).(\forall (P1: ((A0 \to (A1 \to (A2 
+\to Prop))))).(\forall (P2: ((A0 \to (A1 \to (A2 \to Prop))))).(\forall (P3: 
+((A0 \to (A1 \to (A2 \to Prop))))).(\forall (P4: ((A0 \to (A1 \to (A2 \to 
+Prop))))).(\forall (P: Prop).(((\forall (x0: A0).(\forall (x1: A1).(\forall 
+(x2: A2).((P0 x0 x1 x2) \to ((P1 x0 x1 x2) \to ((P2 x0 x1 x2) \to ((P3 x0 x1 
+x2) \to ((P4 x0 x1 x2) \to P))))))))) \to ((ex5_3 A0 A1 A2 P0 P1 P2 P3 P4) 
+\to P))))))))))
+\def
+ \lambda (A0: Type[0]).(\lambda (A1: Type[0]).(\lambda (A2: Type[0]).(\lambda 
+(P0: ((A0 \to (A1 \to (A2 \to Prop))))).(\lambda (P1: ((A0 \to (A1 \to (A2 
+\to Prop))))).(\lambda (P2: ((A0 \to (A1 \to (A2 \to Prop))))).(\lambda (P3: 
+((A0 \to (A1 \to (A2 \to Prop))))).(\lambda (P4: ((A0 \to (A1 \to (A2 \to 
+Prop))))).(\lambda (P: Prop).(\lambda (f: ((\forall (x0: A0).(\forall (x1: 
+A1).(\forall (x2: A2).((P0 x0 x1 x2) \to ((P1 x0 x1 x2) \to ((P2 x0 x1 x2) 
+\to ((P3 x0 x1 x2) \to ((P4 x0 x1 x2) \to P)))))))))).(\lambda (e: (ex5_3 A0 
+A1 A2 P0 P1 P2 P3 P4)).(match e with [(ex5_3_intro x x0 x1 x2 x3 x4 x5 x6) 
+\Rightarrow (f x x0 x1 x2 x3 x4 x5 x6)]))))))))))).
+
+theorem ex3_4_ind:
+ \forall (A0: Type[0]).(\forall (A1: Type[0]).(\forall (A2: Type[0]).(\forall 
+(A3: Type[0]).(\forall (P0: ((A0 \to (A1 \to (A2 \to (A3 \to 
+Prop)))))).(\forall (P1: ((A0 \to (A1 \to (A2 \to (A3 \to Prop)))))).(\forall 
+(P2: ((A0 \to (A1 \to (A2 \to (A3 \to Prop)))))).(\forall (P: 
+Prop).(((\forall (x0: A0).(\forall (x1: A1).(\forall (x2: A2).(\forall (x3: 
+A3).((P0 x0 x1 x2 x3) \to ((P1 x0 x1 x2 x3) \to ((P2 x0 x1 x2 x3) \to 
+P)))))))) \to ((ex3_4 A0 A1 A2 A3 P0 P1 P2) \to P)))))))))
+\def
+ \lambda (A0: Type[0]).(\lambda (A1: Type[0]).(\lambda (A2: Type[0]).(\lambda 
+(A3: Type[0]).(\lambda (P0: ((A0 \to (A1 \to (A2 \to (A3 \to 
+Prop)))))).(\lambda (P1: ((A0 \to (A1 \to (A2 \to (A3 \to Prop)))))).(\lambda 
+(P2: ((A0 \to (A1 \to (A2 \to (A3 \to Prop)))))).(\lambda (P: Prop).(\lambda 
+(f: ((\forall (x0: A0).(\forall (x1: A1).(\forall (x2: A2).(\forall (x3: 
+A3).((P0 x0 x1 x2 x3) \to ((P1 x0 x1 x2 x3) \to ((P2 x0 x1 x2 x3) \to 
+P))))))))).(\lambda (e: (ex3_4 A0 A1 A2 A3 P0 P1 P2)).(match e with 
+[(ex3_4_intro x x0 x1 x2 x3 x4 x5) \Rightarrow (f x x0 x1 x2 x3 x4 
+x5)])))))))))).
+
+theorem ex4_4_ind:
+ \forall (A0: Type[0]).(\forall (A1: Type[0]).(\forall (A2: Type[0]).(\forall 
+(A3: Type[0]).(\forall (P0: ((A0 \to (A1 \to (A2 \to (A3 \to 
+Prop)))))).(\forall (P1: ((A0 \to (A1 \to (A2 \to (A3 \to Prop)))))).(\forall 
+(P2: ((A0 \to (A1 \to (A2 \to (A3 \to Prop)))))).(\forall (P3: ((A0 \to (A1 
+\to (A2 \to (A3 \to Prop)))))).(\forall (P: Prop).(((\forall (x0: 
+A0).(\forall (x1: A1).(\forall (x2: A2).(\forall (x3: A3).((P0 x0 x1 x2 x3) 
+\to ((P1 x0 x1 x2 x3) \to ((P2 x0 x1 x2 x3) \to ((P3 x0 x1 x2 x3) \to 
+P))))))))) \to ((ex4_4 A0 A1 A2 A3 P0 P1 P2 P3) \to P))))))))))
+\def
+ \lambda (A0: Type[0]).(\lambda (A1: Type[0]).(\lambda (A2: Type[0]).(\lambda 
+(A3: Type[0]).(\lambda (P0: ((A0 \to (A1 \to (A2 \to (A3 \to 
+Prop)))))).(\lambda (P1: ((A0 \to (A1 \to (A2 \to (A3 \to Prop)))))).(\lambda 
+(P2: ((A0 \to (A1 \to (A2 \to (A3 \to Prop)))))).(\lambda (P3: ((A0 \to (A1 
+\to (A2 \to (A3 \to Prop)))))).(\lambda (P: Prop).(\lambda (f: ((\forall (x0: 
+A0).(\forall (x1: A1).(\forall (x2: A2).(\forall (x3: A3).((P0 x0 x1 x2 x3) 
+\to ((P1 x0 x1 x2 x3) \to ((P2 x0 x1 x2 x3) \to ((P3 x0 x1 x2 x3) \to 
+P)))))))))).(\lambda (e: (ex4_4 A0 A1 A2 A3 P0 P1 P2 P3)).(match e with 
+[(ex4_4_intro x x0 x1 x2 x3 x4 x5 x6) \Rightarrow (f x x0 x1 x2 x3 x4 x5 
+x6)]))))))))))).
+
+theorem ex4_5_ind:
+ \forall (A0: Type[0]).(\forall (A1: Type[0]).(\forall (A2: Type[0]).(\forall 
+(A3: Type[0]).(\forall (A4: Type[0]).(\forall (P0: ((A0 \to (A1 \to (A2 \to 
+(A3 \to (A4 \to Prop))))))).(\forall (P1: ((A0 \to (A1 \to (A2 \to (A3 \to 
+(A4 \to Prop))))))).(\forall (P2: ((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to 
+Prop))))))).(\forall (P3: ((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to 
+Prop))))))).(\forall (P: Prop).(((\forall (x0: A0).(\forall (x1: A1).(\forall 
+(x2: A2).(\forall (x3: A3).(\forall (x4: A4).((P0 x0 x1 x2 x3 x4) \to ((P1 x0 
+x1 x2 x3 x4) \to ((P2 x0 x1 x2 x3 x4) \to ((P3 x0 x1 x2 x3 x4) \to 
+P)))))))))) \to ((ex4_5 A0 A1 A2 A3 A4 P0 P1 P2 P3) \to P)))))))))))
+\def
+ \lambda (A0: Type[0]).(\lambda (A1: Type[0]).(\lambda (A2: Type[0]).(\lambda 
+(A3: Type[0]).(\lambda (A4: Type[0]).(\lambda (P0: ((A0 \to (A1 \to (A2 \to 
+(A3 \to (A4 \to Prop))))))).(\lambda (P1: ((A0 \to (A1 \to (A2 \to (A3 \to 
+(A4 \to Prop))))))).(\lambda (P2: ((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to 
+Prop))))))).(\lambda (P3: ((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to 
+Prop))))))).(\lambda (P: Prop).(\lambda (f: ((\forall (x0: A0).(\forall (x1: 
+A1).(\forall (x2: A2).(\forall (x3: A3).(\forall (x4: A4).((P0 x0 x1 x2 x3 
+x4) \to ((P1 x0 x1 x2 x3 x4) \to ((P2 x0 x1 x2 x3 x4) \to ((P3 x0 x1 x2 x3 
+x4) \to P))))))))))).(\lambda (e: (ex4_5 A0 A1 A2 A3 A4 P0 P1 P2 P3)).(match 
+e with [(ex4_5_intro x x0 x1 x2 x3 x4 x5 x6 x7) \Rightarrow (f x x0 x1 x2 x3 
+x4 x5 x6 x7)])))))))))))).
+
+theorem ex5_5_ind:
+ \forall (A0: Type[0]).(\forall (A1: Type[0]).(\forall (A2: Type[0]).(\forall 
+(A3: Type[0]).(\forall (A4: Type[0]).(\forall (P0: ((A0 \to (A1 \to (A2 \to 
+(A3 \to (A4 \to Prop))))))).(\forall (P1: ((A0 \to (A1 \to (A2 \to (A3 \to 
+(A4 \to Prop))))))).(\forall (P2: ((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to 
+Prop))))))).(\forall (P3: ((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to 
+Prop))))))).(\forall (P4: ((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to 
+Prop))))))).(\forall (P: Prop).(((\forall (x0: A0).(\forall (x1: A1).(\forall 
+(x2: A2).(\forall (x3: A3).(\forall (x4: A4).((P0 x0 x1 x2 x3 x4) \to ((P1 x0 
+x1 x2 x3 x4) \to ((P2 x0 x1 x2 x3 x4) \to ((P3 x0 x1 x2 x3 x4) \to ((P4 x0 x1 
+x2 x3 x4) \to P))))))))))) \to ((ex5_5 A0 A1 A2 A3 A4 P0 P1 P2 P3 P4) \to 
+P))))))))))))
+\def
+ \lambda (A0: Type[0]).(\lambda (A1: Type[0]).(\lambda (A2: Type[0]).(\lambda 
+(A3: Type[0]).(\lambda (A4: Type[0]).(\lambda (P0: ((A0 \to (A1 \to (A2 \to 
+(A3 \to (A4 \to Prop))))))).(\lambda (P1: ((A0 \to (A1 \to (A2 \to (A3 \to 
+(A4 \to Prop))))))).(\lambda (P2: ((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to 
+Prop))))))).(\lambda (P3: ((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to 
+Prop))))))).(\lambda (P4: ((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to 
+Prop))))))).(\lambda (P: Prop).(\lambda (f: ((\forall (x0: A0).(\forall (x1: 
+A1).(\forall (x2: A2).(\forall (x3: A3).(\forall (x4: A4).((P0 x0 x1 x2 x3 
+x4) \to ((P1 x0 x1 x2 x3 x4) \to ((P2 x0 x1 x2 x3 x4) \to ((P3 x0 x1 x2 x3 
+x4) \to ((P4 x0 x1 x2 x3 x4) \to P)))))))))))).(\lambda (e: (ex5_5 A0 A1 A2 
+A3 A4 P0 P1 P2 P3 P4)).(match e with [(ex5_5_intro x x0 x1 x2 x3 x4 x5 x6 x7 
+x8) \Rightarrow (f x x0 x1 x2 x3 x4 x5 x6 x7 x8)]))))))))))))).
+
+theorem ex6_6_ind:
+ \forall (A0: Type[0]).(\forall (A1: Type[0]).(\forall (A2: Type[0]).(\forall 
+(A3: Type[0]).(\forall (A4: Type[0]).(\forall (A5: Type[0]).(\forall (P0: 
+((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to (A5 \to Prop)))))))).(\forall (P1: 
+((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to (A5 \to Prop)))))))).(\forall (P2: 
+((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to (A5 \to Prop)))))))).(\forall (P3: 
+((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to (A5 \to Prop)))))))).(\forall (P4: 
+((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to (A5 \to Prop)))))))).(\forall (P5: 
+((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to (A5 \to Prop)))))))).(\forall (P: 
+Prop).(((\forall (x0: A0).(\forall (x1: A1).(\forall (x2: A2).(\forall (x3: 
+A3).(\forall (x4: A4).(\forall (x5: A5).((P0 x0 x1 x2 x3 x4 x5) \to ((P1 x0 
+x1 x2 x3 x4 x5) \to ((P2 x0 x1 x2 x3 x4 x5) \to ((P3 x0 x1 x2 x3 x4 x5) \to 
+((P4 x0 x1 x2 x3 x4 x5) \to ((P5 x0 x1 x2 x3 x4 x5) \to P))))))))))))) \to 
+((ex6_6 A0 A1 A2 A3 A4 A5 P0 P1 P2 P3 P4 P5) \to P))))))))))))))
+\def
+ \lambda (A0: Type[0]).(\lambda (A1: Type[0]).(\lambda (A2: Type[0]).(\lambda 
+(A3: Type[0]).(\lambda (A4: Type[0]).(\lambda (A5: Type[0]).(\lambda (P0: 
+((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to (A5 \to Prop)))))))).(\lambda (P1: 
+((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to (A5 \to Prop)))))))).(\lambda (P2: 
+((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to (A5 \to Prop)))))))).(\lambda (P3: 
+((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to (A5 \to Prop)))))))).(\lambda (P4: 
+((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to (A5 \to Prop)))))))).(\lambda (P5: 
+((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to (A5 \to Prop)))))))).(\lambda (P: 
+Prop).(\lambda (f: ((\forall (x0: A0).(\forall (x1: A1).(\forall (x2: 
+A2).(\forall (x3: A3).(\forall (x4: A4).(\forall (x5: A5).((P0 x0 x1 x2 x3 x4 
+x5) \to ((P1 x0 x1 x2 x3 x4 x5) \to ((P2 x0 x1 x2 x3 x4 x5) \to ((P3 x0 x1 x2 
+x3 x4 x5) \to ((P4 x0 x1 x2 x3 x4 x5) \to ((P5 x0 x1 x2 x3 x4 x5) \to 
+P)))))))))))))).(\lambda (e: (ex6_6 A0 A1 A2 A3 A4 A5 P0 P1 P2 P3 P4 
+P5)).(match e with [(ex6_6_intro x x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10) 
+\Rightarrow (f x x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10)]))))))))))))))).
+
+theorem ex6_7_ind:
+ \forall (A0: Type[0]).(\forall (A1: Type[0]).(\forall (A2: Type[0]).(\forall 
+(A3: Type[0]).(\forall (A4: Type[0]).(\forall (A5: Type[0]).(\forall (A6: 
+Type[0]).(\forall (P0: ((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to (A5 \to (A6 
+\to Prop))))))))).(\forall (P1: ((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to (A5 
+\to (A6 \to Prop))))))))).(\forall (P2: ((A0 \to (A1 \to (A2 \to (A3 \to (A4 
+\to (A5 \to (A6 \to Prop))))))))).(\forall (P3: ((A0 \to (A1 \to (A2 \to (A3 
+\to (A4 \to (A5 \to (A6 \to Prop))))))))).(\forall (P4: ((A0 \to (A1 \to (A2 
+\to (A3 \to (A4 \to (A5 \to (A6 \to Prop))))))))).(\forall (P5: ((A0 \to (A1 
+\to (A2 \to (A3 \to (A4 \to (A5 \to (A6 \to Prop))))))))).(\forall (P: 
+Prop).(((\forall (x0: A0).(\forall (x1: A1).(\forall (x2: A2).(\forall (x3: 
+A3).(\forall (x4: A4).(\forall (x5: A5).(\forall (x6: A6).((P0 x0 x1 x2 x3 x4 
+x5 x6) \to ((P1 x0 x1 x2 x3 x4 x5 x6) \to ((P2 x0 x1 x2 x3 x4 x5 x6) \to ((P3 
+x0 x1 x2 x3 x4 x5 x6) \to ((P4 x0 x1 x2 x3 x4 x5 x6) \to ((P5 x0 x1 x2 x3 x4 
+x5 x6) \to P)))))))))))))) \to ((ex6_7 A0 A1 A2 A3 A4 A5 A6 P0 P1 P2 P3 P4 
+P5) \to P)))))))))))))))
+\def
+ \lambda (A0: Type[0]).(\lambda (A1: Type[0]).(\lambda (A2: Type[0]).(\lambda 
+(A3: Type[0]).(\lambda (A4: Type[0]).(\lambda (A5: Type[0]).(\lambda (A6: 
+Type[0]).(\lambda (P0: ((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to (A5 \to (A6 
+\to Prop))))))))).(\lambda (P1: ((A0 \to (A1 \to (A2 \to (A3 \to (A4 \to (A5 
+\to (A6 \to Prop))))))))).(\lambda (P2: ((A0 \to (A1 \to (A2 \to (A3 \to (A4 
+\to (A5 \to (A6 \to Prop))))))))).(\lambda (P3: ((A0 \to (A1 \to (A2 \to (A3 
+\to (A4 \to (A5 \to (A6 \to Prop))))))))).(\lambda (P4: ((A0 \to (A1 \to (A2 
+\to (A3 \to (A4 \to (A5 \to (A6 \to Prop))))))))).(\lambda (P5: ((A0 \to (A1 
+\to (A2 \to (A3 \to (A4 \to (A5 \to (A6 \to Prop))))))))).(\lambda (P: 
+Prop).(\lambda (f: ((\forall (x0: A0).(\forall (x1: A1).(\forall (x2: 
+A2).(\forall (x3: A3).(\forall (x4: A4).(\forall (x5: A5).(\forall (x6: 
+A6).((P0 x0 x1 x2 x3 x4 x5 x6) \to ((P1 x0 x1 x2 x3 x4 x5 x6) \to ((P2 x0 x1 
+x2 x3 x4 x5 x6) \to ((P3 x0 x1 x2 x3 x4 x5 x6) \to ((P4 x0 x1 x2 x3 x4 x5 x6) 
+\to ((P5 x0 x1 x2 x3 x4 x5 x6) \to P))))))))))))))).(\lambda (e: (ex6_7 A0 A1 
+A2 A3 A4 A5 A6 P0 P1 P2 P3 P4 P5)).(match e with [(ex6_7_intro x x0 x1 x2 x3 
+x4 x5 x6 x7 x8 x9 x10 x11) \Rightarrow (f x x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 
+x11)])))))))))))))))).
+
index e6cdb238f56a8ebca3e45cf89b2cf4d62d2155b6..1948116a6c62a0a22143c15711222cc0a32661bc 100644 (file)
@@ -23,11 +23,11 @@ Prop))).((ex2 A (\lambda (x: A).(P x)) (\lambda (x: A).(Q x))) \to (ex2 A
 \def
  \lambda (A: Type[0]).(\lambda (P: ((A \to Prop))).(\lambda (Q: ((A \to 
 Prop))).(\lambda (H: (ex2 A (\lambda (x: A).(P x)) (\lambda (x: A).(Q 
-x)))).(let TMP_10 \def (\lambda (x: A).(P x)) in (let TMP_9 \def (\lambda (x: 
-A).(Q x)) in (let TMP_7 \def (\lambda (x: A).(Q x)) in (let TMP_6 \def 
-(\lambda (x: A).(P x)) in (let TMP_8 \def (ex2 A TMP_7 TMP_6) in (let TMP_5 
-\def (\lambda (x: A).(\lambda (H0: (P x)).(\lambda (H1: (Q x)).(let TMP_4 
-\def (\lambda (x0: A).(Q x0)) in (let TMP_3 \def (\lambda (x0: A).(P x0)) in 
-(ex_intro2 A TMP_4 TMP_3 x H1 H0)))))) in (ex2_ind A TMP_10 TMP_9 TMP_8 TMP_5 
+x)))).(let TMP_1 \def (\lambda (x: A).(P x)) in (let TMP_2 \def (\lambda (x: 
+A).(Q x)) in (let TMP_3 \def (\lambda (x: A).(Q x)) in (let TMP_4 \def 
+(\lambda (x: A).(P x)) in (let TMP_5 \def (ex2 A TMP_3 TMP_4) in (let TMP_8 
+\def (\lambda (x: A).(\lambda (H0: (P x)).(\lambda (H1: (Q x)).(let TMP_6 
+\def (\lambda (x0: A).(Q x0)) in (let TMP_7 \def (\lambda (x0: A).(P x0)) in 
+(ex_intro2 A TMP_6 TMP_7 x H1 H0)))))) in (ex2_ind A TMP_1 TMP_2 TMP_5 TMP_8 
 H)))))))))).
 
index b059133d94c02c0fdc9f82938b05c76ccca1946d..d9e9f05e876e0a11068f1647e422c6513067c556 100644 (file)
@@ -69,8 +69,8 @@ definition pred:
  \lambda (n: nat).(match n with [O \Rightarrow O | (S u) \Rightarrow u]).
 
 let rec plus (n: nat) on n: nat \to nat \def \lambda (m: nat).(match n with 
-[O \Rightarrow m | (S p) \Rightarrow (let TMP_2 \def (plus p m) in (S 
-TMP_2))]).
+[O \Rightarrow m | (S p) \Rightarrow (let TMP_1 \def (plus p m) in (S 
+TMP_1))]).
 
 let rec minus (n: nat) on n: nat \to nat \def \lambda (m: nat).(match n with 
 [O \Rightarrow O | (S k) \Rightarrow (match m with [O \Rightarrow (S k) | (S 
@@ -90,6 +90,6 @@ definition ltof:
  \forall (A: Type[0]).(((A \to nat)) \to (A \to (A \to Prop)))
 \def
  \lambda (A: Type[0]).(\lambda (f: ((A \to nat))).(\lambda (a: A).(\lambda 
-(b: A).(let TMP_4 \def (f a) in (let TMP_3 \def (f b) in (lt TMP_4 
-TMP_3)))))).
+(b: A).(let TMP_1 \def (f a) in (let TMP_2 \def (f b) in (lt TMP_1 
+TMP_2)))))).
 
index 332911d0b0770c0e830134a3335e3e6fe265d51c..5e19eab759ecf1f7baf246d7b39b71bc2a390e86 100644 (file)
@@ -31,7 +31,7 @@ theorem land_rect:
 P))) \to ((land A B) \to P))))
 \def
  \lambda (A: Prop).(\lambda (B: Prop).(\lambda (P: Type[0]).(\lambda (f: ((A 
-\to (B \to P)))).(\lambda (a: (land A B)).(match a in land with [(conj x x0) 
+\to (B \to P)))).(\lambda (a: (land A B)).(match a with [(conj x x0) 
 \Rightarrow (f x x0)]))))).
 
 theorem land_ind:
@@ -45,7 +45,7 @@ theorem or_ind:
 (((B \to P)) \to ((or A B) \to P)))))
 \def
  \lambda (A: Prop).(\lambda (B: Prop).(\lambda (P: Prop).(\lambda (f: ((A \to 
-P))).(\lambda (f0: ((B \to P))).(\lambda (o: (or A B)).(match o in or with 
+P))).(\lambda (f0: ((B \to P))).(\lambda (o: (or A B)).(match o with 
 [(or_introl x) \Rightarrow (f x) | (or_intror x) \Rightarrow (f0 x)])))))).
 
 theorem ex_ind:
@@ -54,7 +54,7 @@ Prop).(((\forall (x: A).((P x) \to P0))) \to ((ex A P) \to P0))))
 \def
  \lambda (A: Type[0]).(\lambda (P: ((A \to Prop))).(\lambda (P0: 
 Prop).(\lambda (f: ((\forall (x: A).((P x) \to P0)))).(\lambda (e: (ex A 
-P)).(match e in ex with [(ex_intro x x0) \Rightarrow (f x x0)]))))).
+P)).(match e with [(ex_intro x x0) \Rightarrow (f x x0)]))))).
 
 theorem ex2_ind:
  \forall (A: Type[0]).(\forall (P: ((A \to Prop))).(\forall (Q: ((A \to 
@@ -63,8 +63,8 @@ Prop))).(\forall (P0: Prop).(((\forall (x: A).((P x) \to ((Q x) \to P0))))
 \def
  \lambda (A: Type[0]).(\lambda (P: ((A \to Prop))).(\lambda (Q: ((A \to 
 Prop))).(\lambda (P0: Prop).(\lambda (f: ((\forall (x: A).((P x) \to ((Q x) 
-\to P0))))).(\lambda (e: (ex2 A P Q)).(match e in ex2 with [(ex_intro2 x x0 
-x1) \Rightarrow (f x x0 x1)])))))).
+\to P0))))).(\lambda (e: (ex2 A P Q)).(match e with [(ex_intro2 x x0 x1) 
+\Rightarrow (f x x0 x1)])))))).
 
 theorem eq_rect:
  \forall (A: Type[0]).(\forall (x: A).(\forall (P: ((A \to Type[0]))).((P x) 
@@ -72,7 +72,7 @@ theorem eq_rect:
 \def
  \lambda (A: Type[0]).(\lambda (x: A).(\lambda (P: ((A \to 
 Type[0]))).(\lambda (f: (P x)).(\lambda (y: A).(\lambda (e: (eq A x 
-y)).(match e in eq with [refl_equal \Rightarrow f])))))).
+y)).(match e with [refl_equal \Rightarrow f])))))).
 
 theorem eq_ind:
  \forall (A: Type[0]).(\forall (x: A).(\forall (P: ((A \to Prop))).((P x) \to 
@@ -83,13 +83,13 @@ x P))).
 
 let rec le_ind (n: nat) (P: (nat \to Prop)) (f: P n) (f0: (\forall (m: 
 nat).((le n m) \to ((P m) \to (P (S m)))))) (n0: nat) (l: le n n0) on l: P n0 
-\def match l in le with [le_n \Rightarrow f | (le_S m l0) \Rightarrow (let 
-TMP_5 \def ((le_ind n P f f0) m l0) in (f0 m l0 TMP_5))].
+\def match l with [le_n \Rightarrow f | (le_S m l0) \Rightarrow (let TMP_1 
+\def ((le_ind n P f f0) m l0) in (f0 m l0 TMP_1))].
 
 let rec Acc_ind (A: Type[0]) (R: (A \to (A \to Prop))) (P: (A \to Prop)) (f: 
 (\forall (x: A).(((\forall (y: A).((R y x) \to (Acc A R y)))) \to (((\forall 
 (y: A).((R y x) \to (P y)))) \to (P x))))) (a: A) (a0: Acc A R a) on a0: P a 
-\def match a0 in Acc with [(Acc_intro x a1) \Rightarrow (let TMP_7 \def 
-(\lambda (y: A).(\lambda (r: (R y x)).(let TMP_6 \def (a1 y r) in ((Acc_ind A 
-R P f) y TMP_6)))) in (f x a1 TMP_7))].
+\def match a0 with [(Acc_intro x a1) \Rightarrow (let TMP_2 \def (\lambda (y: 
+A).(\lambda (r: (R y x)).(let TMP_1 \def (a1 y r) in ((Acc_ind A R P f) y 
+TMP_1)))) in (f x a1 TMP_2))].
 
index 79b6a373344a460c3035a947dd3271a2b31d966d..83e2b707e840a53fc175f6cc1b813a5185382897 100644 (file)
@@ -21,10 +21,10 @@ theorem f_equal:
 B))).(\forall (x: A).(\forall (y: A).((eq A x y) \to (eq B (f x) (f y)))))))
 \def
  \lambda (A: Type[0]).(\lambda (B: Type[0]).(\lambda (f: ((A \to 
-B))).(\lambda (x: A).(\lambda (y: A).(\lambda (H: (eq A x y)).(let TMP_12 
-\def (\lambda (a: A).(let TMP_11 \def (f x) in (let TMP_10 \def (f a) in (eq 
-B TMP_11 TMP_10)))) in (let TMP_8 \def (f x) in (let TMP_9 \def (refl_equal B 
-TMP_8) in (eq_ind A x TMP_12 TMP_9 y H))))))))).
+B))).(\lambda (x: A).(\lambda (y: A).(\lambda (H: (eq A x y)).(let TMP_3 \def 
+(\lambda (a: A).(let TMP_1 \def (f x) in (let TMP_2 \def (f a) in (eq B TMP_1 
+TMP_2)))) in (let TMP_4 \def (f x) in (let TMP_5 \def (refl_equal B TMP_4) in 
+(eq_ind A x TMP_3 TMP_5 y H))))))))).
 
 theorem f_equal2:
  \forall (A1: Type[0]).(\forall (A2: Type[0]).(\forall (B: Type[0]).(\forall 
@@ -34,13 +34,13 @@ A2).(\forall (y2: A2).((eq A1 x1 y1) \to ((eq A2 x2 y2) \to (eq B (f x1 x2)
 \def
  \lambda (A1: Type[0]).(\lambda (A2: Type[0]).(\lambda (B: Type[0]).(\lambda 
 (f: ((A1 \to (A2 \to B)))).(\lambda (x1: A1).(\lambda (y1: A1).(\lambda (x2: 
-A2).(\lambda (y2: A2).(\lambda (H: (eq A1 x1 y1)).(let TMP_21 \def (\lambda 
-(a: A1).((eq A2 x2 y2) \to (let TMP_20 \def (f x1 x2) in (let TMP_19 \def (f 
-a y2) in (eq B TMP_20 TMP_19))))) in (let TMP_18 \def (\lambda (H0: (eq A2 x2 
-y2)).(let TMP_17 \def (\lambda (a: A2).(let TMP_16 \def (f x1 x2) in (let 
-TMP_15 \def (f x1 a) in (eq B TMP_16 TMP_15)))) in (let TMP_13 \def (f x1 x2) 
-in (let TMP_14 \def (refl_equal B TMP_13) in (eq_ind A2 x2 TMP_17 TMP_14 y2 
-H0))))) in (eq_ind A1 x1 TMP_21 TMP_18 y1 H))))))))))).
+A2).(\lambda (y2: A2).(\lambda (H: (eq A1 x1 y1)).(let TMP_3 \def (\lambda 
+(a: A1).((eq A2 x2 y2) \to (let TMP_1 \def (f x1 x2) in (let TMP_2 \def (f a 
+y2) in (eq B TMP_1 TMP_2))))) in (let TMP_9 \def (\lambda (H0: (eq A2 x2 
+y2)).(let TMP_6 \def (\lambda (a: A2).(let TMP_4 \def (f x1 x2) in (let TMP_5 
+\def (f x1 a) in (eq B TMP_4 TMP_5)))) in (let TMP_7 \def (f x1 x2) in (let 
+TMP_8 \def (refl_equal B TMP_7) in (eq_ind A2 x2 TMP_6 TMP_8 y2 H0))))) in 
+(eq_ind A1 x1 TMP_3 TMP_9 y1 H))))))))))).
 
 theorem f_equal3:
  \forall (A1: Type[0]).(\forall (A2: Type[0]).(\forall (A3: Type[0]).(\forall 
@@ -52,25 +52,25 @@ A3).(\forall (y3: A3).((eq A1 x1 y1) \to ((eq A2 x2 y2) \to ((eq A3 x3 y3)
  \lambda (A1: Type[0]).(\lambda (A2: Type[0]).(\lambda (A3: Type[0]).(\lambda 
 (B: Type[0]).(\lambda (f: ((A1 \to (A2 \to (A3 \to B))))).(\lambda (x1: 
 A1).(\lambda (y1: A1).(\lambda (x2: A2).(\lambda (y2: A2).(\lambda (x3: 
-A3).(\lambda (y3: A3).(\lambda (H: (eq A1 x1 y1)).(let TMP_34 \def (\lambda 
-(a: A1).((eq A2 x2 y2) \to ((eq A3 x3 y3) \to (let TMP_33 \def (f x1 x2 x3) 
-in (let TMP_32 \def (f a y2 y3) in (eq B TMP_33 TMP_32)))))) in (let TMP_31 
-\def (\lambda (H0: (eq A2 x2 y2)).(let TMP_30 \def (\lambda (a: A2).((eq A3 
-x3 y3) \to (let TMP_29 \def (f x1 x2 x3) in (let TMP_28 \def (f x1 a y3) in 
-(eq B TMP_29 TMP_28))))) in (let TMP_27 \def (\lambda (H1: (eq A3 x3 
-y3)).(let TMP_26 \def (\lambda (a: A3).(let TMP_25 \def (f x1 x2 x3) in (let 
-TMP_24 \def (f x1 x2 a) in (eq B TMP_25 TMP_24)))) in (let TMP_22 \def (f x1 
-x2 x3) in (let TMP_23 \def (refl_equal B TMP_22) in (eq_ind A3 x3 TMP_26 
-TMP_23 y3 H1))))) in (eq_ind A2 x2 TMP_30 TMP_27 y2 H0)))) in (eq_ind A1 x
-TMP_34 TMP_31 y1 H)))))))))))))).
+A3).(\lambda (y3: A3).(\lambda (H: (eq A1 x1 y1)).(let TMP_3 \def (\lambda 
+(a: A1).((eq A2 x2 y2) \to ((eq A3 x3 y3) \to (let TMP_1 \def (f x1 x2 x3) in 
+(let TMP_2 \def (f a y2 y3) in (eq B TMP_1 TMP_2)))))) in (let TMP_13 \def 
+(\lambda (H0: (eq A2 x2 y2)).(let TMP_6 \def (\lambda (a: A2).((eq A3 x3 y3) 
+\to (let TMP_4 \def (f x1 x2 x3) in (let TMP_5 \def (f x1 a y3) in (eq B 
+TMP_4 TMP_5))))) in (let TMP_12 \def (\lambda (H1: (eq A3 x3 y3)).(let TMP_9 
+\def (\lambda (a: A3).(let TMP_7 \def (f x1 x2 x3) in (let TMP_8 \def (f x1 
+x2 a) in (eq B TMP_7 TMP_8)))) in (let TMP_10 \def (f x1 x2 x3) in (let 
+TMP_11 \def (refl_equal B TMP_10) in (eq_ind A3 x3 TMP_9 TMP_11 y3 H1))))) in 
+(eq_ind A2 x2 TMP_6 TMP_12 y2 H0)))) in (eq_ind A1 x1 TMP_3 TMP_13 y
+H)))))))))))))).
 
 theorem sym_eq:
  \forall (A: Type[0]).(\forall (x: A).(\forall (y: A).((eq A x y) \to (eq A y 
 x))))
 \def
  \lambda (A: Type[0]).(\lambda (x: A).(\lambda (y: A).(\lambda (H: (eq A x 
-y)).(let TMP_36 \def (\lambda (a: A).(eq A a x)) in (let TMP_35 \def 
-(refl_equal A x) in (eq_ind A x TMP_36 TMP_35 y H)))))).
+y)).(let TMP_1 \def (\lambda (a: A).(eq A a x)) in (let TMP_2 \def 
+(refl_equal A x) in (eq_ind A x TMP_1 TMP_2 y H)))))).
 
 theorem eq_ind_r:
  \forall (A: Type[0]).(\forall (x: A).(\forall (P: ((A \to Prop))).((P x) \to 
@@ -78,24 +78,24 @@ theorem eq_ind_r:
 \def
  \lambda (A: Type[0]).(\lambda (x: A).(\lambda (P: ((A \to Prop))).(\lambda 
 (H: (P x)).(\lambda (y: A).(\lambda (H0: (eq A y x)).(match (sym_eq A y x H0) 
-in eq with [refl_equal \Rightarrow H])))))).
+with [refl_equal \Rightarrow H])))))).
 
 theorem trans_eq:
  \forall (A: Type[0]).(\forall (x: A).(\forall (y: A).(\forall (z: A).((eq A 
 x y) \to ((eq A y z) \to (eq A x z))))))
 \def
  \lambda (A: Type[0]).(\lambda (x: A).(\lambda (y: A).(\lambda (z: 
-A).(\lambda (H: (eq A x y)).(\lambda (H0: (eq A y z)).(let TMP_37 \def 
-(\lambda (a: A).(eq A x a)) in (eq_ind A y TMP_37 H z H0))))))).
+A).(\lambda (H: (eq A x y)).(\lambda (H0: (eq A y z)).(let TMP_1 \def 
+(\lambda (a: A).(eq A x a)) in (eq_ind A y TMP_1 H z H0))))))).
 
 theorem sym_not_eq:
  \forall (A: Type[0]).(\forall (x: A).(\forall (y: A).((not (eq A x y)) \to 
 (not (eq A y x)))))
 \def
  \lambda (A: Type[0]).(\lambda (x: A).(\lambda (y: A).(\lambda (h1: (not (eq 
-A x y))).(\lambda (h2: (eq A y x)).(let TMP_39 \def (\lambda (a: A).(eq A a 
-y)) in (let TMP_38 \def (refl_equal A y) in (let TMP_40 \def (eq_ind A y 
-TMP_39 TMP_38 x h2) in (h1 TMP_40)))))))).
+A x y))).(\lambda (h2: (eq A y x)).(let TMP_1 \def (\lambda (a: A).(eq A a 
+y)) in (let TMP_2 \def (refl_equal A y) in (let TMP_3 \def (eq_ind A y TMP_1 
+TMP_2 x h2) in (h1 TMP_3)))))))).
 
 theorem nat_double_ind:
  \forall (R: ((nat \to (nat \to Prop)))).(((\forall (n: nat).(R O n))) \to 
@@ -106,138 +106,136 @@ nat).(R n m))))))
  \lambda (R: ((nat \to (nat \to Prop)))).(\lambda (H: ((\forall (n: nat).(R O 
 n)))).(\lambda (H0: ((\forall (n: nat).(R (S n) O)))).(\lambda (H1: ((\forall 
 (n: nat).(\forall (m: nat).((R n m) \to (R (S n) (S m))))))).(\lambda (n: 
-nat).(let TMP_47 \def (\lambda (n0: nat).(\forall (m: nat).(R n0 m))) in (let 
-TMP_46 \def (\lambda (n0: nat).(\lambda (H2: ((\forall (m: nat).(R n0 
-m)))).(\lambda (m: nat).(let TMP_45 \def (\lambda (n1: nat).(let TMP_44 \def 
-(S n0) in (R TMP_44 n1))) in (let TMP_43 \def (H0 n0) in (let TMP_42 \def 
-(\lambda (n1: nat).(\lambda (_: (R (S n0) n1)).(let TMP_41 \def (H2 n1) in 
-(H1 n0 n1 TMP_41)))) in (nat_ind TMP_45 TMP_43 TMP_42 m))))))) in (nat_ind 
-TMP_47 H TMP_46 n))))))).
+nat).(let TMP_1 \def (\lambda (n0: nat).(\forall (m: nat).(R n0 m))) in (let 
+TMP_7 \def (\lambda (n0: nat).(\lambda (H2: ((\forall (m: nat).(R n0 
+m)))).(\lambda (m: nat).(let TMP_3 \def (\lambda (n1: nat).(let TMP_2 \def (S 
+n0) in (R TMP_2 n1))) in (let TMP_4 \def (H0 n0) in (let TMP_6 \def (\lambda 
+(n1: nat).(\lambda (_: (R (S n0) n1)).(let TMP_5 \def (H2 n1) in (H1 n0 n1 
+TMP_5)))) in (nat_ind TMP_3 TMP_4 TMP_6 m))))))) in (nat_ind TMP_1 H TMP_7 
+n))))))).
 
 theorem eq_add_S:
  \forall (n: nat).(\forall (m: nat).((eq nat (S n) (S m)) \to (eq nat n m)))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (eq nat (S n) (S m))).(let 
-TMP_49 \def (S n) in (let TMP_48 \def (S m) in (f_equal nat nat pred TMP_49 
-TMP_48 H))))).
+TMP_1 \def (S n) in (let TMP_2 \def (S m) in (f_equal nat nat pred TMP_1 
+TMP_2 H))))).
 
 theorem O_S:
  \forall (n: nat).(not (eq nat O (S n)))
 \def
- \lambda (n: nat).(\lambda (H: (eq nat O (S n))).(let TMP_53 \def (S n) in 
-(let TMP_52 \def (\lambda (n0: nat).(IsSucc n0)) in (let TMP_50 \def (S n) in 
-(let TMP_51 \def (sym_eq nat O TMP_50 H) in (eq_ind nat TMP_53 TMP_52 I O 
-TMP_51)))))).
+ \lambda (n: nat).(\lambda (H: (eq nat O (S n))).(let TMP_1 \def (S n) in 
+(let TMP_2 \def (\lambda (n0: nat).(IsSucc n0)) in (let TMP_3 \def (S n) in 
+(let TMP_4 \def (sym_eq nat O TMP_3 H) in (eq_ind nat TMP_1 TMP_2 I O 
+TMP_4)))))).
 
 theorem not_eq_S:
  \forall (n: nat).(\forall (m: nat).((not (eq nat n m)) \to (not (eq nat (S 
 n) (S m)))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (not (eq nat n m))).(\lambda 
-(H0: (eq nat (S n) (S m))).(let TMP_54 \def (eq_add_S n m H0) in (H 
-TMP_54))))).
+(H0: (eq nat (S n) (S m))).(let TMP_1 \def (eq_add_S n m H0) in (H TMP_1))))).
 
 theorem pred_Sn:
  \forall (m: nat).(eq nat m (pred (S m)))
 \def
- \lambda (m: nat).(let TMP_55 \def (S m) in (let TMP_56 \def (pred TMP_55) in 
-(refl_equal nat TMP_56))).
+ \lambda (m: nat).(let TMP_1 \def (S m) in (let TMP_2 \def (pred TMP_1) in 
+(refl_equal nat TMP_2))).
 
 theorem S_pred:
  \forall (n: nat).(\forall (m: nat).((lt m n) \to (eq nat n (S (pred n)))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (lt m n)).(let TMP_68 \def 
-(S m) in (let TMP_67 \def (\lambda (n0: nat).(let TMP_65 \def (pred n0) in 
-(let TMP_66 \def (S TMP_65) in (eq nat n0 TMP_66)))) in (let TMP_61 \def (S 
-m) in (let TMP_62 \def (pred TMP_61) in (let TMP_63 \def (S TMP_62) in (let 
-TMP_64 \def (refl_equal nat TMP_63) in (let TMP_60 \def (\lambda (m0
-nat).(\lambda (_: (le (S m) m0)).(\lambda (_: (eq nat m0 (S (pred m0)))).(let 
-TMP_57 \def (S m0) in (let TMP_58 \def (pred TMP_57) in (let TMP_59 \def (S 
-TMP_58) in (refl_equal nat TMP_59))))))) in (le_ind TMP_68 TMP_67 TMP_64 
-TMP_60 n H)))))))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (lt m n)).(let TMP_1 \def (S 
+m) in (let TMP_4 \def (\lambda (n0: nat).(let TMP_2 \def (pred n0) in (let 
+TMP_3 \def (S TMP_2) in (eq nat n0 TMP_3)))) in (let TMP_5 \def (S m) in (let 
+TMP_6 \def (pred TMP_5) in (let TMP_7 \def (S TMP_6) in (let TMP_8 \def 
+(refl_equal nat TMP_7) in (let TMP_12 \def (\lambda (m0: nat).(\lambda (_
+(le (S m) m0)).(\lambda (_: (eq nat m0 (S (pred m0)))).(let TMP_9 \def (S m0) 
+in (let TMP_10 \def (pred TMP_9) in (let TMP_11 \def (S TMP_10) in 
+(refl_equal nat TMP_11))))))) in (le_ind TMP_1 TMP_4 TMP_8 TMP_12 n 
+H)))))))))).
 
 theorem le_trans:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).((le n m) \to ((le m p) 
 \to (le n p)))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(\lambda (H: (le n 
-m)).(\lambda (H0: (le m p)).(let TMP_70 \def (\lambda (n0: nat).(le n n0)) in 
-(let TMP_69 \def (\lambda (m0: nat).(\lambda (_: (le m m0)).(\lambda (IHle: 
-(le n m0)).(le_S n m0 IHle)))) in (le_ind m TMP_70 H TMP_69 p H0))))))).
+m)).(\lambda (H0: (le m p)).(let TMP_1 \def (\lambda (n0: nat).(le n n0)) in 
+(let TMP_2 \def (\lambda (m0: nat).(\lambda (_: (le m m0)).(\lambda (IHle: 
+(le n m0)).(le_S n m0 IHle)))) in (le_ind m TMP_1 H TMP_2 p H0))))))).
 
 theorem le_trans_S:
  \forall (n: nat).(\forall (m: nat).((le (S n) m) \to (le n m)))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le (S n) m)).(let TMP_73 
-\def (S n) in (let TMP_71 \def (le_n n) in (let TMP_72 \def (le_S n n TMP_71) 
-in (le_trans n TMP_73 m TMP_72 H)))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le (S n) m)).(let TMP_1 
+\def (S n) in (let TMP_2 \def (le_n n) in (let TMP_3 \def (le_S n n TMP_2) in 
+(le_trans n TMP_1 m TMP_3 H)))))).
 
 theorem le_n_S:
  \forall (n: nat).(\forall (m: nat).((le n m) \to (le (S n) (S m))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(let TMP_81 \def 
-(\lambda (n0: nat).(let TMP_80 \def (S n) in (let TMP_79 \def (S n0) in (le 
-TMP_80 TMP_79)))) in (let TMP_77 \def (S n) in (let TMP_78 \def (le_n TMP_77) 
-in (let TMP_76 \def (\lambda (m0: nat).(\lambda (_: (le n m0)).(\lambda 
-(IHle: (le (S n) (S m0))).(let TMP_75 \def (S n) in (let TMP_74 \def (S m0) 
-in (le_S TMP_75 TMP_74 IHle)))))) in (le_ind n TMP_81 TMP_78 TMP_76 m 
-H))))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(let TMP_3 \def 
+(\lambda (n0: nat).(let TMP_1 \def (S n) in (let TMP_2 \def (S n0) in (le 
+TMP_1 TMP_2)))) in (let TMP_4 \def (S n) in (let TMP_5 \def (le_n TMP_4) in 
+(let TMP_8 \def (\lambda (m0: nat).(\lambda (_: (le n m0)).(\lambda (IHle: 
+(le (S n) (S m0))).(let TMP_6 \def (S n) in (let TMP_7 \def (S m0) in (le_S 
+TMP_6 TMP_7 IHle)))))) in (le_ind n TMP_3 TMP_5 TMP_8 m H))))))).
 
 theorem le_O_n:
  \forall (n: nat).(le O n)
 \def
- \lambda (n: nat).(let TMP_84 \def (\lambda (n0: nat).(le O n0)) in (let 
-TMP_83 \def (le_n O) in (let TMP_82 \def (\lambda (n0: nat).(\lambda (IHn: 
-(le O n0)).(le_S O n0 IHn))) in (nat_ind TMP_84 TMP_83 TMP_82 n)))).
+ \lambda (n: nat).(let TMP_1 \def (\lambda (n0: nat).(le O n0)) in (let TMP_2 
+\def (le_n O) in (let TMP_3 \def (\lambda (n0: nat).(\lambda (IHn: (le O 
+n0)).(le_S O n0 IHn))) in (nat_ind TMP_1 TMP_2 TMP_3 n)))).
 
 theorem le_S_n:
  \forall (n: nat).(\forall (m: nat).((le (S n) (S m)) \to (le n m)))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le (S n) (S m))).(let 
-TMP_92 \def (S n) in (let TMP_91 \def (\lambda (n0: nat).(let TMP_89 \def (S 
-n) in (let TMP_90 \def (pred TMP_89) in (let TMP_88 \def (pred n0) in (le 
-TMP_90 TMP_88))))) in (let TMP_87 \def (le_n n) in (let TMP_86 \def (\lambda 
-(m0: nat).(\lambda (H0: (le (S n) m0)).(\lambda (_: (le n (pred 
-m0))).(le_trans_S n m0 H0)))) in (let TMP_85 \def (S m) in (le_ind TMP_92 
-TMP_91 TMP_87 TMP_86 TMP_85 H)))))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le (S n) (S m))).(let TMP_1 
+\def (S n) in (let TMP_5 \def (\lambda (n0: nat).(let TMP_2 \def (S n) in 
+(let TMP_3 \def (pred TMP_2) in (let TMP_4 \def (pred n0) in (le TMP_3 
+TMP_4))))) in (let TMP_6 \def (le_n n) in (let TMP_7 \def (\lambda (m0: 
+nat).(\lambda (H0: (le (S n) m0)).(\lambda (_: (le n (pred m0))).(le_trans_S 
+n m0 H0)))) in (let TMP_8 \def (S m) in (le_ind TMP_1 TMP_5 TMP_6 TMP_7 TMP_8 
+H)))))))).
 
 theorem le_Sn_O:
  \forall (n: nat).(not (le (S n) O))
 \def
- \lambda (n: nat).(\lambda (H: (le (S n) O)).(let TMP_95 \def (S n) in (let 
-TMP_94 \def (\lambda (n0: nat).(IsSucc n0)) in (let TMP_93 \def (\lambda (m: 
+ \lambda (n: nat).(\lambda (H: (le (S n) O)).(let TMP_1 \def (S n) in (let 
+TMP_2 \def (\lambda (n0: nat).(IsSucc n0)) in (let TMP_3 \def (\lambda (m: 
 nat).(\lambda (_: (le (S n) m)).(\lambda (_: (IsSucc m)).I))) in (le_ind 
-TMP_95 TMP_94 I TMP_93 O H))))).
+TMP_1 TMP_2 I TMP_3 O H))))).
 
 theorem le_Sn_n:
  \forall (n: nat).(not (le (S n) n))
 \def
- \lambda (n: nat).(let TMP_102 \def (\lambda (n0: nat).(let TMP_100 \def (S 
-n0) in (let TMP_101 \def (le TMP_100 n0) in (not TMP_101)))) in (let TMP_99 
-\def (le_Sn_O O) in (let TMP_98 \def (\lambda (n0: nat).(\lambda (IHn: (not 
-(le (S n0) n0))).(\lambda (H: (le (S (S n0)) (S n0))).(let TMP_96 \def (S n0) 
-in (let TMP_97 \def (le_S_n TMP_96 n0 H) in (IHn TMP_97)))))) in (nat_ind 
-TMP_102 TMP_99 TMP_98 n)))).
+ \lambda (n: nat).(let TMP_3 \def (\lambda (n0: nat).(let TMP_1 \def (S n0) 
+in (let TMP_2 \def (le TMP_1 n0) in (not TMP_2)))) in (let TMP_4 \def 
+(le_Sn_O O) in (let TMP_7 \def (\lambda (n0: nat).(\lambda (IHn: (not (le (S 
+n0) n0))).(\lambda (H: (le (S (S n0)) (S n0))).(let TMP_5 \def (S n0) in (let 
+TMP_6 \def (le_S_n TMP_5 n0 H) in (IHn TMP_6)))))) in (nat_ind TMP_3 TMP_4 
+TMP_7 n)))).
 
 theorem le_antisym:
  \forall (n: nat).(\forall (m: nat).((le n m) \to ((le m n) \to (eq nat n 
 m))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (h: (le n m)).(let TMP_110 \def 
-(\lambda (n0: nat).((le n0 n) \to (eq nat n n0))) in (let TMP_109 \def 
-(\lambda (_: (le n n)).(refl_equal nat n)) in (let TMP_108 \def (\lambda (m0: 
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (h: (le n m)).(let TMP_1 \def 
+(\lambda (n0: nat).((le n0 n) \to (eq nat n n0))) in (let TMP_2 \def (\lambda 
+(_: (le n n)).(refl_equal nat n)) in (let TMP_8 \def (\lambda (m0: 
 nat).(\lambda (H: (le n m0)).(\lambda (_: (((le m0 n) \to (eq nat n 
-m0)))).(\lambda (H1: (le (S m0) n)).(let TMP_106 \def (S m0) in (let TMP_107 
-\def (eq nat n TMP_106) in (let TMP_103 \def (S m0) in (let H2 \def (le_trans 
-TMP_103 n m0 H1 H) in (let H3 \def (le_Sn_n m0) in (let TMP_104 \def (\lambda 
-(H4: (le (S m0) m0)).(H3 H4)) in (let TMP_105 \def (TMP_104 H2) in (False_ind 
-TMP_107 TMP_105)))))))))))) in (le_ind n TMP_110 TMP_109 TMP_108 m h)))))).
+m0)))).(\lambda (H1: (le (S m0) n)).(let TMP_3 \def (S m0) in (let TMP_4 \def 
+(eq nat n TMP_3) in (let TMP_5 \def (S m0) in (let H2 \def (le_trans TMP_5 n 
+m0 H1 H) in (let H3 \def (le_Sn_n m0) in (let TMP_6 \def (\lambda (H4: (le (S 
+m0) m0)).(H3 H4)) in (let TMP_7 \def (TMP_6 H2) in (False_ind TMP_4 
+TMP_7)))))))))))) in (le_ind n TMP_1 TMP_2 TMP_8 m h)))))).
 
 theorem le_n_O_eq:
  \forall (n: nat).((le n O) \to (eq nat O n))
 \def
- \lambda (n: nat).(\lambda (H: (le n O)).(let TMP_111 \def (le_O_n n) in 
-(le_antisym O n TMP_111 H))).
+ \lambda (n: nat).(\lambda (H: (le n O)).(let TMP_1 \def (le_O_n n) in 
+(le_antisym O n TMP_1 H))).
 
 theorem le_elim_rel:
  \forall (P: ((nat \to (nat \to Prop)))).(((\forall (p: nat).(P O p))) \to 
@@ -246,19 +244,19 @@ q))))))) \to (\forall (n: nat).(\forall (m: nat).((le n m) \to (P n m))))))
 \def
  \lambda (P: ((nat \to (nat \to Prop)))).(\lambda (H: ((\forall (p: nat).(P O 
 p)))).(\lambda (H0: ((\forall (p: nat).(\forall (q: nat).((le p q) \to ((P p 
-q) \to (P (S p) (S q)))))))).(\lambda (n: nat).(let TMP_125 \def (\lambda 
-(n0: nat).(\forall (m: nat).((le n0 m) \to (P n0 m)))) in (let TMP_124 \def 
-(\lambda (m: nat).(\lambda (_: (le O m)).(H m))) in (let TMP_123 \def 
-(\lambda (n0: nat).(\lambda (IHn: ((\forall (m: nat).((le n0 m) \to (P n0 
-m))))).(\lambda (m: nat).(\lambda (Le: (le (S n0) m)).(let TMP_122 \def (S 
-n0) in (let TMP_121 \def (\lambda (n1: nat).(let TMP_120 \def (S n0) in (P 
-TMP_120 n1))) in (let TMP_118 \def (le_n n0) in (let TMP_116 \def (le_n n0) 
-in (let TMP_117 \def (IHn n0 TMP_116) in (let TMP_119 \def (H0 n0 n0 TMP_118 
-TMP_117) in (let TMP_115 \def (\lambda (m0: nat).(\lambda (H1: (le (S n0) 
-m0)).(\lambda (_: (P (S n0) m0)).(let TMP_114 \def (le_trans_S n0 m0 H1) in 
-(let TMP_112 \def (le_trans_S n0 m0 H1) in (let TMP_113 \def (IHn m0 TMP_112) 
-in (H0 n0 m0 TMP_114 TMP_113))))))) in (le_ind TMP_122 TMP_121 TMP_119 
-TMP_115 m Le)))))))))))) in (nat_ind TMP_125 TMP_124 TMP_123 n))))))).
+q) \to (P (S p) (S q)))))))).(\lambda (n: nat).(let TMP_1 \def (\lambda (n0: 
+nat).(\forall (m: nat).((le n0 m) \to (P n0 m)))) in (let TMP_2 \def (\lambda 
+(m: nat).(\lambda (_: (le O m)).(H m))) in (let TMP_14 \def (\lambda (n0: 
+nat).(\lambda (IHn: ((\forall (m: nat).((le n0 m) \to (P n0 m))))).(\lambda 
+(m: nat).(\lambda (Le: (le (S n0) m)).(let TMP_3 \def (S n0) in (let TMP_5 
+\def (\lambda (n1: nat).(let TMP_4 \def (S n0) in (P TMP_4 n1))) in (let 
+TMP_6 \def (le_n n0) in (let TMP_7 \def (le_n n0) in (let TMP_8 \def (IHn n0 
+TMP_7) in (let TMP_9 \def (H0 n0 n0 TMP_6 TMP_8) in (let TMP_13 \def (\lambda 
+(m0: nat).(\lambda (H1: (le (S n0) m0)).(\lambda (_: (P (S n0) m0)).(let 
+TMP_10 \def (le_trans_S n0 m0 H1) in (let TMP_11 \def (le_trans_S n0 m0 H1) 
+in (let TMP_12 \def (IHn m0 TMP_11) in (H0 n0 m0 TMP_10 TMP_12))))))) in 
+(le_ind TMP_3 TMP_5 TMP_9 TMP_13 m Le)))))))))))) in (nat_ind TMP_1 TMP_2 
+TMP_14 n))))))).
 
 theorem lt_n_n:
  \forall (n: nat).(not (lt n n))
@@ -268,19 +266,19 @@ theorem lt_n_n:
 theorem lt_n_S:
  \forall (n: nat).(\forall (m: nat).((lt n m) \to (lt (S n) (S m))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (lt n m)).(let TMP_126 \def 
-(S n) in (le_n_S TMP_126 m H)))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (lt n m)).(let TMP_1 \def (S 
+n) in (le_n_S TMP_1 m H)))).
 
 theorem lt_n_Sn:
  \forall (n: nat).(lt n (S n))
 \def
- \lambda (n: nat).(let TMP_127 \def (S n) in (le_n TMP_127)).
+ \lambda (n: nat).(let TMP_1 \def (S n) in (le_n TMP_1)).
 
 theorem lt_S_n:
  \forall (n: nat).(\forall (m: nat).((lt (S n) (S m)) \to (lt n m)))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (lt (S n) (S m))).(let 
-TMP_128 \def (S n) in (le_S_n TMP_128 m H)))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (lt (S n) (S m))).(let TMP_1 
+\def (S n) in (le_S_n TMP_1 m H)))).
 
 theorem lt_n_O:
  \forall (n: nat).(not (lt n O))
@@ -292,17 +290,16 @@ theorem lt_trans:
 \to (lt n p)))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(\lambda (H: (lt n 
-m)).(\lambda (H0: (lt m p)).(let TMP_134 \def (S m) in (let TMP_133 \def 
-(\lambda (n0: nat).(lt n n0)) in (let TMP_131 \def (S n) in (let TMP_132 \def 
-(le_S TMP_131 m H) in (let TMP_130 \def (\lambda (m0: nat).(\lambda (_: (le 
-(S m) m0)).(\lambda (IHle: (lt n m0)).(let TMP_129 \def (S n) in (le_S 
-TMP_129 m0 IHle))))) in (le_ind TMP_134 TMP_133 TMP_132 TMP_130 p 
-H0)))))))))).
+m)).(\lambda (H0: (lt m p)).(let TMP_1 \def (S m) in (let TMP_2 \def (\lambda 
+(n0: nat).(lt n n0)) in (let TMP_3 \def (S n) in (let TMP_4 \def (le_S TMP_3 
+m H) in (let TMP_6 \def (\lambda (m0: nat).(\lambda (_: (le (S m) 
+m0)).(\lambda (IHle: (lt n m0)).(let TMP_5 \def (S n) in (le_S TMP_5 m0 
+IHle))))) in (le_ind TMP_1 TMP_2 TMP_4 TMP_6 p H0)))))))))).
 
 theorem lt_O_Sn:
  \forall (n: nat).(lt O (S n))
 \def
- \lambda (n: nat).(let TMP_135 \def (le_O_n n) in (le_n_S O n TMP_135)).
+ \lambda (n: nat).(let TMP_1 \def (le_O_n n) in (le_n_S O n TMP_1)).
 
 theorem lt_le_S:
  \forall (n: nat).(\forall (p: nat).((lt n p) \to (le (S n) p)))
@@ -312,12 +309,12 @@ theorem lt_le_S:
 theorem le_not_lt:
  \forall (n: nat).(\forall (m: nat).((le n m) \to (not (lt m n))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(let TMP_141 \def 
-(\lambda (n0: nat).(let TMP_140 \def (lt n0 n) in (not TMP_140))) in (let 
-TMP_139 \def (lt_n_n n) in (let TMP_138 \def (\lambda (m0: nat).(\lambda (_: 
-(le n m0)).(\lambda (IHle: (not (lt m0 n))).(\lambda (H1: (lt (S m0) n)).(let 
-TMP_136 \def (S m0) in (let TMP_137 \def (le_trans_S TMP_136 n H1) in (IHle 
-TMP_137))))))) in (le_ind n TMP_141 TMP_139 TMP_138 m H)))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(let TMP_2 \def 
+(\lambda (n0: nat).(let TMP_1 \def (lt n0 n) in (not TMP_1))) in (let TMP_3 
+\def (lt_n_n n) in (let TMP_6 \def (\lambda (m0: nat).(\lambda (_: (le n 
+m0)).(\lambda (IHle: (not (lt m0 n))).(\lambda (H1: (lt (S m0) n)).(let TMP_4 
+\def (S m0) in (let TMP_5 \def (le_trans_S TMP_4 n H1) in (IHle TMP_5))))))) 
+in (le_ind n TMP_2 TMP_3 TMP_6 m H)))))).
 
 theorem le_lt_n_Sm:
  \forall (n: nat).(\forall (m: nat).((le n m) \to (lt n (S m))))
@@ -329,21 +326,21 @@ theorem le_lt_trans:
 \to (lt n p)))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(\lambda (H: (le n 
-m)).(\lambda (H0: (lt m p)).(let TMP_146 \def (S m) in (let TMP_145 \def 
-(\lambda (n0: nat).(lt n n0)) in (let TMP_144 \def (le_n_S n m H) in (let 
-TMP_143 \def (\lambda (m0: nat).(\lambda (_: (le (S m) m0)).(\lambda (IHle: 
-(lt n m0)).(let TMP_142 \def (S n) in (le_S TMP_142 m0 IHle))))) in (le_ind 
-TMP_146 TMP_145 TMP_144 TMP_143 p H0))))))))).
+m)).(\lambda (H0: (lt m p)).(let TMP_1 \def (S m) in (let TMP_2 \def (\lambda 
+(n0: nat).(lt n n0)) in (let TMP_3 \def (le_n_S n m H) in (let TMP_5 \def 
+(\lambda (m0: nat).(\lambda (_: (le (S m) m0)).(\lambda (IHle: (lt n 
+m0)).(let TMP_4 \def (S n) in (le_S TMP_4 m0 IHle))))) in (le_ind TMP_1 TMP_2 
+TMP_3 TMP_5 p H0))))))))).
 
 theorem lt_le_trans:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).((lt n m) \to ((le m p) 
 \to (lt n p)))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(\lambda (H: (lt n 
-m)).(\lambda (H0: (le m p)).(let TMP_149 \def (\lambda (n0: nat).(lt n n0)) 
-in (let TMP_148 \def (\lambda (m0: nat).(\lambda (_: (le m m0)).(\lambda 
-(IHle: (lt n m0)).(let TMP_147 \def (S n) in (le_S TMP_147 m0 IHle))))) in 
-(le_ind m TMP_149 H TMP_148 p H0))))))).
+m)).(\lambda (H0: (le m p)).(let TMP_1 \def (\lambda (n0: nat).(lt n n0)) in 
+(let TMP_3 \def (\lambda (m0: nat).(\lambda (_: (le m m0)).(\lambda (IHle: 
+(lt n m0)).(let TMP_2 \def (S n) in (le_S TMP_2 m0 IHle))))) in (le_ind m 
+TMP_1 H TMP_3 p H0))))))).
 
 theorem lt_le_weak:
  \forall (n: nat).(\forall (m: nat).((lt n m) \to (le n m)))
@@ -360,410 +357,392 @@ H))).
 theorem le_lt_or_eq:
  \forall (n: nat).(\forall (m: nat).((le n m) \to (or (lt n m) (eq nat n m))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(let TMP_162 \def 
-(\lambda (n0: nat).(let TMP_161 \def (lt n n0) in (let TMP_160 \def (eq nat n 
-n0) in (or TMP_161 TMP_160)))) in (let TMP_158 \def (lt n n) in (let TMP_157 
-\def (eq nat n n) in (let TMP_156 \def (refl_equal nat n) in (let TMP_159 
-\def (or_intror TMP_158 TMP_157 TMP_156) in (let TMP_155 \def (\lambda (m0: 
-nat).(\lambda (H0: (le n m0)).(\lambda (_: (or (lt n m0) (eq nat n m0))).(let 
-TMP_153 \def (S m0) in (let TMP_154 \def (lt n TMP_153) in (let TMP_151 \def 
-(S m0) in (let TMP_152 \def (eq nat n TMP_151) in (let TMP_150 \def (le_n_S n 
-m0 H0) in (or_introl TMP_154 TMP_152 TMP_150))))))))) in (le_ind n TMP_162 
-TMP_159 TMP_155 m H))))))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(let TMP_3 \def 
+(\lambda (n0: nat).(let TMP_1 \def (lt n n0) in (let TMP_2 \def (eq nat n n0) 
+in (or TMP_1 TMP_2)))) in (let TMP_4 \def (lt n n) in (let TMP_5 \def (eq nat 
+n n) in (let TMP_6 \def (refl_equal nat n) in (let TMP_7 \def (or_intror 
+TMP_4 TMP_5 TMP_6) in (let TMP_13 \def (\lambda (m0: nat).(\lambda (H0: (le n 
+m0)).(\lambda (_: (or (lt n m0) (eq nat n m0))).(let TMP_8 \def (S m0) in 
+(let TMP_9 \def (lt n TMP_8) in (let TMP_10 \def (S m0) in (let TMP_11 \def 
+(eq nat n TMP_10) in (let TMP_12 \def (le_n_S n m0 H0) in (or_introl TMP_9 
+TMP_11 TMP_12))))))))) in (le_ind n TMP_3 TMP_7 TMP_13 m H))))))))).
 
 theorem le_or_lt:
  \forall (n: nat).(\forall (m: nat).(or (le n m) (lt m n)))
 \def
- \lambda (n: nat).(\lambda (m: nat).(let TMP_204 \def (\lambda (n0: 
-nat).(\lambda (n1: nat).(let TMP_203 \def (le n0 n1) in (let TMP_202 \def (lt 
-n1 n0) in (or TMP_203 TMP_202))))) in (let TMP_201 \def (\lambda (n0: 
-nat).(let TMP_200 \def (le O n0) in (let TMP_199 \def (lt n0 O) in (let 
-TMP_198 \def (le_O_n n0) in (or_introl TMP_200 TMP_199 TMP_198))))) in (let 
-TMP_197 \def (\lambda (n0: nat).(let TMP_195 \def (S n0) in (let TMP_196 \def 
-(le TMP_195 O) in (let TMP_193 \def (S n0) in (let TMP_194 \def (lt O 
-TMP_193) in (let TMP_191 \def (S n0) in (let TMP_190 \def (lt_O_Sn n0) in 
-(let TMP_192 \def (lt_le_S O TMP_191 TMP_190) in (or_intror TMP_196 TMP_194 
-TMP_192))))))))) in (let TMP_189 \def (\lambda (n0: nat).(\lambda (m0: 
-nat).(\lambda (H: (or (le n0 m0) (lt m0 n0))).(let TMP_188 \def (le n0 m0) in 
-(let TMP_187 \def (lt m0 n0) in (let TMP_184 \def (S n0) in (let TMP_183 \def 
-(S m0) in (let TMP_185 \def (le TMP_184 TMP_183) in (let TMP_181 \def (S m0) 
-in (let TMP_180 \def (S n0) in (let TMP_182 \def (lt TMP_181 TMP_180) in (let 
-TMP_186 \def (or TMP_185 TMP_182) in (let TMP_179 \def (\lambda (H0: (le n0 
-m0)).(let TMP_177 \def (S n0) in (let TMP_176 \def (S m0) in (let TMP_178 
-\def (le TMP_177 TMP_176) in (let TMP_174 \def (S m0) in (let TMP_173 \def (S 
-n0) in (let TMP_175 \def (lt TMP_174 TMP_173) in (let TMP_172 \def (le_n_S n0 
-m0 H0) in (or_introl TMP_178 TMP_175 TMP_172))))))))) in (let TMP_171 \def 
-(\lambda (H0: (lt m0 n0)).(let TMP_169 \def (S n0) in (let TMP_168 \def (S 
-m0) in (let TMP_170 \def (le TMP_169 TMP_168) in (let TMP_166 \def (S m0) in 
-(let TMP_165 \def (S n0) in (let TMP_167 \def (lt TMP_166 TMP_165) in (let 
-TMP_163 \def (S m0) in (let TMP_164 \def (le_n_S TMP_163 n0 H0) in (or_intror 
-TMP_170 TMP_167 TMP_164)))))))))) in (or_ind TMP_188 TMP_187 TMP_186 TMP_179 
-TMP_171 H))))))))))))))) in (nat_double_ind TMP_204 TMP_201 TMP_197 TMP_189 n 
-m)))))).
+ \lambda (n: nat).(\lambda (m: nat).(let TMP_3 \def (\lambda (n0: 
+nat).(\lambda (n1: nat).(let TMP_1 \def (le n0 n1) in (let TMP_2 \def (lt n1 
+n0) in (or TMP_1 TMP_2))))) in (let TMP_7 \def (\lambda (n0: nat).(let TMP_4 
+\def (le O n0) in (let TMP_5 \def (lt n0 O) in (let TMP_6 \def (le_O_n n0) in 
+(or_introl TMP_4 TMP_5 TMP_6))))) in (let TMP_15 \def (\lambda (n0: nat).(let 
+TMP_8 \def (S n0) in (let TMP_9 \def (le TMP_8 O) in (let TMP_10 \def (S n0) 
+in (let TMP_11 \def (lt O TMP_10) in (let TMP_12 \def (S n0) in (let TMP_13 
+\def (lt_O_Sn n0) in (let TMP_14 \def (lt_le_S O TMP_12 TMP_13) in (or_intror 
+TMP_9 TMP_11 TMP_14))))))))) in (let TMP_42 \def (\lambda (n0: nat).(\lambda 
+(m0: nat).(\lambda (H: (or (le n0 m0) (lt m0 n0))).(let TMP_16 \def (le n0 
+m0) in (let TMP_17 \def (lt m0 n0) in (let TMP_18 \def (S n0) in (let TMP_19 
+\def (S m0) in (let TMP_20 \def (le TMP_18 TMP_19) in (let TMP_21 \def (S m0) 
+in (let TMP_22 \def (S n0) in (let TMP_23 \def (lt TMP_21 TMP_22) in (let 
+TMP_24 \def (or TMP_20 TMP_23) in (let TMP_32 \def (\lambda (H0: (le n0 
+m0)).(let TMP_25 \def (S n0) in (let TMP_26 \def (S m0) in (let TMP_27 \def 
+(le TMP_25 TMP_26) in (let TMP_28 \def (S m0) in (let TMP_29 \def (S n0) in 
+(let TMP_30 \def (lt TMP_28 TMP_29) in (let TMP_31 \def (le_n_S n0 m0 H0) in 
+(or_introl TMP_27 TMP_30 TMP_31))))))))) in (let TMP_41 \def (\lambda (H0: 
+(lt m0 n0)).(let TMP_33 \def (S n0) in (let TMP_34 \def (S m0) in (let TMP_35 
+\def (le TMP_33 TMP_34) in (let TMP_36 \def (S m0) in (let TMP_37 \def (S n0) 
+in (let TMP_38 \def (lt TMP_36 TMP_37) in (let TMP_39 \def (S m0) in (let 
+TMP_40 \def (le_n_S TMP_39 n0 H0) in (or_intror TMP_35 TMP_38 
+TMP_40)))))))))) in (or_ind TMP_16 TMP_17 TMP_24 TMP_32 TMP_41 
+H))))))))))))))) in (nat_double_ind TMP_3 TMP_7 TMP_15 TMP_42 n m)))))).
 
 theorem plus_n_O:
  \forall (n: nat).(eq nat n (plus n O))
 \def
- \lambda (n: nat).(let TMP_209 \def (\lambda (n0: nat).(let TMP_208 \def 
-(plus n0 O) in (eq nat n0 TMP_208))) in (let TMP_207 \def (refl_equal nat O) 
-in (let TMP_206 \def (\lambda (n0: nat).(\lambda (H: (eq nat n0 (plus n0 
-O))).(let TMP_205 \def (plus n0 O) in (f_equal nat nat S n0 TMP_205 H)))) in 
-(nat_ind TMP_209 TMP_207 TMP_206 n)))).
+ \lambda (n: nat).(let TMP_2 \def (\lambda (n0: nat).(let TMP_1 \def (plus n0 
+O) in (eq nat n0 TMP_1))) in (let TMP_3 \def (refl_equal nat O) in (let TMP_5 
+\def (\lambda (n0: nat).(\lambda (H: (eq nat n0 (plus n0 O))).(let TMP_4 \def 
+(plus n0 O) in (f_equal nat nat S n0 TMP_4 H)))) in (nat_ind TMP_2 TMP_3 
+TMP_5 n)))).
 
 theorem plus_n_Sm:
  \forall (n: nat).(\forall (m: nat).(eq nat (S (plus n m)) (plus n (S m))))
 \def
- \lambda (m: nat).(\lambda (n: nat).(let TMP_221 \def (\lambda (n0: nat).(let 
-TMP_219 \def (plus n0 n) in (let TMP_220 \def (S TMP_219) in (let TMP_217 
-\def (S n) in (let TMP_218 \def (plus n0 TMP_217) in (eq nat TMP_220 
-TMP_218)))))) in (let TMP_215 \def (S n) in (let TMP_216 \def (refl_equal nat 
-TMP_215) in (let TMP_214 \def (\lambda (n0: nat).(\lambda (H: (eq nat (S 
-(plus n0 n)) (plus n0 (S n)))).(let TMP_212 \def (plus n0 n) in (let TMP_213 
-\def (S TMP_212) in (let TMP_210 \def (S n) in (let TMP_211 \def (plus n0 
-TMP_210) in (f_equal nat nat S TMP_213 TMP_211 H))))))) in (nat_ind TMP_221 
-TMP_216 TMP_214 m)))))).
+ \lambda (m: nat).(\lambda (n: nat).(let TMP_5 \def (\lambda (n0: nat).(let 
+TMP_1 \def (plus n0 n) in (let TMP_2 \def (S TMP_1) in (let TMP_3 \def (S n) 
+in (let TMP_4 \def (plus n0 TMP_3) in (eq nat TMP_2 TMP_4)))))) in (let TMP_6 
+\def (S n) in (let TMP_7 \def (refl_equal nat TMP_6) in (let TMP_12 \def 
+(\lambda (n0: nat).(\lambda (H: (eq nat (S (plus n0 n)) (plus n0 (S 
+n)))).(let TMP_8 \def (plus n0 n) in (let TMP_9 \def (S TMP_8) in (let TMP_10 
+\def (S n) in (let TMP_11 \def (plus n0 TMP_10) in (f_equal nat nat S TMP_9 
+TMP_11 H))))))) in (nat_ind TMP_5 TMP_7 TMP_12 m)))))).
 
 theorem plus_sym:
  \forall (n: nat).(\forall (m: nat).(eq nat (plus n m) (plus m n)))
 \def
- \lambda (n: nat).(\lambda (m: nat).(let TMP_237 \def (\lambda (n0: nat).(let 
-TMP_236 \def (plus n0 m) in (let TMP_235 \def (plus m n0) in (eq nat TMP_236 
-TMP_235)))) in (let TMP_234 \def (plus_n_O m) in (let TMP_233 \def (\lambda 
-(y: nat).(\lambda (H: (eq nat (plus y m) (plus m y))).(let TMP_231 \def (plus 
-m y) in (let TMP_232 \def (S TMP_231) in (let TMP_230 \def (\lambda (n0: 
-nat).(let TMP_228 \def (plus y m) in (let TMP_229 \def (S TMP_228) in (eq nat 
-TMP_229 n0)))) in (let TMP_226 \def (plus y m) in (let TMP_225 \def (plus m 
-y) in (let TMP_227 \def (f_equal nat nat S TMP_226 TMP_225 H) in (let TMP_223 
-\def (S y) in (let TMP_224 \def (plus m TMP_223) in (let TMP_222 \def 
-(plus_n_Sm m y) in (eq_ind nat TMP_232 TMP_230 TMP_227 TMP_224 
-TMP_222)))))))))))) in (nat_ind TMP_237 TMP_234 TMP_233 n))))).
+ \lambda (n: nat).(\lambda (m: nat).(let TMP_3 \def (\lambda (n0: nat).(let 
+TMP_1 \def (plus n0 m) in (let TMP_2 \def (plus m n0) in (eq nat TMP_1 
+TMP_2)))) in (let TMP_4 \def (plus_n_O m) in (let TMP_16 \def (\lambda (y: 
+nat).(\lambda (H: (eq nat (plus y m) (plus m y))).(let TMP_5 \def (plus m y) 
+in (let TMP_6 \def (S TMP_5) in (let TMP_9 \def (\lambda (n0: nat).(let TMP_7 
+\def (plus y m) in (let TMP_8 \def (S TMP_7) in (eq nat TMP_8 n0)))) in (let 
+TMP_10 \def (plus y m) in (let TMP_11 \def (plus m y) in (let TMP_12 \def 
+(f_equal nat nat S TMP_10 TMP_11 H) in (let TMP_13 \def (S y) in (let TMP_14 
+\def (plus m TMP_13) in (let TMP_15 \def (plus_n_Sm m y) in (eq_ind nat TMP_6 
+TMP_9 TMP_12 TMP_14 TMP_15)))))))))))) in (nat_ind TMP_3 TMP_4 TMP_16 n))))).
 
 theorem plus_Snm_nSm:
  \forall (n: nat).(\forall (m: nat).(eq nat (plus (S n) m) (plus n (S m))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(let TMP_257 \def (plus m n) in (let 
-TMP_256 \def (\lambda (n0: nat).(let TMP_255 \def (S n0) in (let TMP_253 \def 
-(S m) in (let TMP_254 \def (plus n TMP_253) in (eq nat TMP_255 TMP_254))))) 
-in (let TMP_250 \def (S m) in (let TMP_251 \def (plus TMP_250 n) in (let 
-TMP_249 \def (\lambda (n0: nat).(let TMP_247 \def (plus m n) in (let TMP_248 
-\def (S TMP_247) in (eq nat TMP_248 n0)))) in (let TMP_244 \def (S m) in (let 
-TMP_245 \def (plus TMP_244 n) in (let TMP_246 \def (refl_equal nat TMP_245) 
-in (let TMP_242 \def (S m) in (let TMP_243 \def (plus n TMP_242) in (let 
-TMP_240 \def (S m) in (let TMP_241 \def (plus_sym n TMP_240) in (let TMP_252 
-\def (eq_ind_r nat TMP_251 TMP_249 TMP_246 TMP_243 TMP_241) in (let TMP_239 
-\def (plus n m) in (let TMP_238 \def (plus_sym n m) in (eq_ind_r nat TMP_257 
-TMP_256 TMP_252 TMP_239 TMP_238))))))))))))))))).
+ \lambda (n: nat).(\lambda (m: nat).(let TMP_1 \def (plus m n) in (let TMP_5 
+\def (\lambda (n0: nat).(let TMP_2 \def (S n0) in (let TMP_3 \def (S m) in 
+(let TMP_4 \def (plus n TMP_3) in (eq nat TMP_2 TMP_4))))) in (let TMP_6 \def 
+(S m) in (let TMP_7 \def (plus TMP_6 n) in (let TMP_10 \def (\lambda (n0: 
+nat).(let TMP_8 \def (plus m n) in (let TMP_9 \def (S TMP_8) in (eq nat TMP_9 
+n0)))) in (let TMP_11 \def (S m) in (let TMP_12 \def (plus TMP_11 n) in (let 
+TMP_13 \def (refl_equal nat TMP_12) in (let TMP_14 \def (S m) in (let TMP_15 
+\def (plus n TMP_14) in (let TMP_16 \def (S m) in (let TMP_17 \def (plus_sym 
+n TMP_16) in (let TMP_18 \def (eq_ind_r nat TMP_7 TMP_10 TMP_13 TMP_15 
+TMP_17) in (let TMP_19 \def (plus n m) in (let TMP_20 \def (plus_sym n m) in 
+(eq_ind_r nat TMP_1 TMP_5 TMP_18 TMP_19 TMP_20))))))))))))))))).
 
 theorem plus_assoc_l:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).(eq nat (plus n (plus m 
 p)) (plus (plus n m) p))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(let TMP_269 \def 
-(\lambda (n0: nat).(let TMP_267 \def (plus m p) in (let TMP_268 \def (plus n0 
-TMP_267) in (let TMP_265 \def (plus n0 m) in (let TMP_266 \def (plus TMP_265 
-p) in (eq nat TMP_268 TMP_266)))))) in (let TMP_263 \def (plus m p) in (let 
-TMP_264 \def (refl_equal nat TMP_263) in (let TMP_262 \def (\lambda (n0: 
-nat).(\lambda (H: (eq nat (plus n0 (plus m p)) (plus (plus n0 m) p))).(let 
-TMP_260 \def (plus m p) in (let TMP_261 \def (plus n0 TMP_260) in (let 
-TMP_258 \def (plus n0 m) in (let TMP_259 \def (plus TMP_258 p) in (f_equal 
-nat nat S TMP_261 TMP_259 H))))))) in (nat_ind TMP_269 TMP_264 TMP_262 
-n))))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(let TMP_5 \def 
+(\lambda (n0: nat).(let TMP_1 \def (plus m p) in (let TMP_2 \def (plus n0 
+TMP_1) in (let TMP_3 \def (plus n0 m) in (let TMP_4 \def (plus TMP_3 p) in 
+(eq nat TMP_2 TMP_4)))))) in (let TMP_6 \def (plus m p) in (let TMP_7 \def 
+(refl_equal nat TMP_6) in (let TMP_12 \def (\lambda (n0: nat).(\lambda (H: 
+(eq nat (plus n0 (plus m p)) (plus (plus n0 m) p))).(let TMP_8 \def (plus m 
+p) in (let TMP_9 \def (plus n0 TMP_8) in (let TMP_10 \def (plus n0 m) in (let 
+TMP_11 \def (plus TMP_10 p) in (f_equal nat nat S TMP_9 TMP_11 H))))))) in 
+(nat_ind TMP_5 TMP_7 TMP_12 n))))))).
 
 theorem plus_assoc_r:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).(eq nat (plus (plus n 
 m) p) (plus n (plus m p)))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(let TMP_273 \def (plus 
-m p) in (let TMP_274 \def (plus n TMP_273) in (let TMP_271 \def (plus n m) in 
-(let TMP_272 \def (plus TMP_271 p) in (let TMP_270 \def (plus_assoc_l n m p) 
-in (sym_eq nat TMP_274 TMP_272 TMP_270)))))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(let TMP_1 \def (plus m 
+p) in (let TMP_2 \def (plus n TMP_1) in (let TMP_3 \def (plus n m) in (let 
+TMP_4 \def (plus TMP_3 p) in (let TMP_5 \def (plus_assoc_l n m p) in (sym_eq 
+nat TMP_2 TMP_4 TMP_5)))))))).
 
 theorem simpl_plus_l:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).((eq nat (plus n m) 
 (plus n p)) \to (eq nat m p))))
 \def
- \lambda (n: nat).(let TMP_287 \def (\lambda (n0: nat).(\forall (m: 
+ \lambda (n: nat).(let TMP_1 \def (\lambda (n0: nat).(\forall (m: 
 nat).(\forall (p: nat).((eq nat (plus n0 m) (plus n0 p)) \to (eq nat m p))))) 
-in (let TMP_286 \def (\lambda (m: nat).(\lambda (p: nat).(\lambda (H: (eq nat 
-m p)).H))) in (let TMP_285 \def (\lambda (n0: nat).(\lambda (IHn: ((\forall 
-(m: nat).(\forall (p: nat).((eq nat (plus n0 m) (plus n0 p)) \to (eq nat m 
+in (let TMP_2 \def (\lambda (m: nat).(\lambda (p: nat).(\lambda (H: (eq nat m 
+p)).H))) in (let TMP_13 \def (\lambda (n0: nat).(\lambda (IHn: ((\forall (m: 
+nat).(\forall (p: nat).((eq nat (plus n0 m) (plus n0 p)) \to (eq nat m 
 p)))))).(\lambda (m: nat).(\lambda (p: nat).(\lambda (H: (eq nat (S (plus n0 
-m)) (S (plus n0 p)))).(let TMP_283 \def (plus n0 m) in (let TMP_282 \def 
-(plus n0 p) in (let TMP_280 \def (plus n0) in (let TMP_279 \def (plus n0 m) 
-in (let TMP_278 \def (plus n0 p) in (let TMP_276 \def (plus n0 m) in (let 
-TMP_275 \def (plus n0 p) in (let TMP_277 \def (eq_add_S TMP_276 TMP_275 H) in 
-(let TMP_281 \def (f_equal nat nat TMP_280 TMP_279 TMP_278 TMP_277) in (let 
-TMP_284 \def (IHn TMP_283 TMP_282 TMP_281) in (IHn m p 
-TMP_284)))))))))))))))) in (nat_ind TMP_287 TMP_286 TMP_285 n)))).
+m)) (S (plus n0 p)))).(let TMP_3 \def (plus n0 m) in (let TMP_4 \def (plus n0 
+p) in (let TMP_5 \def (plus n0) in (let TMP_6 \def (plus n0 m) in (let TMP_7 
+\def (plus n0 p) in (let TMP_8 \def (plus n0 m) in (let TMP_9 \def (plus n0 
+p) in (let TMP_10 \def (eq_add_S TMP_8 TMP_9 H) in (let TMP_11 \def (f_equal 
+nat nat TMP_5 TMP_6 TMP_7 TMP_10) in (let TMP_12 \def (IHn TMP_3 TMP_4 
+TMP_11) in (IHn m p TMP_12)))))))))))))))) in (nat_ind TMP_1 TMP_2 TMP_13 
+n)))).
 
 theorem minus_n_O:
  \forall (n: nat).(eq nat n (minus n O))
 \def
- \lambda (n: nat).(let TMP_292 \def (\lambda (n0: nat).(let TMP_291 \def 
-(minus n0 O) in (eq nat n0 TMP_291))) in (let TMP_290 \def (refl_equal nat O) 
-in (let TMP_289 \def (\lambda (n0: nat).(\lambda (_: (eq nat n0 (minus n0 
-O))).(let TMP_288 \def (S n0) in (refl_equal nat TMP_288)))) in (nat_ind 
-TMP_292 TMP_290 TMP_289 n)))).
+ \lambda (n: nat).(let TMP_2 \def (\lambda (n0: nat).(let TMP_1 \def (minus 
+n0 O) in (eq nat n0 TMP_1))) in (let TMP_3 \def (refl_equal nat O) in (let 
+TMP_5 \def (\lambda (n0: nat).(\lambda (_: (eq nat n0 (minus n0 O))).(let 
+TMP_4 \def (S n0) in (refl_equal nat TMP_4)))) in (nat_ind TMP_2 TMP_3 TMP_5 
+n)))).
 
 theorem minus_n_n:
  \forall (n: nat).(eq nat O (minus n n))
 \def
- \lambda (n: nat).(let TMP_296 \def (\lambda (n0: nat).(let TMP_295 \def 
-(minus n0 n0) in (eq nat O TMP_295))) in (let TMP_294 \def (refl_equal nat O) 
-in (let TMP_293 \def (\lambda (n0: nat).(\lambda (IHn: (eq nat O (minus n0 
-n0))).IHn)) in (nat_ind TMP_296 TMP_294 TMP_293 n)))).
+ \lambda (n: nat).(let TMP_2 \def (\lambda (n0: nat).(let TMP_1 \def (minus 
+n0 n0) in (eq nat O TMP_1))) in (let TMP_3 \def (refl_equal nat O) in (let 
+TMP_4 \def (\lambda (n0: nat).(\lambda (IHn: (eq nat O (minus n0 n0))).IHn)) 
+in (nat_ind TMP_2 TMP_3 TMP_4 n)))).
 
 theorem minus_Sn_m:
  \forall (n: nat).(\forall (m: nat).((le m n) \to (eq nat (S (minus n m)) 
 (minus (S n) m))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (Le: (le m n)).(let TMP_307 \def 
-(\lambda (n0: nat).(\lambda (n1: nat).(let TMP_305 \def (minus n1 n0) in (let 
-TMP_306 \def (S TMP_305) in (let TMP_303 \def (S n1) in (let TMP_304 \def 
-(minus TMP_303 n0) in (eq nat TMP_306 TMP_304))))))) in (let TMP_302 \def 
-(\lambda (p: nat).(let TMP_301 \def (minus p O) in (let TMP_299 \def (minus p 
-O) in (let TMP_298 \def (minus_n_O p) in (let TMP_300 \def (sym_eq nat p 
-TMP_299 TMP_298) in (f_equal nat nat S TMP_301 p TMP_300)))))) in (let 
-TMP_297 \def (\lambda (p: nat).(\lambda (q: nat).(\lambda (_: (le p 
-q)).(\lambda (H0: (eq nat (S (minus q p)) (match p with [O \Rightarrow (S q) 
-| (S l) \Rightarrow (minus q l)]))).H0)))) in (le_elim_rel TMP_307 TMP_302 
-TMP_297 m n Le)))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (Le: (le m n)).(let TMP_5 \def 
+(\lambda (n0: nat).(\lambda (n1: nat).(let TMP_1 \def (minus n1 n0) in (let 
+TMP_2 \def (S TMP_1) in (let TMP_3 \def (S n1) in (let TMP_4 \def (minus 
+TMP_3 n0) in (eq nat TMP_2 TMP_4))))))) in (let TMP_10 \def (\lambda (p: 
+nat).(let TMP_6 \def (minus p O) in (let TMP_7 \def (minus p O) in (let TMP_8 
+\def (minus_n_O p) in (let TMP_9 \def (sym_eq nat p TMP_7 TMP_8) in (f_equal 
+nat nat S TMP_6 p TMP_9)))))) in (let TMP_11 \def (\lambda (p: nat).(\lambda 
+(q: nat).(\lambda (_: (le p q)).(\lambda (H0: (eq nat (S (minus q p)) (match 
+p with [O \Rightarrow (S q) | (S l) \Rightarrow (minus q l)]))).H0)))) in 
+(le_elim_rel TMP_5 TMP_10 TMP_11 m n Le)))))).
 
 theorem plus_minus:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).((eq nat n (plus m p)) 
 \to (eq nat p (minus n m)))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(let TMP_322 \def 
-(\lambda (n0: nat).(\lambda (n1: nat).((eq nat n1 (plus n0 p)) \to (let 
-TMP_321 \def (minus n1 n0) in (eq nat p TMP_321))))) in (let TMP_320 \def 
-(\lambda (n0: nat).(\lambda (H: (eq nat n0 p)).(let TMP_319 \def (\lambda 
-(n1: nat).(eq nat p n1)) in (let TMP_318 \def (sym_eq nat n0 p H) in (let 
-TMP_317 \def (minus n0 O) in (let TMP_316 \def (minus_n_O n0) in (eq_ind nat 
-n0 TMP_319 TMP_318 TMP_317 TMP_316))))))) in (let TMP_315 \def (\lambda (n0: 
-nat).(\lambda (H: (eq nat O (S (plus n0 p)))).(let TMP_314 \def (eq nat p O) 
-in (let H0 \def H in (let TMP_311 \def (plus n0 p) in (let H1 \def (O_S 
-TMP_311) in (let TMP_312 \def (\lambda (H2: (eq nat O (S (plus n0 p)))).(H1 
-H2)) in (let TMP_313 \def (TMP_312 H0) in (False_ind TMP_314 TMP_313))))))))) 
-in (let TMP_310 \def (\lambda (n0: nat).(\lambda (m0: nat).(\lambda (H: (((eq 
-nat m0 (plus n0 p)) \to (eq nat p (minus m0 n0))))).(\lambda (H0: (eq nat (S 
-m0) (S (plus n0 p)))).(let TMP_308 \def (plus n0 p) in (let TMP_309 \def 
-(eq_add_S m0 TMP_308 H0) in (H TMP_309))))))) in (nat_double_ind TMP_322 
-TMP_320 TMP_315 TMP_310 m n))))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(let TMP_2 \def 
+(\lambda (n0: nat).(\lambda (n1: nat).((eq nat n1 (plus n0 p)) \to (let TMP_1 
+\def (minus n1 n0) in (eq nat p TMP_1))))) in (let TMP_7 \def (\lambda (n0: 
+nat).(\lambda (H: (eq nat n0 p)).(let TMP_3 \def (\lambda (n1: nat).(eq nat p 
+n1)) in (let TMP_4 \def (sym_eq nat n0 p H) in (let TMP_5 \def (minus n0 O) 
+in (let TMP_6 \def (minus_n_O n0) in (eq_ind nat n0 TMP_3 TMP_4 TMP_5 
+TMP_6))))))) in (let TMP_12 \def (\lambda (n0: nat).(\lambda (H: (eq nat O (S 
+(plus n0 p)))).(let TMP_8 \def (eq nat p O) in (let H0 \def H in (let TMP_9 
+\def (plus n0 p) in (let H1 \def (O_S TMP_9) in (let TMP_10 \def (\lambda 
+(H2: (eq nat O (S (plus n0 p)))).(H1 H2)) in (let TMP_11 \def (TMP_10 H0) in 
+(False_ind TMP_8 TMP_11))))))))) in (let TMP_15 \def (\lambda (n0: 
+nat).(\lambda (m0: nat).(\lambda (H: (((eq nat m0 (plus n0 p)) \to (eq nat p 
+(minus m0 n0))))).(\lambda (H0: (eq nat (S m0) (S (plus n0 p)))).(let TMP_13 
+\def (plus n0 p) in (let TMP_14 \def (eq_add_S m0 TMP_13 H0) in (H 
+TMP_14))))))) in (nat_double_ind TMP_2 TMP_7 TMP_12 TMP_15 m n))))))).
 
 theorem minus_plus:
  \forall (n: nat).(\forall (m: nat).(eq nat (minus (plus n m) n) m))
 \def
- \lambda (n: nat).(\lambda (m: nat).(let TMP_327 \def (plus n m) in (let 
-TMP_328 \def (minus TMP_327 n) in (let TMP_325 \def (plus n m) in (let 
-TMP_323 \def (plus n m) in (let TMP_324 \def (refl_equal nat TMP_323) in (let 
-TMP_326 \def (plus_minus TMP_325 n m TMP_324) in (sym_eq nat m TMP_328 
-TMP_326)))))))).
+ \lambda (n: nat).(\lambda (m: nat).(let TMP_1 \def (plus n m) in (let TMP_2 
+\def (minus TMP_1 n) in (let TMP_3 \def (plus n m) in (let TMP_4 \def (plus n 
+m) in (let TMP_5 \def (refl_equal nat TMP_4) in (let TMP_6 \def (plus_minus 
+TMP_3 n m TMP_5) in (sym_eq nat m TMP_2 TMP_6)))))))).
 
 theorem le_pred_n:
  \forall (n: nat).(le (pred n) n)
 \def
- \lambda (n: nat).(let TMP_335 \def (\lambda (n0: nat).(let TMP_334 \def 
-(pred n0) in (le TMP_334 n0))) in (let TMP_333 \def (le_n O) in (let TMP_332 
-\def (\lambda (n0: nat).(\lambda (_: (le (pred n0) n0)).(let TMP_330 \def (S 
-n0) in (let TMP_331 \def (pred TMP_330) in (let TMP_329 \def (le_n n0) in 
-(le_S TMP_331 n0 TMP_329)))))) in (nat_ind TMP_335 TMP_333 TMP_332 n)))).
+ \lambda (n: nat).(let TMP_2 \def (\lambda (n0: nat).(let TMP_1 \def (pred 
+n0) in (le TMP_1 n0))) in (let TMP_3 \def (le_n O) in (let TMP_7 \def 
+(\lambda (n0: nat).(\lambda (_: (le (pred n0) n0)).(let TMP_4 \def (S n0) in 
+(let TMP_5 \def (pred TMP_4) in (let TMP_6 \def (le_n n0) in (le_S TMP_5 n0 
+TMP_6)))))) in (nat_ind TMP_2 TMP_3 TMP_7 n)))).
 
 theorem le_plus_l:
  \forall (n: nat).(\forall (m: nat).(le n (plus n m)))
 \def
- \lambda (n: nat).(let TMP_341 \def (\lambda (n0: nat).(\forall (m: nat).(let 
-TMP_340 \def (plus n0 m) in (le n0 TMP_340)))) in (let TMP_339 \def (\lambda 
-(m: nat).(le_O_n m)) in (let TMP_338 \def (\lambda (n0: nat).(\lambda (IHn: 
-((\forall (m: nat).(le n0 (plus n0 m))))).(\lambda (m: nat).(let TMP_337 \def 
-(plus n0 m) in (let TMP_336 \def (IHn m) in (le_n_S n0 TMP_337 TMP_336)))))) 
-in (nat_ind TMP_341 TMP_339 TMP_338 n)))).
+ \lambda (n: nat).(let TMP_2 \def (\lambda (n0: nat).(\forall (m: nat).(let 
+TMP_1 \def (plus n0 m) in (le n0 TMP_1)))) in (let TMP_3 \def (\lambda (m: 
+nat).(le_O_n m)) in (let TMP_6 \def (\lambda (n0: nat).(\lambda (IHn: 
+((\forall (m: nat).(le n0 (plus n0 m))))).(\lambda (m: nat).(let TMP_4 \def 
+(plus n0 m) in (let TMP_5 \def (IHn m) in (le_n_S n0 TMP_4 TMP_5)))))) in 
+(nat_ind TMP_2 TMP_3 TMP_6 n)))).
 
 theorem le_plus_r:
  \forall (n: nat).(\forall (m: nat).(le m (plus n m)))
 \def
- \lambda (n: nat).(\lambda (m: nat).(let TMP_346 \def (\lambda (n0: nat).(let 
-TMP_345 \def (plus n0 m) in (le m TMP_345))) in (let TMP_344 \def (le_n m) in 
-(let TMP_343 \def (\lambda (n0: nat).(\lambda (H: (le m (plus n0 m))).(let 
-TMP_342 \def (plus n0 m) in (le_S m TMP_342 H)))) in (nat_ind TMP_346 TMP_344 
-TMP_343 n))))).
+ \lambda (n: nat).(\lambda (m: nat).(let TMP_2 \def (\lambda (n0: nat).(let 
+TMP_1 \def (plus n0 m) in (le m TMP_1))) in (let TMP_3 \def (le_n m) in (let 
+TMP_5 \def (\lambda (n0: nat).(\lambda (H: (le m (plus n0 m))).(let TMP_4 
+\def (plus n0 m) in (le_S m TMP_4 H)))) in (nat_ind TMP_2 TMP_3 TMP_5 n))))).
 
 theorem simpl_le_plus_l:
  \forall (p: nat).(\forall (n: nat).(\forall (m: nat).((le (plus p n) (plus p 
 m)) \to (le n m))))
 \def
- \lambda (p: nat).(let TMP_352 \def (\lambda (n: nat).(\forall (n0: 
+ \lambda (p: nat).(let TMP_1 \def (\lambda (n: nat).(\forall (n0: 
 nat).(\forall (m: nat).((le (plus n n0) (plus n m)) \to (le n0 m))))) in (let 
-TMP_351 \def (\lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).H))) 
-in (let TMP_350 \def (\lambda (p0: nat).(\lambda (IHp: ((\forall (n: 
-nat).(\forall (m: nat).((le (plus p0 n) (plus p0 m)) \to (le n 
-m)))))).(\lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le (S (plus p0 n)) 
-(S (plus p0 m)))).(let TMP_348 \def (plus p0 n) in (let TMP_347 \def (plus p0 
-m) in (let TMP_349 \def (le_S_n TMP_348 TMP_347 H) in (IHp n m 
-TMP_349))))))))) in (nat_ind TMP_352 TMP_351 TMP_350 p)))).
+TMP_2 \def (\lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).H))) in 
+(let TMP_6 \def (\lambda (p0: nat).(\lambda (IHp: ((\forall (n: nat).(\forall 
+(m: nat).((le (plus p0 n) (plus p0 m)) \to (le n m)))))).(\lambda (n: 
+nat).(\lambda (m: nat).(\lambda (H: (le (S (plus p0 n)) (S (plus p0 
+m)))).(let TMP_3 \def (plus p0 n) in (let TMP_4 \def (plus p0 m) in (let 
+TMP_5 \def (le_S_n TMP_3 TMP_4 H) in (IHp n m TMP_5))))))))) in (nat_ind 
+TMP_1 TMP_2 TMP_6 p)))).
 
 theorem le_plus_trans:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).((le n m) \to (le n 
 (plus m p)))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(\lambda (H: (le n 
-m)).(let TMP_354 \def (plus m p) in (let TMP_353 \def (le_plus_l m p) in 
-(le_trans n m TMP_354 H TMP_353)))))).
+m)).(let TMP_1 \def (plus m p) in (let TMP_2 \def (le_plus_l m p) in 
+(le_trans n m TMP_1 H TMP_2)))))).
 
 theorem le_reg_l:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).((le n m) \to (le (plus 
 p n) (plus p m)))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(let TMP_362 \def 
-(\lambda (n0: nat).((le n m) \to (let TMP_361 \def (plus n0 n) in (let 
-TMP_360 \def (plus n0 m) in (le TMP_361 TMP_360))))) in (let TMP_359 \def 
-(\lambda (H: (le n m)).H) in (let TMP_358 \def (\lambda (p0: nat).(\lambda 
-(IHp: (((le n m) \to (le (plus p0 n) (plus p0 m))))).(\lambda (H: (le n 
-m)).(let TMP_357 \def (plus p0 n) in (let TMP_356 \def (plus p0 m) in (let 
-TMP_355 \def (IHp H) in (le_n_S TMP_357 TMP_356 TMP_355))))))) in (nat_ind 
-TMP_362 TMP_359 TMP_358 p)))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(let TMP_3 \def 
+(\lambda (n0: nat).((le n m) \to (let TMP_1 \def (plus n0 n) in (let TMP_2 
+\def (plus n0 m) in (le TMP_1 TMP_2))))) in (let TMP_4 \def (\lambda (H: (le 
+n m)).H) in (let TMP_8 \def (\lambda (p0: nat).(\lambda (IHp: (((le n m) \to 
+(le (plus p0 n) (plus p0 m))))).(\lambda (H: (le n m)).(let TMP_5 \def (plus 
+p0 n) in (let TMP_6 \def (plus p0 m) in (let TMP_7 \def (IHp H) in (le_n_S 
+TMP_5 TMP_6 TMP_7))))))) in (nat_ind TMP_3 TMP_4 TMP_8 p)))))).
 
 theorem le_plus_plus:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).(\forall (q: nat).((le 
 n m) \to ((le p q) \to (le (plus n p) (plus m q)))))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(\lambda (q: 
-nat).(\lambda (H: (le n m)).(\lambda (H0: (le p q)).(let TMP_369 \def 
-(\lambda (n0: nat).(let TMP_368 \def (plus n p) in (let TMP_367 \def (plus n0 
-q) in (le TMP_368 TMP_367)))) in (let TMP_366 \def (le_reg_l p q n H0) in 
-(let TMP_365 \def (\lambda (m0: nat).(\lambda (_: (le n m0)).(\lambda (H2: 
-(le (plus n p) (plus m0 q))).(let TMP_364 \def (plus n p) in (let TMP_363 
-\def (plus m0 q) in (le_S TMP_364 TMP_363 H2)))))) in (le_ind n TMP_369 
-TMP_366 TMP_365 m H))))))))).
+nat).(\lambda (H: (le n m)).(\lambda (H0: (le p q)).(let TMP_3 \def (\lambda 
+(n0: nat).(let TMP_1 \def (plus n p) in (let TMP_2 \def (plus n0 q) in (le 
+TMP_1 TMP_2)))) in (let TMP_4 \def (le_reg_l p q n H0) in (let TMP_7 \def 
+(\lambda (m0: nat).(\lambda (_: (le n m0)).(\lambda (H2: (le (plus n p) (plus 
+m0 q))).(let TMP_5 \def (plus n p) in (let TMP_6 \def (plus m0 q) in (le_S 
+TMP_5 TMP_6 H2)))))) in (le_ind n TMP_3 TMP_4 TMP_7 m H))))))))).
 
 theorem le_plus_minus:
  \forall (n: nat).(\forall (m: nat).((le n m) \to (eq nat m (plus n (minus m 
 n)))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (Le: (le n m)).(let TMP_376 \def 
-(\lambda (n0: nat).(\lambda (n1: nat).(let TMP_374 \def (minus n1 n0) in (let 
-TMP_375 \def (plus n0 TMP_374) in (eq nat n1 TMP_375))))) in (let TMP_373 
-\def (\lambda (p: nat).(minus_n_O p)) in (let TMP_372 \def (\lambda (p: 
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (Le: (le n m)).(let TMP_3 \def 
+(\lambda (n0: nat).(\lambda (n1: nat).(let TMP_1 \def (minus n1 n0) in (let 
+TMP_2 \def (plus n0 TMP_1) in (eq nat n1 TMP_2))))) in (let TMP_4 \def 
+(\lambda (p: nat).(minus_n_O p)) in (let TMP_7 \def (\lambda (p: 
 nat).(\lambda (q: nat).(\lambda (_: (le p q)).(\lambda (H0: (eq nat q (plus p 
-(minus q p)))).(let TMP_370 \def (minus q p) in (let TMP_371 \def (plus p 
-TMP_370) in (f_equal nat nat S q TMP_371 H0))))))) in (le_elim_rel TMP_376 
-TMP_373 TMP_372 n m Le)))))).
+(minus q p)))).(let TMP_5 \def (minus q p) in (let TMP_6 \def (plus p TMP_5) 
+in (f_equal nat nat S q TMP_6 H0))))))) in (le_elim_rel TMP_3 TMP_4 TMP_7 n m 
+Le)))))).
 
 theorem le_plus_minus_r:
  \forall (n: nat).(\forall (m: nat).((le n m) \to (eq nat (plus n (minus m 
 n)) m)))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(let TMP_378 \def 
-(minus m n) in (let TMP_379 \def (plus n TMP_378) in (let TMP_377 \def 
-(le_plus_minus n m H) in (sym_eq nat m TMP_379 TMP_377)))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(let TMP_1 \def 
+(minus m n) in (let TMP_2 \def (plus n TMP_1) in (let TMP_3 \def 
+(le_plus_minus n m H) in (sym_eq nat m TMP_2 TMP_3)))))).
 
 theorem simpl_lt_plus_l:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).((lt (plus p n) (plus p 
 m)) \to (lt n m))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(let TMP_386 \def 
-(\lambda (n0: nat).((lt (plus n0 n) (plus n0 m)) \to (lt n m))) in (let 
-TMP_385 \def (\lambda (H: (lt n m)).H) in (let TMP_384 \def (\lambda (p0: 
-nat).(\lambda (IHp: (((lt (plus p0 n) (plus p0 m)) \to (lt n m)))).(\lambda 
-(H: (lt (S (plus p0 n)) (S (plus p0 m)))).(let TMP_381 \def (plus p0 n) in 
-(let TMP_382 \def (S TMP_381) in (let TMP_380 \def (plus p0 m) in (let 
-TMP_383 \def (le_S_n TMP_382 TMP_380 H) in (IHp TMP_383)))))))) in (nat_ind 
-TMP_386 TMP_385 TMP_384 p)))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(let TMP_1 \def 
+(\lambda (n0: nat).((lt (plus n0 n) (plus n0 m)) \to (lt n m))) in (let TMP_2 
+\def (\lambda (H: (lt n m)).H) in (let TMP_7 \def (\lambda (p0: nat).(\lambda 
+(IHp: (((lt (plus p0 n) (plus p0 m)) \to (lt n m)))).(\lambda (H: (lt (S 
+(plus p0 n)) (S (plus p0 m)))).(let TMP_3 \def (plus p0 n) in (let TMP_4 \def 
+(S TMP_3) in (let TMP_5 \def (plus p0 m) in (let TMP_6 \def (le_S_n TMP_4 
+TMP_5 H) in (IHp TMP_6)))))))) in (nat_ind TMP_1 TMP_2 TMP_7 p)))))).
 
 theorem lt_reg_l:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).((lt n m) \to (lt (plus 
 p n) (plus p m)))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(let TMP_394 \def 
-(\lambda (n0: nat).((lt n m) \to (let TMP_393 \def (plus n0 n) in (let 
-TMP_392 \def (plus n0 m) in (lt TMP_393 TMP_392))))) in (let TMP_391 \def 
-(\lambda (H: (lt n m)).H) in (let TMP_390 \def (\lambda (p0: nat).(\lambda 
-(IHp: (((lt n m) \to (lt (plus p0 n) (plus p0 m))))).(\lambda (H: (lt n 
-m)).(let TMP_389 \def (plus p0 n) in (let TMP_388 \def (plus p0 m) in (let 
-TMP_387 \def (IHp H) in (lt_n_S TMP_389 TMP_388 TMP_387))))))) in (nat_ind 
-TMP_394 TMP_391 TMP_390 p)))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(let TMP_3 \def 
+(\lambda (n0: nat).((lt n m) \to (let TMP_1 \def (plus n0 n) in (let TMP_2 
+\def (plus n0 m) in (lt TMP_1 TMP_2))))) in (let TMP_4 \def (\lambda (H: (lt 
+n m)).H) in (let TMP_8 \def (\lambda (p0: nat).(\lambda (IHp: (((lt n m) \to 
+(lt (plus p0 n) (plus p0 m))))).(\lambda (H: (lt n m)).(let TMP_5 \def (plus 
+p0 n) in (let TMP_6 \def (plus p0 m) in (let TMP_7 \def (IHp H) in (lt_n_S 
+TMP_5 TMP_6 TMP_7))))))) in (nat_ind TMP_3 TMP_4 TMP_8 p)))))).
 
 theorem lt_reg_r:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).((lt n m) \to (lt (plus 
 n p) (plus m p)))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(\lambda (H: (lt n 
-m)).(let TMP_411 \def (plus p n) in (let TMP_410 \def (\lambda (n0: nat).(let 
-TMP_409 \def (plus m p) in (lt n0 TMP_409))) in (let TMP_407 \def (plus p m) 
-in (let TMP_406 \def (\lambda (n0: nat).(let TMP_405 \def (plus p n) in (lt 
-TMP_405 n0))) in (let TMP_403 \def (\lambda (n0: nat).(let TMP_402 \def (plus 
-n0 n) in (let TMP_401 \def (plus n0 m) in (lt TMP_402 TMP_401)))) in (let 
-TMP_400 \def (\lambda (n0: nat).(\lambda (_: (lt (plus n0 n) (plus n0 
-m))).(let TMP_399 \def (S n0) in (lt_reg_l n m TMP_399 H)))) in (let TMP_404 
-\def (nat_ind TMP_403 H TMP_400 p) in (let TMP_398 \def (plus m p) in (let 
-TMP_397 \def (plus_sym m p) in (let TMP_408 \def (eq_ind_r nat TMP_407 
-TMP_406 TMP_404 TMP_398 TMP_397) in (let TMP_396 \def (plus n p) in (let 
-TMP_395 \def (plus_sym n p) in (eq_ind_r nat TMP_411 TMP_410 TMP_408 TMP_396 
-TMP_395)))))))))))))))).
+m)).(let TMP_1 \def (plus p n) in (let TMP_3 \def (\lambda (n0: nat).(let 
+TMP_2 \def (plus m p) in (lt n0 TMP_2))) in (let TMP_4 \def (plus p m) in 
+(let TMP_6 \def (\lambda (n0: nat).(let TMP_5 \def (plus p n) in (lt TMP_5 
+n0))) in (let TMP_9 \def (\lambda (n0: nat).(let TMP_7 \def (plus n0 n) in 
+(let TMP_8 \def (plus n0 m) in (lt TMP_7 TMP_8)))) in (let TMP_11 \def 
+(\lambda (n0: nat).(\lambda (_: (lt (plus n0 n) (plus n0 m))).(let TMP_10 
+\def (S n0) in (lt_reg_l n m TMP_10 H)))) in (let TMP_12 \def (nat_ind TMP_9 
+H TMP_11 p) in (let TMP_13 \def (plus m p) in (let TMP_14 \def (plus_sym m p) 
+in (let TMP_15 \def (eq_ind_r nat TMP_4 TMP_6 TMP_12 TMP_13 TMP_14) in (let 
+TMP_16 \def (plus n p) in (let TMP_17 \def (plus_sym n p) in (eq_ind_r nat 
+TMP_1 TMP_3 TMP_15 TMP_16 TMP_17)))))))))))))))).
 
 theorem le_lt_plus_plus:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).(\forall (q: nat).((le 
 n m) \to ((lt p q) \to (lt (plus n p) (plus m q)))))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(\lambda (q: 
-nat).(\lambda (H: (le n m)).(\lambda (H0: (le (S p) q)).(let TMP_419 \def (S 
-p) in (let TMP_420 \def (plus n TMP_419) in (let TMP_418 \def (\lambda (n0: 
-nat).(let TMP_417 \def (plus m q) in (le n0 TMP_417))) in (let TMP_415 \def 
-(S p) in (let TMP_416 \def (le_plus_plus n m TMP_415 q H H0) in (let TMP_413 
-\def (S n) in (let TMP_414 \def (plus TMP_413 p) in (let TMP_412 \def 
-(plus_Snm_nSm n p) in (eq_ind_r nat TMP_420 TMP_418 TMP_416 TMP_414 
-TMP_412)))))))))))))).
+nat).(\lambda (H: (le n m)).(\lambda (H0: (le (S p) q)).(let TMP_1 \def (S p) 
+in (let TMP_2 \def (plus n TMP_1) in (let TMP_4 \def (\lambda (n0: nat).(let 
+TMP_3 \def (plus m q) in (le n0 TMP_3))) in (let TMP_5 \def (S p) in (let 
+TMP_6 \def (le_plus_plus n m TMP_5 q H H0) in (let TMP_7 \def (S n) in (let 
+TMP_8 \def (plus TMP_7 p) in (let TMP_9 \def (plus_Snm_nSm n p) in (eq_ind_r 
+nat TMP_2 TMP_4 TMP_6 TMP_8 TMP_9)))))))))))))).
 
 theorem lt_le_plus_plus:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).(\forall (q: nat).((lt 
 n m) \to ((le p q) \to (lt (plus n p) (plus m q)))))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(\lambda (q: 
-nat).(\lambda (H: (le (S n) m)).(\lambda (H0: (le p q)).(let TMP_421 \def (S 
-n) in (le_plus_plus TMP_421 m p q H H0))))))).
+nat).(\lambda (H: (le (S n) m)).(\lambda (H0: (le p q)).(let TMP_1 \def (S n) 
+in (le_plus_plus TMP_1 m p q H H0))))))).
 
 theorem lt_plus_plus:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).(\forall (q: nat).((lt 
 n m) \to ((lt p q) \to (lt (plus n p) (plus m q)))))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(\lambda (q: 
-nat).(\lambda (H: (lt n m)).(\lambda (H0: (lt p q)).(let TMP_422 \def 
-(lt_le_weak p q H0) in (lt_le_plus_plus n m p q H TMP_422))))))).
+nat).(\lambda (H: (lt n m)).(\lambda (H0: (lt p q)).(let TMP_1 \def 
+(lt_le_weak p q H0) in (lt_le_plus_plus n m p q H TMP_1))))))).
 
 theorem well_founded_ltof:
  \forall (A: Type[0]).(\forall (f: ((A \to nat))).(well_founded A (ltof A f)))
 \def
  \lambda (A: Type[0]).(\lambda (f: ((A \to nat))).(let H \def (\lambda (n: 
-nat).(let TMP_438 \def (\lambda (n0: nat).(\forall (a: A).((lt (f a) n0) \to 
-(let TMP_437 \def (ltof A f) in (Acc A TMP_437 a))))) in (let TMP_436 \def 
-(\lambda (a: A).(\lambda (H: (lt (f a) O)).(let TMP_434 \def (ltof A f) in 
-(let TMP_435 \def (Acc A TMP_434 a) in (let H0 \def H in (let TMP_431 \def (f 
-a) in (let H1 \def (lt_n_O TMP_431) in (let TMP_432 \def (\lambda (H2: (lt (f 
-a) O)).(H1 H2)) in (let TMP_433 \def (TMP_432 H0) in (False_ind TMP_435 
-TMP_433)))))))))) in (let TMP_430 \def (\lambda (n0: nat).(\lambda (IHn: 
-((\forall (a: A).((lt (f a) n0) \to (Acc A (ltof A f) a))))).(\lambda (a: 
-A).(\lambda (ltSma: (lt (f a) (S n0))).(let TMP_429 \def (ltof A f) in (let 
-TMP_428 \def (\lambda (b: A).(\lambda (ltfafb: (lt (f b) (f a))).(let TMP_426 
-\def (f b) in (let TMP_425 \def (f a) in (let TMP_423 \def (f a) in (let 
-TMP_424 \def (lt_n_Sm_le TMP_423 n0 ltSma) in (let TMP_427 \def (lt_le_trans 
-TMP_426 TMP_425 n0 ltfafb TMP_424) in (IHn b TMP_427)))))))) in (Acc_intro A 
-TMP_429 a TMP_428))))))) in (nat_ind TMP_438 TMP_436 TMP_430 n))))) in 
-(\lambda (a: A).(let TMP_442 \def (f a) in (let TMP_443 \def (S TMP_442) in 
-(let TMP_439 \def (f a) in (let TMP_440 \def (S TMP_439) in (let TMP_441 \def 
-(le_n TMP_440) in (H TMP_443 a TMP_441))))))))).
+nat).(let TMP_2 \def (\lambda (n0: nat).(\forall (a: A).((lt (f a) n0) \to 
+(let TMP_1 \def (ltof A f) in (Acc A TMP_1 a))))) in (let TMP_8 \def (\lambda 
+(a: A).(\lambda (H: (lt (f a) O)).(let TMP_3 \def (ltof A f) in (let TMP_4 
+\def (Acc A TMP_3 a) in (let H0 \def H in (let TMP_5 \def (f a) in (let H1 
+\def (lt_n_O TMP_5) in (let TMP_6 \def (\lambda (H2: (lt (f a) O)).(H1 H2)) 
+in (let TMP_7 \def (TMP_6 H0) in (False_ind TMP_4 TMP_7)))))))))) in (let 
+TMP_16 \def (\lambda (n0: nat).(\lambda (IHn: ((\forall (a: A).((lt (f a) n0) 
+\to (Acc A (ltof A f) a))))).(\lambda (a: A).(\lambda (ltSma: (lt (f a) (S 
+n0))).(let TMP_9 \def (ltof A f) in (let TMP_15 \def (\lambda (b: A).(\lambda 
+(ltfafb: (lt (f b) (f a))).(let TMP_10 \def (f b) in (let TMP_11 \def (f a) 
+in (let TMP_12 \def (f a) in (let TMP_13 \def (lt_n_Sm_le TMP_12 n0 ltSma) in 
+(let TMP_14 \def (lt_le_trans TMP_10 TMP_11 n0 ltfafb TMP_13) in (IHn b 
+TMP_14)))))))) in (Acc_intro A TMP_9 a TMP_15))))))) in (nat_ind TMP_2 TMP_8 
+TMP_16 n))))) in (\lambda (a: A).(let TMP_17 \def (f a) in (let TMP_18 \def 
+(S TMP_17) in (let TMP_19 \def (f a) in (let TMP_20 \def (S TMP_19) in (let 
+TMP_21 \def (le_n TMP_20) in (H TMP_18 a TMP_21))))))))).
 
 theorem lt_wf:
  well_founded nat lt
 \def
- let TMP_444 \def (\lambda (m: nat).m) in (well_founded_ltof nat TMP_444).
+ let TMP_1 \def (\lambda (m: nat).m) in (well_founded_ltof nat TMP_1).
 
 theorem lt_wf_ind:
  \forall (p: nat).(\forall (P: ((nat \to Prop))).(((\forall (n: 
 nat).(((\forall (m: nat).((lt m n) \to (P m)))) \to (P n)))) \to (P p)))
 \def
  \lambda (p: nat).(\lambda (P: ((nat \to Prop))).(\lambda (H: ((\forall (n: 
-nat).(((\forall (m: nat).((lt m n) \to (P m)))) \to (P n))))).(let TMP_447 
-\def (\lambda (n: nat).(P n)) in (let TMP_446 \def (\lambda (x: nat).(\lambda 
-(_: ((\forall (y: nat).((lt y x) \to (Acc nat lt y))))).(\lambda (H1: 
-((\forall (y: nat).((lt y x) \to (P y))))).(H x H1)))) in (let TMP_445 \def 
-(lt_wf p) in (Acc_ind nat lt TMP_447 TMP_446 p TMP_445)))))).
+nat).(((\forall (m: nat).((lt m n) \to (P m)))) \to (P n))))).(let TMP_1 \def 
+(\lambda (n: nat).(P n)) in (let TMP_2 \def (\lambda (x: nat).(\lambda (_: 
+((\forall (y: nat).((lt y x) \to (Acc nat lt y))))).(\lambda (H1: ((\forall 
+(y: nat).((lt y x) \to (P y))))).(H x H1)))) in (let TMP_3 \def (lt_wf p) in 
+(Acc_ind nat lt TMP_1 TMP_2 p TMP_3)))))).