From f7b122ac0979ee71c222d09d3ce32ded37767cd5 Mon Sep 17 00:00:00 2001 From: Ferruccio Guidi Date: Wed, 4 Mar 2015 19:39:26 +0000 Subject: [PATCH] components: arity, csuba --- .../lambdadelta/basic_1/arity/aprem.ma | 543 ++++--- .../lambdadelta/basic_1/arity/cimp.ma | 187 ++- .../lambdadelta/basic_1/arity/defs.ma | 4 +- .../contribs/lambdadelta/basic_1/arity/fwd.ma | 1356 +++++++++-------- .../lambdadelta/basic_1/arity/lift1.ma | 33 +- .../contribs/lambdadelta/basic_1/arity/pr3.ma | 772 +++++----- .../lambdadelta/basic_1/arity/props.ma | 915 +++++++---- .../lambdadelta/basic_1/arity/subst0.ma | 492 +++--- .../lambdadelta/basic_1/csuba/arity.ma | 692 +++++---- .../lambdadelta/basic_1/csuba/clear.ma | 246 +-- .../lambdadelta/basic_1/csuba/defs.ma | 2 +- .../lambdadelta/basic_1/csuba/drop.ma | 361 +++-- .../contribs/lambdadelta/basic_1/csuba/fwd.ma | 1349 ++++++++-------- .../lambdadelta/basic_1/csuba/getl.ma | 646 ++++---- .../lambdadelta/basic_1/csuba/props.ma | 14 +- 15 files changed, 4078 insertions(+), 3534 deletions(-) diff --git a/matita/matita/contribs/lambdadelta/basic_1/arity/aprem.ma b/matita/matita/contribs/lambdadelta/basic_1/arity/aprem.ma index 35e8f58e0..ab79ccd87 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/arity/aprem.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/arity/aprem.ma @@ -14,11 +14,11 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/arity/props.ma". +include "basic_1/arity/props.ma". -include "Basic-1/arity/cimp.ma". +include "basic_1/arity/cimp.ma". -include "Basic-1/aprem/props.ma". +include "basic_1/aprem/props.ma". theorem arity_aprem: \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (a: A).((arity g c t @@ -28,233 +28,338 @@ a) \to (\forall (i: nat).(\forall (b: A).((aprem i a b) \to (ex2_3 C T nat b))))))))))))) \def \lambda (g: G).(\lambda (c: C).(\lambda (t: T).(\lambda (a: A).(\lambda (H: -(arity g c t a)).(arity_ind g (\lambda (c0: C).(\lambda (_: T).(\lambda (a0: -A).(\forall (i: nat).(\forall (b: A).((aprem i a0 b) \to (ex2_3 C T nat -(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) -(\lambda (d: C).(\lambda (u: T).(\lambda (_: nat).(arity g d u (asucc g -b)))))))))))) (\lambda (c0: C).(\lambda (n: nat).(\lambda (i: nat).(\lambda -(b: A).(\lambda (H0: (aprem i (ASort O n) b)).(let H_x \def (aprem_gen_sort b -i O n H0) in (let H1 \def H_x in (False_ind (ex2_3 C T nat (\lambda (d: -C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: -C).(\lambda (u: T).(\lambda (_: nat).(arity g d u (asucc g b)))))) H1)))))))) -(\lambda (c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda -(H0: (getl i c0 (CHead d (Bind Abbr) u))).(\lambda (a0: A).(\lambda (_: -(arity g d u a0)).(\lambda (H2: ((\forall (i0: nat).(\forall (b: A).((aprem -i0 a0 b) \to (ex2_3 C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: -nat).(drop (plus i0 j) O d0 d)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda -(_: nat).(arity g d0 u0 (asucc g b))))))))))).(\lambda (i0: nat).(\lambda (b: -A).(\lambda (H3: (aprem i0 a0 b)).(let H_x \def (H2 i0 b H3) in (let H4 \def -H_x in (ex2_3_ind C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: -nat).(drop (plus i0 j) O d0 d)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda -(_: nat).(arity g d0 u0 (asucc g b))))) (ex2_3 C T nat (\lambda (d0: -C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i0 j) O d0 c0)))) (\lambda -(d0: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d0 u0 (asucc g b)))))) -(\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: nat).(\lambda (H5: (drop -(plus i0 x2) O x0 d)).(\lambda (H6: (arity g x0 x1 (asucc g b))).(let H_x0 -\def (getl_drop_conf_rev (plus i0 x2) x0 d H5 Abbr c0 u i H0) in (let H7 \def -H_x0 in (ex2_ind C (\lambda (c1: C).(drop (plus i0 x2) O c1 c0)) (\lambda -(c1: C).(drop (S i) (plus i0 x2) c1 x0)) (ex2_3 C T nat (\lambda (d0: -C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i0 j) O d0 c0)))) (\lambda -(d0: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d0 u0 (asucc g b)))))) -(\lambda (x: C).(\lambda (H8: (drop (plus i0 x2) O x c0)).(\lambda (H9: (drop -(S i) (plus i0 x2) x x0)).(ex2_3_intro C T nat (\lambda (d0: C).(\lambda (_: -T).(\lambda (j: nat).(drop (plus i0 j) O d0 c0)))) (\lambda (d0: C).(\lambda -(u0: T).(\lambda (_: nat).(arity g d0 u0 (asucc g b))))) x (lift (S i) (plus -i0 x2) x1) x2 H8 (arity_lift g x0 x1 (asucc g b) H6 x (S i) (plus i0 x2) -H9))))) H7)))))))) H4)))))))))))))) (\lambda (c0: C).(\lambda (d: C).(\lambda -(u: T).(\lambda (i: nat).(\lambda (H0: (getl i c0 (CHead d (Bind Abst) -u))).(\lambda (a0: A).(\lambda (_: (arity g d u (asucc g a0))).(\lambda (H2: -((\forall (i0: nat).(\forall (b: A).((aprem i0 (asucc g a0) b) \to (ex2_3 C T -nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i0 j) O d0 +(arity g c t a)).(let TMP_5 \def (\lambda (c0: C).(\lambda (_: T).(\lambda +(a0: A).(\forall (i: nat).(\forall (b: A).((aprem i a0 b) \to (let TMP_2 \def +(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_1 \def (plus i j) +in (drop TMP_1 O d c0))))) in (let TMP_4 \def (\lambda (d: C).(\lambda (u: +T).(\lambda (_: nat).(let TMP_3 \def (asucc g b) in (arity g d u TMP_3))))) +in (ex2_3 C T nat TMP_2 TMP_4))))))))) in (let TMP_11 \def (\lambda (c0: +C).(\lambda (n: nat).(\lambda (i: nat).(\lambda (b: A).(\lambda (H0: (aprem i +(ASort O n) b)).(let H_x \def (aprem_gen_sort b i O n H0) in (let H1 \def H_x +in (let TMP_7 \def (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let +TMP_6 \def (plus i j) in (drop TMP_6 O d c0))))) in (let TMP_9 \def (\lambda +(d: C).(\lambda (u: T).(\lambda (_: nat).(let TMP_8 \def (asucc g b) in +(arity g d u TMP_8))))) in (let TMP_10 \def (ex2_3 C T nat TMP_7 TMP_9) in +(False_ind TMP_10 H1))))))))))) in (let TMP_45 \def (\lambda (c0: C).(\lambda +(d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c0 (CHead d +(Bind Abbr) u))).(\lambda (a0: A).(\lambda (_: (arity g d u a0)).(\lambda +(H2: ((\forall (i0: nat).(\forall (b: A).((aprem i0 a0 b) \to (ex2_3 C T nat +(\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i0 j) O d0 d)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d0 u0 (asucc g b))))))))))).(\lambda (i0: nat).(\lambda (b: A).(\lambda (H3: (aprem -i0 a0 b)).(let H4 \def (H2 i0 b (aprem_asucc g a0 b i0 H3)) in (ex2_3_ind C T -nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i0 j) O d0 -d)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d0 u0 -(asucc g b))))) (ex2_3 C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: -nat).(drop (plus i0 j) O d0 c0)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda -(_: nat).(arity g d0 u0 (asucc g b)))))) (\lambda (x0: C).(\lambda (x1: -T).(\lambda (x2: nat).(\lambda (H5: (drop (plus i0 x2) O x0 d)).(\lambda (H6: -(arity g x0 x1 (asucc g b))).(let H_x \def (getl_drop_conf_rev (plus i0 x2) -x0 d H5 Abst c0 u i H0) in (let H7 \def H_x in (ex2_ind C (\lambda (c1: -C).(drop (plus i0 x2) O c1 c0)) (\lambda (c1: C).(drop (S i) (plus i0 x2) c1 -x0)) (ex2_3 C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(drop -(plus i0 j) O d0 c0)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: -nat).(arity g d0 u0 (asucc g b)))))) (\lambda (x: C).(\lambda (H8: (drop -(plus i0 x2) O x c0)).(\lambda (H9: (drop (S i) (plus i0 x2) x -x0)).(ex2_3_intro C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: -nat).(drop (plus i0 j) O d0 c0)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda -(_: nat).(arity g d0 u0 (asucc g b))))) x (lift (S i) (plus i0 x2) x1) x2 H8 -(arity_lift g x0 x1 (asucc g b) H6 x (S i) (plus i0 x2) H9))))) H7)))))))) -H4))))))))))))) (\lambda (b: B).(\lambda (_: (not (eq B b Abst))).(\lambda -(c0: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u -a1)).(\lambda (_: ((\forall (i: nat).(\forall (b0: A).((aprem i a1 b0) \to +i0 a0 b)).(let H_x \def (H2 i0 b H3) in (let H4 \def H_x in (let TMP_13 \def +(\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_12 \def (plus i0 +j) in (drop TMP_12 O d0 d))))) in (let TMP_15 \def (\lambda (d0: C).(\lambda +(u0: T).(\lambda (_: nat).(let TMP_14 \def (asucc g b) in (arity g d0 u0 +TMP_14))))) in (let TMP_17 \def (\lambda (d0: C).(\lambda (_: T).(\lambda (j: +nat).(let TMP_16 \def (plus i0 j) in (drop TMP_16 O d0 c0))))) in (let TMP_19 +\def (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_18 \def +(asucc g b) in (arity g d0 u0 TMP_18))))) in (let TMP_20 \def (ex2_3 C T nat +TMP_17 TMP_19) in (let TMP_44 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda +(x2: nat).(\lambda (H5: (drop (plus i0 x2) O x0 d)).(\lambda (H6: (arity g x0 +x1 (asucc g b))).(let TMP_21 \def (plus i0 x2) in (let H_x0 \def +(getl_drop_conf_rev TMP_21 x0 d H5 Abbr c0 u i H0) in (let H7 \def H_x0 in +(let TMP_23 \def (\lambda (c1: C).(let TMP_22 \def (plus i0 x2) in (drop +TMP_22 O c1 c0))) in (let TMP_26 \def (\lambda (c1: C).(let TMP_24 \def (S i) +in (let TMP_25 \def (plus i0 x2) in (drop TMP_24 TMP_25 c1 x0)))) in (let +TMP_28 \def (\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_27 +\def (plus i0 j) in (drop TMP_27 O d0 c0))))) in (let TMP_30 \def (\lambda +(d0: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_29 \def (asucc g b) in +(arity g d0 u0 TMP_29))))) in (let TMP_31 \def (ex2_3 C T nat TMP_28 TMP_30) +in (let TMP_43 \def (\lambda (x: C).(\lambda (H8: (drop (plus i0 x2) O x +c0)).(\lambda (H9: (drop (S i) (plus i0 x2) x x0)).(let TMP_33 \def (\lambda +(d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_32 \def (plus i0 j) in +(drop TMP_32 O d0 c0))))) in (let TMP_35 \def (\lambda (d0: C).(\lambda (u0: +T).(\lambda (_: nat).(let TMP_34 \def (asucc g b) in (arity g d0 u0 +TMP_34))))) in (let TMP_36 \def (S i) in (let TMP_37 \def (plus i0 x2) in +(let TMP_38 \def (lift TMP_36 TMP_37 x1) in (let TMP_39 \def (asucc g b) in +(let TMP_40 \def (S i) in (let TMP_41 \def (plus i0 x2) in (let TMP_42 \def +(arity_lift g x0 x1 TMP_39 H6 x TMP_40 TMP_41 H9) in (ex2_3_intro C T nat +TMP_33 TMP_35 x TMP_38 x2 H8 TMP_42))))))))))))) in (ex2_ind C TMP_23 TMP_26 +TMP_31 TMP_43 H7))))))))))))))) in (ex2_3_ind C T nat TMP_13 TMP_15 TMP_20 +TMP_44 H4)))))))))))))))))))) in (let TMP_80 \def (\lambda (c0: C).(\lambda +(d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c0 (CHead d +(Bind Abst) u))).(\lambda (a0: A).(\lambda (_: (arity g d u (asucc g +a0))).(\lambda (H2: ((\forall (i0: nat).(\forall (b: A).((aprem i0 (asucc g +a0) b) \to (ex2_3 C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: +nat).(drop (plus i0 j) O d0 d)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda +(_: nat).(arity g d0 u0 (asucc g b))))))))))).(\lambda (i0: nat).(\lambda (b: +A).(\lambda (H3: (aprem i0 a0 b)).(let H_y \def (H2 i0 b) in (let TMP_46 \def +(aprem_asucc g a0 b i0 H3) in (let H4 \def (H_y TMP_46) in (let TMP_48 \def +(\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_47 \def (plus i0 +j) in (drop TMP_47 O d0 d))))) in (let TMP_50 \def (\lambda (d0: C).(\lambda +(u0: T).(\lambda (_: nat).(let TMP_49 \def (asucc g b) in (arity g d0 u0 +TMP_49))))) in (let TMP_52 \def (\lambda (d0: C).(\lambda (_: T).(\lambda (j: +nat).(let TMP_51 \def (plus i0 j) in (drop TMP_51 O d0 c0))))) in (let TMP_54 +\def (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_53 \def +(asucc g b) in (arity g d0 u0 TMP_53))))) in (let TMP_55 \def (ex2_3 C T nat +TMP_52 TMP_54) in (let TMP_79 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda +(x2: nat).(\lambda (H5: (drop (plus i0 x2) O x0 d)).(\lambda (H6: (arity g x0 +x1 (asucc g b))).(let TMP_56 \def (plus i0 x2) in (let H_x \def +(getl_drop_conf_rev TMP_56 x0 d H5 Abst c0 u i H0) in (let H7 \def H_x in +(let TMP_58 \def (\lambda (c1: C).(let TMP_57 \def (plus i0 x2) in (drop +TMP_57 O c1 c0))) in (let TMP_61 \def (\lambda (c1: C).(let TMP_59 \def (S i) +in (let TMP_60 \def (plus i0 x2) in (drop TMP_59 TMP_60 c1 x0)))) in (let +TMP_63 \def (\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_62 +\def (plus i0 j) in (drop TMP_62 O d0 c0))))) in (let TMP_65 \def (\lambda +(d0: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_64 \def (asucc g b) in +(arity g d0 u0 TMP_64))))) in (let TMP_66 \def (ex2_3 C T nat TMP_63 TMP_65) +in (let TMP_78 \def (\lambda (x: C).(\lambda (H8: (drop (plus i0 x2) O x +c0)).(\lambda (H9: (drop (S i) (plus i0 x2) x x0)).(let TMP_68 \def (\lambda +(d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_67 \def (plus i0 j) in +(drop TMP_67 O d0 c0))))) in (let TMP_70 \def (\lambda (d0: C).(\lambda (u0: +T).(\lambda (_: nat).(let TMP_69 \def (asucc g b) in (arity g d0 u0 +TMP_69))))) in (let TMP_71 \def (S i) in (let TMP_72 \def (plus i0 x2) in +(let TMP_73 \def (lift TMP_71 TMP_72 x1) in (let TMP_74 \def (asucc g b) in +(let TMP_75 \def (S i) in (let TMP_76 \def (plus i0 x2) in (let TMP_77 \def +(arity_lift g x0 x1 TMP_74 H6 x TMP_75 TMP_76 H9) in (ex2_3_intro C T nat +TMP_68 TMP_70 x TMP_73 x2 H8 TMP_77))))))))))))) in (ex2_ind C TMP_58 TMP_61 +TMP_66 TMP_78 H7))))))))))))))) in (ex2_3_ind C T nat TMP_48 TMP_50 TMP_55 +TMP_79 H4))))))))))))))))))))) in (let TMP_106 \def (\lambda (b: B).(\lambda +(_: (not (eq B b Abst))).(\lambda (c0: C).(\lambda (u: T).(\lambda (a1: +A).(\lambda (_: (arity g c0 u a1)).(\lambda (_: ((\forall (i: nat).(\forall +(b0: A).((aprem i a1 b0) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: +T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda +(u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b0))))))))))).(\lambda (t0: +T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c0 (Bind b) u) t0 +a2)).(\lambda (H4: ((\forall (i: nat).(\forall (b0: A).((aprem i a2 b0) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus -i j) O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d -u0 (asucc g b0))))))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: -(arity g (CHead c0 (Bind b) u) t0 a2)).(\lambda (H4: ((\forall (i: -nat).(\forall (b0: A).((aprem i a2 b0) \to (ex2_3 C T nat (\lambda (d: -C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d (CHead c0 (Bind b) -u))))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 -(asucc g b0))))))))))).(\lambda (i: nat).(\lambda (b0: A).(\lambda (H5: -(aprem i a2 b0)).(let H_x \def (H4 i b0 H5) in (let H6 \def H_x in (ex2_3_ind -C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O -d (CHead c0 (Bind b) u))))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: -nat).(arity g d u0 (asucc g b0))))) (ex2_3 C T nat (\lambda (d: C).(\lambda -(_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda -(u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b0)))))) (\lambda (x0: -C).(\lambda (x1: T).(\lambda (x2: nat).(\lambda (H7: (drop (plus i x2) O x0 -(CHead c0 (Bind b) u))).(\lambda (H8: (arity g x0 x1 (asucc g b0))).(let H9 -\def (eq_ind nat (S (plus i x2)) (\lambda (n: nat).(drop n O x0 c0)) (drop_S -b x0 c0 u (plus i x2) H7) (plus i (S x2)) (plus_n_Sm i x2)) in (ex2_3_intro C -T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d -c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 -(asucc g b0))))) x0 x1 (S x2) H9 H8))))))) H6))))))))))))))))) (\lambda (c0: -C).(\lambda (u: T).(\lambda (a1: A).(\lambda (H0: (arity g c0 u (asucc g -a1))).(\lambda (_: ((\forall (i: nat).(\forall (b: A).((aprem i (asucc g a1) -b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop -(plus i j) O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: -nat).(arity g d u0 (asucc g b))))))))))).(\lambda (t0: T).(\lambda (a2: -A).(\lambda (_: (arity g (CHead c0 (Bind Abst) u) t0 a2)).(\lambda (H3: -((\forall (i: nat).(\forall (b: A).((aprem i a2 b) \to (ex2_3 C T nat -(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d (CHead -c0 (Bind Abst) u))))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: -nat).(arity g d u0 (asucc g b))))))))))).(\lambda (i: nat).(\lambda (b: -A).(\lambda (H4: (aprem i (AHead a1 a2) b)).(nat_ind (\lambda (n: -nat).((aprem n (AHead a1 a2) b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda -(_: T).(\lambda (j: nat).(drop (plus n j) O d c0)))) (\lambda (d: C).(\lambda -(u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b)))))))) (\lambda (H5: -(aprem O (AHead a1 a2) b)).(let H_y \def (aprem_gen_head_O a1 a2 b H5) in -(eq_ind_r A a1 (\lambda (a0: A).(ex2_3 C T nat (\lambda (d: C).(\lambda (_: -T).(\lambda (j: nat).(drop (plus O j) O d c0)))) (\lambda (d: C).(\lambda -(u0: T).(\lambda (_: nat).(arity g d u0 (asucc g a0))))))) (ex2_3_intro C T -nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus O j) O d -c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 -(asucc g a1))))) c0 u O (drop_refl c0) H0) b H_y))) (\lambda (i0: +i j) O d (CHead c0 (Bind b) u))))) (\lambda (d: C).(\lambda (u0: T).(\lambda +(_: nat).(arity g d u0 (asucc g b0))))))))))).(\lambda (i: nat).(\lambda (b0: +A).(\lambda (H5: (aprem i a2 b0)).(let H_x \def (H4 i b0 H5) in (let H6 \def +H_x in (let TMP_84 \def (\lambda (d: C).(\lambda (_: T).(\lambda (j: +nat).(let TMP_81 \def (plus i j) in (let TMP_82 \def (Bind b) in (let TMP_83 +\def (CHead c0 TMP_82 u) in (drop TMP_81 O d TMP_83))))))) in (let TMP_86 +\def (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_85 \def +(asucc g b0) in (arity g d u0 TMP_85))))) in (let TMP_88 \def (\lambda (d: +C).(\lambda (_: T).(\lambda (j: nat).(let TMP_87 \def (plus i j) in (drop +TMP_87 O d c0))))) in (let TMP_90 \def (\lambda (d: C).(\lambda (u0: +T).(\lambda (_: nat).(let TMP_89 \def (asucc g b0) in (arity g d u0 +TMP_89))))) in (let TMP_91 \def (ex2_3 C T nat TMP_88 TMP_90) in (let TMP_105 +\def (\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: nat).(\lambda (H7: (drop +(plus i x2) O x0 (CHead c0 (Bind b) u))).(\lambda (H8: (arity g x0 x1 (asucc +g b0))).(let TMP_92 \def (plus i x2) in (let TMP_93 \def (S TMP_92) in (let +TMP_94 \def (\lambda (n: nat).(drop n O x0 c0)) in (let TMP_95 \def (plus i +x2) in (let TMP_96 \def (drop_S b x0 c0 u TMP_95 H7) in (let TMP_97 \def (S +x2) in (let TMP_98 \def (plus i TMP_97) in (let TMP_99 \def (plus_n_Sm i x2) +in (let H9 \def (eq_ind nat TMP_93 TMP_94 TMP_96 TMP_98 TMP_99) in (let +TMP_101 \def (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_100 +\def (plus i j) in (drop TMP_100 O d c0))))) in (let TMP_103 \def (\lambda +(d: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_102 \def (asucc g b0) in +(arity g d u0 TMP_102))))) in (let TMP_104 \def (S x2) in (ex2_3_intro C T +nat TMP_101 TMP_103 x0 x1 TMP_104 H9 H8)))))))))))))))))) in (ex2_3_ind C T +nat TMP_84 TMP_86 TMP_91 TMP_105 H6))))))))))))))))))))))) in (let TMP_145 +\def (\lambda (c0: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (H0: (arity g +c0 u (asucc g a1))).(\lambda (_: ((\forall (i: nat).(\forall (b: A).((aprem i +(asucc g a1) b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda +(j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda (u0: +T).(\lambda (_: nat).(arity g d u0 (asucc g b))))))))))).(\lambda (t0: +T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c0 (Bind Abst) u) t0 +a2)).(\lambda (H3: ((\forall (i: nat).(\forall (b: A).((aprem i a2 b) \to +(ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus +i j) O d (CHead c0 (Bind Abst) u))))) (\lambda (d: C).(\lambda (u0: +T).(\lambda (_: nat).(arity g d u0 (asucc g b))))))))))).(\lambda (i: +nat).(\lambda (b: A).(\lambda (H4: (aprem i (AHead a1 a2) b)).(let TMP_111 +\def (\lambda (n: nat).((aprem n (AHead a1 a2) b) \to (let TMP_108 \def +(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_107 \def (plus n +j) in (drop TMP_107 O d c0))))) in (let TMP_110 \def (\lambda (d: C).(\lambda +(u0: T).(\lambda (_: nat).(let TMP_109 \def (asucc g b) in (arity g d u0 +TMP_109))))) in (ex2_3 C T nat TMP_108 TMP_110))))) in (let TMP_123 \def +(\lambda (H5: (aprem O (AHead a1 a2) b)).(let H_y \def (aprem_gen_head_O a1 +a2 b H5) in (let TMP_116 \def (\lambda (a0: A).(let TMP_113 \def (\lambda (d: +C).(\lambda (_: T).(\lambda (j: nat).(let TMP_112 \def (plus O j) in (drop +TMP_112 O d c0))))) in (let TMP_115 \def (\lambda (d: C).(\lambda (u0: +T).(\lambda (_: nat).(let TMP_114 \def (asucc g a0) in (arity g d u0 +TMP_114))))) in (ex2_3 C T nat TMP_113 TMP_115)))) in (let TMP_118 \def +(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_117 \def (plus O +j) in (drop TMP_117 O d c0))))) in (let TMP_120 \def (\lambda (d: C).(\lambda +(u0: T).(\lambda (_: nat).(let TMP_119 \def (asucc g a1) in (arity g d u0 +TMP_119))))) in (let TMP_121 \def (drop_refl c0) in (let TMP_122 \def +(ex2_3_intro C T nat TMP_118 TMP_120 c0 u O TMP_121 H0) in (eq_ind_r A a1 +TMP_116 TMP_122 b H_y)))))))) in (let TMP_144 \def (\lambda (i0: nat).(\lambda (_: (((aprem i0 (AHead a1 a2) b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i0 j) O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b))))))))).(\lambda (H5: (aprem (S i0) (AHead a1 a2) b)).(let H_y \def (aprem_gen_head_S a1 a2 b i0 H5) in (let H_x \def (H3 i0 b H_y) in (let H6 -\def H_x in (ex2_3_ind C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: -nat).(drop (plus i0 j) O d (CHead c0 (Bind Abst) u))))) (\lambda (d: -C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b))))) (ex2_3 C -T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus (S i0) j) -O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 -(asucc g b)))))) (\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: -nat).(\lambda (H7: (drop (plus i0 x2) O x0 (CHead c0 (Bind Abst) -u))).(\lambda (H8: (arity g x0 x1 (asucc g b))).(ex2_3_intro C T nat (\lambda -(d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus (S i0) j) O d c0)))) +\def H_x in (let TMP_127 \def (\lambda (d: C).(\lambda (_: T).(\lambda (j: +nat).(let TMP_124 \def (plus i0 j) in (let TMP_125 \def (Bind Abst) in (let +TMP_126 \def (CHead c0 TMP_125 u) in (drop TMP_124 O d TMP_126))))))) in (let +TMP_129 \def (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_128 +\def (asucc g b) in (arity g d u0 TMP_128))))) in (let TMP_132 \def (\lambda +(d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_130 \def (S i0) in (let +TMP_131 \def (plus TMP_130 j) in (drop TMP_131 O d c0)))))) in (let TMP_134 +\def (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_133 \def +(asucc g b) in (arity g d u0 TMP_133))))) in (let TMP_135 \def (ex2_3 C T nat +TMP_132 TMP_134) in (let TMP_143 \def (\lambda (x0: C).(\lambda (x1: +T).(\lambda (x2: nat).(\lambda (H7: (drop (plus i0 x2) O x0 (CHead c0 (Bind +Abst) u))).(\lambda (H8: (arity g x0 x1 (asucc g b))).(let TMP_138 \def +(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_136 \def (S i0) in +(let TMP_137 \def (plus TMP_136 j) in (drop TMP_137 O d c0)))))) in (let +TMP_140 \def (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_139 +\def (asucc g b) in (arity g d u0 TMP_139))))) in (let TMP_141 \def (plus i0 +x2) in (let TMP_142 \def (drop_S Abst x0 c0 u TMP_141 H7) in (ex2_3_intro C T +nat TMP_138 TMP_140 x0 x1 x2 TMP_142 H8)))))))))) in (ex2_3_ind C T nat +TMP_127 TMP_129 TMP_135 TMP_143 H6))))))))))))) in (nat_ind TMP_111 TMP_123 +TMP_144 i H4)))))))))))))))) in (let TMP_236 \def (\lambda (c0: C).(\lambda +(u: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u a1)).(\lambda (_: +((\forall (i: nat).(\forall (b: A).((aprem i a1 b) \to (ex2_3 C T nat +(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 (asucc g -b))))) x0 x1 x2 (drop_S Abst x0 c0 u (plus i0 x2) H7) H8)))))) H6))))))) i -H4))))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (a1: A).(\lambda -(_: (arity g c0 u a1)).(\lambda (_: ((\forall (i: nat).(\forall (b: -A).((aprem i a1 b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: -T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda -(u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b))))))))))).(\lambda (t0: -T).(\lambda (a2: A).(\lambda (_: (arity g c0 t0 (AHead a1 a2))).(\lambda (H3: -((\forall (i: nat).(\forall (b: A).((aprem i (AHead a1 a2) b) \to (ex2_3 C T +b))))))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g c0 t0 +(AHead a1 a2))).(\lambda (H3: ((\forall (i: nat).(\forall (b: A).((aprem i +(AHead a1 a2) b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda +(j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda (u0: +T).(\lambda (_: nat).(arity g d u0 (asucc g b))))))))))).(\lambda (i: +nat).(\lambda (b: A).(\lambda (H4: (aprem i a2 b)).(let TMP_146 \def (S i) in +(let H_y \def (H3 TMP_146 b) in (let TMP_147 \def (aprem_succ a2 b i H4 a1) +in (let H5 \def (H_y TMP_147) in (let TMP_150 \def (\lambda (d: C).(\lambda +(_: T).(\lambda (j: nat).(let TMP_148 \def (plus i j) in (let TMP_149 \def (S +TMP_148) in (drop TMP_149 O d c0)))))) in (let TMP_152 \def (\lambda (d: +C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_151 \def (asucc g b) in (arity +g d u0 TMP_151))))) in (let TMP_154 \def (\lambda (d: C).(\lambda (_: +T).(\lambda (j: nat).(let TMP_153 \def (plus i j) in (drop TMP_153 O d +c0))))) in (let TMP_156 \def (\lambda (d: C).(\lambda (u0: T).(\lambda (_: +nat).(let TMP_155 \def (asucc g b) in (arity g d u0 TMP_155))))) in (let +TMP_157 \def (ex2_3 C T nat TMP_154 TMP_156) in (let TMP_235 \def (\lambda +(x0: C).(\lambda (x1: T).(\lambda (x2: nat).(\lambda (H6: (drop (S (plus i +x2)) O x0 c0)).(\lambda (H7: (arity g x0 x1 (asucc g b))).(let TMP_162 \def +(\lambda (c1: C).((drop (S (plus i x2)) O c1 c0) \to ((arity g c1 x1 (asucc g +b)) \to (let TMP_159 \def (\lambda (d: C).(\lambda (_: T).(\lambda (j: +nat).(let TMP_158 \def (plus i j) in (drop TMP_158 O d c0))))) in (let +TMP_161 \def (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_160 +\def (asucc g b) in (arity g d u0 TMP_160))))) in (ex2_3 C T nat TMP_159 +TMP_161)))))) in (let TMP_186 \def (\lambda (n: nat).(\lambda (H8: (drop (S +(plus i x2)) O (CSort n) c0)).(\lambda (_: (arity g (CSort n) x1 (asucc g +b))).(let TMP_163 \def (CSort n) in (let TMP_164 \def (eq C c0 TMP_163) in +(let TMP_165 \def (plus i x2) in (let TMP_166 \def (S TMP_165) in (let +TMP_167 \def (eq nat TMP_166 O) in (let TMP_168 \def (eq nat O O) in (let +TMP_170 \def (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_169 +\def (plus i j) in (drop TMP_169 O d c0))))) in (let TMP_172 \def (\lambda +(d: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_171 \def (asucc g b) in +(arity g d u0 TMP_171))))) in (let TMP_173 \def (ex2_3 C T nat TMP_170 +TMP_172) in (let TMP_182 \def (\lambda (_: (eq C c0 (CSort n))).(\lambda +(H11: (eq nat (S (plus i x2)) O)).(\lambda (_: (eq nat O O)).(let TMP_174 +\def (plus i x2) in (let TMP_175 \def (S TMP_174) in (let TMP_176 \def +(\lambda (ee: nat).(match ee with [O \Rightarrow False | (S _) \Rightarrow +True])) in (let H13 \def (eq_ind nat TMP_175 TMP_176 I O H11) in (let TMP_178 +\def (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_177 \def +(plus i j) in (drop TMP_177 O d c0))))) in (let TMP_180 \def (\lambda (d: +C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_179 \def (asucc g b) in (arity +g d u0 TMP_179))))) in (let TMP_181 \def (ex2_3 C T nat TMP_178 TMP_180) in +(False_ind TMP_181 H13))))))))))) in (let TMP_183 \def (plus i x2) in (let +TMP_184 \def (S TMP_183) in (let TMP_185 \def (drop_gen_sort n TMP_184 O c0 +H8) in (and3_ind TMP_164 TMP_167 TMP_168 TMP_173 TMP_182 +TMP_185))))))))))))))))) in (let TMP_234 \def (\lambda (d: C).(\lambda (IHd: +(((drop (S (plus i x2)) O d c0) \to ((arity g d x1 (asucc g b)) \to (ex2_3 C +T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O +d0 c0)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d0 u0 +(asucc g b)))))))))).(\lambda (k: K).(\lambda (t1: T).(\lambda (H8: (drop (S +(plus i x2)) O (CHead d k t1) c0)).(\lambda (H9: (arity g (CHead d k t1) x1 +(asucc g b))).(let TMP_191 \def (\lambda (k0: K).((arity g (CHead d k0 t1) x1 +(asucc g b)) \to ((drop (r k0 (plus i x2)) O d c0) \to (let TMP_188 \def +(\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_187 \def (plus i +j) in (drop TMP_187 O d0 c0))))) in (let TMP_190 \def (\lambda (d0: +C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_189 \def (asucc g b) in (arity +g d0 u0 TMP_189))))) in (ex2_3 C T nat TMP_188 TMP_190)))))) in (let TMP_211 +\def (\lambda (b0: B).(\lambda (H10: (arity g (CHead d (Bind b0) t1) x1 +(asucc g b))).(\lambda (H11: (drop (r (Bind b0) (plus i x2)) O d c0)).(let +TMP_193 \def (\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_192 +\def (plus i j) in (drop TMP_192 O d0 c0))))) in (let TMP_195 \def (\lambda +(d0: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_194 \def (asucc g b) in +(arity g d0 u0 TMP_194))))) in (let TMP_196 \def (Bind b0) in (let TMP_197 +\def (CHead d TMP_196 t1) in (let TMP_198 \def (S x2) in (let TMP_199 \def +(plus i x2) in (let TMP_200 \def (S TMP_199) in (let TMP_203 \def (\lambda +(n: nat).(let TMP_201 \def (Bind b0) in (let TMP_202 \def (CHead d TMP_201 +t1) in (drop n O TMP_202 c0)))) in (let TMP_204 \def (Bind b0) in (let +TMP_205 \def (plus i x2) in (let TMP_206 \def (drop_drop TMP_204 TMP_205 d c0 +H11 t1) in (let TMP_207 \def (S x2) in (let TMP_208 \def (plus i TMP_207) in +(let TMP_209 \def (plus_n_Sm i x2) in (let TMP_210 \def (eq_ind nat TMP_200 +TMP_203 TMP_206 TMP_208 TMP_209) in (ex2_3_intro C T nat TMP_193 TMP_195 +TMP_197 x1 TMP_198 TMP_210 H10))))))))))))))))))) in (let TMP_231 \def +(\lambda (f: F).(\lambda (H10: (arity g (CHead d (Flat f) t1) x1 (asucc g +b))).(\lambda (H11: (drop (r (Flat f) (plus i x2)) O d c0)).(let TMP_212 \def +(Flat f) in (let TMP_213 \def (CHead d TMP_212 t1) in (let TMP_214 \def +(asucc g b) in (let TMP_215 \def (cimp_flat_sx f d t1) in (let TMP_216 \def +(arity_cimp_conf g TMP_213 x1 TMP_214 H10 d TMP_215) in (let H12 \def (IHd +H11 TMP_216) in (let TMP_218 \def (\lambda (d0: C).(\lambda (_: T).(\lambda +(j: nat).(let TMP_217 \def (plus i j) in (drop TMP_217 O d0 c0))))) in (let +TMP_220 \def (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_219 +\def (asucc g b) in (arity g d0 u0 TMP_219))))) in (let TMP_222 \def (\lambda +(d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_221 \def (plus i j) in +(drop TMP_221 O d0 c0))))) in (let TMP_224 \def (\lambda (d0: C).(\lambda +(u0: T).(\lambda (_: nat).(let TMP_223 \def (asucc g b) in (arity g d0 u0 +TMP_223))))) in (let TMP_225 \def (ex2_3 C T nat TMP_222 TMP_224) in (let +TMP_230 \def (\lambda (x3: C).(\lambda (x4: T).(\lambda (x5: nat).(\lambda +(H13: (drop (plus i x5) O x3 c0)).(\lambda (H14: (arity g x3 x4 (asucc g +b))).(let TMP_227 \def (\lambda (d0: C).(\lambda (_: T).(\lambda (j: +nat).(let TMP_226 \def (plus i j) in (drop TMP_226 O d0 c0))))) in (let +TMP_229 \def (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_228 +\def (asucc g b) in (arity g d0 u0 TMP_228))))) in (ex2_3_intro C T nat +TMP_227 TMP_229 x3 x4 x5 H13 H14)))))))) in (ex2_3_ind C T nat TMP_218 +TMP_220 TMP_225 TMP_230 H12)))))))))))))))) in (let TMP_232 \def (plus i x2) +in (let TMP_233 \def (drop_gen_drop k d c0 t1 TMP_232 H8) in (K_ind TMP_191 +TMP_211 TMP_231 k H9 TMP_233)))))))))))) in (C_ind TMP_162 TMP_186 TMP_234 x0 +H6 H7))))))))) in (ex2_3_ind C T nat TMP_150 TMP_152 TMP_157 TMP_235 +H5))))))))))))))))))))))) in (let TMP_251 \def (\lambda (c0: C).(\lambda (u: +T).(\lambda (a0: A).(\lambda (_: (arity g c0 u (asucc g a0))).(\lambda (_: +((\forall (i: nat).(\forall (b: A).((aprem i (asucc g a0) b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 -(asucc g b))))))))))).(\lambda (i: nat).(\lambda (b: A).(\lambda (H4: (aprem -i a2 b)).(let H5 \def (H3 (S i) b (aprem_succ a2 b i H4 a1)) in (ex2_3_ind C -T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (S (plus i j)) -O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 -(asucc g b))))) (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: -nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda -(_: nat).(arity g d u0 (asucc g b)))))) (\lambda (x0: C).(\lambda (x1: -T).(\lambda (x2: nat).(\lambda (H6: (drop (S (plus i x2)) O x0 c0)).(\lambda -(H7: (arity g x0 x1 (asucc g b))).(C_ind (\lambda (c1: C).((drop (S (plus i -x2)) O c1 c0) \to ((arity g c1 x1 (asucc g b)) \to (ex2_3 C T nat (\lambda -(d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda -(d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b))))))))) -(\lambda (n: nat).(\lambda (H8: (drop (S (plus i x2)) O (CSort n) -c0)).(\lambda (_: (arity g (CSort n) x1 (asucc g b))).(and3_ind (eq C c0 -(CSort n)) (eq nat (S (plus i x2)) O) (eq nat O O) (ex2_3 C T nat (\lambda -(d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda -(d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b)))))) -(\lambda (_: (eq C c0 (CSort n))).(\lambda (H11: (eq nat (S (plus i x2)) -O)).(\lambda (_: (eq nat O O)).(let H13 \def (eq_ind nat (S (plus i x2)) -(\lambda (ee: nat).(match ee in nat return (\lambda (_: nat).Prop) with [O -\Rightarrow False | (S _) \Rightarrow True])) I O H11) in (False_ind (ex2_3 C -T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d -c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 -(asucc g b)))))) H13))))) (drop_gen_sort n (S (plus i x2)) O c0 H8))))) -(\lambda (d: C).(\lambda (IHd: (((drop (S (plus i x2)) O d c0) \to ((arity g -d x1 (asucc g b)) \to (ex2_3 C T nat (\lambda (d0: C).(\lambda (_: -T).(\lambda (j: nat).(drop (plus i j) O d0 c0)))) (\lambda (d0: C).(\lambda -(u0: T).(\lambda (_: nat).(arity g d0 u0 (asucc g b)))))))))).(\lambda (k: -K).(\lambda (t1: T).(\lambda (H8: (drop (S (plus i x2)) O (CHead d k t1) -c0)).(\lambda (H9: (arity g (CHead d k t1) x1 (asucc g b))).(K_ind (\lambda -(k0: K).((arity g (CHead d k0 t1) x1 (asucc g b)) \to ((drop (r k0 (plus i -x2)) O d c0) \to (ex2_3 C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: -nat).(drop (plus i j) O d0 c0)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda -(_: nat).(arity g d0 u0 (asucc g b))))))))) (\lambda (b0: B).(\lambda (H10: -(arity g (CHead d (Bind b0) t1) x1 (asucc g b))).(\lambda (H11: (drop (r -(Bind b0) (plus i x2)) O d c0)).(ex2_3_intro C T nat (\lambda (d0: -C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d0 c0)))) (\lambda -(d0: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d0 u0 (asucc g b))))) -(CHead d (Bind b0) t1) x1 (S x2) (eq_ind nat (S (plus i x2)) (\lambda (n: -nat).(drop n O (CHead d (Bind b0) t1) c0)) (drop_drop (Bind b0) (plus i x2) d -c0 H11 t1) (plus i (S x2)) (plus_n_Sm i x2)) H10)))) (\lambda (f: F).(\lambda -(H10: (arity g (CHead d (Flat f) t1) x1 (asucc g b))).(\lambda (H11: (drop (r -(Flat f) (plus i x2)) O d c0)).(let H12 \def (IHd H11 (arity_cimp_conf g -(CHead d (Flat f) t1) x1 (asucc g b) H10 d (cimp_flat_sx f d t1))) in -(ex2_3_ind C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(drop -(plus i j) O d0 c0)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: -nat).(arity g d0 u0 (asucc g b))))) (ex2_3 C T nat (\lambda (d0: C).(\lambda -(_: T).(\lambda (j: nat).(drop (plus i j) O d0 c0)))) (\lambda (d0: -C).(\lambda (u0: T).(\lambda (_: nat).(arity g d0 u0 (asucc g b)))))) -(\lambda (x3: C).(\lambda (x4: T).(\lambda (x5: nat).(\lambda (H13: (drop -(plus i x5) O x3 c0)).(\lambda (H14: (arity g x3 x4 (asucc g -b))).(ex2_3_intro C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: -nat).(drop (plus i j) O d0 c0)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda -(_: nat).(arity g d0 u0 (asucc g b))))) x3 x4 x5 H13 H14)))))) H12))))) k H9 -(drop_gen_drop k d c0 t1 (plus i x2) H8)))))))) x0 H6 H7)))))) -H5)))))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (a0: A).(\lambda -(_: (arity g c0 u (asucc g a0))).(\lambda (_: ((\forall (i: nat).(\forall (b: -A).((aprem i (asucc g a0) b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: -T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda -(u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b))))))))))).(\lambda (t0: -T).(\lambda (_: (arity g c0 t0 a0)).(\lambda (H3: ((\forall (i: nat).(\forall -(b: A).((aprem i a0 b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: -T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda -(u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b))))))))))).(\lambda (i: -nat).(\lambda (b: A).(\lambda (H4: (aprem i a0 b)).(let H_x \def (H3 i b H4) -in (let H5 \def H_x in (ex2_3_ind C T nat (\lambda (d: C).(\lambda (_: -T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda -(u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b))))) (ex2_3 C T nat -(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) -(\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 (asucc g -b)))))) (\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: nat).(\lambda (H6: -(drop (plus i x2) O x0 c0)).(\lambda (H7: (arity g x0 x1 (asucc g -b))).(ex2_3_intro C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: -nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda -(_: nat).(arity g d u0 (asucc g b))))) x0 x1 x2 H6 H7)))))) H5)))))))))))))) -(\lambda (c0: C).(\lambda (t0: T).(\lambda (a1: A).(\lambda (_: (arity g c0 -t0 a1)).(\lambda (H1: ((\forall (i: nat).(\forall (b: A).((aprem i a1 b) \to +(asucc g b))))))))))).(\lambda (t0: T).(\lambda (_: (arity g c0 t0 +a0)).(\lambda (H3: ((\forall (i: nat).(\forall (b: A).((aprem i a0 b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus -i j) O d c0)))) (\lambda (d: C).(\lambda (u: T).(\lambda (_: nat).(arity g d -u (asucc g b))))))))))).(\lambda (a2: A).(\lambda (H2: (leq g a1 -a2)).(\lambda (i: nat).(\lambda (b: A).(\lambda (H3: (aprem i a2 b)).(let H_x -\def (aprem_repl g a1 a2 H2 i b H3) in (let H4 \def H_x in (ex2_ind A -(\lambda (b1: A).(leq g b1 b)) (\lambda (b1: A).(aprem i a1 b1)) (ex2_3 C T -nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d -c0)))) (\lambda (d: C).(\lambda (u: T).(\lambda (_: nat).(arity g d u (asucc -g b)))))) (\lambda (x: A).(\lambda (H5: (leq g x b)).(\lambda (H6: (aprem i -a1 x)).(let H_x0 \def (H1 i x H6) in (let H7 \def H_x0 in (ex2_3_ind C T nat -(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) -(\lambda (d: C).(\lambda (u: T).(\lambda (_: nat).(arity g d u (asucc g -x))))) (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop -(plus i j) O d c0)))) (\lambda (d: C).(\lambda (u: T).(\lambda (_: -nat).(arity g d u (asucc g b)))))) (\lambda (x0: C).(\lambda (x1: T).(\lambda -(x2: nat).(\lambda (H8: (drop (plus i x2) O x0 c0)).(\lambda (H9: (arity g x0 -x1 (asucc g x))).(ex2_3_intro C T nat (\lambda (d: C).(\lambda (_: +i j) O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d +u0 (asucc g b))))))))))).(\lambda (i: nat).(\lambda (b: A).(\lambda (H4: +(aprem i a0 b)).(let H_x \def (H3 i b H4) in (let H5 \def H_x in (let TMP_238 +\def (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_237 \def +(plus i j) in (drop TMP_237 O d c0))))) in (let TMP_240 \def (\lambda (d: +C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_239 \def (asucc g b) in (arity +g d u0 TMP_239))))) in (let TMP_242 \def (\lambda (d: C).(\lambda (_: +T).(\lambda (j: nat).(let TMP_241 \def (plus i j) in (drop TMP_241 O d +c0))))) in (let TMP_244 \def (\lambda (d: C).(\lambda (u0: T).(\lambda (_: +nat).(let TMP_243 \def (asucc g b) in (arity g d u0 TMP_243))))) in (let +TMP_245 \def (ex2_3 C T nat TMP_242 TMP_244) in (let TMP_250 \def (\lambda +(x0: C).(\lambda (x1: T).(\lambda (x2: nat).(\lambda (H6: (drop (plus i x2) O +x0 c0)).(\lambda (H7: (arity g x0 x1 (asucc g b))).(let TMP_247 \def (\lambda +(d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_246 \def (plus i j) in +(drop TMP_246 O d c0))))) in (let TMP_249 \def (\lambda (d: C).(\lambda (u0: +T).(\lambda (_: nat).(let TMP_248 \def (asucc g b) in (arity g d u0 +TMP_248))))) in (ex2_3_intro C T nat TMP_247 TMP_249 x0 x1 x2 H6 H7)))))))) +in (ex2_3_ind C T nat TMP_238 TMP_240 TMP_245 TMP_250 H5)))))))))))))))))))) +in (let TMP_278 \def (\lambda (c0: C).(\lambda (t0: T).(\lambda (a1: +A).(\lambda (_: (arity g c0 t0 a1)).(\lambda (H1: ((\forall (i: nat).(\forall +(b: A).((aprem i a1 b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda (u: -T).(\lambda (_: nat).(arity g d u (asucc g b))))) x0 x1 x2 H8 (arity_repl g -x0 x1 (asucc g x) H9 (asucc g b) (asucc_repl g x b H5)))))))) H7)))))) -H4))))))))))))) c t a H))))). -(* COMMENTS -Initial nodes: 4526 -END *) +T).(\lambda (_: nat).(arity g d u (asucc g b))))))))))).(\lambda (a2: +A).(\lambda (H2: (leq g a1 a2)).(\lambda (i: nat).(\lambda (b: A).(\lambda +(H3: (aprem i a2 b)).(let H_x \def (aprem_repl g a1 a2 H2 i b H3) in (let H4 +\def H_x in (let TMP_252 \def (\lambda (b1: A).(leq g b1 b)) in (let TMP_253 +\def (\lambda (b1: A).(aprem i a1 b1)) in (let TMP_255 \def (\lambda (d: +C).(\lambda (_: T).(\lambda (j: nat).(let TMP_254 \def (plus i j) in (drop +TMP_254 O d c0))))) in (let TMP_257 \def (\lambda (d: C).(\lambda (u: +T).(\lambda (_: nat).(let TMP_256 \def (asucc g b) in (arity g d u +TMP_256))))) in (let TMP_258 \def (ex2_3 C T nat TMP_255 TMP_257) in (let +TMP_277 \def (\lambda (x: A).(\lambda (H5: (leq g x b)).(\lambda (H6: (aprem +i a1 x)).(let H_x0 \def (H1 i x H6) in (let H7 \def H_x0 in (let TMP_260 \def +(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_259 \def (plus i +j) in (drop TMP_259 O d c0))))) in (let TMP_262 \def (\lambda (d: C).(\lambda +(u: T).(\lambda (_: nat).(let TMP_261 \def (asucc g x) in (arity g d u +TMP_261))))) in (let TMP_264 \def (\lambda (d: C).(\lambda (_: T).(\lambda +(j: nat).(let TMP_263 \def (plus i j) in (drop TMP_263 O d c0))))) in (let +TMP_266 \def (\lambda (d: C).(\lambda (u: T).(\lambda (_: nat).(let TMP_265 +\def (asucc g b) in (arity g d u TMP_265))))) in (let TMP_267 \def (ex2_3 C T +nat TMP_264 TMP_266) in (let TMP_276 \def (\lambda (x0: C).(\lambda (x1: +T).(\lambda (x2: nat).(\lambda (H8: (drop (plus i x2) O x0 c0)).(\lambda (H9: +(arity g x0 x1 (asucc g x))).(let TMP_269 \def (\lambda (d: C).(\lambda (_: +T).(\lambda (j: nat).(let TMP_268 \def (plus i j) in (drop TMP_268 O d +c0))))) in (let TMP_271 \def (\lambda (d: C).(\lambda (u: T).(\lambda (_: +nat).(let TMP_270 \def (asucc g b) in (arity g d u TMP_270))))) in (let +TMP_272 \def (asucc g x) in (let TMP_273 \def (asucc g b) in (let TMP_274 +\def (asucc_repl g x b H5) in (let TMP_275 \def (arity_repl g x0 x1 TMP_272 +H9 TMP_273 TMP_274) in (ex2_3_intro C T nat TMP_269 TMP_271 x0 x1 x2 H8 +TMP_275)))))))))))) in (ex2_3_ind C T nat TMP_260 TMP_262 TMP_267 TMP_276 +H7)))))))))))) in (ex2_ind A TMP_252 TMP_253 TMP_258 TMP_277 +H4))))))))))))))))))) in (arity_ind g TMP_5 TMP_11 TMP_45 TMP_80 TMP_106 +TMP_145 TMP_236 TMP_251 TMP_278 c t a H)))))))))))))). diff --git a/matita/matita/contribs/lambdadelta/basic_1/arity/cimp.ma b/matita/matita/contribs/lambdadelta/basic_1/arity/cimp.ma index c6212ac15..dfa771c6b 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/arity/cimp.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/arity/cimp.ma @@ -14,89 +14,122 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/arity/defs.ma". +include "basic_1/arity/fwd.ma". -include "Basic-1/cimp/props.ma". +include "basic_1/cimp/props.ma". theorem arity_cimp_conf: \forall (g: G).(\forall (c1: C).(\forall (t: T).(\forall (a: A).((arity g c1 t a) \to (\forall (c2: C).((cimp c1 c2) \to (arity g c2 t a))))))) \def \lambda (g: G).(\lambda (c1: C).(\lambda (t: T).(\lambda (a: A).(\lambda (H: -(arity g c1 t a)).(arity_ind g (\lambda (c: C).(\lambda (t0: T).(\lambda (a0: -A).(\forall (c2: C).((cimp c c2) \to (arity g c2 t0 a0)))))) (\lambda (c: -C).(\lambda (n: nat).(\lambda (c2: C).(\lambda (_: (cimp c c2)).(arity_sort g -c2 n))))) (\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: -nat).(\lambda (H0: (getl i c (CHead d (Bind Abbr) u))).(\lambda (a0: -A).(\lambda (_: (arity g d u a0)).(\lambda (H2: ((\forall (c2: C).((cimp d -c2) \to (arity g c2 u a0))))).(\lambda (c2: C).(\lambda (H3: (cimp c -c2)).(let H_x \def (H3 Abbr d u i H0) in (let H4 \def H_x in (ex_ind C -(\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abbr) u))) (arity g c2 (TLRef i) -a0) (\lambda (x: C).(\lambda (H5: (getl i c2 (CHead x (Bind Abbr) u))).(let -H_x0 \def (cimp_getl_conf c c2 H3 Abbr d u i H0) in (let H6 \def H_x0 in -(ex2_ind C (\lambda (d2: C).(cimp d d2)) (\lambda (d2: C).(getl i c2 (CHead -d2 (Bind Abbr) u))) (arity g c2 (TLRef i) a0) (\lambda (x0: C).(\lambda (H7: -(cimp d x0)).(\lambda (H8: (getl i c2 (CHead x0 (Bind Abbr) u))).(let H9 \def -(eq_ind C (CHead x (Bind Abbr) u) (\lambda (c0: C).(getl i c2 c0)) H5 (CHead -x0 (Bind Abbr) u) (getl_mono c2 (CHead x (Bind Abbr) u) i H5 (CHead x0 (Bind -Abbr) u) H8)) in (let H10 \def (f_equal C C (\lambda (e: C).(match e in C -return (\lambda (_: C).C) with [(CSort _) \Rightarrow x | (CHead c0 _ _) -\Rightarrow c0])) (CHead x (Bind Abbr) u) (CHead x0 (Bind Abbr) u) (getl_mono -c2 (CHead x (Bind Abbr) u) i H5 (CHead x0 (Bind Abbr) u) H8)) in (let H11 -\def (eq_ind_r C x0 (\lambda (c0: C).(getl i c2 (CHead c0 (Bind Abbr) u))) H9 -x H10) in (let H12 \def (eq_ind_r C x0 (\lambda (c0: C).(cimp d c0)) H7 x -H10) in (arity_abbr g c2 x u i H11 a0 (H2 x H12))))))))) H6))))) -H4))))))))))))) (\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: -nat).(\lambda (H0: (getl i c (CHead d (Bind Abst) u))).(\lambda (a0: -A).(\lambda (_: (arity g d u (asucc g a0))).(\lambda (H2: ((\forall (c2: -C).((cimp d c2) \to (arity g c2 u (asucc g a0)))))).(\lambda (c2: C).(\lambda -(H3: (cimp c c2)).(let H_x \def (H3 Abst d u i H0) in (let H4 \def H_x in -(ex_ind C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) (arity g c2 -(TLRef i) a0) (\lambda (x: C).(\lambda (H5: (getl i c2 (CHead x (Bind Abst) -u))).(let H_x0 \def (cimp_getl_conf c c2 H3 Abst d u i H0) in (let H6 \def -H_x0 in (ex2_ind C (\lambda (d2: C).(cimp d d2)) (\lambda (d2: C).(getl i c2 -(CHead d2 (Bind Abst) u))) (arity g c2 (TLRef i) a0) (\lambda (x0: -C).(\lambda (H7: (cimp d x0)).(\lambda (H8: (getl i c2 (CHead x0 (Bind Abst) -u))).(let H9 \def (eq_ind C (CHead x (Bind Abst) u) (\lambda (c0: C).(getl i -c2 c0)) H5 (CHead x0 (Bind Abst) u) (getl_mono c2 (CHead x (Bind Abst) u) i -H5 (CHead x0 (Bind Abst) u) H8)) in (let H10 \def (f_equal C C (\lambda (e: -C).(match e in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow x | -(CHead c0 _ _) \Rightarrow c0])) (CHead x (Bind Abst) u) (CHead x0 (Bind -Abst) u) (getl_mono c2 (CHead x (Bind Abst) u) i H5 (CHead x0 (Bind Abst) u) -H8)) in (let H11 \def (eq_ind_r C x0 (\lambda (c0: C).(getl i c2 (CHead c0 -(Bind Abst) u))) H9 x H10) in (let H12 \def (eq_ind_r C x0 (\lambda (c0: -C).(cimp d c0)) H7 x H10) in (arity_abst g c2 x u i H11 a0 (H2 x H12))))))))) -H6))))) H4))))))))))))) (\lambda (b: B).(\lambda (H0: (not (eq B b -Abst))).(\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity -g c u a1)).(\lambda (H2: ((\forall (c2: C).((cimp c c2) \to (arity g c2 u -a1))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c -(Bind b) u) t0 a2)).(\lambda (H4: ((\forall (c2: C).((cimp (CHead c (Bind b) -u) c2) \to (arity g c2 t0 a2))))).(\lambda (c2: C).(\lambda (H5: (cimp c -c2)).(arity_bind g b H0 c2 u a1 (H2 c2 H5) t0 a2 (H4 (CHead c2 (Bind b) u) -(cimp_bind c c2 H5 b u)))))))))))))))) (\lambda (c: C).(\lambda (u: -T).(\lambda (a1: A).(\lambda (_: (arity g c u (asucc g a1))).(\lambda (H1: -((\forall (c2: C).((cimp c c2) \to (arity g c2 u (asucc g a1)))))).(\lambda -(t0: T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c (Bind Abst) u) t0 -a2)).(\lambda (H3: ((\forall (c2: C).((cimp (CHead c (Bind Abst) u) c2) \to -(arity g c2 t0 a2))))).(\lambda (c2: C).(\lambda (H4: (cimp c -c2)).(arity_head g c2 u a1 (H1 c2 H4) t0 a2 (H3 (CHead c2 (Bind Abst) u) -(cimp_bind c c2 H4 Abst u)))))))))))))) (\lambda (c: C).(\lambda (u: -T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H1: ((\forall +(arity g c1 t a)).(let TMP_1 \def (\lambda (c: C).(\lambda (t0: T).(\lambda +(a0: A).(\forall (c2: C).((cimp c c2) \to (arity g c2 t0 a0)))))) in (let +TMP_2 \def (\lambda (c: C).(\lambda (n: nat).(\lambda (c2: C).(\lambda (_: +(cimp c c2)).(arity_sort g c2 n))))) in (let TMP_41 \def (\lambda (c: +C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c +(CHead d (Bind Abbr) u))).(\lambda (a0: A).(\lambda (_: (arity g d u +a0)).(\lambda (H2: ((\forall (c2: C).((cimp d c2) \to (arity g c2 u +a0))))).(\lambda (c2: C).(\lambda (H3: (cimp c c2)).(let H_x \def (H3 Abbr d +u i H0) in (let H4 \def H_x in (let TMP_5 \def (\lambda (d2: C).(let TMP_3 +\def (Bind Abbr) in (let TMP_4 \def (CHead d2 TMP_3 u) in (getl i c2 +TMP_4)))) in (let TMP_6 \def (TLRef i) in (let TMP_7 \def (arity g c2 TMP_6 +a0) in (let TMP_40 \def (\lambda (x: C).(\lambda (H5: (getl i c2 (CHead x +(Bind Abbr) u))).(let H_x0 \def (cimp_getl_conf c c2 H3 Abbr d u i H0) in +(let H6 \def H_x0 in (let TMP_8 \def (\lambda (d2: C).(cimp d d2)) in (let +TMP_11 \def (\lambda (d2: C).(let TMP_9 \def (Bind Abbr) in (let TMP_10 \def +(CHead d2 TMP_9 u) in (getl i c2 TMP_10)))) in (let TMP_12 \def (TLRef i) in +(let TMP_13 \def (arity g c2 TMP_12 a0) in (let TMP_39 \def (\lambda (x0: +C).(\lambda (H7: (cimp d x0)).(\lambda (H8: (getl i c2 (CHead x0 (Bind Abbr) +u))).(let TMP_14 \def (Bind Abbr) in (let TMP_15 \def (CHead x TMP_14 u) in +(let TMP_16 \def (\lambda (c0: C).(getl i c2 c0)) in (let TMP_17 \def (Bind +Abbr) in (let TMP_18 \def (CHead x0 TMP_17 u) in (let TMP_19 \def (Bind Abbr) +in (let TMP_20 \def (CHead x TMP_19 u) in (let TMP_21 \def (Bind Abbr) in +(let TMP_22 \def (CHead x0 TMP_21 u) in (let TMP_23 \def (getl_mono c2 TMP_20 +i H5 TMP_22 H8) in (let H9 \def (eq_ind C TMP_15 TMP_16 H5 TMP_18 TMP_23) in +(let TMP_24 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow x | +(CHead c0 _ _) \Rightarrow c0])) in (let TMP_25 \def (Bind Abbr) in (let +TMP_26 \def (CHead x TMP_25 u) in (let TMP_27 \def (Bind Abbr) in (let TMP_28 +\def (CHead x0 TMP_27 u) in (let TMP_29 \def (Bind Abbr) in (let TMP_30 \def +(CHead x TMP_29 u) in (let TMP_31 \def (Bind Abbr) in (let TMP_32 \def (CHead +x0 TMP_31 u) in (let TMP_33 \def (getl_mono c2 TMP_30 i H5 TMP_32 H8) in (let +H10 \def (f_equal C C TMP_24 TMP_26 TMP_28 TMP_33) in (let TMP_36 \def +(\lambda (c0: C).(let TMP_34 \def (Bind Abbr) in (let TMP_35 \def (CHead c0 +TMP_34 u) in (getl i c2 TMP_35)))) in (let H11 \def (eq_ind_r C x0 TMP_36 H9 +x H10) in (let TMP_37 \def (\lambda (c0: C).(cimp d c0)) in (let H12 \def +(eq_ind_r C x0 TMP_37 H7 x H10) in (let TMP_38 \def (H2 x H12) in (arity_abbr +g c2 x u i H11 a0 TMP_38))))))))))))))))))))))))))))))) in (ex2_ind C TMP_8 +TMP_11 TMP_13 TMP_39 H6)))))))))) in (ex_ind C TMP_5 TMP_7 TMP_40 +H4))))))))))))))))) in (let TMP_80 \def (\lambda (c: C).(\lambda (d: +C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c (CHead d (Bind +Abst) u))).(\lambda (a0: A).(\lambda (_: (arity g d u (asucc g a0))).(\lambda +(H2: ((\forall (c2: C).((cimp d c2) \to (arity g c2 u (asucc g +a0)))))).(\lambda (c2: C).(\lambda (H3: (cimp c c2)).(let H_x \def (H3 Abst d +u i H0) in (let H4 \def H_x in (let TMP_44 \def (\lambda (d2: C).(let TMP_42 +\def (Bind Abst) in (let TMP_43 \def (CHead d2 TMP_42 u) in (getl i c2 +TMP_43)))) in (let TMP_45 \def (TLRef i) in (let TMP_46 \def (arity g c2 +TMP_45 a0) in (let TMP_79 \def (\lambda (x: C).(\lambda (H5: (getl i c2 +(CHead x (Bind Abst) u))).(let H_x0 \def (cimp_getl_conf c c2 H3 Abst d u i +H0) in (let H6 \def H_x0 in (let TMP_47 \def (\lambda (d2: C).(cimp d d2)) in +(let TMP_50 \def (\lambda (d2: C).(let TMP_48 \def (Bind Abst) in (let TMP_49 +\def (CHead d2 TMP_48 u) in (getl i c2 TMP_49)))) in (let TMP_51 \def (TLRef +i) in (let TMP_52 \def (arity g c2 TMP_51 a0) in (let TMP_78 \def (\lambda +(x0: C).(\lambda (H7: (cimp d x0)).(\lambda (H8: (getl i c2 (CHead x0 (Bind +Abst) u))).(let TMP_53 \def (Bind Abst) in (let TMP_54 \def (CHead x TMP_53 +u) in (let TMP_55 \def (\lambda (c0: C).(getl i c2 c0)) in (let TMP_56 \def +(Bind Abst) in (let TMP_57 \def (CHead x0 TMP_56 u) in (let TMP_58 \def (Bind +Abst) in (let TMP_59 \def (CHead x TMP_58 u) in (let TMP_60 \def (Bind Abst) +in (let TMP_61 \def (CHead x0 TMP_60 u) in (let TMP_62 \def (getl_mono c2 +TMP_59 i H5 TMP_61 H8) in (let H9 \def (eq_ind C TMP_54 TMP_55 H5 TMP_57 +TMP_62) in (let TMP_63 \def (\lambda (e: C).(match e with [(CSort _) +\Rightarrow x | (CHead c0 _ _) \Rightarrow c0])) in (let TMP_64 \def (Bind +Abst) in (let TMP_65 \def (CHead x TMP_64 u) in (let TMP_66 \def (Bind Abst) +in (let TMP_67 \def (CHead x0 TMP_66 u) in (let TMP_68 \def (Bind Abst) in +(let TMP_69 \def (CHead x TMP_68 u) in (let TMP_70 \def (Bind Abst) in (let +TMP_71 \def (CHead x0 TMP_70 u) in (let TMP_72 \def (getl_mono c2 TMP_69 i H5 +TMP_71 H8) in (let H10 \def (f_equal C C TMP_63 TMP_65 TMP_67 TMP_72) in (let +TMP_75 \def (\lambda (c0: C).(let TMP_73 \def (Bind Abst) in (let TMP_74 \def +(CHead c0 TMP_73 u) in (getl i c2 TMP_74)))) in (let H11 \def (eq_ind_r C x0 +TMP_75 H9 x H10) in (let TMP_76 \def (\lambda (c0: C).(cimp d c0)) in (let +H12 \def (eq_ind_r C x0 TMP_76 H7 x H10) in (let TMP_77 \def (H2 x H12) in +(arity_abst g c2 x u i H11 a0 TMP_77))))))))))))))))))))))))))))))) in +(ex2_ind C TMP_47 TMP_50 TMP_52 TMP_78 H6)))))))))) in (ex_ind C TMP_44 +TMP_46 TMP_79 H4))))))))))))))))) in (let TMP_86 \def (\lambda (b: +B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c: C).(\lambda (u: +T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H2: ((\forall (c2: C).((cimp c c2) \to (arity g c2 u a1))))).(\lambda (t0: T).(\lambda (a2: -A).(\lambda (_: (arity g c t0 (AHead a1 a2))).(\lambda (H3: ((\forall (c2: -C).((cimp c c2) \to (arity g c2 t0 (AHead a1 a2)))))).(\lambda (c2: -C).(\lambda (H4: (cimp c c2)).(arity_appl g c2 u a1 (H1 c2 H4) t0 a2 (H3 c2 -H4))))))))))))) (\lambda (c: C).(\lambda (u: T).(\lambda (a0: A).(\lambda (_: -(arity g c u (asucc g a0))).(\lambda (H1: ((\forall (c2: C).((cimp c c2) \to -(arity g c2 u (asucc g a0)))))).(\lambda (t0: T).(\lambda (_: (arity g c t0 -a0)).(\lambda (H3: ((\forall (c2: C).((cimp c c2) \to (arity g c2 t0 -a0))))).(\lambda (c2: C).(\lambda (H4: (cimp c c2)).(arity_cast g c2 u a0 (H1 -c2 H4) t0 (H3 c2 H4)))))))))))) (\lambda (c: C).(\lambda (t0: T).(\lambda -(a1: A).(\lambda (_: (arity g c t0 a1)).(\lambda (H1: ((\forall (c2: -C).((cimp c c2) \to (arity g c2 t0 a1))))).(\lambda (a2: A).(\lambda (H2: -(leq g a1 a2)).(\lambda (c2: C).(\lambda (H3: (cimp c c2)).(arity_repl g c2 -t0 a1 (H1 c2 H3) a2 H2)))))))))) c1 t a H))))). -(* COMMENTS -Initial nodes: 1505 -END *) +A).(\lambda (_: (arity g (CHead c (Bind b) u) t0 a2)).(\lambda (H4: ((\forall +(c2: C).((cimp (CHead c (Bind b) u) c2) \to (arity g c2 t0 a2))))).(\lambda +(c2: C).(\lambda (H5: (cimp c c2)).(let TMP_81 \def (H2 c2 H5) in (let TMP_82 +\def (Bind b) in (let TMP_83 \def (CHead c2 TMP_82 u) in (let TMP_84 \def +(cimp_bind c c2 H5 b u) in (let TMP_85 \def (H4 TMP_83 TMP_84) in (arity_bind +g b H0 c2 u a1 TMP_81 t0 a2 TMP_85))))))))))))))))))) in (let TMP_92 \def +(\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u +(asucc g a1))).(\lambda (H1: ((\forall (c2: C).((cimp c c2) \to (arity g c2 u +(asucc g a1)))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g +(CHead c (Bind Abst) u) t0 a2)).(\lambda (H3: ((\forall (c2: C).((cimp (CHead +c (Bind Abst) u) c2) \to (arity g c2 t0 a2))))).(\lambda (c2: C).(\lambda +(H4: (cimp c c2)).(let TMP_87 \def (H1 c2 H4) in (let TMP_88 \def (Bind Abst) +in (let TMP_89 \def (CHead c2 TMP_88 u) in (let TMP_90 \def (cimp_bind c c2 +H4 Abst u) in (let TMP_91 \def (H3 TMP_89 TMP_90) in (arity_head g c2 u a1 +TMP_87 t0 a2 TMP_91))))))))))))))))) in (let TMP_95 \def (\lambda (c: +C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda +(H1: ((\forall (c2: C).((cimp c c2) \to (arity g c2 u a1))))).(\lambda (t0: +T).(\lambda (a2: A).(\lambda (_: (arity g c t0 (AHead a1 a2))).(\lambda (H3: +((\forall (c2: C).((cimp c c2) \to (arity g c2 t0 (AHead a1 a2)))))).(\lambda +(c2: C).(\lambda (H4: (cimp c c2)).(let TMP_93 \def (H1 c2 H4) in (let TMP_94 +\def (H3 c2 H4) in (arity_appl g c2 u a1 TMP_93 t0 a2 TMP_94)))))))))))))) in +(let TMP_98 \def (\lambda (c: C).(\lambda (u: T).(\lambda (a0: A).(\lambda +(_: (arity g c u (asucc g a0))).(\lambda (H1: ((\forall (c2: C).((cimp c c2) +\to (arity g c2 u (asucc g a0)))))).(\lambda (t0: T).(\lambda (_: (arity g c +t0 a0)).(\lambda (H3: ((\forall (c2: C).((cimp c c2) \to (arity g c2 t0 +a0))))).(\lambda (c2: C).(\lambda (H4: (cimp c c2)).(let TMP_96 \def (H1 c2 +H4) in (let TMP_97 \def (H3 c2 H4) in (arity_cast g c2 u a0 TMP_96 t0 +TMP_97))))))))))))) in (let TMP_100 \def (\lambda (c: C).(\lambda (t0: +T).(\lambda (a1: A).(\lambda (_: (arity g c t0 a1)).(\lambda (H1: ((\forall +(c2: C).((cimp c c2) \to (arity g c2 t0 a1))))).(\lambda (a2: A).(\lambda +(H2: (leq g a1 a2)).(\lambda (c2: C).(\lambda (H3: (cimp c c2)).(let TMP_99 +\def (H1 c2 H3) in (arity_repl g c2 t0 a1 TMP_99 a2 H2))))))))))) in +(arity_ind g TMP_1 TMP_2 TMP_41 TMP_80 TMP_86 TMP_92 TMP_95 TMP_98 TMP_100 c1 +t a H)))))))))))))). diff --git a/matita/matita/contribs/lambdadelta/basic_1/arity/defs.ma b/matita/matita/contribs/lambdadelta/basic_1/arity/defs.ma index 99324dcbc..b193fac10 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/arity/defs.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/arity/defs.ma @@ -14,9 +14,9 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/leq/defs.ma". +include "basic_1/leq/defs.ma". -include "Basic-1/getl/defs.ma". +include "basic_1/getl/defs.ma". inductive arity (g: G): C \to (T \to (A \to Prop)) \def | arity_sort: \forall (c: C).(\forall (n: nat).(arity g c (TSort n) (ASort O diff --git a/matita/matita/contribs/lambdadelta/basic_1/arity/fwd.ma b/matita/matita/contribs/lambdadelta/basic_1/arity/fwd.ma index 31fa35f3c..77eaa993b 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/arity/fwd.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/arity/fwd.ma @@ -14,11 +14,52 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/arity/defs.ma". +include "basic_1/arity/defs.ma". -include "Basic-1/leq/asucc.ma". +include "basic_1/leq/asucc.ma". -include "Basic-1/getl/drop.ma". +include "basic_1/getl/drop.ma". + +let rec arity_ind (g: G) (P: (C \to (T \to (A \to Prop)))) (f: (\forall (c: +C).(\forall (n: nat).(P c (TSort n) (ASort O n))))) (f0: (\forall (c: +C).(\forall (d: C).(\forall (u: T).(\forall (i: nat).((getl i c (CHead d +(Bind Abbr) u)) \to (\forall (a: A).((arity g d u a) \to ((P d u a) \to (P c +(TLRef i) a)))))))))) (f1: (\forall (c: C).(\forall (d: C).(\forall (u: +T).(\forall (i: nat).((getl i c (CHead d (Bind Abst) u)) \to (\forall (a: +A).((arity g d u (asucc g a)) \to ((P d u (asucc g a)) \to (P c (TLRef i) +a)))))))))) (f2: (\forall (b: B).((not (eq B b Abst)) \to (\forall (c: +C).(\forall (u: T).(\forall (a1: A).((arity g c u a1) \to ((P c u a1) \to +(\forall (t: T).(\forall (a2: A).((arity g (CHead c (Bind b) u) t a2) \to ((P +(CHead c (Bind b) u) t a2) \to (P c (THead (Bind b) u t) a2))))))))))))) (f3: +(\forall (c: C).(\forall (u: T).(\forall (a1: A).((arity g c u (asucc g a1)) +\to ((P c u (asucc g a1)) \to (\forall (t: T).(\forall (a2: A).((arity g +(CHead c (Bind Abst) u) t a2) \to ((P (CHead c (Bind Abst) u) t a2) \to (P c +(THead (Bind Abst) u t) (AHead a1 a2)))))))))))) (f4: (\forall (c: +C).(\forall (u: T).(\forall (a1: A).((arity g c u a1) \to ((P c u a1) \to +(\forall (t: T).(\forall (a2: A).((arity g c t (AHead a1 a2)) \to ((P c t +(AHead a1 a2)) \to (P c (THead (Flat Appl) u t) a2))))))))))) (f5: (\forall +(c: C).(\forall (u: T).(\forall (a: A).((arity g c u (asucc g a)) \to ((P c u +(asucc g a)) \to (\forall (t: T).((arity g c t a) \to ((P c t a) \to (P c +(THead (Flat Cast) u t) a)))))))))) (f6: (\forall (c: C).(\forall (t: +T).(\forall (a1: A).((arity g c t a1) \to ((P c t a1) \to (\forall (a2: +A).((leq g a1 a2) \to (P c t a2))))))))) (c: C) (t: T) (a: A) (a0: arity g c +t a) on a0: P c t a \def match a0 with [(arity_sort c0 n) \Rightarrow (f c0 +n) | (arity_abbr c0 d u i g0 a1 a2) \Rightarrow (f0 c0 d u i g0 a1 a2 +((arity_ind g P f f0 f1 f2 f3 f4 f5 f6) d u a1 a2)) | (arity_abst c0 d u i g0 +a1 a2) \Rightarrow (f1 c0 d u i g0 a1 a2 ((arity_ind g P f f0 f1 f2 f3 f4 f5 +f6) d u (asucc g a1) a2)) | (arity_bind b n c0 u a1 a2 t0 a3 a4) \Rightarrow +(f2 b n c0 u a1 a2 ((arity_ind g P f f0 f1 f2 f3 f4 f5 f6) c0 u a1 a2) t0 a3 +a4 ((arity_ind g P f f0 f1 f2 f3 f4 f5 f6) (CHead c0 (Bind b) u) t0 a3 a4)) | +(arity_head c0 u a1 a2 t0 a3 a4) \Rightarrow (f3 c0 u a1 a2 ((arity_ind g P f +f0 f1 f2 f3 f4 f5 f6) c0 u (asucc g a1) a2) t0 a3 a4 ((arity_ind g P f f0 f1 +f2 f3 f4 f5 f6) (CHead c0 (Bind Abst) u) t0 a3 a4)) | (arity_appl c0 u a1 a2 +t0 a3 a4) \Rightarrow (f4 c0 u a1 a2 ((arity_ind g P f f0 f1 f2 f3 f4 f5 f6) +c0 u a1 a2) t0 a3 a4 ((arity_ind g P f f0 f1 f2 f3 f4 f5 f6) c0 t0 (AHead a1 +a3) a4)) | (arity_cast c0 u a1 a2 t0 a3) \Rightarrow (f5 c0 u a1 a2 +((arity_ind g P f f0 f1 f2 f3 f4 f5 f6) c0 u (asucc g a1) a2) t0 a3 +((arity_ind g P f f0 f1 f2 f3 f4 f5 f6) c0 t0 a1 a3)) | (arity_repl c0 t0 a1 +a2 a3 l) \Rightarrow (f6 c0 t0 a1 a2 ((arity_ind g P f f0 f1 f2 f3 f4 f5 f6) +c0 t0 a1 a2) a3 l)]. theorem arity_gen_sort: \forall (g: G).(\forall (c: C).(\forall (n: nat).(\forall (a: A).((arity g c @@ -30,49 +71,46 @@ c t a)) (\lambda (_: T).(leq g a (ASort O n))) (\lambda (y: T).(\lambda (H0: (arity g c y a)).(arity_ind g (\lambda (_: C).(\lambda (t: T).(\lambda (a0: A).((eq T t (TSort n)) \to (leq g a0 (ASort O n)))))) (\lambda (_: C).(\lambda (n0: nat).(\lambda (H1: (eq T (TSort n0) (TSort n))).(let H2 \def -(f_equal T nat (\lambda (e: T).(match e in T return (\lambda (_: T).nat) with -[(TSort n1) \Rightarrow n1 | (TLRef _) \Rightarrow n0 | (THead _ _ _) -\Rightarrow n0])) (TSort n0) (TSort n) H1) in (eq_ind_r nat n (\lambda (n1: -nat).(leq g (ASort O n1) (ASort O n))) (leq_refl g (ASort O n)) n0 H2))))) -(\lambda (c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda -(_: (getl i c0 (CHead d (Bind Abbr) u))).(\lambda (a0: A).(\lambda (_: (arity -g d u a0)).(\lambda (_: (((eq T u (TSort n)) \to (leq g a0 (ASort O -n))))).(\lambda (H4: (eq T (TLRef i) (TSort n))).(let H5 \def (eq_ind T -(TLRef i) (\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with +(f_equal T nat (\lambda (e: T).(match e with [(TSort n1) \Rightarrow n1 | +(TLRef _) \Rightarrow n0 | (THead _ _ _) \Rightarrow n0])) (TSort n0) (TSort +n) H1) in (eq_ind_r nat n (\lambda (n1: nat).(leq g (ASort O n1) (ASort O +n))) (leq_refl g (ASort O n)) n0 H2))))) (\lambda (c0: C).(\lambda (d: +C).(\lambda (u: T).(\lambda (i: nat).(\lambda (_: (getl i c0 (CHead d (Bind +Abbr) u))).(\lambda (a0: A).(\lambda (_: (arity g d u a0)).(\lambda (_: (((eq +T u (TSort n)) \to (leq g a0 (ASort O n))))).(\lambda (H4: (eq T (TLRef i) +(TSort n))).(let H5 \def (eq_ind T (TLRef i) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow True | (THead _ _ _) \Rightarrow False])) I (TSort n) H4) in (False_ind (leq g a0 (ASort O n)) H5))))))))))) (\lambda (c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (_: (getl i c0 (CHead d (Bind Abst) u))).(\lambda (a0: A).(\lambda (_: (arity g d u (asucc g a0))).(\lambda (_: (((eq T u (TSort n)) \to (leq g (asucc g a0) (ASort O n))))).(\lambda (H4: (eq T (TLRef i) (TSort -n))).(let H5 \def (eq_ind T (TLRef i) (\lambda (ee: T).(match ee in T return -(\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) -\Rightarrow True | (THead _ _ _) \Rightarrow False])) I (TSort n) H4) in -(False_ind (leq g a0 (ASort O n)) H5))))))))))) (\lambda (b: B).(\lambda (_: -(not (eq B b Abst))).(\lambda (c0: C).(\lambda (u: T).(\lambda (a1: -A).(\lambda (_: (arity g c0 u a1)).(\lambda (_: (((eq T u (TSort n)) \to (leq -g a1 (ASort O n))))).(\lambda (t: T).(\lambda (a2: A).(\lambda (_: (arity g -(CHead c0 (Bind b) u) t a2)).(\lambda (_: (((eq T t (TSort n)) \to (leq g a2 -(ASort O n))))).(\lambda (H6: (eq T (THead (Bind b) u t) (TSort n))).(let H7 -\def (eq_ind T (THead (Bind b) u t) (\lambda (ee: T).(match ee in T return -(\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) -\Rightarrow False | (THead _ _ _) \Rightarrow True])) I (TSort n) H6) in -(False_ind (leq g a2 (ASort O n)) H7)))))))))))))) (\lambda (c0: C).(\lambda -(u: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u (asucc g a1))).(\lambda -(_: (((eq T u (TSort n)) \to (leq g (asucc g a1) (ASort O n))))).(\lambda (t: -T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c0 (Bind Abst) u) t -a2)).(\lambda (_: (((eq T t (TSort n)) \to (leq g a2 (ASort O n))))).(\lambda -(H5: (eq T (THead (Bind Abst) u t) (TSort n))).(let H6 \def (eq_ind T (THead -(Bind Abst) u t) (\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) -with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead _ _ -_) \Rightarrow True])) I (TSort n) H5) in (False_ind (leq g (AHead a1 a2) -(ASort O n)) H6)))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (a1: -A).(\lambda (_: (arity g c0 u a1)).(\lambda (_: (((eq T u (TSort n)) \to (leq -g a1 (ASort O n))))).(\lambda (t: T).(\lambda (a2: A).(\lambda (_: (arity g -c0 t (AHead a1 a2))).(\lambda (_: (((eq T t (TSort n)) \to (leq g (AHead a1 -a2) (ASort O n))))).(\lambda (H5: (eq T (THead (Flat Appl) u t) (TSort -n))).(let H6 \def (eq_ind T (THead (Flat Appl) u t) (\lambda (ee: T).(match -ee in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | +n))).(let H5 \def (eq_ind T (TLRef i) (\lambda (ee: T).(match ee with [(TSort +_) \Rightarrow False | (TLRef _) \Rightarrow True | (THead _ _ _) \Rightarrow +False])) I (TSort n) H4) in (False_ind (leq g a0 (ASort O n)) H5))))))))))) +(\lambda (b: B).(\lambda (_: (not (eq B b Abst))).(\lambda (c0: C).(\lambda +(u: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u a1)).(\lambda (_: (((eq T +u (TSort n)) \to (leq g a1 (ASort O n))))).(\lambda (t: T).(\lambda (a2: +A).(\lambda (_: (arity g (CHead c0 (Bind b) u) t a2)).(\lambda (_: (((eq T t +(TSort n)) \to (leq g a2 (ASort O n))))).(\lambda (H6: (eq T (THead (Bind b) +u t) (TSort n))).(let H7 \def (eq_ind T (THead (Bind b) u t) (\lambda (ee: +T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False +| (THead _ _ _) \Rightarrow True])) I (TSort n) H6) in (False_ind (leq g a2 +(ASort O n)) H7)))))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (a1: +A).(\lambda (_: (arity g c0 u (asucc g a1))).(\lambda (_: (((eq T u (TSort +n)) \to (leq g (asucc g a1) (ASort O n))))).(\lambda (t: T).(\lambda (a2: +A).(\lambda (_: (arity g (CHead c0 (Bind Abst) u) t a2)).(\lambda (_: (((eq T +t (TSort n)) \to (leq g a2 (ASort O n))))).(\lambda (H5: (eq T (THead (Bind +Abst) u t) (TSort n))).(let H6 \def (eq_ind T (THead (Bind Abst) u t) +(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) +\Rightarrow False | (THead _ _ _) \Rightarrow True])) I (TSort n) H5) in +(False_ind (leq g (AHead a1 a2) (ASort O n)) H6)))))))))))) (\lambda (c0: +C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u a1)).(\lambda +(_: (((eq T u (TSort n)) \to (leq g a1 (ASort O n))))).(\lambda (t: +T).(\lambda (a2: A).(\lambda (_: (arity g c0 t (AHead a1 a2))).(\lambda (_: +(((eq T t (TSort n)) \to (leq g (AHead a1 a2) (ASort O n))))).(\lambda (H5: +(eq T (THead (Flat Appl) u t) (TSort n))).(let H6 \def (eq_ind T (THead (Flat +Appl) u t) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) I (TSort n) H5) in (False_ind (leq g a2 (ASort O n)) H6)))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (a0: A).(\lambda (_: (arity g c0 u (asucc g @@ -80,21 +118,17 @@ a0))).(\lambda (_: (((eq T u (TSort n)) \to (leq g (asucc g a0) (ASort O n))))).(\lambda (t: T).(\lambda (_: (arity g c0 t a0)).(\lambda (_: (((eq T t (TSort n)) \to (leq g a0 (ASort O n))))).(\lambda (H5: (eq T (THead (Flat Cast) u t) (TSort n))).(let H6 \def (eq_ind T (THead (Flat Cast) u t) -(\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) -\Rightarrow False | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow -True])) I (TSort n) H5) in (False_ind (leq g a0 (ASort O n)) H6))))))))))) -(\lambda (c0: C).(\lambda (t: T).(\lambda (a1: A).(\lambda (H1: (arity g c0 t -a1)).(\lambda (H2: (((eq T t (TSort n)) \to (leq g a1 (ASort O -n))))).(\lambda (a2: A).(\lambda (H3: (leq g a1 a2)).(\lambda (H4: (eq T t -(TSort n))).(let H5 \def (f_equal T T (\lambda (e: T).e) t (TSort n) H4) in -(let H6 \def (eq_ind T t (\lambda (t0: T).((eq T t0 (TSort n)) \to (leq g a1 -(ASort O n)))) H2 (TSort n) H5) in (let H7 \def (eq_ind T t (\lambda (t0: -T).(arity g c0 t0 a1)) H1 (TSort n) H5) in (leq_trans g a2 a1 (leq_sym g a1 -a2 H3) (ASort O n) (H6 (refl_equal T (TSort n))))))))))))))) c y a H0))) -H))))). -(* COMMENTS -Initial nodes: 1235 -END *) +(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) +\Rightarrow False | (THead _ _ _) \Rightarrow True])) I (TSort n) H5) in +(False_ind (leq g a0 (ASort O n)) H6))))))))))) (\lambda (c0: C).(\lambda (t: +T).(\lambda (a1: A).(\lambda (H1: (arity g c0 t a1)).(\lambda (H2: (((eq T t +(TSort n)) \to (leq g a1 (ASort O n))))).(\lambda (a2: A).(\lambda (H3: (leq +g a1 a2)).(\lambda (H4: (eq T t (TSort n))).(let H5 \def (f_equal T T +(\lambda (e: T).e) t (TSort n) H4) in (let H6 \def (eq_ind T t (\lambda (t0: +T).((eq T t0 (TSort n)) \to (leq g a1 (ASort O n)))) H2 (TSort n) H5) in (let +H7 \def (eq_ind T t (\lambda (t0: T).(arity g c0 t0 a1)) H1 (TSort n) H5) in +(leq_trans g a2 a1 (leq_sym g a1 a2 H3) (ASort O n) (H6 (refl_equal T (TSort +n))))))))))))))) c y a H0))) H))))). theorem arity_gen_lref: \forall (g: G).(\forall (c: C).(\forall (i: nat).(\forall (a: A).((arity g c @@ -116,52 +150,50 @@ C).(\lambda (t: T).(\lambda (a0: A).((eq T t (TLRef i)) \to (or (ex2_2 C T C).(\lambda (u: T).(getl i c0 (CHead d (Bind Abst) u)))) (\lambda (d: C).(\lambda (u: T).(arity g d u (asucc g a0)))))))))) (\lambda (c0: C).(\lambda (n: nat).(\lambda (H1: (eq T (TSort n) (TLRef i))).(let H2 \def -(eq_ind T (TSort n) (\lambda (ee: T).(match ee in T return (\lambda (_: -T).Prop) with [(TSort _) \Rightarrow True | (TLRef _) \Rightarrow False | -(THead _ _ _) \Rightarrow False])) I (TLRef i) H1) in (False_ind (or (ex2_2 C -T (\lambda (d: C).(\lambda (u: T).(getl i c0 (CHead d (Bind Abbr) u)))) -(\lambda (d: C).(\lambda (u: T).(arity g d u (ASort O n))))) (ex2_2 C T -(\lambda (d: C).(\lambda (u: T).(getl i c0 (CHead d (Bind Abst) u)))) -(\lambda (d: C).(\lambda (u: T).(arity g d u (asucc g (ASort O n))))))) -H2))))) (\lambda (c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i0: -nat).(\lambda (H1: (getl i0 c0 (CHead d (Bind Abbr) u))).(\lambda (a0: -A).(\lambda (H2: (arity g d u a0)).(\lambda (_: (((eq T u (TLRef i)) \to (or -(ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i d (CHead d0 (Bind Abbr) -u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 a0)))) (ex2_2 C T -(\lambda (d0: C).(\lambda (u0: T).(getl i d (CHead d0 (Bind Abst) u0)))) -(\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g -a0))))))))).(\lambda (H4: (eq T (TLRef i0) (TLRef i))).(let H5 \def (f_equal -T nat (\lambda (e: T).(match e in T return (\lambda (_: T).nat) with [(TSort -_) \Rightarrow i0 | (TLRef n) \Rightarrow n | (THead _ _ _) \Rightarrow i0])) -(TLRef i0) (TLRef i) H4) in (let H6 \def (eq_ind nat i0 (\lambda (n: -nat).(getl n c0 (CHead d (Bind Abbr) u))) H1 i H5) in (or_introl (ex2_2 C T -(\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abbr) u0)))) -(\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 a0)))) (ex2_2 C T (\lambda -(d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda -(d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g a0))))) (ex2_2_intro C T -(\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abbr) u0)))) -(\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 a0))) d u H6 H2))))))))))))) -(\lambda (c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i0: nat).(\lambda -(H1: (getl i0 c0 (CHead d (Bind Abst) u))).(\lambda (a0: A).(\lambda (H2: -(arity g d u (asucc g a0))).(\lambda (_: (((eq T u (TLRef i)) \to (or (ex2_2 -C T (\lambda (d0: C).(\lambda (u0: T).(getl i d (CHead d0 (Bind Abbr) u0)))) -(\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g a0))))) (ex2_2 C T -(\lambda (d0: C).(\lambda (u0: T).(getl i d (CHead d0 (Bind Abst) u0)))) -(\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g (asucc g -a0)))))))))).(\lambda (H4: (eq T (TLRef i0) (TLRef i))).(let H5 \def (f_equal -T nat (\lambda (e: T).(match e in T return (\lambda (_: T).nat) with [(TSort -_) \Rightarrow i0 | (TLRef n) \Rightarrow n | (THead _ _ _) \Rightarrow i0])) -(TLRef i0) (TLRef i) H4) in (let H6 \def (eq_ind nat i0 (\lambda (n: -nat).(getl n c0 (CHead d (Bind Abst) u))) H1 i H5) in (or_intror (ex2_2 C T -(\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abbr) u0)))) -(\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 a0)))) (ex2_2 C T (\lambda -(d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda -(d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g a0))))) (ex2_2_intro C T -(\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) -(\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g a0)))) d u H6 -H2))))))))))))) (\lambda (b: B).(\lambda (_: (not (eq B b Abst))).(\lambda -(c0: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u -a1)).(\lambda (_: (((eq T u (TLRef i)) \to (or (ex2_2 C T (\lambda (d: +(eq_ind T (TSort n) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow +True | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow False])) I +(TLRef i) H1) in (False_ind (or (ex2_2 C T (\lambda (d: C).(\lambda (u: +T).(getl i c0 (CHead d (Bind Abbr) u)))) (\lambda (d: C).(\lambda (u: +T).(arity g d u (ASort O n))))) (ex2_2 C T (\lambda (d: C).(\lambda (u: +T).(getl i c0 (CHead d (Bind Abst) u)))) (\lambda (d: C).(\lambda (u: +T).(arity g d u (asucc g (ASort O n))))))) H2))))) (\lambda (c0: C).(\lambda +(d: C).(\lambda (u: T).(\lambda (i0: nat).(\lambda (H1: (getl i0 c0 (CHead d +(Bind Abbr) u))).(\lambda (a0: A).(\lambda (H2: (arity g d u a0)).(\lambda +(_: (((eq T u (TLRef i)) \to (or (ex2_2 C T (\lambda (d0: C).(\lambda (u0: +T).(getl i d (CHead d0 (Bind Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: +T).(arity g d0 u0 a0)))) (ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i +d (CHead d0 (Bind Abst) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 +u0 (asucc g a0))))))))).(\lambda (H4: (eq T (TLRef i0) (TLRef i))).(let H5 +\def (f_equal T nat (\lambda (e: T).(match e with [(TSort _) \Rightarrow i0 | +(TLRef n) \Rightarrow n | (THead _ _ _) \Rightarrow i0])) (TLRef i0) (TLRef +i) H4) in (let H6 \def (eq_ind nat i0 (\lambda (n: nat).(getl n c0 (CHead d +(Bind Abbr) u))) H1 i H5) in (or_introl (ex2_2 C T (\lambda (d0: C).(\lambda +(u0: T).(getl i c0 (CHead d0 (Bind Abbr) u0)))) (\lambda (d0: C).(\lambda +(u0: T).(arity g d0 u0 a0)))) (ex2_2 C T (\lambda (d0: C).(\lambda (u0: +T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda (d0: C).(\lambda (u0: +T).(arity g d0 u0 (asucc g a0))))) (ex2_2_intro C T (\lambda (d0: C).(\lambda +(u0: T).(getl i c0 (CHead d0 (Bind Abbr) u0)))) (\lambda (d0: C).(\lambda +(u0: T).(arity g d0 u0 a0))) d u H6 H2))))))))))))) (\lambda (c0: C).(\lambda +(d: C).(\lambda (u: T).(\lambda (i0: nat).(\lambda (H1: (getl i0 c0 (CHead d +(Bind Abst) u))).(\lambda (a0: A).(\lambda (H2: (arity g d u (asucc g +a0))).(\lambda (_: (((eq T u (TLRef i)) \to (or (ex2_2 C T (\lambda (d0: +C).(\lambda (u0: T).(getl i d (CHead d0 (Bind Abbr) u0)))) (\lambda (d0: +C).(\lambda (u0: T).(arity g d0 u0 (asucc g a0))))) (ex2_2 C T (\lambda (d0: +C).(\lambda (u0: T).(getl i d (CHead d0 (Bind Abst) u0)))) (\lambda (d0: +C).(\lambda (u0: T).(arity g d0 u0 (asucc g (asucc g a0)))))))))).(\lambda +(H4: (eq T (TLRef i0) (TLRef i))).(let H5 \def (f_equal T nat (\lambda (e: +T).(match e with [(TSort _) \Rightarrow i0 | (TLRef n) \Rightarrow n | (THead +_ _ _) \Rightarrow i0])) (TLRef i0) (TLRef i) H4) in (let H6 \def (eq_ind nat +i0 (\lambda (n: nat).(getl n c0 (CHead d (Bind Abst) u))) H1 i H5) in +(or_intror (ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 +(Bind Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 a0)))) +(ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) +u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g a0))))) +(ex2_2_intro C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind +Abst) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g a0)))) +d u H6 H2))))))))))))) (\lambda (b: B).(\lambda (_: (not (eq B b +Abst))).(\lambda (c0: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity +g c0 u a1)).(\lambda (_: (((eq T u (TLRef i)) \to (or (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abbr) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 a1)))) (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: @@ -173,71 +205,69 @@ T).(arity g d u0 a2)))) (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i (CHead c0 (Bind b) u) (CHead d (Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 (asucc g a2))))))))).(\lambda (H6: (eq T (THead (Bind b) u t) (TLRef i))).(let H7 \def (eq_ind T (THead (Bind b) u t) (\lambda (ee: -T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow -False | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) I -(TLRef i) H6) in (False_ind (or (ex2_2 C T (\lambda (d: C).(\lambda (u0: -T).(getl i c0 (CHead d (Bind Abbr) u0)))) (\lambda (d: C).(\lambda (u0: -T).(arity g d u0 a2)))) (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i -c0 (CHead d (Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 -(asucc g a2)))))) H7)))))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda -(a1: A).(\lambda (_: (arity g c0 u (asucc g a1))).(\lambda (_: (((eq T u -(TLRef i)) \to (or (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 -(CHead d (Bind Abbr) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 -(asucc g a1))))) (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 -(CHead d (Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 -(asucc g (asucc g a1)))))))))).(\lambda (t: T).(\lambda (a2: A).(\lambda (_: -(arity g (CHead c0 (Bind Abst) u) t a2)).(\lambda (_: (((eq T t (TLRef i)) -\to (or (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i (CHead c0 (Bind -Abst) u) (CHead d (Bind Abbr) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity -g d u0 a2)))) (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i (CHead c0 -(Bind Abst) u) (CHead d (Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: -T).(arity g d u0 (asucc g a2))))))))).(\lambda (H5: (eq T (THead (Bind Abst) -u t) (TLRef i))).(let H6 \def (eq_ind T (THead (Bind Abst) u t) (\lambda (ee: -T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow -False | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) I -(TLRef i) H5) in (False_ind (or (ex2_2 C T (\lambda (d: C).(\lambda (u0: -T).(getl i c0 (CHead d (Bind Abbr) u0)))) (\lambda (d: C).(\lambda (u0: -T).(arity g d u0 (AHead a1 a2))))) (ex2_2 C T (\lambda (d: C).(\lambda (u0: -T).(getl i c0 (CHead d (Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: -T).(arity g d u0 (asucc g (AHead a1 a2))))))) H6)))))))))))) (\lambda (c0: -C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u a1)).(\lambda +T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False +| (THead _ _ _) \Rightarrow True])) I (TLRef i) H6) in (False_ind (or (ex2_2 +C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abbr) u0)))) +(\lambda (d: C).(\lambda (u0: T).(arity g d u0 a2)))) (ex2_2 C T (\lambda (d: +C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abst) u0)))) (\lambda (d: +C).(\lambda (u0: T).(arity g d u0 (asucc g a2)))))) H7)))))))))))))) (\lambda +(c0: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u (asucc g +a1))).(\lambda (_: (((eq T u (TLRef i)) \to (or (ex2_2 C T (\lambda (d: +C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abbr) u0)))) (\lambda (d: +C).(\lambda (u0: T).(arity g d u0 (asucc g a1))))) (ex2_2 C T (\lambda (d: +C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abst) u0)))) (\lambda (d: +C).(\lambda (u0: T).(arity g d u0 (asucc g (asucc g a1)))))))))).(\lambda (t: +T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c0 (Bind Abst) u) t +a2)).(\lambda (_: (((eq T t (TLRef i)) \to (or (ex2_2 C T (\lambda (d: +C).(\lambda (u0: T).(getl i (CHead c0 (Bind Abst) u) (CHead d (Bind Abbr) +u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 a2)))) (ex2_2 C T +(\lambda (d: C).(\lambda (u0: T).(getl i (CHead c0 (Bind Abst) u) (CHead d +(Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 (asucc g +a2))))))))).(\lambda (H5: (eq T (THead (Bind Abst) u t) (TLRef i))).(let H6 +\def (eq_ind T (THead (Bind Abst) u t) (\lambda (ee: T).(match ee with +[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead _ _ _) +\Rightarrow True])) I (TLRef i) H5) in (False_ind (or (ex2_2 C T (\lambda (d: +C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abbr) u0)))) (\lambda (d: +C).(\lambda (u0: T).(arity g d u0 (AHead a1 a2))))) (ex2_2 C T (\lambda (d: +C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abst) u0)))) (\lambda (d: +C).(\lambda (u0: T).(arity g d u0 (asucc g (AHead a1 a2))))))) H6)))))))))))) +(\lambda (c0: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u +a1)).(\lambda (_: (((eq T u (TLRef i)) \to (or (ex2_2 C T (\lambda (d: +C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abbr) u0)))) (\lambda (d: +C).(\lambda (u0: T).(arity g d u0 a1)))) (ex2_2 C T (\lambda (d: C).(\lambda +(u0: T).(getl i c0 (CHead d (Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: +T).(arity g d u0 (asucc g a1))))))))).(\lambda (t: T).(\lambda (a2: +A).(\lambda (_: (arity g c0 t (AHead a1 a2))).(\lambda (_: (((eq T t (TLRef +i)) \to (or (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead d +(Bind Abbr) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 (AHead a1 +a2))))) (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead d (Bind +Abst) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 (asucc g (AHead +a1 a2)))))))))).(\lambda (H5: (eq T (THead (Flat Appl) u t) (TLRef i))).(let +H6 \def (eq_ind T (THead (Flat Appl) u t) (\lambda (ee: T).(match ee with +[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead _ _ _) +\Rightarrow True])) I (TLRef i) H5) in (False_ind (or (ex2_2 C T (\lambda (d: +C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abbr) u0)))) (\lambda (d: +C).(\lambda (u0: T).(arity g d u0 a2)))) (ex2_2 C T (\lambda (d: C).(\lambda +(u0: T).(getl i c0 (CHead d (Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: +T).(arity g d u0 (asucc g a2)))))) H6)))))))))))) (\lambda (c0: C).(\lambda +(u: T).(\lambda (a0: A).(\lambda (_: (arity g c0 u (asucc g a0))).(\lambda (_: (((eq T u (TLRef i)) \to (or (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abbr) u0)))) (\lambda (d: C).(\lambda (u0: -T).(arity g d u0 a1)))) (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i -c0 (CHead d (Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 -(asucc g a1))))))))).(\lambda (t: T).(\lambda (a2: A).(\lambda (_: (arity g -c0 t (AHead a1 a2))).(\lambda (_: (((eq T t (TLRef i)) \to (or (ex2_2 C T +T).(arity g d u0 (asucc g a0))))) (ex2_2 C T (\lambda (d: C).(\lambda (u0: +T).(getl i c0 (CHead d (Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: +T).(arity g d u0 (asucc g (asucc g a0)))))))))).(\lambda (t: T).(\lambda (_: +(arity g c0 t a0)).(\lambda (_: (((eq T t (TLRef i)) \to (or (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abbr) u0)))) -(\lambda (d: C).(\lambda (u0: T).(arity g d u0 (AHead a1 a2))))) (ex2_2 C T -(\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abst) u0)))) -(\lambda (d: C).(\lambda (u0: T).(arity g d u0 (asucc g (AHead a1 -a2)))))))))).(\lambda (H5: (eq T (THead (Flat Appl) u t) (TLRef i))).(let H6 -\def (eq_ind T (THead (Flat Appl) u t) (\lambda (ee: T).(match ee in T return -(\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) +(\lambda (d: C).(\lambda (u0: T).(arity g d u0 a0)))) (ex2_2 C T (\lambda (d: +C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abst) u0)))) (\lambda (d: +C).(\lambda (u0: T).(arity g d u0 (asucc g a0))))))))).(\lambda (H5: (eq T +(THead (Flat Cast) u t) (TLRef i))).(let H6 \def (eq_ind T (THead (Flat Cast) +u t) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) I (TLRef i) H5) in (False_ind (or (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead -d (Bind Abbr) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 a2)))) +d (Bind Abbr) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 a0)))) (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abst) -u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 (asucc g a2)))))) -H6)))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (a0: A).(\lambda (_: -(arity g c0 u (asucc g a0))).(\lambda (_: (((eq T u (TLRef i)) \to (or (ex2_2 -C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abbr) u0)))) -(\lambda (d: C).(\lambda (u0: T).(arity g d u0 (asucc g a0))))) (ex2_2 C T -(\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abst) u0)))) -(\lambda (d: C).(\lambda (u0: T).(arity g d u0 (asucc g (asucc g -a0)))))))))).(\lambda (t: T).(\lambda (_: (arity g c0 t a0)).(\lambda (_: -(((eq T t (TLRef i)) \to (or (ex2_2 C T (\lambda (d: C).(\lambda (u0: -T).(getl i c0 (CHead d (Bind Abbr) u0)))) (\lambda (d: C).(\lambda (u0: -T).(arity g d u0 a0)))) (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i -c0 (CHead d (Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 -(asucc g a0))))))))).(\lambda (H5: (eq T (THead (Flat Cast) u t) (TLRef -i))).(let H6 \def (eq_ind T (THead (Flat Cast) u t) (\lambda (ee: T).(match -ee in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | -(TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) I (TLRef i) -H5) in (False_ind (or (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 -(CHead d (Bind Abbr) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 -a0)))) (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead d (Bind -Abst) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 (asucc g a0)))))) +u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 (asucc g a0)))))) H6))))))))))) (\lambda (c0: C).(\lambda (t: T).(\lambda (a1: A).(\lambda (H1: (arity g c0 t a1)).(\lambda (H2: (((eq T t (TLRef i)) \to (or (ex2_2 C T (\lambda (d: C).(\lambda (u: T).(getl i c0 (CHead d (Bind Abbr) u)))) @@ -293,9 +323,6 @@ T).(arity g d u a2)))) (ex2_2 C T (\lambda (d: C).(\lambda (u: T).(getl i c0 (CHead d (Bind Abst) u)))) (\lambda (d: C).(\lambda (u: T).(arity g d u (asucc g a2)))) x0 x1 H10 (arity_repl g x0 x1 (asucc g a1) H11 (asucc g a2) (asucc_repl g a1 a2 H3)))))))) H9)) H8))))))))))))) c y a H0))) H))))). -(* COMMENTS -Initial nodes: 3853 -END *) theorem arity_gen_bind: \forall (b: B).((not (eq B b Abst)) \to (\forall (g: G).(\forall (c: @@ -313,138 +340,130 @@ T).(\lambda (H1: (arity g c y a2)).(arity_ind g (\lambda (c0: C).(\lambda (a1: A).(arity g c0 u a1)) (\lambda (_: A).(arity g (CHead c0 (Bind b) u) t a))))))) (\lambda (c0: C).(\lambda (n: nat).(\lambda (H2: (eq T (TSort n) (THead (Bind b) u t))).(let H3 \def (eq_ind T (TSort n) (\lambda (ee: -T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow -True | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow False])) I -(THead (Bind b) u t) H2) in (False_ind (ex2 A (\lambda (a1: A).(arity g c0 u -a1)) (\lambda (_: A).(arity g (CHead c0 (Bind b) u) t (ASort O n)))) H3))))) -(\lambda (c0: C).(\lambda (d: C).(\lambda (u0: T).(\lambda (i: nat).(\lambda -(_: (getl i c0 (CHead d (Bind Abbr) u0))).(\lambda (a: A).(\lambda (_: (arity -g d u0 a)).(\lambda (_: (((eq T u0 (THead (Bind b) u t)) \to (ex2 A (\lambda -(a1: A).(arity g d u a1)) (\lambda (_: A).(arity g (CHead d (Bind b) u) t -a)))))).(\lambda (H5: (eq T (TLRef i) (THead (Bind b) u t))).(let H6 \def -(eq_ind T (TLRef i) (\lambda (ee: T).(match ee in T return (\lambda (_: -T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow True | -(THead _ _ _) \Rightarrow False])) I (THead (Bind b) u t) H5) in (False_ind +T).(match ee with [(TSort _) \Rightarrow True | (TLRef _) \Rightarrow False | +(THead _ _ _) \Rightarrow False])) I (THead (Bind b) u t) H2) in (False_ind (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (_: A).(arity g (CHead c0 -(Bind b) u) t a))) H6))))))))))) (\lambda (c0: C).(\lambda (d: C).(\lambda -(u0: T).(\lambda (i: nat).(\lambda (_: (getl i c0 (CHead d (Bind Abst) -u0))).(\lambda (a: A).(\lambda (_: (arity g d u0 (asucc g a))).(\lambda (_: -(((eq T u0 (THead (Bind b) u t)) \to (ex2 A (\lambda (a1: A).(arity g d u +(Bind b) u) t (ASort O n)))) H3))))) (\lambda (c0: C).(\lambda (d: +C).(\lambda (u0: T).(\lambda (i: nat).(\lambda (_: (getl i c0 (CHead d (Bind +Abbr) u0))).(\lambda (a: A).(\lambda (_: (arity g d u0 a)).(\lambda (_: (((eq +T u0 (THead (Bind b) u t)) \to (ex2 A (\lambda (a1: A).(arity g d u a1)) +(\lambda (_: A).(arity g (CHead d (Bind b) u) t a)))))).(\lambda (H5: (eq T +(TLRef i) (THead (Bind b) u t))).(let H6 \def (eq_ind T (TLRef i) (\lambda +(ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow +True | (THead _ _ _) \Rightarrow False])) I (THead (Bind b) u t) H5) in +(False_ind (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (_: A).(arity +g (CHead c0 (Bind b) u) t a))) H6))))))))))) (\lambda (c0: C).(\lambda (d: +C).(\lambda (u0: T).(\lambda (i: nat).(\lambda (_: (getl i c0 (CHead d (Bind +Abst) u0))).(\lambda (a: A).(\lambda (_: (arity g d u0 (asucc g a))).(\lambda +(_: (((eq T u0 (THead (Bind b) u t)) \to (ex2 A (\lambda (a1: A).(arity g d u a1)) (\lambda (_: A).(arity g (CHead d (Bind b) u) t (asucc g a))))))).(\lambda (H5: (eq T (TLRef i) (THead (Bind b) u t))).(let H6 \def -(eq_ind T (TLRef i) (\lambda (ee: T).(match ee in T return (\lambda (_: -T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow True | -(THead _ _ _) \Rightarrow False])) I (THead (Bind b) u t) H5) in (False_ind -(ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (_: A).(arity g (CHead c0 -(Bind b) u) t a))) H6))))))))))) (\lambda (b0: B).(\lambda (H2: (not (eq B b0 -Abst))).(\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: A).(\lambda (H3: -(arity g c0 u0 a1)).(\lambda (H4: (((eq T u0 (THead (Bind b) u t)) \to (ex2 A -(\lambda (a3: A).(arity g c0 u a3)) (\lambda (_: A).(arity g (CHead c0 (Bind -b) u) t a1)))))).(\lambda (t0: T).(\lambda (a0: A).(\lambda (H5: (arity g -(CHead c0 (Bind b0) u0) t0 a0)).(\lambda (H6: (((eq T t0 (THead (Bind b) u -t)) \to (ex2 A (\lambda (a3: A).(arity g (CHead c0 (Bind b0) u0) u a3)) -(\lambda (_: A).(arity g (CHead (CHead c0 (Bind b0) u0) (Bind b) u) t -a0)))))).(\lambda (H7: (eq T (THead (Bind b0) u0 t0) (THead (Bind b) u -t))).(let H8 \def (f_equal T B (\lambda (e: T).(match e in T return (\lambda -(_: T).B) with [(TSort _) \Rightarrow b0 | (TLRef _) \Rightarrow b0 | (THead -k _ _) \Rightarrow (match k in K return (\lambda (_: K).B) with [(Bind b1) +(eq_ind T (TLRef i) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow +False | (TLRef _) \Rightarrow True | (THead _ _ _) \Rightarrow False])) I +(THead (Bind b) u t) H5) in (False_ind (ex2 A (\lambda (a1: A).(arity g c0 u +a1)) (\lambda (_: A).(arity g (CHead c0 (Bind b) u) t a))) H6))))))))))) +(\lambda (b0: B).(\lambda (H2: (not (eq B b0 Abst))).(\lambda (c0: +C).(\lambda (u0: T).(\lambda (a1: A).(\lambda (H3: (arity g c0 u0 +a1)).(\lambda (H4: (((eq T u0 (THead (Bind b) u t)) \to (ex2 A (\lambda (a3: +A).(arity g c0 u a3)) (\lambda (_: A).(arity g (CHead c0 (Bind b) u) t +a1)))))).(\lambda (t0: T).(\lambda (a0: A).(\lambda (H5: (arity g (CHead c0 +(Bind b0) u0) t0 a0)).(\lambda (H6: (((eq T t0 (THead (Bind b) u t)) \to (ex2 +A (\lambda (a3: A).(arity g (CHead c0 (Bind b0) u0) u a3)) (\lambda (_: +A).(arity g (CHead (CHead c0 (Bind b0) u0) (Bind b) u) t a0)))))).(\lambda +(H7: (eq T (THead (Bind b0) u0 t0) (THead (Bind b) u t))).(let H8 \def +(f_equal T B (\lambda (e: T).(match e with [(TSort _) \Rightarrow b0 | (TLRef +_) \Rightarrow b0 | (THead k _ _) \Rightarrow (match k with [(Bind b1) \Rightarrow b1 | (Flat _) \Rightarrow b0])])) (THead (Bind b0) u0 t0) (THead -(Bind b) u t) H7) in ((let H9 \def (f_equal T T (\lambda (e: T).(match e in T -return (\lambda (_: T).T) with [(TSort _) \Rightarrow u0 | (TLRef _) -\Rightarrow u0 | (THead _ t1 _) \Rightarrow t1])) (THead (Bind b0) u0 t0) -(THead (Bind b) u t) H7) in ((let H10 \def (f_equal T T (\lambda (e: -T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow t0 | -(TLRef _) \Rightarrow t0 | (THead _ _ t1) \Rightarrow t1])) (THead (Bind b0) -u0 t0) (THead (Bind b) u t) H7) in (\lambda (H11: (eq T u0 u)).(\lambda (H12: -(eq B b0 b)).(let H13 \def (eq_ind T t0 (\lambda (t1: T).((eq T t1 (THead -(Bind b) u t)) \to (ex2 A (\lambda (a3: A).(arity g (CHead c0 (Bind b0) u0) u -a3)) (\lambda (_: A).(arity g (CHead (CHead c0 (Bind b0) u0) (Bind b) u) t -a0))))) H6 t H10) in (let H14 \def (eq_ind T t0 (\lambda (t1: T).(arity g -(CHead c0 (Bind b0) u0) t1 a0)) H5 t H10) in (let H15 \def (eq_ind T u0 -(\lambda (t1: T).((eq T t (THead (Bind b) u t)) \to (ex2 A (\lambda (a3: -A).(arity g (CHead c0 (Bind b0) t1) u a3)) (\lambda (_: A).(arity g (CHead -(CHead c0 (Bind b0) t1) (Bind b) u) t a0))))) H13 u H11) in (let H16 \def -(eq_ind T u0 (\lambda (t1: T).(arity g (CHead c0 (Bind b0) t1) t a0)) H14 u -H11) in (let H17 \def (eq_ind T u0 (\lambda (t1: T).((eq T t1 (THead (Bind b) -u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (_: A).(arity g -(CHead c0 (Bind b) u) t a1))))) H4 u H11) in (let H18 \def (eq_ind T u0 -(\lambda (t1: T).(arity g c0 t1 a1)) H3 u H11) in (let H19 \def (eq_ind B b0 -(\lambda (b1: B).((eq T t (THead (Bind b) u t)) \to (ex2 A (\lambda (a3: -A).(arity g (CHead c0 (Bind b1) u) u a3)) (\lambda (_: A).(arity g (CHead -(CHead c0 (Bind b1) u) (Bind b) u) t a0))))) H15 b H12) in (let H20 \def -(eq_ind B b0 (\lambda (b1: B).(arity g (CHead c0 (Bind b1) u) t a0)) H16 b -H12) in (let H21 \def (eq_ind B b0 (\lambda (b1: B).(not (eq B b1 Abst))) H2 -b H12) in (ex_intro2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (_: -A).(arity g (CHead c0 (Bind b) u) t a0)) a1 H18 H20))))))))))))) H9)) -H8)))))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: A).(\lambda -(H2: (arity g c0 u0 (asucc g a1))).(\lambda (H3: (((eq T u0 (THead (Bind b) u -t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (_: A).(arity g -(CHead c0 (Bind b) u) t (asucc g a1))))))).(\lambda (t0: T).(\lambda (a0: -A).(\lambda (H4: (arity g (CHead c0 (Bind Abst) u0) t0 a0)).(\lambda (H5: -(((eq T t0 (THead (Bind b) u t)) \to (ex2 A (\lambda (a3: A).(arity g (CHead -c0 (Bind Abst) u0) u a3)) (\lambda (_: A).(arity g (CHead (CHead c0 (Bind -Abst) u0) (Bind b) u) t a0)))))).(\lambda (H6: (eq T (THead (Bind Abst) u0 -t0) (THead (Bind b) u t))).(let H7 \def (f_equal T B (\lambda (e: T).(match e -in T return (\lambda (_: T).B) with [(TSort _) \Rightarrow Abst | (TLRef _) -\Rightarrow Abst | (THead k _ _) \Rightarrow (match k in K return (\lambda -(_: K).B) with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow Abst])])) -(THead (Bind Abst) u0 t0) (THead (Bind b) u t) H6) in ((let H8 \def (f_equal -T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) +(Bind b) u t) H7) in ((let H9 \def (f_equal T T (\lambda (e: T).(match e with +[(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | (THead _ t1 _) +\Rightarrow t1])) (THead (Bind b0) u0 t0) (THead (Bind b) u t) H7) in ((let +H10 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow t0 +| (TLRef _) \Rightarrow t0 | (THead _ _ t1) \Rightarrow t1])) (THead (Bind +b0) u0 t0) (THead (Bind b) u t) H7) in (\lambda (H11: (eq T u0 u)).(\lambda +(H12: (eq B b0 b)).(let H13 \def (eq_ind T t0 (\lambda (t1: T).((eq T t1 +(THead (Bind b) u t)) \to (ex2 A (\lambda (a3: A).(arity g (CHead c0 (Bind +b0) u0) u a3)) (\lambda (_: A).(arity g (CHead (CHead c0 (Bind b0) u0) (Bind +b) u) t a0))))) H6 t H10) in (let H14 \def (eq_ind T t0 (\lambda (t1: +T).(arity g (CHead c0 (Bind b0) u0) t1 a0)) H5 t H10) in (let H15 \def +(eq_ind T u0 (\lambda (t1: T).((eq T t (THead (Bind b) u t)) \to (ex2 A +(\lambda (a3: A).(arity g (CHead c0 (Bind b0) t1) u a3)) (\lambda (_: +A).(arity g (CHead (CHead c0 (Bind b0) t1) (Bind b) u) t a0))))) H13 u H11) +in (let H16 \def (eq_ind T u0 (\lambda (t1: T).(arity g (CHead c0 (Bind b0) +t1) t a0)) H14 u H11) in (let H17 \def (eq_ind T u0 (\lambda (t1: T).((eq T +t1 (THead (Bind b) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) +(\lambda (_: A).(arity g (CHead c0 (Bind b) u) t a1))))) H4 u H11) in (let +H18 \def (eq_ind T u0 (\lambda (t1: T).(arity g c0 t1 a1)) H3 u H11) in (let +H19 \def (eq_ind B b0 (\lambda (b1: B).((eq T t (THead (Bind b) u t)) \to +(ex2 A (\lambda (a3: A).(arity g (CHead c0 (Bind b1) u) u a3)) (\lambda (_: +A).(arity g (CHead (CHead c0 (Bind b1) u) (Bind b) u) t a0))))) H15 b H12) in +(let H20 \def (eq_ind B b0 (\lambda (b1: B).(arity g (CHead c0 (Bind b1) u) t +a0)) H16 b H12) in (let H21 \def (eq_ind B b0 (\lambda (b1: B).(not (eq B b1 +Abst))) H2 b H12) in (ex_intro2 A (\lambda (a3: A).(arity g c0 u a3)) +(\lambda (_: A).(arity g (CHead c0 (Bind b) u) t a0)) a1 H18 H20))))))))))))) +H9)) H8)))))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: +A).(\lambda (H2: (arity g c0 u0 (asucc g a1))).(\lambda (H3: (((eq T u0 +(THead (Bind b) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda +(_: A).(arity g (CHead c0 (Bind b) u) t (asucc g a1))))))).(\lambda (t0: +T).(\lambda (a0: A).(\lambda (H4: (arity g (CHead c0 (Bind Abst) u0) t0 +a0)).(\lambda (H5: (((eq T t0 (THead (Bind b) u t)) \to (ex2 A (\lambda (a3: +A).(arity g (CHead c0 (Bind Abst) u0) u a3)) (\lambda (_: A).(arity g (CHead +(CHead c0 (Bind Abst) u0) (Bind b) u) t a0)))))).(\lambda (H6: (eq T (THead +(Bind Abst) u0 t0) (THead (Bind b) u t))).(let H7 \def (f_equal T B (\lambda +(e: T).(match e with [(TSort _) \Rightarrow Abst | (TLRef _) \Rightarrow Abst +| (THead k _ _) \Rightarrow (match k with [(Bind b0) \Rightarrow b0 | (Flat +_) \Rightarrow Abst])])) (THead (Bind Abst) u0 t0) (THead (Bind b) u t) H6) +in ((let H8 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | (THead _ t1 _) \Rightarrow t1])) (THead (Bind Abst) u0 t0) (THead (Bind b) u t) H6) in ((let H9 \def (f_equal -T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) -\Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t1) \Rightarrow t1])) -(THead (Bind Abst) u0 t0) (THead (Bind b) u t) H6) in (\lambda (H10: (eq T u0 -u)).(\lambda (H11: (eq B Abst b)).(let H12 \def (eq_ind T t0 (\lambda (t1: -T).((eq T t1 (THead (Bind b) u t)) \to (ex2 A (\lambda (a3: A).(arity g -(CHead c0 (Bind Abst) u0) u a3)) (\lambda (_: A).(arity g (CHead (CHead c0 -(Bind Abst) u0) (Bind b) u) t a0))))) H5 t H9) in (let H13 \def (eq_ind T t0 -(\lambda (t1: T).(arity g (CHead c0 (Bind Abst) u0) t1 a0)) H4 t H9) in (let -H14 \def (eq_ind T u0 (\lambda (t1: T).((eq T t (THead (Bind b) u t)) \to -(ex2 A (\lambda (a3: A).(arity g (CHead c0 (Bind Abst) t1) u a3)) (\lambda -(_: A).(arity g (CHead (CHead c0 (Bind Abst) t1) (Bind b) u) t a0))))) H12 u -H10) in (let H15 \def (eq_ind T u0 (\lambda (t1: T).(arity g (CHead c0 (Bind -Abst) t1) t a0)) H13 u H10) in (let H16 \def (eq_ind T u0 (\lambda (t1: -T).((eq T t1 (THead (Bind b) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u -a3)) (\lambda (_: A).(arity g (CHead c0 (Bind b) u) t (asucc g a1)))))) H3 u -H10) in (let H17 \def (eq_ind T u0 (\lambda (t1: T).(arity g c0 t1 (asucc g -a1))) H2 u H10) in (let H18 \def (eq_ind_r B b (\lambda (b0: B).((eq T t -(THead (Bind b0) u t)) \to (ex2 A (\lambda (a3: A).(arity g (CHead c0 (Bind -Abst) u) u a3)) (\lambda (_: A).(arity g (CHead (CHead c0 (Bind Abst) u) -(Bind b0) u) t a0))))) H14 Abst H11) in (let H19 \def (eq_ind_r B b (\lambda -(b0: B).((eq T u (THead (Bind b0) u t)) \to (ex2 A (\lambda (a3: A).(arity g -c0 u a3)) (\lambda (_: A).(arity g (CHead c0 (Bind b0) u) t (asucc g a1)))))) -H16 Abst H11) in (let H20 \def (eq_ind_r B b (\lambda (b0: B).(not (eq B b0 -Abst))) H Abst H11) in (eq_ind B Abst (\lambda (b0: B).(ex2 A (\lambda (a3: -A).(arity g c0 u a3)) (\lambda (_: A).(arity g (CHead c0 (Bind b0) u) t -(AHead a1 a0))))) (let H21 \def (match (H20 (refl_equal B Abst)) in False -return (\lambda (_: False).(ex2 A (\lambda (a3: A).(arity g c0 u a3)) -(\lambda (_: A).(arity g (CHead c0 (Bind Abst) u) t (AHead a1 a0))))) with -[]) in H21) b H11))))))))))))) H8)) H7)))))))))))) (\lambda (c0: C).(\lambda -(u0: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u0 a1)).(\lambda (_: (((eq -T u0 (THead (Bind b) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) -(\lambda (_: A).(arity g (CHead c0 (Bind b) u) t a1)))))).(\lambda (t0: -T).(\lambda (a0: A).(\lambda (_: (arity g c0 t0 (AHead a1 a0))).(\lambda (_: -(((eq T t0 (THead (Bind b) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u -a3)) (\lambda (_: A).(arity g (CHead c0 (Bind b) u) t (AHead a1 -a0))))))).(\lambda (H6: (eq T (THead (Flat Appl) u0 t0) (THead (Bind b) u -t))).(let H7 \def (eq_ind T (THead (Flat Appl) u0 t0) (\lambda (ee: T).(match -ee in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | -(TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k in K return -(\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow -True])])) I (THead (Bind b) u t) H6) in (False_ind (ex2 A (\lambda (a3: -A).(arity g c0 u a3)) (\lambda (_: A).(arity g (CHead c0 (Bind b) u) t a0))) -H7)))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda (a: A).(\lambda (_: -(arity g c0 u0 (asucc g a))).(\lambda (_: (((eq T u0 (THead (Bind b) u t)) -\to (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (_: A).(arity g -(CHead c0 (Bind b) u) t (asucc g a))))))).(\lambda (t0: T).(\lambda (_: -(arity g c0 t0 a)).(\lambda (_: (((eq T t0 (THead (Bind b) u t)) \to (ex2 A +T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow t0 | (TLRef _) +\Rightarrow t0 | (THead _ _ t1) \Rightarrow t1])) (THead (Bind Abst) u0 t0) +(THead (Bind b) u t) H6) in (\lambda (H10: (eq T u0 u)).(\lambda (H11: (eq B +Abst b)).(let H12 \def (eq_ind T t0 (\lambda (t1: T).((eq T t1 (THead (Bind +b) u t)) \to (ex2 A (\lambda (a3: A).(arity g (CHead c0 (Bind Abst) u0) u +a3)) (\lambda (_: A).(arity g (CHead (CHead c0 (Bind Abst) u0) (Bind b) u) t +a0))))) H5 t H9) in (let H13 \def (eq_ind T t0 (\lambda (t1: T).(arity g +(CHead c0 (Bind Abst) u0) t1 a0)) H4 t H9) in (let H14 \def (eq_ind T u0 +(\lambda (t1: T).((eq T t (THead (Bind b) u t)) \to (ex2 A (\lambda (a3: +A).(arity g (CHead c0 (Bind Abst) t1) u a3)) (\lambda (_: A).(arity g (CHead +(CHead c0 (Bind Abst) t1) (Bind b) u) t a0))))) H12 u H10) in (let H15 \def +(eq_ind T u0 (\lambda (t1: T).(arity g (CHead c0 (Bind Abst) t1) t a0)) H13 u +H10) in (let H16 \def (eq_ind T u0 (\lambda (t1: T).((eq T t1 (THead (Bind b) +u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (_: A).(arity g +(CHead c0 (Bind b) u) t (asucc g a1)))))) H3 u H10) in (let H17 \def (eq_ind +T u0 (\lambda (t1: T).(arity g c0 t1 (asucc g a1))) H2 u H10) in (let H18 +\def (eq_ind_r B b (\lambda (b0: B).((eq T t (THead (Bind b0) u t)) \to (ex2 +A (\lambda (a3: A).(arity g (CHead c0 (Bind Abst) u) u a3)) (\lambda (_: +A).(arity g (CHead (CHead c0 (Bind Abst) u) (Bind b0) u) t a0))))) H14 Abst +H11) in (let H19 \def (eq_ind_r B b (\lambda (b0: B).((eq T u (THead (Bind +b0) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (_: +A).(arity g (CHead c0 (Bind b0) u) t (asucc g a1)))))) H16 Abst H11) in (let +H20 \def (eq_ind_r B b (\lambda (b0: B).(not (eq B b0 Abst))) H Abst H11) in +(eq_ind B Abst (\lambda (b0: B).(ex2 A (\lambda (a3: A).(arity g c0 u a3)) +(\lambda (_: A).(arity g (CHead c0 (Bind b0) u) t (AHead a1 a0))))) (let H21 +\def (match (H20 (refl_equal B Abst)) in False with []) in H21) b +H11))))))))))))) H8)) H7)))))))))))) (\lambda (c0: C).(\lambda (u0: +T).(\lambda (a1: A).(\lambda (_: (arity g c0 u0 a1)).(\lambda (_: (((eq T u0 +(THead (Bind b) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda +(_: A).(arity g (CHead c0 (Bind b) u) t a1)))))).(\lambda (t0: T).(\lambda +(a0: A).(\lambda (_: (arity g c0 t0 (AHead a1 a0))).(\lambda (_: (((eq T t0 +(THead (Bind b) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda +(_: A).(arity g (CHead c0 (Bind b) u) t (AHead a1 a0))))))).(\lambda (H6: (eq +T (THead (Flat Appl) u0 t0) (THead (Bind b) u t))).(let H7 \def (eq_ind T +(THead (Flat Appl) u0 t0) (\lambda (ee: T).(match ee with [(TSort _) +\Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow +(match k with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I +(THead (Bind b) u t) H6) in (False_ind (ex2 A (\lambda (a3: A).(arity g c0 u +a3)) (\lambda (_: A).(arity g (CHead c0 (Bind b) u) t a0))) H7)))))))))))) +(\lambda (c0: C).(\lambda (u0: T).(\lambda (a: A).(\lambda (_: (arity g c0 u0 +(asucc g a))).(\lambda (_: (((eq T u0 (THead (Bind b) u t)) \to (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (_: A).(arity g (CHead c0 (Bind -b) u) t a)))))).(\lambda (H6: (eq T (THead (Flat Cast) u0 t0) (THead (Bind b) -u t))).(let H7 \def (eq_ind T (THead (Flat Cast) u0 t0) (\lambda (ee: -T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow -False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k in K -return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) +b) u) t (asucc g a))))))).(\lambda (t0: T).(\lambda (_: (arity g c0 t0 +a)).(\lambda (_: (((eq T t0 (THead (Bind b) u t)) \to (ex2 A (\lambda (a1: +A).(arity g c0 u a1)) (\lambda (_: A).(arity g (CHead c0 (Bind b) u) t +a)))))).(\lambda (H6: (eq T (THead (Flat Cast) u0 t0) (THead (Bind b) u +t))).(let H7 \def (eq_ind T (THead (Flat Cast) u0 t0) (\lambda (ee: T).(match +ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k +_ _) \Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind b) u t) H6) in (False_ind (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (_: A).(arity g (CHead c0 (Bind b) u) t a))) H7))))))))))) (\lambda (c0: C).(\lambda (t0: T).(\lambda (a1: @@ -465,9 +484,6 @@ b) u) t a0))) (\lambda (x: A).(\lambda (H10: (arity g c0 u x)).(\lambda (H11: c0 u a3)) (\lambda (_: A).(arity g (CHead c0 (Bind b) u) t a0)) x H10 (arity_repl g (CHead c0 (Bind b) u) t a1 H11 a0 H4))))) H9))))))))))))) c y a2 H1))) H0)))))))). -(* COMMENTS -Initial nodes: 3365 -END *) theorem arity_gen_abst: \forall (g: G).(\forall (c: C).(\forall (u: T).(\forall (t: T).(\forall (a: @@ -488,58 +504,55 @@ A).(\lambda (a2: A).(eq A a0 (AHead a1 a2)))) (\lambda (a1: A).(\lambda (_: A).(arity g c0 u (asucc g a1)))) (\lambda (_: A).(\lambda (a2: A).(arity g (CHead c0 (Bind Abst) u) t a2)))))))) (\lambda (c0: C).(\lambda (n: nat).(\lambda (H1: (eq T (TSort n) (THead (Bind Abst) u t))).(let H2 \def -(eq_ind T (TSort n) (\lambda (ee: T).(match ee in T return (\lambda (_: -T).Prop) with [(TSort _) \Rightarrow True | (TLRef _) \Rightarrow False | -(THead _ _ _) \Rightarrow False])) I (THead (Bind Abst) u t) H1) in -(False_ind (ex3_2 A A (\lambda (a1: A).(\lambda (a2: A).(eq A (ASort O n) -(AHead a1 a2)))) (\lambda (a1: A).(\lambda (_: A).(arity g c0 u (asucc g -a1)))) (\lambda (_: A).(\lambda (a2: A).(arity g (CHead c0 (Bind Abst) u) t -a2)))) H2))))) (\lambda (c0: C).(\lambda (d: C).(\lambda (u0: T).(\lambda (i: -nat).(\lambda (_: (getl i c0 (CHead d (Bind Abbr) u0))).(\lambda (a0: -A).(\lambda (_: (arity g d u0 a0)).(\lambda (_: (((eq T u0 (THead (Bind Abst) -u t)) \to (ex3_2 A A (\lambda (a1: A).(\lambda (a2: A).(eq A a0 (AHead a1 -a2)))) (\lambda (a1: A).(\lambda (_: A).(arity g d u (asucc g a1)))) (\lambda -(_: A).(\lambda (a2: A).(arity g (CHead d (Bind Abst) u) t a2))))))).(\lambda -(H4: (eq T (TLRef i) (THead (Bind Abst) u t))).(let H5 \def (eq_ind T (TLRef -i) (\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort -_) \Rightarrow False | (TLRef _) \Rightarrow True | (THead _ _ _) \Rightarrow -False])) I (THead (Bind Abst) u t) H4) in (False_ind (ex3_2 A A (\lambda (a1: -A).(\lambda (a2: A).(eq A a0 (AHead a1 a2)))) (\lambda (a1: A).(\lambda (_: -A).(arity g c0 u (asucc g a1)))) (\lambda (_: A).(\lambda (a2: A).(arity g -(CHead c0 (Bind Abst) u) t a2)))) H5))))))))))) (\lambda (c0: C).(\lambda (d: -C).(\lambda (u0: T).(\lambda (i: nat).(\lambda (_: (getl i c0 (CHead d (Bind -Abst) u0))).(\lambda (a0: A).(\lambda (_: (arity g d u0 (asucc g -a0))).(\lambda (_: (((eq T u0 (THead (Bind Abst) u t)) \to (ex3_2 A A -(\lambda (a1: A).(\lambda (a2: A).(eq A (asucc g a0) (AHead a1 a2)))) +(eq_ind T (TSort n) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow +True | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow False])) I +(THead (Bind Abst) u t) H1) in (False_ind (ex3_2 A A (\lambda (a1: +A).(\lambda (a2: A).(eq A (ASort O n) (AHead a1 a2)))) (\lambda (a1: +A).(\lambda (_: A).(arity g c0 u (asucc g a1)))) (\lambda (_: A).(\lambda +(a2: A).(arity g (CHead c0 (Bind Abst) u) t a2)))) H2))))) (\lambda (c0: +C).(\lambda (d: C).(\lambda (u0: T).(\lambda (i: nat).(\lambda (_: (getl i c0 +(CHead d (Bind Abbr) u0))).(\lambda (a0: A).(\lambda (_: (arity g d u0 +a0)).(\lambda (_: (((eq T u0 (THead (Bind Abst) u t)) \to (ex3_2 A A (\lambda +(a1: A).(\lambda (a2: A).(eq A a0 (AHead a1 a2)))) (\lambda (a1: A).(\lambda +(_: A).(arity g d u (asucc g a1)))) (\lambda (_: A).(\lambda (a2: A).(arity g +(CHead d (Bind Abst) u) t a2))))))).(\lambda (H4: (eq T (TLRef i) (THead +(Bind Abst) u t))).(let H5 \def (eq_ind T (TLRef i) (\lambda (ee: T).(match +ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow True | (THead _ +_ _) \Rightarrow False])) I (THead (Bind Abst) u t) H4) in (False_ind (ex3_2 +A A (\lambda (a1: A).(\lambda (a2: A).(eq A a0 (AHead a1 a2)))) (\lambda (a1: +A).(\lambda (_: A).(arity g c0 u (asucc g a1)))) (\lambda (_: A).(\lambda +(a2: A).(arity g (CHead c0 (Bind Abst) u) t a2)))) H5))))))))))) (\lambda +(c0: C).(\lambda (d: C).(\lambda (u0: T).(\lambda (i: nat).(\lambda (_: (getl +i c0 (CHead d (Bind Abst) u0))).(\lambda (a0: A).(\lambda (_: (arity g d u0 +(asucc g a0))).(\lambda (_: (((eq T u0 (THead (Bind Abst) u t)) \to (ex3_2 A +A (\lambda (a1: A).(\lambda (a2: A).(eq A (asucc g a0) (AHead a1 a2)))) (\lambda (a1: A).(\lambda (_: A).(arity g d u (asucc g a1)))) (\lambda (_: A).(\lambda (a2: A).(arity g (CHead d (Bind Abst) u) t a2))))))).(\lambda (H4: (eq T (TLRef i) (THead (Bind Abst) u t))).(let H5 \def (eq_ind T (TLRef -i) (\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort -_) \Rightarrow False | (TLRef _) \Rightarrow True | (THead _ _ _) \Rightarrow -False])) I (THead (Bind Abst) u t) H4) in (False_ind (ex3_2 A A (\lambda (a1: -A).(\lambda (a2: A).(eq A a0 (AHead a1 a2)))) (\lambda (a1: A).(\lambda (_: -A).(arity g c0 u (asucc g a1)))) (\lambda (_: A).(\lambda (a2: A).(arity g -(CHead c0 (Bind Abst) u) t a2)))) H5))))))))))) (\lambda (b: B).(\lambda (H1: -(not (eq B b Abst))).(\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: -A).(\lambda (H2: (arity g c0 u0 a1)).(\lambda (H3: (((eq T u0 (THead (Bind -Abst) u t)) \to (ex3_2 A A (\lambda (a2: A).(\lambda (a3: A).(eq A a1 (AHead -a2 a3)))) (\lambda (a2: A).(\lambda (_: A).(arity g c0 u (asucc g a2)))) -(\lambda (_: A).(\lambda (a3: A).(arity g (CHead c0 (Bind Abst) u) t -a3))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (H4: (arity g (CHead c0 -(Bind b) u0) t0 a2)).(\lambda (H5: (((eq T t0 (THead (Bind Abst) u t)) \to -(ex3_2 A A (\lambda (a3: A).(\lambda (a4: A).(eq A a2 (AHead a3 a4)))) -(\lambda (a3: A).(\lambda (_: A).(arity g (CHead c0 (Bind b) u0) u (asucc g -a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g (CHead (CHead c0 (Bind b) -u0) (Bind Abst) u) t a4))))))).(\lambda (H6: (eq T (THead (Bind b) u0 t0) -(THead (Bind Abst) u t))).(let H7 \def (f_equal T B (\lambda (e: T).(match e -in T return (\lambda (_: T).B) with [(TSort _) \Rightarrow b | (TLRef _) -\Rightarrow b | (THead k _ _) \Rightarrow (match k in K return (\lambda (_: -K).B) with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow b])])) (THead -(Bind b) u0 t0) (THead (Bind Abst) u t) H6) in ((let H8 \def (f_equal T T -(\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) -\Rightarrow u0 | (TLRef _) \Rightarrow u0 | (THead _ t1 _) \Rightarrow t1])) -(THead (Bind b) u0 t0) (THead (Bind Abst) u t) H6) in ((let H9 \def (f_equal -T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) +i) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) +\Rightarrow True | (THead _ _ _) \Rightarrow False])) I (THead (Bind Abst) u +t) H4) in (False_ind (ex3_2 A A (\lambda (a1: A).(\lambda (a2: A).(eq A a0 +(AHead a1 a2)))) (\lambda (a1: A).(\lambda (_: A).(arity g c0 u (asucc g +a1)))) (\lambda (_: A).(\lambda (a2: A).(arity g (CHead c0 (Bind Abst) u) t +a2)))) H5))))))))))) (\lambda (b: B).(\lambda (H1: (not (eq B b +Abst))).(\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: A).(\lambda (H2: +(arity g c0 u0 a1)).(\lambda (H3: (((eq T u0 (THead (Bind Abst) u t)) \to +(ex3_2 A A (\lambda (a2: A).(\lambda (a3: A).(eq A a1 (AHead a2 a3)))) +(\lambda (a2: A).(\lambda (_: A).(arity g c0 u (asucc g a2)))) (\lambda (_: +A).(\lambda (a3: A).(arity g (CHead c0 (Bind Abst) u) t a3))))))).(\lambda +(t0: T).(\lambda (a2: A).(\lambda (H4: (arity g (CHead c0 (Bind b) u0) t0 +a2)).(\lambda (H5: (((eq T t0 (THead (Bind Abst) u t)) \to (ex3_2 A A +(\lambda (a3: A).(\lambda (a4: A).(eq A a2 (AHead a3 a4)))) (\lambda (a3: +A).(\lambda (_: A).(arity g (CHead c0 (Bind b) u0) u (asucc g a3)))) (\lambda +(_: A).(\lambda (a4: A).(arity g (CHead (CHead c0 (Bind b) u0) (Bind Abst) u) +t a4))))))).(\lambda (H6: (eq T (THead (Bind b) u0 t0) (THead (Bind Abst) u +t))).(let H7 \def (f_equal T B (\lambda (e: T).(match e with [(TSort _) +\Rightarrow b | (TLRef _) \Rightarrow b | (THead k _ _) \Rightarrow (match k +with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow b])])) (THead (Bind b) +u0 t0) (THead (Bind Abst) u t) H6) in ((let H8 \def (f_equal T T (\lambda (e: +T).(match e with [(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | +(THead _ t1 _) \Rightarrow t1])) (THead (Bind b) u0 t0) (THead (Bind Abst) u +t) H6) in ((let H9 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t1) \Rightarrow t1])) (THead (Bind b) u0 t0) (THead (Bind Abst) u t) H6) in (\lambda (H10: (eq T u0 u)).(\lambda (H11: (eq B b Abst)).(let H12 \def (eq_ind T t0 (\lambda (t1: @@ -567,26 +580,22 @@ A a2 (AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: A).(arity g (CHead c0 H19 \def (eq_ind B b (\lambda (b0: B).(arity g (CHead c0 (Bind b0) u) t a2)) H15 Abst H11) in (let H20 \def (eq_ind B b (\lambda (b0: B).(not (eq B b0 Abst))) H1 Abst H11) in (let H21 \def (match (H20 (refl_equal B Abst)) in -False return (\lambda (_: False).(ex3_2 A A (\lambda (a3: A).(\lambda (a4: -A).(eq A a2 (AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: A).(arity g c0 u -(asucc g a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g (CHead c0 (Bind -Abst) u) t a4))))) with []) in H21))))))))))))) H8)) H7)))))))))))))) -(\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: A).(\lambda (H1: (arity g c0 -u0 (asucc g a1))).(\lambda (H2: (((eq T u0 (THead (Bind Abst) u t)) \to -(ex3_2 A A (\lambda (a2: A).(\lambda (a3: A).(eq A (asucc g a1) (AHead a2 -a3)))) (\lambda (a2: A).(\lambda (_: A).(arity g c0 u (asucc g a2)))) -(\lambda (_: A).(\lambda (a3: A).(arity g (CHead c0 (Bind Abst) u) t -a3))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (H3: (arity g (CHead c0 -(Bind Abst) u0) t0 a2)).(\lambda (H4: (((eq T t0 (THead (Bind Abst) u t)) \to -(ex3_2 A A (\lambda (a3: A).(\lambda (a4: A).(eq A a2 (AHead a3 a4)))) -(\lambda (a3: A).(\lambda (_: A).(arity g (CHead c0 (Bind Abst) u0) u (asucc -g a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g (CHead (CHead c0 (Bind -Abst) u0) (Bind Abst) u) t a4))))))).(\lambda (H5: (eq T (THead (Bind Abst) -u0 t0) (THead (Bind Abst) u t))).(let H6 \def (f_equal T T (\lambda (e: -T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow u0 | -(TLRef _) \Rightarrow u0 | (THead _ t1 _) \Rightarrow t1])) (THead (Bind -Abst) u0 t0) (THead (Bind Abst) u t) H5) in ((let H7 \def (f_equal T T -(\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) +False with []) in H21))))))))))))) H8)) H7)))))))))))))) (\lambda (c0: +C).(\lambda (u0: T).(\lambda (a1: A).(\lambda (H1: (arity g c0 u0 (asucc g +a1))).(\lambda (H2: (((eq T u0 (THead (Bind Abst) u t)) \to (ex3_2 A A +(\lambda (a2: A).(\lambda (a3: A).(eq A (asucc g a1) (AHead a2 a3)))) +(\lambda (a2: A).(\lambda (_: A).(arity g c0 u (asucc g a2)))) (\lambda (_: +A).(\lambda (a3: A).(arity g (CHead c0 (Bind Abst) u) t a3))))))).(\lambda +(t0: T).(\lambda (a2: A).(\lambda (H3: (arity g (CHead c0 (Bind Abst) u0) t0 +a2)).(\lambda (H4: (((eq T t0 (THead (Bind Abst) u t)) \to (ex3_2 A A +(\lambda (a3: A).(\lambda (a4: A).(eq A a2 (AHead a3 a4)))) (\lambda (a3: +A).(\lambda (_: A).(arity g (CHead c0 (Bind Abst) u0) u (asucc g a3)))) +(\lambda (_: A).(\lambda (a4: A).(arity g (CHead (CHead c0 (Bind Abst) u0) +(Bind Abst) u) t a4))))))).(\lambda (H5: (eq T (THead (Bind Abst) u0 t0) +(THead (Bind Abst) u t))).(let H6 \def (f_equal T T (\lambda (e: T).(match e +with [(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | (THead _ t1 _) +\Rightarrow t1])) (THead (Bind Abst) u0 t0) (THead (Bind Abst) u t) H5) in +((let H7 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t1) \Rightarrow t1])) (THead (Bind Abst) u0 t0) (THead (Bind Abst) u t) H5) in (\lambda (H8: (eq T u0 u)).(let H9 \def (eq_ind T t0 (\lambda (t1: T).((eq T t1 (THead (Bind @@ -621,77 +630,73 @@ A).(\lambda (a4: A).(eq A (AHead a1 a2) (AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: A).(arity g c0 u (asucc g a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g (CHead c0 (Bind Abst) u) t a4))))))).(\lambda (H5: (eq T (THead (Flat Appl) u0 t0) (THead (Bind Abst) u t))).(let H6 \def (eq_ind T -(THead (Flat Appl) u0 t0) (\lambda (ee: T).(match ee in T return (\lambda (_: -T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | -(THead k _ _) \Rightarrow (match k in K return (\lambda (_: K).Prop) with -[(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind -Abst) u t) H5) in (False_ind (ex3_2 A A (\lambda (a3: A).(\lambda (a4: A).(eq -A a2 (AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: A).(arity g c0 u (asucc g -a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g (CHead c0 (Bind Abst) u) t -a4)))) H6)))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda (a0: -A).(\lambda (_: (arity g c0 u0 (asucc g a0))).(\lambda (_: (((eq T u0 (THead -(Bind Abst) u t)) \to (ex3_2 A A (\lambda (a1: A).(\lambda (a2: A).(eq A -(asucc g a0) (AHead a1 a2)))) (\lambda (a1: A).(\lambda (_: A).(arity g c0 u -(asucc g a1)))) (\lambda (_: A).(\lambda (a2: A).(arity g (CHead c0 (Bind -Abst) u) t a2))))))).(\lambda (t0: T).(\lambda (_: (arity g c0 t0 -a0)).(\lambda (_: (((eq T t0 (THead (Bind Abst) u t)) \to (ex3_2 A A (\lambda -(a1: A).(\lambda (a2: A).(eq A a0 (AHead a1 a2)))) (\lambda (a1: A).(\lambda -(_: A).(arity g c0 u (asucc g a1)))) (\lambda (_: A).(\lambda (a2: A).(arity -g (CHead c0 (Bind Abst) u) t a2))))))).(\lambda (H5: (eq T (THead (Flat Cast) -u0 t0) (THead (Bind Abst) u t))).(let H6 \def (eq_ind T (THead (Flat Cast) u0 -t0) (\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort -_) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) -\Rightarrow (match k in K return (\lambda (_: K).Prop) with [(Bind _) -\Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind Abst) u t) -H5) in (False_ind (ex3_2 A A (\lambda (a1: A).(\lambda (a2: A).(eq A a0 -(AHead a1 a2)))) (\lambda (a1: A).(\lambda (_: A).(arity g c0 u (asucc g -a1)))) (\lambda (_: A).(\lambda (a2: A).(arity g (CHead c0 (Bind Abst) u) t -a2)))) H6))))))))))) (\lambda (c0: C).(\lambda (t0: T).(\lambda (a1: -A).(\lambda (H1: (arity g c0 t0 a1)).(\lambda (H2: (((eq T t0 (THead (Bind -Abst) u t)) \to (ex3_2 A A (\lambda (a2: A).(\lambda (a3: A).(eq A a1 (AHead -a2 a3)))) (\lambda (a2: A).(\lambda (_: A).(arity g c0 u (asucc g a2)))) -(\lambda (_: A).(\lambda (a3: A).(arity g (CHead c0 (Bind Abst) u) t -a3))))))).(\lambda (a2: A).(\lambda (H3: (leq g a1 a2)).(\lambda (H4: (eq T -t0 (THead (Bind Abst) u t))).(let H5 \def (f_equal T T (\lambda (e: T).e) t0 -(THead (Bind Abst) u t) H4) in (let H6 \def (eq_ind T t0 (\lambda (t1: -T).((eq T t1 (THead (Bind Abst) u t)) \to (ex3_2 A A (\lambda (a3: +(THead (Flat Appl) u0 t0) (\lambda (ee: T).(match ee with [(TSort _) +\Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow +(match k with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I +(THead (Bind Abst) u t) H5) in (False_ind (ex3_2 A A (\lambda (a3: +A).(\lambda (a4: A).(eq A a2 (AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: +A).(arity g c0 u (asucc g a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g +(CHead c0 (Bind Abst) u) t a4)))) H6)))))))))))) (\lambda (c0: C).(\lambda +(u0: T).(\lambda (a0: A).(\lambda (_: (arity g c0 u0 (asucc g a0))).(\lambda +(_: (((eq T u0 (THead (Bind Abst) u t)) \to (ex3_2 A A (\lambda (a1: +A).(\lambda (a2: A).(eq A (asucc g a0) (AHead a1 a2)))) (\lambda (a1: +A).(\lambda (_: A).(arity g c0 u (asucc g a1)))) (\lambda (_: A).(\lambda +(a2: A).(arity g (CHead c0 (Bind Abst) u) t a2))))))).(\lambda (t0: +T).(\lambda (_: (arity g c0 t0 a0)).(\lambda (_: (((eq T t0 (THead (Bind +Abst) u t)) \to (ex3_2 A A (\lambda (a1: A).(\lambda (a2: A).(eq A a0 (AHead +a1 a2)))) (\lambda (a1: A).(\lambda (_: A).(arity g c0 u (asucc g a1)))) +(\lambda (_: A).(\lambda (a2: A).(arity g (CHead c0 (Bind Abst) u) t +a2))))))).(\lambda (H5: (eq T (THead (Flat Cast) u0 t0) (THead (Bind Abst) u +t))).(let H6 \def (eq_ind T (THead (Flat Cast) u0 t0) (\lambda (ee: T).(match +ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k +_ _) \Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat _) +\Rightarrow True])])) I (THead (Bind Abst) u t) H5) in (False_ind (ex3_2 A A +(\lambda (a1: A).(\lambda (a2: A).(eq A a0 (AHead a1 a2)))) (\lambda (a1: +A).(\lambda (_: A).(arity g c0 u (asucc g a1)))) (\lambda (_: A).(\lambda +(a2: A).(arity g (CHead c0 (Bind Abst) u) t a2)))) H6))))))))))) (\lambda +(c0: C).(\lambda (t0: T).(\lambda (a1: A).(\lambda (H1: (arity g c0 t0 +a1)).(\lambda (H2: (((eq T t0 (THead (Bind Abst) u t)) \to (ex3_2 A A +(\lambda (a2: A).(\lambda (a3: A).(eq A a1 (AHead a2 a3)))) (\lambda (a2: +A).(\lambda (_: A).(arity g c0 u (asucc g a2)))) (\lambda (_: A).(\lambda +(a3: A).(arity g (CHead c0 (Bind Abst) u) t a3))))))).(\lambda (a2: +A).(\lambda (H3: (leq g a1 a2)).(\lambda (H4: (eq T t0 (THead (Bind Abst) u +t))).(let H5 \def (f_equal T T (\lambda (e: T).e) t0 (THead (Bind Abst) u t) +H4) in (let H6 \def (eq_ind T t0 (\lambda (t1: T).((eq T t1 (THead (Bind +Abst) u t)) \to (ex3_2 A A (\lambda (a3: A).(\lambda (a4: A).(eq A a1 (AHead +a3 a4)))) (\lambda (a3: A).(\lambda (_: A).(arity g c0 u (asucc g a3)))) +(\lambda (_: A).(\lambda (a4: A).(arity g (CHead c0 (Bind Abst) u) t a4)))))) +H2 (THead (Bind Abst) u t) H5) in (let H7 \def (eq_ind T t0 (\lambda (t1: +T).(arity g c0 t1 a1)) H1 (THead (Bind Abst) u t) H5) in (let H8 \def (H6 +(refl_equal T (THead (Bind Abst) u t))) in (ex3_2_ind A A (\lambda (a3: A).(\lambda (a4: A).(eq A a1 (AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: A).(arity g c0 u (asucc g a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g -(CHead c0 (Bind Abst) u) t a4)))))) H2 (THead (Bind Abst) u t) H5) in (let H7 -\def (eq_ind T t0 (\lambda (t1: T).(arity g c0 t1 a1)) H1 (THead (Bind Abst) -u t) H5) in (let H8 \def (H6 (refl_equal T (THead (Bind Abst) u t))) in -(ex3_2_ind A A (\lambda (a3: A).(\lambda (a4: A).(eq A a1 (AHead a3 a4)))) -(\lambda (a3: A).(\lambda (_: A).(arity g c0 u (asucc g a3)))) (\lambda (_: -A).(\lambda (a4: A).(arity g (CHead c0 (Bind Abst) u) t a4))) (ex3_2 A A -(\lambda (a3: A).(\lambda (a4: A).(eq A a2 (AHead a3 a4)))) (\lambda (a3: -A).(\lambda (_: A).(arity g c0 u (asucc g a3)))) (\lambda (_: A).(\lambda -(a4: A).(arity g (CHead c0 (Bind Abst) u) t a4)))) (\lambda (x0: A).(\lambda -(x1: A).(\lambda (H9: (eq A a1 (AHead x0 x1))).(\lambda (H10: (arity g c0 u -(asucc g x0))).(\lambda (H11: (arity g (CHead c0 (Bind Abst) u) t x1)).(let -H12 \def (eq_ind A a1 (\lambda (a0: A).(leq g a0 a2)) H3 (AHead x0 x1) H9) in -(let H13 \def (eq_ind A a1 (\lambda (a0: A).(arity g c0 (THead (Bind Abst) u -t) a0)) H7 (AHead x0 x1) H9) in (let H_x \def (leq_gen_head1 g x0 x1 a2 H12) -in (let H14 \def H_x in (ex3_2_ind A A (\lambda (a3: A).(\lambda (_: A).(leq -g x0 a3))) (\lambda (_: A).(\lambda (a4: A).(leq g x1 a4))) (\lambda (a3: -A).(\lambda (a4: A).(eq A a2 (AHead a3 a4)))) (ex3_2 A A (\lambda (a3: -A).(\lambda (a4: A).(eq A a2 (AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: +(CHead c0 (Bind Abst) u) t a4))) (ex3_2 A A (\lambda (a3: A).(\lambda (a4: +A).(eq A a2 (AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: A).(arity g c0 u +(asucc g a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g (CHead c0 (Bind +Abst) u) t a4)))) (\lambda (x0: A).(\lambda (x1: A).(\lambda (H9: (eq A a1 +(AHead x0 x1))).(\lambda (H10: (arity g c0 u (asucc g x0))).(\lambda (H11: +(arity g (CHead c0 (Bind Abst) u) t x1)).(let H12 \def (eq_ind A a1 (\lambda +(a0: A).(leq g a0 a2)) H3 (AHead x0 x1) H9) in (let H13 \def (eq_ind A a1 +(\lambda (a0: A).(arity g c0 (THead (Bind Abst) u t) a0)) H7 (AHead x0 x1) +H9) in (let H_x \def (leq_gen_head1 g x0 x1 a2 H12) in (let H14 \def H_x in +(ex3_2_ind A A (\lambda (a3: A).(\lambda (_: A).(leq g x0 a3))) (\lambda (_: +A).(\lambda (a4: A).(leq g x1 a4))) (\lambda (a3: A).(\lambda (a4: A).(eq A +a2 (AHead a3 a4)))) (ex3_2 A A (\lambda (a3: A).(\lambda (a4: A).(eq A a2 +(AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: A).(arity g c0 u (asucc g +a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g (CHead c0 (Bind Abst) u) t +a4)))) (\lambda (x2: A).(\lambda (x3: A).(\lambda (H15: (leq g x0 +x2)).(\lambda (H16: (leq g x1 x3)).(\lambda (H17: (eq A a2 (AHead x2 +x3))).(let H18 \def (f_equal A A (\lambda (e: A).e) a2 (AHead x2 x3) H17) in +(eq_ind_r A (AHead x2 x3) (\lambda (a0: A).(ex3_2 A A (\lambda (a3: +A).(\lambda (a4: A).(eq A a0 (AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: A).(arity g c0 u (asucc g a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g -(CHead c0 (Bind Abst) u) t a4)))) (\lambda (x2: A).(\lambda (x3: A).(\lambda -(H15: (leq g x0 x2)).(\lambda (H16: (leq g x1 x3)).(\lambda (H17: (eq A a2 -(AHead x2 x3))).(let H18 \def (f_equal A A (\lambda (e: A).e) a2 (AHead x2 -x3) H17) in (eq_ind_r A (AHead x2 x3) (\lambda (a0: A).(ex3_2 A A (\lambda -(a3: A).(\lambda (a4: A).(eq A a0 (AHead a3 a4)))) (\lambda (a3: A).(\lambda -(_: A).(arity g c0 u (asucc g a3)))) (\lambda (_: A).(\lambda (a4: A).(arity -g (CHead c0 (Bind Abst) u) t a4))))) (ex3_2_intro A A (\lambda (a3: -A).(\lambda (a4: A).(eq A (AHead x2 x3) (AHead a3 a4)))) (\lambda (a3: -A).(\lambda (_: A).(arity g c0 u (asucc g a3)))) (\lambda (_: A).(\lambda -(a4: A).(arity g (CHead c0 (Bind Abst) u) t a4))) x2 x3 (refl_equal A (AHead -x2 x3)) (arity_repl g c0 u (asucc g x0) H10 (asucc g x2) (asucc_repl g x0 x2 -H15)) (arity_repl g (CHead c0 (Bind Abst) u) t x1 H11 x3 H16)) a2 H18))))))) +(CHead c0 (Bind Abst) u) t a4))))) (ex3_2_intro A A (\lambda (a3: A).(\lambda +(a4: A).(eq A (AHead x2 x3) (AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: +A).(arity g c0 u (asucc g a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g +(CHead c0 (Bind Abst) u) t a4))) x2 x3 (refl_equal A (AHead x2 x3)) +(arity_repl g c0 u (asucc g x0) H10 (asucc g x2) (asucc_repl g x0 x2 H15)) +(arity_repl g (CHead c0 (Bind Abst) u) t x1 H11 x3 H16)) a2 H18))))))) H14)))))))))) H8))))))))))))) c y a H0))) H)))))). -(* COMMENTS -Initial nodes: 4265 -END *) theorem arity_gen_appl: \forall (g: G).(\forall (c: C).(\forall (u: T).(\forall (t: T).(\forall (a2: @@ -707,116 +712,108 @@ a2))))) (\lambda (y: T).(\lambda (H0: (arity g c y a2)).(arity_ind g (\lambda \to (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (a1: A).(arity g c0 t (AHead a1 a)))))))) (\lambda (c0: C).(\lambda (n: nat).(\lambda (H1: (eq T (TSort n) (THead (Flat Appl) u t))).(let H2 \def (eq_ind T (TSort n) (\lambda -(ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) -\Rightarrow True | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow -False])) I (THead (Flat Appl) u t) H1) in (False_ind (ex2 A (\lambda (a1: -A).(arity g c0 u a1)) (\lambda (a1: A).(arity g c0 t (AHead a1 (ASort O -n))))) H2))))) (\lambda (c0: C).(\lambda (d: C).(\lambda (u0: T).(\lambda (i: -nat).(\lambda (_: (getl i c0 (CHead d (Bind Abbr) u0))).(\lambda (a: -A).(\lambda (_: (arity g d u0 a)).(\lambda (_: (((eq T u0 (THead (Flat Appl) -u t)) \to (ex2 A (\lambda (a1: A).(arity g d u a1)) (\lambda (a1: A).(arity g -d t (AHead a1 a))))))).(\lambda (H4: (eq T (TLRef i) (THead (Flat Appl) u -t))).(let H5 \def (eq_ind T (TLRef i) (\lambda (ee: T).(match ee in T return -(\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) -\Rightarrow True | (THead _ _ _) \Rightarrow False])) I (THead (Flat Appl) u -t) H4) in (False_ind (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (a1: -A).(arity g c0 t (AHead a1 a)))) H5))))))))))) (\lambda (c0: C).(\lambda (d: +(ee: T).(match ee with [(TSort _) \Rightarrow True | (TLRef _) \Rightarrow +False | (THead _ _ _) \Rightarrow False])) I (THead (Flat Appl) u t) H1) in +(False_ind (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (a1: A).(arity +g c0 t (AHead a1 (ASort O n))))) H2))))) (\lambda (c0: C).(\lambda (d: +C).(\lambda (u0: T).(\lambda (i: nat).(\lambda (_: (getl i c0 (CHead d (Bind +Abbr) u0))).(\lambda (a: A).(\lambda (_: (arity g d u0 a)).(\lambda (_: (((eq +T u0 (THead (Flat Appl) u t)) \to (ex2 A (\lambda (a1: A).(arity g d u a1)) +(\lambda (a1: A).(arity g d t (AHead a1 a))))))).(\lambda (H4: (eq T (TLRef +i) (THead (Flat Appl) u t))).(let H5 \def (eq_ind T (TLRef i) (\lambda (ee: +T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow True | +(THead _ _ _) \Rightarrow False])) I (THead (Flat Appl) u t) H4) in +(False_ind (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (a1: A).(arity +g c0 t (AHead a1 a)))) H5))))))))))) (\lambda (c0: C).(\lambda (d: C).(\lambda (u0: T).(\lambda (i: nat).(\lambda (_: (getl i c0 (CHead d (Bind Abst) u0))).(\lambda (a: A).(\lambda (_: (arity g d u0 (asucc g a))).(\lambda (_: (((eq T u0 (THead (Flat Appl) u t)) \to (ex2 A (\lambda (a1: A).(arity g d u a1)) (\lambda (a1: A).(arity g d t (AHead a1 (asucc g a)))))))).(\lambda (H4: (eq T (TLRef i) (THead (Flat Appl) u t))).(let H5 \def (eq_ind T (TLRef -i) (\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort -_) \Rightarrow False | (TLRef _) \Rightarrow True | (THead _ _ _) \Rightarrow -False])) I (THead (Flat Appl) u t) H4) in (False_ind (ex2 A (\lambda (a1: -A).(arity g c0 u a1)) (\lambda (a1: A).(arity g c0 t (AHead a1 a)))) -H5))))))))))) (\lambda (b: B).(\lambda (_: (not (eq B b Abst))).(\lambda (c0: -C).(\lambda (u0: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u0 -a1)).(\lambda (_: (((eq T u0 (THead (Flat Appl) u t)) \to (ex2 A (\lambda -(a3: A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 -a1))))))).(\lambda (t0: T).(\lambda (a0: A).(\lambda (_: (arity g (CHead c0 -(Bind b) u0) t0 a0)).(\lambda (_: (((eq T t0 (THead (Flat Appl) u t)) \to -(ex2 A (\lambda (a3: A).(arity g (CHead c0 (Bind b) u0) u a3)) (\lambda (a3: -A).(arity g (CHead c0 (Bind b) u0) t (AHead a3 a0))))))).(\lambda (H6: (eq T -(THead (Bind b) u0 t0) (THead (Flat Appl) u t))).(let H7 \def (eq_ind T -(THead (Bind b) u0 t0) (\lambda (ee: T).(match ee in T return (\lambda (_: -T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | -(THead k _ _) \Rightarrow (match k in K return (\lambda (_: K).Prop) with -[(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I (THead (Flat -Appl) u t) H6) in (False_ind (ex2 A (\lambda (a3: A).(arity g c0 u a3)) -(\lambda (a3: A).(arity g c0 t (AHead a3 a0)))) H7)))))))))))))) (\lambda -(c0: C).(\lambda (u0: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u0 (asucc -g a1))).(\lambda (_: (((eq T u0 (THead (Flat Appl) u t)) \to (ex2 A (\lambda -(a3: A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 (asucc g -a1)))))))).(\lambda (t0: T).(\lambda (a0: A).(\lambda (_: (arity g (CHead c0 -(Bind Abst) u0) t0 a0)).(\lambda (_: (((eq T t0 (THead (Flat Appl) u t)) \to -(ex2 A (\lambda (a3: A).(arity g (CHead c0 (Bind Abst) u0) u a3)) (\lambda -(a3: A).(arity g (CHead c0 (Bind Abst) u0) t (AHead a3 a0))))))).(\lambda -(H5: (eq T (THead (Bind Abst) u0 t0) (THead (Flat Appl) u t))).(let H6 \def -(eq_ind T (THead (Bind Abst) u0 t0) (\lambda (ee: T).(match ee in T return -(\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) -\Rightarrow False | (THead k _ _) \Rightarrow (match k in K return (\lambda -(_: K).Prop) with [(Bind _) \Rightarrow True | (Flat _) \Rightarrow -False])])) I (THead (Flat Appl) u t) H5) in (False_ind (ex2 A (\lambda (a3: -A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 (AHead a1 -a0))))) H6)))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: -A).(\lambda (H1: (arity g c0 u0 a1)).(\lambda (H2: (((eq T u0 (THead (Flat +i) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) +\Rightarrow True | (THead _ _ _) \Rightarrow False])) I (THead (Flat Appl) u +t) H4) in (False_ind (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (a1: +A).(arity g c0 t (AHead a1 a)))) H5))))))))))) (\lambda (b: B).(\lambda (_: +(not (eq B b Abst))).(\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: +A).(\lambda (_: (arity g c0 u0 a1)).(\lambda (_: (((eq T u0 (THead (Flat Appl) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 a1))))))).(\lambda (t0: T).(\lambda (a0: -A).(\lambda (H3: (arity g c0 t0 (AHead a1 a0))).(\lambda (H4: (((eq T t0 -(THead (Flat Appl) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) -(\lambda (a3: A).(arity g c0 t (AHead a3 (AHead a1 a0)))))))).(\lambda (H5: -(eq T (THead (Flat Appl) u0 t0) (THead (Flat Appl) u t))).(let H6 \def -(f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with +A).(\lambda (_: (arity g (CHead c0 (Bind b) u0) t0 a0)).(\lambda (_: (((eq T +t0 (THead (Flat Appl) u t)) \to (ex2 A (\lambda (a3: A).(arity g (CHead c0 +(Bind b) u0) u a3)) (\lambda (a3: A).(arity g (CHead c0 (Bind b) u0) t (AHead +a3 a0))))))).(\lambda (H6: (eq T (THead (Bind b) u0 t0) (THead (Flat Appl) u +t))).(let H7 \def (eq_ind T (THead (Bind b) u0 t0) (\lambda (ee: T).(match ee +with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ +_) \Rightarrow (match k with [(Bind _) \Rightarrow True | (Flat _) +\Rightarrow False])])) I (THead (Flat Appl) u t) H6) in (False_ind (ex2 A +(\lambda (a3: A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 +a0)))) H7)))))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: +A).(\lambda (_: (arity g c0 u0 (asucc g a1))).(\lambda (_: (((eq T u0 (THead +(Flat Appl) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda +(a3: A).(arity g c0 t (AHead a3 (asucc g a1)))))))).(\lambda (t0: T).(\lambda +(a0: A).(\lambda (_: (arity g (CHead c0 (Bind Abst) u0) t0 a0)).(\lambda (_: +(((eq T t0 (THead (Flat Appl) u t)) \to (ex2 A (\lambda (a3: A).(arity g +(CHead c0 (Bind Abst) u0) u a3)) (\lambda (a3: A).(arity g (CHead c0 (Bind +Abst) u0) t (AHead a3 a0))))))).(\lambda (H5: (eq T (THead (Bind Abst) u0 t0) +(THead (Flat Appl) u t))).(let H6 \def (eq_ind T (THead (Bind Abst) u0 t0) +(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) +\Rightarrow False | (THead k _ _) \Rightarrow (match k with [(Bind _) +\Rightarrow True | (Flat _) \Rightarrow False])])) I (THead (Flat Appl) u t) +H5) in (False_ind (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (a3: +A).(arity g c0 t (AHead a3 (AHead a1 a0))))) H6)))))))))))) (\lambda (c0: +C).(\lambda (u0: T).(\lambda (a1: A).(\lambda (H1: (arity g c0 u0 +a1)).(\lambda (H2: (((eq T u0 (THead (Flat Appl) u t)) \to (ex2 A (\lambda +(a3: A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 +a1))))))).(\lambda (t0: T).(\lambda (a0: A).(\lambda (H3: (arity g c0 t0 +(AHead a1 a0))).(\lambda (H4: (((eq T t0 (THead (Flat Appl) u t)) \to (ex2 A +(\lambda (a3: A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 +(AHead a1 a0)))))))).(\lambda (H5: (eq T (THead (Flat Appl) u0 t0) (THead +(Flat Appl) u t))).(let H6 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | (THead _ t1 _) \Rightarrow t1])) (THead (Flat Appl) u0 t0) (THead (Flat Appl) u t) H5) in -((let H7 \def (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: -T).T) with [(TSort _) \Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ -t1) \Rightarrow t1])) (THead (Flat Appl) u0 t0) (THead (Flat Appl) u t) H5) -in (\lambda (H8: (eq T u0 u)).(let H9 \def (eq_ind T t0 (\lambda (t1: T).((eq -T t1 (THead (Flat Appl) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) -(\lambda (a3: A).(arity g c0 t (AHead a3 (AHead a1 a0))))))) H4 t H7) in (let -H10 \def (eq_ind T t0 (\lambda (t1: T).(arity g c0 t1 (AHead a1 a0))) H3 t -H7) in (let H11 \def (eq_ind T u0 (\lambda (t1: T).((eq T t1 (THead (Flat +((let H7 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) +\Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t1) \Rightarrow t1])) +(THead (Flat Appl) u0 t0) (THead (Flat Appl) u t) H5) in (\lambda (H8: (eq T +u0 u)).(let H9 \def (eq_ind T t0 (\lambda (t1: T).((eq T t1 (THead (Flat Appl) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (a3: -A).(arity g c0 t (AHead a3 a1)))))) H2 u H8) in (let H12 \def (eq_ind T u0 -(\lambda (t1: T).(arity g c0 t1 a1)) H1 u H8) in (ex_intro2 A (\lambda (a3: -A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 a0))) a1 H12 -H10))))))) H6)))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda (a: -A).(\lambda (_: (arity g c0 u0 (asucc g a))).(\lambda (_: (((eq T u0 (THead -(Flat Appl) u t)) \to (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda -(a1: A).(arity g c0 t (AHead a1 (asucc g a)))))))).(\lambda (t0: T).(\lambda -(_: (arity g c0 t0 a)).(\lambda (_: (((eq T t0 (THead (Flat Appl) u t)) \to -(ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (a1: A).(arity g c0 t -(AHead a1 a))))))).(\lambda (H5: (eq T (THead (Flat Cast) u0 t0) (THead (Flat -Appl) u t))).(let H6 \def (eq_ind T (THead (Flat Cast) u0 t0) (\lambda (ee: -T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow -False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k in K -return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat f) -\Rightarrow (match f in F return (\lambda (_: F).Prop) with [Appl \Rightarrow -False | Cast \Rightarrow True])])])) I (THead (Flat Appl) u t) H5) in -(False_ind (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (a1: A).(arity -g c0 t (AHead a1 a)))) H6))))))))))) (\lambda (c0: C).(\lambda (t0: -T).(\lambda (a1: A).(\lambda (H1: (arity g c0 t0 a1)).(\lambda (H2: (((eq T -t0 (THead (Flat Appl) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) -(\lambda (a3: A).(arity g c0 t (AHead a3 a1))))))).(\lambda (a0: A).(\lambda -(H3: (leq g a1 a0)).(\lambda (H4: (eq T t0 (THead (Flat Appl) u t))).(let H5 -\def (f_equal T T (\lambda (e: T).e) t0 (THead (Flat Appl) u t) H4) in (let -H6 \def (eq_ind T t0 (\lambda (t1: T).((eq T t1 (THead (Flat Appl) u t)) \to +A).(arity g c0 t (AHead a3 (AHead a1 a0))))))) H4 t H7) in (let H10 \def +(eq_ind T t0 (\lambda (t1: T).(arity g c0 t1 (AHead a1 a0))) H3 t H7) in (let +H11 \def (eq_ind T u0 (\lambda (t1: T).((eq T t1 (THead (Flat Appl) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t -(AHead a3 a1)))))) H2 (THead (Flat Appl) u t) H5) in (let H7 \def (eq_ind T -t0 (\lambda (t1: T).(arity g c0 t1 a1)) H1 (THead (Flat Appl) u t) H5) in -(let H8 \def (H6 (refl_equal T (THead (Flat Appl) u t))) in (ex2_ind A -(\lambda (a3: A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 -a1))) (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 -t (AHead a3 a0)))) (\lambda (x: A).(\lambda (H9: (arity g c0 u x)).(\lambda -(H10: (arity g c0 t (AHead x a1))).(ex_intro2 A (\lambda (a3: A).(arity g c0 -u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 a0))) x H9 (arity_repl g c0 t -(AHead x a1) H10 (AHead x a0) (leq_head g x x (leq_refl g x) a1 a0 H3)))))) -H8))))))))))))) c y a2 H0))) H)))))). -(* COMMENTS -Initial nodes: 2277 -END *) +(AHead a3 a1)))))) H2 u H8) in (let H12 \def (eq_ind T u0 (\lambda (t1: +T).(arity g c0 t1 a1)) H1 u H8) in (ex_intro2 A (\lambda (a3: A).(arity g c0 +u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 a0))) a1 H12 H10))))))) +H6)))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda (a: A).(\lambda (_: +(arity g c0 u0 (asucc g a))).(\lambda (_: (((eq T u0 (THead (Flat Appl) u t)) +\to (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (a1: A).(arity g c0 t +(AHead a1 (asucc g a)))))))).(\lambda (t0: T).(\lambda (_: (arity g c0 t0 +a)).(\lambda (_: (((eq T t0 (THead (Flat Appl) u t)) \to (ex2 A (\lambda (a1: +A).(arity g c0 u a1)) (\lambda (a1: A).(arity g c0 t (AHead a1 +a))))))).(\lambda (H5: (eq T (THead (Flat Cast) u0 t0) (THead (Flat Appl) u +t))).(let H6 \def (eq_ind T (THead (Flat Cast) u0 t0) (\lambda (ee: T).(match +ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k +_ _) \Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat f) +\Rightarrow (match f with [Appl \Rightarrow False | Cast \Rightarrow +True])])])) I (THead (Flat Appl) u t) H5) in (False_ind (ex2 A (\lambda (a1: +A).(arity g c0 u a1)) (\lambda (a1: A).(arity g c0 t (AHead a1 a)))) +H6))))))))))) (\lambda (c0: C).(\lambda (t0: T).(\lambda (a1: A).(\lambda +(H1: (arity g c0 t0 a1)).(\lambda (H2: (((eq T t0 (THead (Flat Appl) u t)) +\to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t +(AHead a3 a1))))))).(\lambda (a0: A).(\lambda (H3: (leq g a1 a0)).(\lambda +(H4: (eq T t0 (THead (Flat Appl) u t))).(let H5 \def (f_equal T T (\lambda +(e: T).e) t0 (THead (Flat Appl) u t) H4) in (let H6 \def (eq_ind T t0 +(\lambda (t1: T).((eq T t1 (THead (Flat Appl) u t)) \to (ex2 A (\lambda (a3: +A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 a1)))))) H2 +(THead (Flat Appl) u t) H5) in (let H7 \def (eq_ind T t0 (\lambda (t1: +T).(arity g c0 t1 a1)) H1 (THead (Flat Appl) u t) H5) in (let H8 \def (H6 +(refl_equal T (THead (Flat Appl) u t))) in (ex2_ind A (\lambda (a3: A).(arity +g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 a1))) (ex2 A (\lambda +(a3: A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 a0)))) +(\lambda (x: A).(\lambda (H9: (arity g c0 u x)).(\lambda (H10: (arity g c0 t +(AHead x a1))).(ex_intro2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (a3: +A).(arity g c0 t (AHead a3 a0))) x H9 (arity_repl g c0 t (AHead x a1) H10 +(AHead x a0) (leq_head g x x (leq_refl g x) a1 a0 H3)))))) H8))))))))))))) c +y a2 H0))) H)))))). theorem arity_gen_cast: \forall (g: G).(\forall (c: C).(\forall (u: T).(\forall (t: T).(\forall (a: @@ -831,16 +828,15 @@ A).(\lambda (H: (arity g c (THead (Flat Cast) u t) a)).(insert_eq T (THead A).((eq T t0 (THead (Flat Cast) u t)) \to (land (arity g c0 u (asucc g a0)) (arity g c0 t a0)))))) (\lambda (c0: C).(\lambda (n: nat).(\lambda (H1: (eq T (TSort n) (THead (Flat Cast) u t))).(let H2 \def (eq_ind T (TSort n) (\lambda -(ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) -\Rightarrow True | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow -False])) I (THead (Flat Cast) u t) H1) in (False_ind (land (arity g c0 u -(asucc g (ASort O n))) (arity g c0 t (ASort O n))) H2))))) (\lambda (c0: -C).(\lambda (d: C).(\lambda (u0: T).(\lambda (i: nat).(\lambda (_: (getl i c0 -(CHead d (Bind Abbr) u0))).(\lambda (a0: A).(\lambda (_: (arity g d u0 -a0)).(\lambda (_: (((eq T u0 (THead (Flat Cast) u t)) \to (land (arity g d u -(asucc g a0)) (arity g d t a0))))).(\lambda (H4: (eq T (TLRef i) (THead (Flat -Cast) u t))).(let H5 \def (eq_ind T (TLRef i) (\lambda (ee: T).(match ee in T -return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) +(ee: T).(match ee with [(TSort _) \Rightarrow True | (TLRef _) \Rightarrow +False | (THead _ _ _) \Rightarrow False])) I (THead (Flat Cast) u t) H1) in +(False_ind (land (arity g c0 u (asucc g (ASort O n))) (arity g c0 t (ASort O +n))) H2))))) (\lambda (c0: C).(\lambda (d: C).(\lambda (u0: T).(\lambda (i: +nat).(\lambda (_: (getl i c0 (CHead d (Bind Abbr) u0))).(\lambda (a0: +A).(\lambda (_: (arity g d u0 a0)).(\lambda (_: (((eq T u0 (THead (Flat Cast) +u t)) \to (land (arity g d u (asucc g a0)) (arity g d t a0))))).(\lambda (H4: +(eq T (TLRef i) (THead (Flat Cast) u t))).(let H5 \def (eq_ind T (TLRef i) +(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow True | (THead _ _ _) \Rightarrow False])) I (THead (Flat Cast) u t) H4) in (False_ind (land (arity g c0 u (asucc g a0)) (arity g c0 t a0)) H5))))))))))) (\lambda (c0: C).(\lambda (d: C).(\lambda (u0: T).(\lambda (i: @@ -848,34 +844,32 @@ nat).(\lambda (_: (getl i c0 (CHead d (Bind Abst) u0))).(\lambda (a0: A).(\lambda (_: (arity g d u0 (asucc g a0))).(\lambda (_: (((eq T u0 (THead (Flat Cast) u t)) \to (land (arity g d u (asucc g (asucc g a0))) (arity g d t (asucc g a0)))))).(\lambda (H4: (eq T (TLRef i) (THead (Flat Cast) u -t))).(let H5 \def (eq_ind T (TLRef i) (\lambda (ee: T).(match ee in T return -(\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) -\Rightarrow True | (THead _ _ _) \Rightarrow False])) I (THead (Flat Cast) u -t) H4) in (False_ind (land (arity g c0 u (asucc g a0)) (arity g c0 t a0)) -H5))))))))))) (\lambda (b: B).(\lambda (_: (not (eq B b Abst))).(\lambda (c0: -C).(\lambda (u0: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u0 -a1)).(\lambda (_: (((eq T u0 (THead (Flat Cast) u t)) \to (land (arity g c0 u -(asucc g a1)) (arity g c0 t a1))))).(\lambda (t0: T).(\lambda (a2: -A).(\lambda (_: (arity g (CHead c0 (Bind b) u0) t0 a2)).(\lambda (_: (((eq T -t0 (THead (Flat Cast) u t)) \to (land (arity g (CHead c0 (Bind b) u0) u -(asucc g a2)) (arity g (CHead c0 (Bind b) u0) t a2))))).(\lambda (H6: (eq T -(THead (Bind b) u0 t0) (THead (Flat Cast) u t))).(let H7 \def (eq_ind T -(THead (Bind b) u0 t0) (\lambda (ee: T).(match ee in T return (\lambda (_: -T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | -(THead k _ _) \Rightarrow (match k in K return (\lambda (_: K).Prop) with -[(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I (THead (Flat -Cast) u t) H6) in (False_ind (land (arity g c0 u (asucc g a2)) (arity g c0 t -a2)) H7)))))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: -A).(\lambda (_: (arity g c0 u0 (asucc g a1))).(\lambda (_: (((eq T u0 (THead -(Flat Cast) u t)) \to (land (arity g c0 u (asucc g (asucc g a1))) (arity g c0 -t (asucc g a1)))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g -(CHead c0 (Bind Abst) u0) t0 a2)).(\lambda (_: (((eq T t0 (THead (Flat Cast) -u t)) \to (land (arity g (CHead c0 (Bind Abst) u0) u (asucc g a2)) (arity g -(CHead c0 (Bind Abst) u0) t a2))))).(\lambda (H5: (eq T (THead (Bind Abst) u0 -t0) (THead (Flat Cast) u t))).(let H6 \def (eq_ind T (THead (Bind Abst) u0 -t0) (\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort -_) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) -\Rightarrow (match k in K return (\lambda (_: K).Prop) with [(Bind _) +t))).(let H5 \def (eq_ind T (TLRef i) (\lambda (ee: T).(match ee with [(TSort +_) \Rightarrow False | (TLRef _) \Rightarrow True | (THead _ _ _) \Rightarrow +False])) I (THead (Flat Cast) u t) H4) in (False_ind (land (arity g c0 u +(asucc g a0)) (arity g c0 t a0)) H5))))))))))) (\lambda (b: B).(\lambda (_: +(not (eq B b Abst))).(\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: +A).(\lambda (_: (arity g c0 u0 a1)).(\lambda (_: (((eq T u0 (THead (Flat +Cast) u t)) \to (land (arity g c0 u (asucc g a1)) (arity g c0 t +a1))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c0 +(Bind b) u0) t0 a2)).(\lambda (_: (((eq T t0 (THead (Flat Cast) u t)) \to +(land (arity g (CHead c0 (Bind b) u0) u (asucc g a2)) (arity g (CHead c0 +(Bind b) u0) t a2))))).(\lambda (H6: (eq T (THead (Bind b) u0 t0) (THead +(Flat Cast) u t))).(let H7 \def (eq_ind T (THead (Bind b) u0 t0) (\lambda +(ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow +False | (THead k _ _) \Rightarrow (match k with [(Bind _) \Rightarrow True | +(Flat _) \Rightarrow False])])) I (THead (Flat Cast) u t) H6) in (False_ind +(land (arity g c0 u (asucc g a2)) (arity g c0 t a2)) H7)))))))))))))) +(\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: A).(\lambda (_: (arity g c0 +u0 (asucc g a1))).(\lambda (_: (((eq T u0 (THead (Flat Cast) u t)) \to (land +(arity g c0 u (asucc g (asucc g a1))) (arity g c0 t (asucc g +a1)))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c0 +(Bind Abst) u0) t0 a2)).(\lambda (_: (((eq T t0 (THead (Flat Cast) u t)) \to +(land (arity g (CHead c0 (Bind Abst) u0) u (asucc g a2)) (arity g (CHead c0 +(Bind Abst) u0) t a2))))).(\lambda (H5: (eq T (THead (Bind Abst) u0 t0) +(THead (Flat Cast) u t))).(let H6 \def (eq_ind T (THead (Bind Abst) u0 t0) +(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) +\Rightarrow False | (THead k _ _) \Rightarrow (match k with [(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I (THead (Flat Cast) u t) H5) in (False_ind (land (arity g c0 u (asucc g (AHead a1 a2))) (arity g c0 t (AHead a1 a2))) H6)))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda @@ -885,51 +879,46 @@ a1))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g c0 t0 (AHead a1 a2))).(\lambda (_: (((eq T t0 (THead (Flat Cast) u t)) \to (land (arity g c0 u (asucc g (AHead a1 a2))) (arity g c0 t (AHead a1 a2)))))).(\lambda (H5: (eq T (THead (Flat Appl) u0 t0) (THead (Flat Cast) u t))).(let H6 \def -(eq_ind T (THead (Flat Appl) u0 t0) (\lambda (ee: T).(match ee in T return -(\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) -\Rightarrow False | (THead k _ _) \Rightarrow (match k in K return (\lambda -(_: K).Prop) with [(Bind _) \Rightarrow False | (Flat f) \Rightarrow (match f -in F return (\lambda (_: F).Prop) with [Appl \Rightarrow True | Cast -\Rightarrow False])])])) I (THead (Flat Cast) u t) H5) in (False_ind (land -(arity g c0 u (asucc g a2)) (arity g c0 t a2)) H6)))))))))))) (\lambda (c0: -C).(\lambda (u0: T).(\lambda (a0: A).(\lambda (H1: (arity g c0 u0 (asucc g -a0))).(\lambda (H2: (((eq T u0 (THead (Flat Cast) u t)) \to (land (arity g c0 -u (asucc g (asucc g a0))) (arity g c0 t (asucc g a0)))))).(\lambda (t0: -T).(\lambda (H3: (arity g c0 t0 a0)).(\lambda (H4: (((eq T t0 (THead (Flat -Cast) u t)) \to (land (arity g c0 u (asucc g a0)) (arity g c0 t -a0))))).(\lambda (H5: (eq T (THead (Flat Cast) u0 t0) (THead (Flat Cast) u -t))).(let H6 \def (f_equal T T (\lambda (e: T).(match e in T return (\lambda -(_: T).T) with [(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | (THead -_ t1 _) \Rightarrow t1])) (THead (Flat Cast) u0 t0) (THead (Flat Cast) u t) -H5) in ((let H7 \def (f_equal T T (\lambda (e: T).(match e in T return -(\lambda (_: T).T) with [(TSort _) \Rightarrow t0 | (TLRef _) \Rightarrow t0 -| (THead _ _ t1) \Rightarrow t1])) (THead (Flat Cast) u0 t0) (THead (Flat -Cast) u t) H5) in (\lambda (H8: (eq T u0 u)).(let H9 \def (eq_ind T t0 -(\lambda (t1: T).((eq T t1 (THead (Flat Cast) u t)) \to (land (arity g c0 u -(asucc g a0)) (arity g c0 t a0)))) H4 t H7) in (let H10 \def (eq_ind T t0 -(\lambda (t1: T).(arity g c0 t1 a0)) H3 t H7) in (let H11 \def (eq_ind T u0 +(eq_ind T (THead (Flat Appl) u0 t0) (\lambda (ee: T).(match ee with [(TSort +_) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) +\Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat f) \Rightarrow +(match f with [Appl \Rightarrow True | Cast \Rightarrow False])])])) I (THead +(Flat Cast) u t) H5) in (False_ind (land (arity g c0 u (asucc g a2)) (arity g +c0 t a2)) H6)))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda (a0: +A).(\lambda (H1: (arity g c0 u0 (asucc g a0))).(\lambda (H2: (((eq T u0 +(THead (Flat Cast) u t)) \to (land (arity g c0 u (asucc g (asucc g a0))) +(arity g c0 t (asucc g a0)))))).(\lambda (t0: T).(\lambda (H3: (arity g c0 t0 +a0)).(\lambda (H4: (((eq T t0 (THead (Flat Cast) u t)) \to (land (arity g c0 +u (asucc g a0)) (arity g c0 t a0))))).(\lambda (H5: (eq T (THead (Flat Cast) +u0 t0) (THead (Flat Cast) u t))).(let H6 \def (f_equal T T (\lambda (e: +T).(match e with [(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | +(THead _ t1 _) \Rightarrow t1])) (THead (Flat Cast) u0 t0) (THead (Flat Cast) +u t) H5) in ((let H7 \def (f_equal T T (\lambda (e: T).(match e with [(TSort +_) \Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t1) \Rightarrow +t1])) (THead (Flat Cast) u0 t0) (THead (Flat Cast) u t) H5) in (\lambda (H8: +(eq T u0 u)).(let H9 \def (eq_ind T t0 (\lambda (t1: T).((eq T t1 (THead +(Flat Cast) u t)) \to (land (arity g c0 u (asucc g a0)) (arity g c0 t a0)))) +H4 t H7) in (let H10 \def (eq_ind T t0 (\lambda (t1: T).(arity g c0 t1 a0)) +H3 t H7) in (let H11 \def (eq_ind T u0 (\lambda (t1: T).((eq T t1 (THead +(Flat Cast) u t)) \to (land (arity g c0 u (asucc g (asucc g a0))) (arity g c0 +t (asucc g a0))))) H2 u H8) in (let H12 \def (eq_ind T u0 (\lambda (t1: +T).(arity g c0 t1 (asucc g a0))) H1 u H8) in (conj (arity g c0 u (asucc g +a0)) (arity g c0 t a0) H12 H10))))))) H6))))))))))) (\lambda (c0: C).(\lambda +(t0: T).(\lambda (a1: A).(\lambda (H1: (arity g c0 t0 a1)).(\lambda (H2: +(((eq T t0 (THead (Flat Cast) u t)) \to (land (arity g c0 u (asucc g a1)) +(arity g c0 t a1))))).(\lambda (a2: A).(\lambda (H3: (leq g a1 a2)).(\lambda +(H4: (eq T t0 (THead (Flat Cast) u t))).(let H5 \def (f_equal T T (\lambda +(e: T).e) t0 (THead (Flat Cast) u t) H4) in (let H6 \def (eq_ind T t0 (\lambda (t1: T).((eq T t1 (THead (Flat Cast) u t)) \to (land (arity g c0 u -(asucc g (asucc g a0))) (arity g c0 t (asucc g a0))))) H2 u H8) in (let H12 -\def (eq_ind T u0 (\lambda (t1: T).(arity g c0 t1 (asucc g a0))) H1 u H8) in -(conj (arity g c0 u (asucc g a0)) (arity g c0 t a0) H12 H10))))))) -H6))))))))))) (\lambda (c0: C).(\lambda (t0: T).(\lambda (a1: A).(\lambda -(H1: (arity g c0 t0 a1)).(\lambda (H2: (((eq T t0 (THead (Flat Cast) u t)) -\to (land (arity g c0 u (asucc g a1)) (arity g c0 t a1))))).(\lambda (a2: -A).(\lambda (H3: (leq g a1 a2)).(\lambda (H4: (eq T t0 (THead (Flat Cast) u -t))).(let H5 \def (f_equal T T (\lambda (e: T).e) t0 (THead (Flat Cast) u t) -H4) in (let H6 \def (eq_ind T t0 (\lambda (t1: T).((eq T t1 (THead (Flat -Cast) u t)) \to (land (arity g c0 u (asucc g a1)) (arity g c0 t a1)))) H2 -(THead (Flat Cast) u t) H5) in (let H7 \def (eq_ind T t0 (\lambda (t1: -T).(arity g c0 t1 a1)) H1 (THead (Flat Cast) u t) H5) in (let H8 \def (H6 -(refl_equal T (THead (Flat Cast) u t))) in (land_ind (arity g c0 u (asucc g -a1)) (arity g c0 t a1) (land (arity g c0 u (asucc g a2)) (arity g c0 t a2)) -(\lambda (H9: (arity g c0 u (asucc g a1))).(\lambda (H10: (arity g c0 t -a1)).(conj (arity g c0 u (asucc g a2)) (arity g c0 t a2) (arity_repl g c0 u -(asucc g a1) H9 (asucc g a2) (asucc_repl g a1 a2 H3)) (arity_repl g c0 t a1 -H10 a2 H3)))) H8))))))))))))) c y a H0))) H)))))). -(* COMMENTS -Initial nodes: 2147 -END *) +(asucc g a1)) (arity g c0 t a1)))) H2 (THead (Flat Cast) u t) H5) in (let H7 +\def (eq_ind T t0 (\lambda (t1: T).(arity g c0 t1 a1)) H1 (THead (Flat Cast) +u t) H5) in (let H8 \def (H6 (refl_equal T (THead (Flat Cast) u t))) in +(land_ind (arity g c0 u (asucc g a1)) (arity g c0 t a1) (land (arity g c0 u +(asucc g a2)) (arity g c0 t a2)) (\lambda (H9: (arity g c0 u (asucc g +a1))).(\lambda (H10: (arity g c0 t a1)).(conj (arity g c0 u (asucc g a2)) +(arity g c0 t a2) (arity_repl g c0 u (asucc g a1) H9 (asucc g a2) (asucc_repl +g a1 a2 H3)) (arity_repl g c0 t a1 H10 a2 H3)))) H8))))))))))))) c y a H0))) +H)))))). theorem arity_gen_appls: \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (vs: TList).(\forall @@ -952,9 +941,6 @@ a2))).(let H_x \def (H (AHead x a2) H3) in (let H4 \def H_x in (ex_ind A (\lambda (a: A).(arity g c t a)) (ex A (\lambda (a: A).(arity g c t a))) (\lambda (x0: A).(\lambda (H5: (arity g c t x0)).(ex_intro A (\lambda (a: A).(arity g c t a)) x0 H5))) H4)))))) H1))))))) vs)))). -(* COMMENTS -Initial nodes: 341 -END *) theorem arity_gen_lift: \forall (g: G).(\forall (c1: C).(\forall (t: T).(\forall (a: A).(\forall (h: @@ -1157,7 +1143,149 @@ A).(\lambda (_: (arity g c t0 a1)).(\lambda (H2: ((\forall (x: nat).(\forall a2)).(\lambda (x: nat).(\lambda (x0: T).(\lambda (H4: (eq T t0 (lift h x x0))).(\lambda (c2: C).(\lambda (H5: (drop h x c c2)).(arity_repl g c2 x0 a1 (H2 x x0 H4 c2 H5) a2 H3))))))))))))) c1 y a H0))))) H))))))). -(* COMMENTS -Initial nodes: 4693 -END *) + +theorem arity_mono: + \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (a1: A).((arity g c +t a1) \to (\forall (a2: A).((arity g c t a2) \to (leq g a1 a2))))))) +\def + \lambda (g: G).(\lambda (c: C).(\lambda (t: T).(\lambda (a1: A).(\lambda (H: +(arity g c t a1)).(arity_ind g (\lambda (c0: C).(\lambda (t0: T).(\lambda (a: +A).(\forall (a2: A).((arity g c0 t0 a2) \to (leq g a a2)))))) (\lambda (c0: +C).(\lambda (n: nat).(\lambda (a2: A).(\lambda (H0: (arity g c0 (TSort n) +a2)).(leq_sym g a2 (ASort O n) (arity_gen_sort g c0 n a2 H0)))))) (\lambda +(c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl +i c0 (CHead d (Bind Abbr) u))).(\lambda (a: A).(\lambda (_: (arity g d u +a)).(\lambda (H2: ((\forall (a2: A).((arity g d u a2) \to (leq g a +a2))))).(\lambda (a2: A).(\lambda (H3: (arity g c0 (TLRef i) a2)).(let H4 +\def (arity_gen_lref g c0 i a2 H3) in (or_ind (ex2_2 C T (\lambda (d0: +C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abbr) u0)))) (\lambda (d0: +C).(\lambda (u0: T).(arity g d0 u0 a2)))) (ex2_2 C T (\lambda (d0: +C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda (d0: +C).(\lambda (u0: T).(arity g d0 u0 (asucc g a2))))) (leq g a a2) (\lambda +(H5: (ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind +Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 +a2))))).(ex2_2_ind C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 +(Bind Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 a2))) +(leq g a a2) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl i c0 +(CHead x0 (Bind Abbr) x1))).(\lambda (H7: (arity g x0 x1 a2)).(let H8 \def +(eq_ind C (CHead d (Bind Abbr) u) (\lambda (c1: C).(getl i c0 c1)) H0 (CHead +x0 (Bind Abbr) x1) (getl_mono c0 (CHead d (Bind Abbr) u) i H0 (CHead x0 (Bind +Abbr) x1) H6)) in (let H9 \def (f_equal C C (\lambda (e: C).(match e with +[(CSort _) \Rightarrow d | (CHead c1 _ _) \Rightarrow c1])) (CHead d (Bind +Abbr) u) (CHead x0 (Bind Abbr) x1) (getl_mono c0 (CHead d (Bind Abbr) u) i H0 +(CHead x0 (Bind Abbr) x1) H6)) in ((let H10 \def (f_equal C T (\lambda (e: +C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) +(CHead d (Bind Abbr) u) (CHead x0 (Bind Abbr) x1) (getl_mono c0 (CHead d +(Bind Abbr) u) i H0 (CHead x0 (Bind Abbr) x1) H6)) in (\lambda (H11: (eq C d +x0)).(let H12 \def (eq_ind_r T x1 (\lambda (t0: T).(getl i c0 (CHead x0 (Bind +Abbr) t0))) H8 u H10) in (let H13 \def (eq_ind_r T x1 (\lambda (t0: T).(arity +g x0 t0 a2)) H7 u H10) in (let H14 \def (eq_ind_r C x0 (\lambda (c1: C).(getl +i c0 (CHead c1 (Bind Abbr) u))) H12 d H11) in (let H15 \def (eq_ind_r C x0 +(\lambda (c1: C).(arity g c1 u a2)) H13 d H11) in (H2 a2 H15))))))) H9))))))) +H5)) (\lambda (H5: (ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 +(CHead d0 (Bind Abst) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 +(asucc g a2)))))).(ex2_2_ind C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 +(CHead d0 (Bind Abst) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 +(asucc g a2)))) (leq g a a2) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: +(getl i c0 (CHead x0 (Bind Abst) x1))).(\lambda (_: (arity g x0 x1 (asucc g +a2))).(let H8 \def (eq_ind C (CHead d (Bind Abbr) u) (\lambda (c1: C).(getl i +c0 c1)) H0 (CHead x0 (Bind Abst) x1) (getl_mono c0 (CHead d (Bind Abbr) u) i +H0 (CHead x0 (Bind Abst) x1) H6)) in (let H9 \def (eq_ind C (CHead d (Bind +Abbr) u) (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | +(CHead _ k _) \Rightarrow (match k with [(Bind b) \Rightarrow (match b with +[Abbr \Rightarrow True | Abst \Rightarrow False | Void \Rightarrow False]) | +(Flat _) \Rightarrow False])])) I (CHead x0 (Bind Abst) x1) (getl_mono c0 +(CHead d (Bind Abbr) u) i H0 (CHead x0 (Bind Abst) x1) H6)) in (False_ind +(leq g a a2) H9))))))) H5)) H4)))))))))))) (\lambda (c0: C).(\lambda (d: +C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c0 (CHead d (Bind +Abst) u))).(\lambda (a: A).(\lambda (_: (arity g d u (asucc g a))).(\lambda +(H2: ((\forall (a2: A).((arity g d u a2) \to (leq g (asucc g a) +a2))))).(\lambda (a2: A).(\lambda (H3: (arity g c0 (TLRef i) a2)).(let H4 +\def (arity_gen_lref g c0 i a2 H3) in (or_ind (ex2_2 C T (\lambda (d0: +C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abbr) u0)))) (\lambda (d0: +C).(\lambda (u0: T).(arity g d0 u0 a2)))) (ex2_2 C T (\lambda (d0: +C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda (d0: +C).(\lambda (u0: T).(arity g d0 u0 (asucc g a2))))) (leq g a a2) (\lambda +(H5: (ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind +Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 +a2))))).(ex2_2_ind C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 +(Bind Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 a2))) +(leq g a a2) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl i c0 +(CHead x0 (Bind Abbr) x1))).(\lambda (_: (arity g x0 x1 a2)).(let H8 \def +(eq_ind C (CHead d (Bind Abst) u) (\lambda (c1: C).(getl i c0 c1)) H0 (CHead +x0 (Bind Abbr) x1) (getl_mono c0 (CHead d (Bind Abst) u) i H0 (CHead x0 (Bind +Abbr) x1) H6)) in (let H9 \def (eq_ind C (CHead d (Bind Abst) u) (\lambda +(ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) +\Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr +\Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat +_) \Rightarrow False])])) I (CHead x0 (Bind Abbr) x1) (getl_mono c0 (CHead d +(Bind Abst) u) i H0 (CHead x0 (Bind Abbr) x1) H6)) in (False_ind (leq g a a2) +H9))))))) H5)) (\lambda (H5: (ex2_2 C T (\lambda (d0: C).(\lambda (u0: +T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda (d0: C).(\lambda (u0: +T).(arity g d0 u0 (asucc g a2)))))).(ex2_2_ind C T (\lambda (d0: C).(\lambda +(u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda (d0: C).(\lambda +(u0: T).(arity g d0 u0 (asucc g a2)))) (leq g a a2) (\lambda (x0: C).(\lambda +(x1: T).(\lambda (H6: (getl i c0 (CHead x0 (Bind Abst) x1))).(\lambda (H7: +(arity g x0 x1 (asucc g a2))).(let H8 \def (eq_ind C (CHead d (Bind Abst) u) +(\lambda (c1: C).(getl i c0 c1)) H0 (CHead x0 (Bind Abst) x1) (getl_mono c0 +(CHead d (Bind Abst) u) i H0 (CHead x0 (Bind Abst) x1) H6)) in (let H9 \def +(f_equal C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow d | (CHead +c1 _ _) \Rightarrow c1])) (CHead d (Bind Abst) u) (CHead x0 (Bind Abst) x1) +(getl_mono c0 (CHead d (Bind Abst) u) i H0 (CHead x0 (Bind Abst) x1) H6)) in +((let H10 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) +\Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) (CHead d (Bind Abst) u) +(CHead x0 (Bind Abst) x1) (getl_mono c0 (CHead d (Bind Abst) u) i H0 (CHead +x0 (Bind Abst) x1) H6)) in (\lambda (H11: (eq C d x0)).(let H12 \def +(eq_ind_r T x1 (\lambda (t0: T).(getl i c0 (CHead x0 (Bind Abst) t0))) H8 u +H10) in (let H13 \def (eq_ind_r T x1 (\lambda (t0: T).(arity g x0 t0 (asucc g +a2))) H7 u H10) in (let H14 \def (eq_ind_r C x0 (\lambda (c1: C).(getl i c0 +(CHead c1 (Bind Abst) u))) H12 d H11) in (let H15 \def (eq_ind_r C x0 +(\lambda (c1: C).(arity g c1 u (asucc g a2))) H13 d H11) in (asucc_inj g a a2 +(H2 (asucc g a2) H15)))))))) H9))))))) H5)) H4)))))))))))) (\lambda (b: +B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c0: C).(\lambda (u: +T).(\lambda (a2: A).(\lambda (_: (arity g c0 u a2)).(\lambda (_: ((\forall +(a3: A).((arity g c0 u a3) \to (leq g a2 a3))))).(\lambda (t0: T).(\lambda +(a3: A).(\lambda (_: (arity g (CHead c0 (Bind b) u) t0 a3)).(\lambda (H4: +((\forall (a4: A).((arity g (CHead c0 (Bind b) u) t0 a4) \to (leq g a3 +a4))))).(\lambda (a0: A).(\lambda (H5: (arity g c0 (THead (Bind b) u t0) +a0)).(let H6 \def (arity_gen_bind b H0 g c0 u t0 a0 H5) in (ex2_ind A +(\lambda (a4: A).(arity g c0 u a4)) (\lambda (_: A).(arity g (CHead c0 (Bind +b) u) t0 a0)) (leq g a3 a0) (\lambda (x: A).(\lambda (_: (arity g c0 u +x)).(\lambda (H8: (arity g (CHead c0 (Bind b) u) t0 a0)).(H4 a0 H8)))) +H6))))))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (a2: A).(\lambda +(_: (arity g c0 u (asucc g a2))).(\lambda (H1: ((\forall (a3: A).((arity g c0 +u a3) \to (leq g (asucc g a2) a3))))).(\lambda (t0: T).(\lambda (a3: +A).(\lambda (_: (arity g (CHead c0 (Bind Abst) u) t0 a3)).(\lambda (H3: +((\forall (a4: A).((arity g (CHead c0 (Bind Abst) u) t0 a4) \to (leq g a3 +a4))))).(\lambda (a0: A).(\lambda (H4: (arity g c0 (THead (Bind Abst) u t0) +a0)).(let H5 \def (arity_gen_abst g c0 u t0 a0 H4) in (ex3_2_ind A A (\lambda +(a4: A).(\lambda (a5: A).(eq A a0 (AHead a4 a5)))) (\lambda (a4: A).(\lambda +(_: A).(arity g c0 u (asucc g a4)))) (\lambda (_: A).(\lambda (a5: A).(arity +g (CHead c0 (Bind Abst) u) t0 a5))) (leq g (AHead a2 a3) a0) (\lambda (x0: +A).(\lambda (x1: A).(\lambda (H6: (eq A a0 (AHead x0 x1))).(\lambda (H7: +(arity g c0 u (asucc g x0))).(\lambda (H8: (arity g (CHead c0 (Bind Abst) u) +t0 x1)).(eq_ind_r A (AHead x0 x1) (\lambda (a: A).(leq g (AHead a2 a3) a)) +(leq_head g a2 x0 (asucc_inj g a2 x0 (H1 (asucc g x0) H7)) a3 x1 (H3 x1 H8)) +a0 H6)))))) H5))))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (a2: +A).(\lambda (_: (arity g c0 u a2)).(\lambda (_: ((\forall (a3: A).((arity g +c0 u a3) \to (leq g a2 a3))))).(\lambda (t0: T).(\lambda (a3: A).(\lambda (_: +(arity g c0 t0 (AHead a2 a3))).(\lambda (H3: ((\forall (a4: A).((arity g c0 +t0 a4) \to (leq g (AHead a2 a3) a4))))).(\lambda (a0: A).(\lambda (H4: (arity +g c0 (THead (Flat Appl) u t0) a0)).(let H5 \def (arity_gen_appl g c0 u t0 a0 +H4) in (ex2_ind A (\lambda (a4: A).(arity g c0 u a4)) (\lambda (a4: A).(arity +g c0 t0 (AHead a4 a0))) (leq g a3 a0) (\lambda (x: A).(\lambda (_: (arity g +c0 u x)).(\lambda (H7: (arity g c0 t0 (AHead x a0))).(ahead_inj_snd g a2 a3 x +a0 (H3 (AHead x a0) H7))))) H5))))))))))))) (\lambda (c0: C).(\lambda (u: +T).(\lambda (a: A).(\lambda (_: (arity g c0 u (asucc g a))).(\lambda (_: +((\forall (a2: A).((arity g c0 u a2) \to (leq g (asucc g a) a2))))).(\lambda +(t0: T).(\lambda (_: (arity g c0 t0 a)).(\lambda (H3: ((\forall (a2: +A).((arity g c0 t0 a2) \to (leq g a a2))))).(\lambda (a2: A).(\lambda (H4: +(arity g c0 (THead (Flat Cast) u t0) a2)).(let H5 \def (arity_gen_cast g c0 u +t0 a2 H4) in (land_ind (arity g c0 u (asucc g a2)) (arity g c0 t0 a2) (leq g +a a2) (\lambda (_: (arity g c0 u (asucc g a2))).(\lambda (H7: (arity g c0 t0 +a2)).(H3 a2 H7))) H5)))))))))))) (\lambda (c0: C).(\lambda (t0: T).(\lambda +(a2: A).(\lambda (_: (arity g c0 t0 a2)).(\lambda (H1: ((\forall (a3: +A).((arity g c0 t0 a3) \to (leq g a2 a3))))).(\lambda (a3: A).(\lambda (H2: +(leq g a2 a3)).(\lambda (a0: A).(\lambda (H3: (arity g c0 t0 a0)).(leq_trans +g a3 a2 (leq_sym g a2 a3 H2) a0 (H1 a0 H3))))))))))) c t a1 H))))). diff --git a/matita/matita/contribs/lambdadelta/basic_1/arity/lift1.ma b/matita/matita/contribs/lambdadelta/basic_1/arity/lift1.ma index 4077a8a1c..5d668d2c2 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/arity/lift1.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/arity/lift1.ma @@ -14,31 +14,32 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/arity/props.ma". +include "basic_1/arity/props.ma". -include "Basic-1/drop1/fwd.ma". +include "basic_1/drop1/fwd.ma". theorem arity_lift1: \forall (g: G).(\forall (a: A).(\forall (c2: C).(\forall (hds: PList).(\forall (c1: C).(\forall (t: T).((drop1 hds c1 c2) \to ((arity g c2 t a) \to (arity g c1 (lift1 hds t) a)))))))) \def - \lambda (g: G).(\lambda (a: A).(\lambda (c2: C).(\lambda (hds: -PList).(PList_ind (\lambda (p: PList).(\forall (c1: C).(\forall (t: -T).((drop1 p c1 c2) \to ((arity g c2 t a) \to (arity g c1 (lift1 p t) a)))))) -(\lambda (c1: C).(\lambda (t: T).(\lambda (H: (drop1 PNil c1 c2)).(\lambda -(H0: (arity g c2 t a)).(let H_y \def (drop1_gen_pnil c1 c2 H) in (eq_ind_r C -c2 (\lambda (c: C).(arity g c t a)) H0 c1 H_y)))))) (\lambda (n: + \lambda (g: G).(\lambda (a: A).(\lambda (c2: C).(\lambda (hds: PList).(let +TMP_2 \def (\lambda (p: PList).(\forall (c1: C).(\forall (t: T).((drop1 p c1 +c2) \to ((arity g c2 t a) \to (let TMP_1 \def (lift1 p t) in (arity g c1 +TMP_1 a))))))) in (let TMP_4 \def (\lambda (c1: C).(\lambda (t: T).(\lambda +(H: (drop1 PNil c1 c2)).(\lambda (H0: (arity g c2 t a)).(let H_y \def +(drop1_gen_pnil c1 c2 H) in (let TMP_3 \def (\lambda (c: C).(arity g c t a)) +in (eq_ind_r C c2 TMP_3 H0 c1 H_y))))))) in (let TMP_13 \def (\lambda (n: nat).(\lambda (n0: nat).(\lambda (p: PList).(\lambda (H: ((\forall (c1: C).(\forall (t: T).((drop1 p c1 c2) \to ((arity g c2 t a) \to (arity g c1 (lift1 p t) a))))))).(\lambda (c1: C).(\lambda (t: T).(\lambda (H0: (drop1 (PCons n n0 p) c1 c2)).(\lambda (H1: (arity g c2 t a)).(let H_x \def -(drop1_gen_pcons c1 c2 p n n0 H0) in (let H2 \def H_x in (ex2_ind C (\lambda -(c3: C).(drop n n0 c1 c3)) (\lambda (c3: C).(drop1 p c3 c2)) (arity g c1 -(lift n n0 (lift1 p t)) a) (\lambda (x: C).(\lambda (H3: (drop n n0 c1 -x)).(\lambda (H4: (drop1 p x c2)).(arity_lift g x (lift1 p t) a (H x t H4 H1) -c1 n n0 H3)))) H2))))))))))) hds)))). -(* COMMENTS -Initial nodes: 289 -END *) +(drop1_gen_pcons c1 c2 p n n0 H0) in (let H2 \def H_x in (let TMP_5 \def +(\lambda (c3: C).(drop n n0 c1 c3)) in (let TMP_6 \def (\lambda (c3: +C).(drop1 p c3 c2)) in (let TMP_7 \def (lift1 p t) in (let TMP_8 \def (lift n +n0 TMP_7) in (let TMP_9 \def (arity g c1 TMP_8 a) in (let TMP_12 \def +(\lambda (x: C).(\lambda (H3: (drop n n0 c1 x)).(\lambda (H4: (drop1 p x +c2)).(let TMP_10 \def (lift1 p t) in (let TMP_11 \def (H x t H4 H1) in +(arity_lift g x TMP_10 a TMP_11 c1 n n0 H3)))))) in (ex2_ind C TMP_5 TMP_6 +TMP_9 TMP_12 H2))))))))))))))))) in (PList_ind TMP_2 TMP_4 TMP_13 hds))))))). diff --git a/matita/matita/contribs/lambdadelta/basic_1/arity/pr3.ma b/matita/matita/contribs/lambdadelta/basic_1/arity/pr3.ma index f8952088e..68308fb93 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/arity/pr3.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/arity/pr3.ma @@ -14,17 +14,17 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/csuba/arity.ma". +include "basic_1/csuba/arity.ma". -include "Basic-1/pr3/defs.ma". +include "basic_1/pr3/fwd.ma". -include "Basic-1/pr1/defs.ma". +include "basic_1/pr1/fwd.ma". -include "Basic-1/wcpr0/getl.ma". +include "basic_1/wcpr0/getl.ma". -include "Basic-1/pr0/fwd.ma". +include "basic_1/pr0/props.ma". -include "Basic-1/arity/subst0.ma". +include "basic_1/arity/subst0.ma". theorem arity_sred_wcpr0_pr0: \forall (g: G).(\forall (c1: C).(\forall (t1: T).(\forall (a: A).((arity g @@ -83,108 +83,93 @@ T).(\lambda (u2: T).(\lambda (H8: (pr0 u1 u2)).(\lambda (H9: (((eq T u1 (t4: T).(\lambda (H10: (pr0 t3 t4)).(\lambda (H11: (((eq T t3 (THead (Bind b) u t)) \to (arity g c2 t4 a2)))).(\lambda (k: K).(\lambda (H12: (eq T (THead k u1 t3) (THead (Bind b) u t))).(let H13 \def (f_equal T K (\lambda (e: -T).(match e in T return (\lambda (_: T).K) with [(TSort _) \Rightarrow k | -(TLRef _) \Rightarrow k | (THead k0 _ _) \Rightarrow k0])) (THead k u1 t3) -(THead (Bind b) u t) H12) in ((let H14 \def (f_equal T T (\lambda (e: -T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow u1 | -(TLRef _) \Rightarrow u1 | (THead _ t0 _) \Rightarrow t0])) (THead k u1 t3) +T).(match e with [(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | (THead +k0 _ _) \Rightarrow k0])) (THead k u1 t3) (THead (Bind b) u t) H12) in ((let +H14 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow u1 +| (TLRef _) \Rightarrow u1 | (THead _ t0 _) \Rightarrow t0])) (THead k u1 t3) (THead (Bind b) u t) H12) in ((let H15 \def (f_equal T T (\lambda (e: -T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow t3 | -(TLRef _) \Rightarrow t3 | (THead _ _ t0) \Rightarrow t0])) (THead k u1 t3) -(THead (Bind b) u t) H12) in (\lambda (H16: (eq T u1 u)).(\lambda (H17: (eq K -k (Bind b))).(eq_ind_r K (Bind b) (\lambda (k0: K).(arity g c2 (THead k0 u2 -t4) a2)) (let H18 \def (eq_ind T t3 (\lambda (t0: T).((eq T t0 (THead (Bind -b) u t)) \to (arity g c2 t4 a2))) H11 t H15) in (let H19 \def (eq_ind T t3 -(\lambda (t0: T).(pr0 t0 t4)) H10 t H15) in (let H20 \def (eq_ind T u1 +T).(match e with [(TSort _) \Rightarrow t3 | (TLRef _) \Rightarrow t3 | +(THead _ _ t0) \Rightarrow t0])) (THead k u1 t3) (THead (Bind b) u t) H12) in +(\lambda (H16: (eq T u1 u)).(\lambda (H17: (eq K k (Bind b))).(eq_ind_r K +(Bind b) (\lambda (k0: K).(arity g c2 (THead k0 u2 t4) a2)) (let H18 \def +(eq_ind T t3 (\lambda (t0: T).((eq T t0 (THead (Bind b) u t)) \to (arity g c2 +t4 a2))) H11 t H15) in (let H19 \def (eq_ind T t3 (\lambda (t0: T).(pr0 t0 +t4)) H10 t H15) in (let H20 \def (eq_ind T u1 (\lambda (t0: T).((eq T t0 +(THead (Bind b) u t)) \to (arity g c2 u2 a2))) H9 u H16) in (let H21 \def +(eq_ind T u1 (\lambda (t0: T).(pr0 t0 u2)) H8 u H16) in (arity_bind g b H0 c2 +u2 a1 (H2 c2 H5 u2 H21) t4 a2 (H4 (CHead c2 (Bind b) u2) (wcpr0_comp c c2 H5 +u u2 H21 (Bind b)) t4 H19)))))) k H17)))) H14)) H13)))))))))))) (\lambda (u0: +T).(\lambda (v1: T).(\lambda (v2: T).(\lambda (_: (pr0 v1 v2)).(\lambda (_: +(((eq T v1 (THead (Bind b) u t)) \to (arity g c2 v2 a2)))).(\lambda (t3: +T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead +(Bind b) u t)) \to (arity g c2 t4 a2)))).(\lambda (H12: (eq T (THead (Flat +Appl) v1 (THead (Bind Abst) u0 t3)) (THead (Bind b) u t))).(let H13 \def +(eq_ind T (THead (Flat Appl) v1 (THead (Bind Abst) u0 t3)) (\lambda (ee: +T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False +| (THead k _ _) \Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat +_) \Rightarrow True])])) I (THead (Bind b) u t) H12) in (False_ind (arity g +c2 (THead (Bind Abbr) v2 t4) a2) H13)))))))))))) (\lambda (b0: B).(\lambda +(_: (not (eq B b0 Abst))).(\lambda (v1: T).(\lambda (v2: T).(\lambda (_: (pr0 +v1 v2)).(\lambda (_: (((eq T v1 (THead (Bind b) u t)) \to (arity g c2 v2 +a2)))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (_: (pr0 u1 u2)).(\lambda +(_: (((eq T u1 (THead (Bind b) u t)) \to (arity g c2 u2 a2)))).(\lambda (t3: +T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead +(Bind b) u t)) \to (arity g c2 t4 a2)))).(\lambda (H15: (eq T (THead (Flat +Appl) v1 (THead (Bind b0) u1 t3)) (THead (Bind b) u t))).(let H16 \def +(eq_ind T (THead (Flat Appl) v1 (THead (Bind b0) u1 t3)) (\lambda (ee: +T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False +| (THead k _ _) \Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat +_) \Rightarrow True])])) I (THead (Bind b) u t) H15) in (False_ind (arity g +c2 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) a2) +H16))))))))))))))))) (\lambda (u1: T).(\lambda (u2: T).(\lambda (H8: (pr0 u1 +u2)).(\lambda (H9: (((eq T u1 (THead (Bind b) u t)) \to (arity g c2 u2 +a2)))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H10: (pr0 t3 t4)).(\lambda +(H11: (((eq T t3 (THead (Bind b) u t)) \to (arity g c2 t4 a2)))).(\lambda (w: +T).(\lambda (H12: (subst0 O u2 t4 w)).(\lambda (H13: (eq T (THead (Bind Abbr) +u1 t3) (THead (Bind b) u t))).(let H14 \def (f_equal T B (\lambda (e: +T).(match e with [(TSort _) \Rightarrow Abbr | (TLRef _) \Rightarrow Abbr | +(THead k _ _) \Rightarrow (match k with [(Bind b0) \Rightarrow b0 | (Flat _) +\Rightarrow Abbr])])) (THead (Bind Abbr) u1 t3) (THead (Bind b) u t) H13) in +((let H15 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) +\Rightarrow u1 | (TLRef _) \Rightarrow u1 | (THead _ t0 _) \Rightarrow t0])) +(THead (Bind Abbr) u1 t3) (THead (Bind b) u t) H13) in ((let H16 \def +(f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow t3 | (TLRef +_) \Rightarrow t3 | (THead _ _ t0) \Rightarrow t0])) (THead (Bind Abbr) u1 +t3) (THead (Bind b) u t) H13) in (\lambda (H17: (eq T u1 u)).(\lambda (H18: +(eq B Abbr b)).(let H19 \def (eq_ind T t3 (\lambda (t0: T).((eq T t0 (THead +(Bind b) u t)) \to (arity g c2 t4 a2))) H11 t H16) in (let H20 \def (eq_ind T +t3 (\lambda (t0: T).(pr0 t0 t4)) H10 t H16) in (let H21 \def (eq_ind T u1 (\lambda (t0: T).((eq T t0 (THead (Bind b) u t)) \to (arity g c2 u2 a2))) H9 -u H16) in (let H21 \def (eq_ind T u1 (\lambda (t0: T).(pr0 t0 u2)) H8 u H16) -in (arity_bind g b H0 c2 u2 a1 (H2 c2 H5 u2 H21) t4 a2 (H4 (CHead c2 (Bind b) -u2) (wcpr0_comp c c2 H5 u u2 H21 (Bind b)) t4 H19)))))) k H17)))) H14)) -H13)))))))))))) (\lambda (u0: T).(\lambda (v1: T).(\lambda (v2: T).(\lambda -(_: (pr0 v1 v2)).(\lambda (_: (((eq T v1 (THead (Bind b) u t)) \to (arity g -c2 v2 a2)))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 -t4)).(\lambda (_: (((eq T t3 (THead (Bind b) u t)) \to (arity g c2 t4 -a2)))).(\lambda (H12: (eq T (THead (Flat Appl) v1 (THead (Bind Abst) u0 t3)) -(THead (Bind b) u t))).(let H13 \def (eq_ind T (THead (Flat Appl) v1 (THead -(Bind Abst) u0 t3)) (\lambda (ee: T).(match ee in T return (\lambda (_: -T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | -(THead k _ _) \Rightarrow (match k in K return (\lambda (_: K).Prop) with -[(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind -b) u t) H12) in (False_ind (arity g c2 (THead (Bind Abbr) v2 t4) a2) -H13)))))))))))) (\lambda (b0: B).(\lambda (_: (not (eq B b0 Abst))).(\lambda -(v1: T).(\lambda (v2: T).(\lambda (_: (pr0 v1 v2)).(\lambda (_: (((eq T v1 -(THead (Bind b) u t)) \to (arity g c2 v2 a2)))).(\lambda (u1: T).(\lambda -(u2: T).(\lambda (_: (pr0 u1 u2)).(\lambda (_: (((eq T u1 (THead (Bind b) u -t)) \to (arity g c2 u2 a2)))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: -(pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead (Bind b) u t)) \to (arity g c2 t4 -a2)))).(\lambda (H15: (eq T (THead (Flat Appl) v1 (THead (Bind b0) u1 t3)) -(THead (Bind b) u t))).(let H16 \def (eq_ind T (THead (Flat Appl) v1 (THead -(Bind b0) u1 t3)) (\lambda (ee: T).(match ee in T return (\lambda (_: -T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | -(THead k _ _) \Rightarrow (match k in K return (\lambda (_: K).Prop) with -[(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind -b) u t) H15) in (False_ind (arity g c2 (THead (Bind b0) u2 (THead (Flat Appl) -(lift (S O) O v2) t4)) a2) H16))))))))))))))))) (\lambda (u1: T).(\lambda -(u2: T).(\lambda (H8: (pr0 u1 u2)).(\lambda (H9: (((eq T u1 (THead (Bind b) u -t)) \to (arity g c2 u2 a2)))).(\lambda (t3: T).(\lambda (t4: T).(\lambda -(H10: (pr0 t3 t4)).(\lambda (H11: (((eq T t3 (THead (Bind b) u t)) \to (arity -g c2 t4 a2)))).(\lambda (w: T).(\lambda (H12: (subst0 O u2 t4 w)).(\lambda -(H13: (eq T (THead (Bind Abbr) u1 t3) (THead (Bind b) u t))).(let H14 \def -(f_equal T B (\lambda (e: T).(match e in T return (\lambda (_: T).B) with -[(TSort _) \Rightarrow Abbr | (TLRef _) \Rightarrow Abbr | (THead k _ _) -\Rightarrow (match k in K return (\lambda (_: K).B) with [(Bind b0) -\Rightarrow b0 | (Flat _) \Rightarrow Abbr])])) (THead (Bind Abbr) u1 t3) -(THead (Bind b) u t) H13) in ((let H15 \def (f_equal T T (\lambda (e: -T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow u1 | -(TLRef _) \Rightarrow u1 | (THead _ t0 _) \Rightarrow t0])) (THead (Bind -Abbr) u1 t3) (THead (Bind b) u t) H13) in ((let H16 \def (f_equal T T -(\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) -\Rightarrow t3 | (TLRef _) \Rightarrow t3 | (THead _ _ t0) \Rightarrow t0])) -(THead (Bind Abbr) u1 t3) (THead (Bind b) u t) H13) in (\lambda (H17: (eq T -u1 u)).(\lambda (H18: (eq B Abbr b)).(let H19 \def (eq_ind T t3 (\lambda (t0: -T).((eq T t0 (THead (Bind b) u t)) \to (arity g c2 t4 a2))) H11 t H16) in -(let H20 \def (eq_ind T t3 (\lambda (t0: T).(pr0 t0 t4)) H10 t H16) in (let -H21 \def (eq_ind T u1 (\lambda (t0: T).((eq T t0 (THead (Bind b) u t)) \to -(arity g c2 u2 a2))) H9 u H17) in (let H22 \def (eq_ind T u1 (\lambda (t0: -T).(pr0 t0 u2)) H8 u H17) in (let H23 \def (eq_ind_r B b (\lambda (b0: -B).((eq T t (THead (Bind b0) u t)) \to (arity g c2 t4 a2))) H19 Abbr H18) in -(let H24 \def (eq_ind_r B b (\lambda (b0: B).((eq T u (THead (Bind b0) u t)) -\to (arity g c2 u2 a2))) H21 Abbr H18) in (let H25 \def (eq_ind_r B b -(\lambda (b0: B).(\forall (c3: C).((wcpr0 (CHead c (Bind b0) u) c3) \to -(\forall (t5: T).((pr0 t t5) \to (arity g c3 t5 a2)))))) H4 Abbr H18) in (let -H26 \def (eq_ind_r B b (\lambda (b0: B).(arity g (CHead c (Bind b0) u) t a2)) -H3 Abbr H18) in (let H27 \def (eq_ind_r B b (\lambda (b0: B).(not (eq B b0 -Abst))) H0 Abbr H18) in (arity_bind g Abbr H27 c2 u2 a1 (H2 c2 H5 u2 H22) w -a2 (arity_subst0 g (CHead c2 (Bind Abbr) u2) t4 a2 (H25 (CHead c2 (Bind Abbr) -u2) (wcpr0_comp c c2 H5 u u2 H22 (Bind Abbr)) t4 H20) c2 u2 O (getl_refl Abbr -c2 u2) w H12)))))))))))))) H15)) H14))))))))))))) (\lambda (b0: B).(\lambda -(H8: (not (eq B b0 Abst))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H9: -(pr0 t3 t4)).(\lambda (H10: (((eq T t3 (THead (Bind b) u t)) \to (arity g c2 -t4 a2)))).(\lambda (u0: T).(\lambda (H11: (eq T (THead (Bind b0) u0 (lift (S -O) O t3)) (THead (Bind b) u t))).(let H12 \def (f_equal T B (\lambda (e: -T).(match e in T return (\lambda (_: T).B) with [(TSort _) \Rightarrow b0 | -(TLRef _) \Rightarrow b0 | (THead k _ _) \Rightarrow (match k in K return -(\lambda (_: K).B) with [(Bind b1) \Rightarrow b1 | (Flat _) \Rightarrow -b0])])) (THead (Bind b0) u0 (lift (S O) O t3)) (THead (Bind b) u t) H11) in -((let H13 \def (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: -T).T) with [(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | (THead _ t0 -_) \Rightarrow t0])) (THead (Bind b0) u0 (lift (S O) O t3)) (THead (Bind b) u -t) H11) in ((let H14 \def (f_equal T T (\lambda (e: T).(match e in T return -(\lambda (_: T).T) with [(TSort _) \Rightarrow ((let rec lref_map (f: ((nat -\to nat))) (d: nat) (t0: T) on t0: T \def (match t0 with [(TSort n) -\Rightarrow (TSort n) | (TLRef i) \Rightarrow (TLRef (match (blt i d) with -[true \Rightarrow i | false \Rightarrow (f i)])) | (THead k u1 t5) -\Rightarrow (THead k (lref_map f d u1) (lref_map f (s k d) t5))]) in -lref_map) (\lambda (x: nat).(plus x (S O))) O t3) | (TLRef _) \Rightarrow -((let rec lref_map (f: ((nat \to nat))) (d: nat) (t0: T) on t0: T \def (match -t0 with [(TSort n) \Rightarrow (TSort n) | (TLRef i) \Rightarrow (TLRef -(match (blt i d) with [true \Rightarrow i | false \Rightarrow (f i)])) | -(THead k u1 t5) \Rightarrow (THead k (lref_map f d u1) (lref_map f (s k d) -t5))]) in lref_map) (\lambda (x: nat).(plus x (S O))) O t3) | (THead _ _ t0) -\Rightarrow t0])) (THead (Bind b0) u0 (lift (S O) O t3)) (THead (Bind b) u t) -H11) in (\lambda (_: (eq T u0 u)).(\lambda (H16: (eq B b0 b)).(let H17 \def -(eq_ind B b0 (\lambda (b1: B).(not (eq B b1 Abst))) H8 b H16) in (let H18 -\def (eq_ind_r T t (\lambda (t0: T).((eq T t3 (THead (Bind b) u t0)) \to +u H17) in (let H22 \def (eq_ind T u1 (\lambda (t0: T).(pr0 t0 u2)) H8 u H17) +in (let H23 \def (eq_ind_r B b (\lambda (b0: B).((eq T t (THead (Bind b0) u +t)) \to (arity g c2 t4 a2))) H19 Abbr H18) in (let H24 \def (eq_ind_r B b +(\lambda (b0: B).((eq T u (THead (Bind b0) u t)) \to (arity g c2 u2 a2))) H21 +Abbr H18) in (let H25 \def (eq_ind_r B b (\lambda (b0: B).(\forall (c3: +C).((wcpr0 (CHead c (Bind b0) u) c3) \to (\forall (t5: T).((pr0 t t5) \to +(arity g c3 t5 a2)))))) H4 Abbr H18) in (let H26 \def (eq_ind_r B b (\lambda +(b0: B).(arity g (CHead c (Bind b0) u) t a2)) H3 Abbr H18) in (let H27 \def +(eq_ind_r B b (\lambda (b0: B).(not (eq B b0 Abst))) H0 Abbr H18) in +(arity_bind g Abbr H27 c2 u2 a1 (H2 c2 H5 u2 H22) w a2 (arity_subst0 g (CHead +c2 (Bind Abbr) u2) t4 a2 (H25 (CHead c2 (Bind Abbr) u2) (wcpr0_comp c c2 H5 u +u2 H22 (Bind Abbr)) t4 H20) c2 u2 O (getl_refl Abbr c2 u2) w +H12)))))))))))))) H15)) H14))))))))))))) (\lambda (b0: B).(\lambda (H8: (not +(eq B b0 Abst))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H9: (pr0 t3 +t4)).(\lambda (H10: (((eq T t3 (THead (Bind b) u t)) \to (arity g c2 t4 +a2)))).(\lambda (u0: T).(\lambda (H11: (eq T (THead (Bind b0) u0 (lift (S O) +O t3)) (THead (Bind b) u t))).(let H12 \def (f_equal T B (\lambda (e: +T).(match e with [(TSort _) \Rightarrow b0 | (TLRef _) \Rightarrow b0 | +(THead k _ _) \Rightarrow (match k with [(Bind b1) \Rightarrow b1 | (Flat _) +\Rightarrow b0])])) (THead (Bind b0) u0 (lift (S O) O t3)) (THead (Bind b) u +t) H11) in ((let H13 \def (f_equal T T (\lambda (e: T).(match e with [(TSort +_) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | (THead _ t0 _) \Rightarrow +t0])) (THead (Bind b0) u0 (lift (S O) O t3)) (THead (Bind b) u t) H11) in +((let H14 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) +\Rightarrow (lref_map (\lambda (x: nat).(plus x (S O))) O t3) | (TLRef _) +\Rightarrow (lref_map (\lambda (x: nat).(plus x (S O))) O t3) | (THead _ _ +t0) \Rightarrow t0])) (THead (Bind b0) u0 (lift (S O) O t3)) (THead (Bind b) +u t) H11) in (\lambda (_: (eq T u0 u)).(\lambda (H16: (eq B b0 b)).(let H17 +\def (eq_ind B b0 (\lambda (b1: B).(not (eq B b1 Abst))) H8 b H16) in (let +H18 \def (eq_ind_r T t (\lambda (t0: T).((eq T t3 (THead (Bind b) u t0)) \to (arity g c2 t4 a2))) H10 (lift (S O) O t3) H14) in (let H19 \def (eq_ind_r T t (\lambda (t0: T).(\forall (c3: C).((wcpr0 (CHead c (Bind b) u) c3) \to (\forall (t5: T).((pr0 t0 t5) \to (arity g c3 t5 a2)))))) H4 (lift (S O) O @@ -196,10 +181,9 @@ t3) H14) in (let H20 \def (eq_ind_r T t (\lambda (t0: T).(arity g (CHead c (\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead (Bind b) u t)) \to (arity g c2 t4 a2)))).(\lambda (u0: T).(\lambda (H10: (eq T (THead (Flat Cast) u0 t3) (THead (Bind b) u t))).(let -H11 \def (eq_ind T (THead (Flat Cast) u0 t3) (\lambda (ee: T).(match ee in T -return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) -\Rightarrow False | (THead k _ _) \Rightarrow (match k in K return (\lambda -(_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow +H11 \def (eq_ind T (THead (Flat Cast) u0 t3) (\lambda (ee: T).(match ee with +[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) +\Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind b) u t) H10) in (False_ind (arity g c2 t4 a2) H11)))))))) y t2 H7))) H6)))))))))))))))) (\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u (asucc g a1))).(\lambda (H1: @@ -223,34 +207,32 @@ T).(\lambda (u2: T).(\lambda (H7: (pr0 u1 u2)).(\lambda (H8: (((eq T u1 T).(\lambda (t4: T).(\lambda (H9: (pr0 t3 t4)).(\lambda (H10: (((eq T t3 (THead (Bind Abst) u t)) \to (arity g c2 t4 (AHead a1 a2))))).(\lambda (k: K).(\lambda (H11: (eq T (THead k u1 t3) (THead (Bind Abst) u t))).(let H12 -\def (f_equal T K (\lambda (e: T).(match e in T return (\lambda (_: T).K) -with [(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | (THead k0 _ _) -\Rightarrow k0])) (THead k u1 t3) (THead (Bind Abst) u t) H11) in ((let H13 -\def (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) -with [(TSort _) \Rightarrow u1 | (TLRef _) \Rightarrow u1 | (THead _ t0 _) -\Rightarrow t0])) (THead k u1 t3) (THead (Bind Abst) u t) H11) in ((let H14 -\def (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) -with [(TSort _) \Rightarrow t3 | (TLRef _) \Rightarrow t3 | (THead _ _ t0) -\Rightarrow t0])) (THead k u1 t3) (THead (Bind Abst) u t) H11) in (\lambda -(H15: (eq T u1 u)).(\lambda (H16: (eq K k (Bind Abst))).(eq_ind_r K (Bind -Abst) (\lambda (k0: K).(arity g c2 (THead k0 u2 t4) (AHead a1 a2))) (let H17 -\def (eq_ind T t3 (\lambda (t0: T).((eq T t0 (THead (Bind Abst) u t)) \to -(arity g c2 t4 (AHead a1 a2)))) H10 t H14) in (let H18 \def (eq_ind T t3 -(\lambda (t0: T).(pr0 t0 t4)) H9 t H14) in (let H19 \def (eq_ind T u1 -(\lambda (t0: T).((eq T t0 (THead (Bind Abst) u t)) \to (arity g c2 u2 (AHead -a1 a2)))) H8 u H15) in (let H20 \def (eq_ind T u1 (\lambda (t0: T).(pr0 t0 -u2)) H7 u H15) in (arity_head g c2 u2 a1 (H1 c2 H4 u2 H20) t4 a2 (H3 (CHead -c2 (Bind Abst) u2) (wcpr0_comp c c2 H4 u u2 H20 (Bind Abst)) t4 H18)))))) k -H16)))) H13)) H12)))))))))))) (\lambda (u0: T).(\lambda (v1: T).(\lambda (v2: -T).(\lambda (_: (pr0 v1 v2)).(\lambda (_: (((eq T v1 (THead (Bind Abst) u t)) -\to (arity g c2 v2 (AHead a1 a2))))).(\lambda (t3: T).(\lambda (t4: -T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead (Bind Abst) u t)) -\to (arity g c2 t4 (AHead a1 a2))))).(\lambda (H11: (eq T (THead (Flat Appl) -v1 (THead (Bind Abst) u0 t3)) (THead (Bind Abst) u t))).(let H12 \def (eq_ind -T (THead (Flat Appl) v1 (THead (Bind Abst) u0 t3)) (\lambda (ee: T).(match ee -in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef -_) \Rightarrow False | (THead k _ _) \Rightarrow (match k in K return -(\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow +\def (f_equal T K (\lambda (e: T).(match e with [(TSort _) \Rightarrow k | +(TLRef _) \Rightarrow k | (THead k0 _ _) \Rightarrow k0])) (THead k u1 t3) +(THead (Bind Abst) u t) H11) in ((let H13 \def (f_equal T T (\lambda (e: +T).(match e with [(TSort _) \Rightarrow u1 | (TLRef _) \Rightarrow u1 | +(THead _ t0 _) \Rightarrow t0])) (THead k u1 t3) (THead (Bind Abst) u t) H11) +in ((let H14 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) +\Rightarrow t3 | (TLRef _) \Rightarrow t3 | (THead _ _ t0) \Rightarrow t0])) +(THead k u1 t3) (THead (Bind Abst) u t) H11) in (\lambda (H15: (eq T u1 +u)).(\lambda (H16: (eq K k (Bind Abst))).(eq_ind_r K (Bind Abst) (\lambda +(k0: K).(arity g c2 (THead k0 u2 t4) (AHead a1 a2))) (let H17 \def (eq_ind T +t3 (\lambda (t0: T).((eq T t0 (THead (Bind Abst) u t)) \to (arity g c2 t4 +(AHead a1 a2)))) H10 t H14) in (let H18 \def (eq_ind T t3 (\lambda (t0: +T).(pr0 t0 t4)) H9 t H14) in (let H19 \def (eq_ind T u1 (\lambda (t0: T).((eq +T t0 (THead (Bind Abst) u t)) \to (arity g c2 u2 (AHead a1 a2)))) H8 u H15) +in (let H20 \def (eq_ind T u1 (\lambda (t0: T).(pr0 t0 u2)) H7 u H15) in +(arity_head g c2 u2 a1 (H1 c2 H4 u2 H20) t4 a2 (H3 (CHead c2 (Bind Abst) u2) +(wcpr0_comp c c2 H4 u u2 H20 (Bind Abst)) t4 H18)))))) k H16)))) H13)) +H12)))))))))))) (\lambda (u0: T).(\lambda (v1: T).(\lambda (v2: T).(\lambda +(_: (pr0 v1 v2)).(\lambda (_: (((eq T v1 (THead (Bind Abst) u t)) \to (arity +g c2 v2 (AHead a1 a2))))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 +t3 t4)).(\lambda (_: (((eq T t3 (THead (Bind Abst) u t)) \to (arity g c2 t4 +(AHead a1 a2))))).(\lambda (H11: (eq T (THead (Flat Appl) v1 (THead (Bind +Abst) u0 t3)) (THead (Bind Abst) u t))).(let H12 \def (eq_ind T (THead (Flat +Appl) v1 (THead (Bind Abst) u0 t3)) (\lambda (ee: T).(match ee with [(TSort +_) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) +\Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind Abst) u t) H11) in (False_ind (arity g c2 (THead (Bind Abbr) v2 t4) (AHead a1 a2)) H12)))))))))))) (\lambda (b: B).(\lambda (_: (not (eq B b Abst))).(\lambda (v1: T).(\lambda (v2: T).(\lambda (_: (pr0 @@ -261,214 +243,194 @@ u2)).(\lambda (_: (((eq T u1 (THead (Bind Abst) u t)) \to (arity g c2 u2 t4)).(\lambda (_: (((eq T t3 (THead (Bind Abst) u t)) \to (arity g c2 t4 (AHead a1 a2))))).(\lambda (H14: (eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) (THead (Bind Abst) u t))).(let H15 \def (eq_ind T (THead (Flat Appl) -v1 (THead (Bind b) u1 t3)) (\lambda (ee: T).(match ee in T return (\lambda -(_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False -| (THead k _ _) \Rightarrow (match k in K return (\lambda (_: K).Prop) with -[(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind -Abst) u t) H14) in (False_ind (arity g c2 (THead (Bind b) u2 (THead (Flat -Appl) (lift (S O) O v2) t4)) (AHead a1 a2)) H15))))))))))))))))) (\lambda -(u1: T).(\lambda (u2: T).(\lambda (_: (pr0 u1 u2)).(\lambda (_: (((eq T u1 -(THead (Bind Abst) u t)) \to (arity g c2 u2 (AHead a1 a2))))).(\lambda (t3: -T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead -(Bind Abst) u t)) \to (arity g c2 t4 (AHead a1 a2))))).(\lambda (w: -T).(\lambda (_: (subst0 O u2 t4 w)).(\lambda (H12: (eq T (THead (Bind Abbr) -u1 t3) (THead (Bind Abst) u t))).(let H13 \def (eq_ind T (THead (Bind Abbr) -u1 t3) (\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with -[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) -\Rightarrow (match k in K return (\lambda (_: K).Prop) with [(Bind b) -\Rightarrow (match b in B return (\lambda (_: B).Prop) with [Abbr \Rightarrow -True | Abst \Rightarrow False | Void \Rightarrow False]) | (Flat _) -\Rightarrow False])])) I (THead (Bind Abst) u t) H12) in (False_ind (arity g -c2 (THead (Bind Abbr) u2 w) (AHead a1 a2)) H13))))))))))))) (\lambda (b: -B).(\lambda (H7: (not (eq B b Abst))).(\lambda (t3: T).(\lambda (t4: -T).(\lambda (_: (pr0 t3 t4)).(\lambda (H9: (((eq T t3 (THead (Bind Abst) u -t)) \to (arity g c2 t4 (AHead a1 a2))))).(\lambda (u0: T).(\lambda (H10: (eq -T (THead (Bind b) u0 (lift (S O) O t3)) (THead (Bind Abst) u t))).(let H11 -\def (f_equal T B (\lambda (e: T).(match e in T return (\lambda (_: T).B) -with [(TSort _) \Rightarrow b | (TLRef _) \Rightarrow b | (THead k _ _) -\Rightarrow (match k in K return (\lambda (_: K).B) with [(Bind b0) +v1 (THead (Bind b) u1 t3)) (\lambda (ee: T).(match ee with [(TSort _) +\Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow +(match k with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I +(THead (Bind Abst) u t) H14) in (False_ind (arity g c2 (THead (Bind b) u2 +(THead (Flat Appl) (lift (S O) O v2) t4)) (AHead a1 a2)) H15))))))))))))))))) +(\lambda (u1: T).(\lambda (u2: T).(\lambda (_: (pr0 u1 u2)).(\lambda (_: +(((eq T u1 (THead (Bind Abst) u t)) \to (arity g c2 u2 (AHead a1 +a2))))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda +(_: (((eq T t3 (THead (Bind Abst) u t)) \to (arity g c2 t4 (AHead a1 +a2))))).(\lambda (w: T).(\lambda (_: (subst0 O u2 t4 w)).(\lambda (H12: (eq T +(THead (Bind Abbr) u1 t3) (THead (Bind Abst) u t))).(let H13 \def (eq_ind T +(THead (Bind Abbr) u1 t3) (\lambda (ee: T).(match ee with [(TSort _) +\Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow +(match k with [(Bind b) \Rightarrow (match b with [Abbr \Rightarrow True | +Abst \Rightarrow False | Void \Rightarrow False]) | (Flat _) \Rightarrow +False])])) I (THead (Bind Abst) u t) H12) in (False_ind (arity g c2 (THead +(Bind Abbr) u2 w) (AHead a1 a2)) H13))))))))))))) (\lambda (b: B).(\lambda +(H7: (not (eq B b Abst))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 +t3 t4)).(\lambda (H9: (((eq T t3 (THead (Bind Abst) u t)) \to (arity g c2 t4 +(AHead a1 a2))))).(\lambda (u0: T).(\lambda (H10: (eq T (THead (Bind b) u0 +(lift (S O) O t3)) (THead (Bind Abst) u t))).(let H11 \def (f_equal T B +(\lambda (e: T).(match e with [(TSort _) \Rightarrow b | (TLRef _) +\Rightarrow b | (THead k _ _) \Rightarrow (match k with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow b])])) (THead (Bind b) u0 (lift (S O) O t3)) (THead (Bind Abst) u t) H10) in ((let H12 \def (f_equal T T (\lambda (e: -T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow u0 | -(TLRef _) \Rightarrow u0 | (THead _ t0 _) \Rightarrow t0])) (THead (Bind b) -u0 (lift (S O) O t3)) (THead (Bind Abst) u t) H10) in ((let H13 \def (f_equal -T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) -\Rightarrow ((let rec lref_map (f: ((nat \to nat))) (d: nat) (t0: T) on t0: T -\def (match t0 with [(TSort n) \Rightarrow (TSort n) | (TLRef i) \Rightarrow -(TLRef (match (blt i d) with [true \Rightarrow i | false \Rightarrow (f i)])) -| (THead k u1 t5) \Rightarrow (THead k (lref_map f d u1) (lref_map f (s k d) -t5))]) in lref_map) (\lambda (x: nat).(plus x (S O))) O t3) | (TLRef _) -\Rightarrow ((let rec lref_map (f: ((nat \to nat))) (d: nat) (t0: T) on t0: T -\def (match t0 with [(TSort n) \Rightarrow (TSort n) | (TLRef i) \Rightarrow -(TLRef (match (blt i d) with [true \Rightarrow i | false \Rightarrow (f i)])) -| (THead k u1 t5) \Rightarrow (THead k (lref_map f d u1) (lref_map f (s k d) -t5))]) in lref_map) (\lambda (x: nat).(plus x (S O))) O t3) | (THead _ _ t0) -\Rightarrow t0])) (THead (Bind b) u0 (lift (S O) O t3)) (THead (Bind Abst) u -t) H10) in (\lambda (_: (eq T u0 u)).(\lambda (H15: (eq B b Abst)).(let H16 -\def (eq_ind B b (\lambda (b0: B).(not (eq B b0 Abst))) H7 Abst H15) in (let -H17 \def (eq_ind_r T t (\lambda (t0: T).((eq T t3 (THead (Bind Abst) u t0)) -\to (arity g c2 t4 (AHead a1 a2)))) H9 (lift (S O) O t3) H13) in (let H18 -\def (eq_ind_r T t (\lambda (t0: T).(\forall (c3: C).((wcpr0 (CHead c (Bind -Abst) u) c3) \to (\forall (t5: T).((pr0 t0 t5) \to (arity g c3 t5 a2)))))) H3 -(lift (S O) O t3) H13) in (let H19 \def (eq_ind_r T t (\lambda (t0: T).(arity -g (CHead c (Bind Abst) u) t0 a2)) H2 (lift (S O) O t3) H13) in (let H20 \def -(match (H16 (refl_equal B Abst)) in False return (\lambda (_: False).(arity g -c2 t4 (AHead a1 a2))) with []) in H20)))))))) H12)) H11)))))))))) (\lambda -(t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 -(THead (Bind Abst) u t)) \to (arity g c2 t4 (AHead a1 a2))))).(\lambda (u0: -T).(\lambda (H9: (eq T (THead (Flat Cast) u0 t3) (THead (Bind Abst) u -t))).(let H10 \def (eq_ind T (THead (Flat Cast) u0 t3) (\lambda (ee: -T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow -False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k in K -return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) -\Rightarrow True])])) I (THead (Bind Abst) u t) H9) in (False_ind (arity g c2 -t4 (AHead a1 a2)) H10)))))))) y t2 H6))) H5)))))))))))))) (\lambda (c: -C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda -(H1: ((\forall (c2: C).((wcpr0 c c2) \to (\forall (t2: T).((pr0 u t2) \to -(arity g c2 t2 a1))))))).(\lambda (t: T).(\lambda (a2: A).(\lambda (H2: -(arity g c t (AHead a1 a2))).(\lambda (H3: ((\forall (c2: C).((wcpr0 c c2) -\to (\forall (t2: T).((pr0 t t2) \to (arity g c2 t2 (AHead a1 -a2)))))))).(\lambda (c2: C).(\lambda (H4: (wcpr0 c c2)).(\lambda (t2: -T).(\lambda (H5: (pr0 (THead (Flat Appl) u t) t2)).(insert_eq T (THead (Flat -Appl) u t) (\lambda (t0: T).(pr0 t0 t2)) (\lambda (_: T).(arity g c2 t2 a2)) -(\lambda (y: T).(\lambda (H6: (pr0 y t2)).(pr0_ind (\lambda (t0: T).(\lambda -(t3: T).((eq T t0 (THead (Flat Appl) u t)) \to (arity g c2 t3 a2)))) (\lambda -(t0: T).(\lambda (H7: (eq T t0 (THead (Flat Appl) u t))).(let H8 \def -(f_equal T T (\lambda (e: T).e) t0 (THead (Flat Appl) u t) H7) in (eq_ind_r T -(THead (Flat Appl) u t) (\lambda (t3: T).(arity g c2 t3 a2)) (arity_appl g c2 -u a1 (H1 c2 H4 u (pr0_refl u)) t a2 (H3 c2 H4 t (pr0_refl t))) t0 H8)))) -(\lambda (u1: T).(\lambda (u2: T).(\lambda (H7: (pr0 u1 u2)).(\lambda (H8: -(((eq T u1 (THead (Flat Appl) u t)) \to (arity g c2 u2 a2)))).(\lambda (t3: -T).(\lambda (t4: T).(\lambda (H9: (pr0 t3 t4)).(\lambda (H10: (((eq T t3 -(THead (Flat Appl) u t)) \to (arity g c2 t4 a2)))).(\lambda (k: K).(\lambda -(H11: (eq T (THead k u1 t3) (THead (Flat Appl) u t))).(let H12 \def (f_equal -T K (\lambda (e: T).(match e in T return (\lambda (_: T).K) with [(TSort _) -\Rightarrow k | (TLRef _) \Rightarrow k | (THead k0 _ _) \Rightarrow k0])) -(THead k u1 t3) (THead (Flat Appl) u t) H11) in ((let H13 \def (f_equal T T -(\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) -\Rightarrow u1 | (TLRef _) \Rightarrow u1 | (THead _ t0 _) \Rightarrow t0])) -(THead k u1 t3) (THead (Flat Appl) u t) H11) in ((let H14 \def (f_equal T T -(\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) -\Rightarrow t3 | (TLRef _) \Rightarrow t3 | (THead _ _ t0) \Rightarrow t0])) -(THead k u1 t3) (THead (Flat Appl) u t) H11) in (\lambda (H15: (eq T u1 -u)).(\lambda (H16: (eq K k (Flat Appl))).(eq_ind_r K (Flat Appl) (\lambda -(k0: K).(arity g c2 (THead k0 u2 t4) a2)) (let H17 \def (eq_ind T t3 (\lambda -(t0: T).((eq T t0 (THead (Flat Appl) u t)) \to (arity g c2 t4 a2))) H10 t -H14) in (let H18 \def (eq_ind T t3 (\lambda (t0: T).(pr0 t0 t4)) H9 t H14) in -(let H19 \def (eq_ind T u1 (\lambda (t0: T).((eq T t0 (THead (Flat Appl) u -t)) \to (arity g c2 u2 a2))) H8 u H15) in (let H20 \def (eq_ind T u1 (\lambda -(t0: T).(pr0 t0 u2)) H7 u H15) in (arity_appl g c2 u2 a1 (H1 c2 H4 u2 H20) t4 -a2 (H3 c2 H4 t4 H18)))))) k H16)))) H13)) H12)))))))))))) (\lambda (u0: -T).(\lambda (v1: T).(\lambda (v2: T).(\lambda (H7: (pr0 v1 v2)).(\lambda (H8: -(((eq T v1 (THead (Flat Appl) u t)) \to (arity g c2 v2 a2)))).(\lambda (t3: -T).(\lambda (t4: T).(\lambda (H9: (pr0 t3 t4)).(\lambda (H10: (((eq T t3 -(THead (Flat Appl) u t)) \to (arity g c2 t4 a2)))).(\lambda (H11: (eq T -(THead (Flat Appl) v1 (THead (Bind Abst) u0 t3)) (THead (Flat Appl) u -t))).(let H12 \def (f_equal T T (\lambda (e: T).(match e in T return (\lambda -(_: T).T) with [(TSort _) \Rightarrow v1 | (TLRef _) \Rightarrow v1 | (THead -_ t0 _) \Rightarrow t0])) (THead (Flat Appl) v1 (THead (Bind Abst) u0 t3)) -(THead (Flat Appl) u t) H11) in ((let H13 \def (f_equal T T (\lambda (e: -T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow (THead -(Bind Abst) u0 t3) | (TLRef _) \Rightarrow (THead (Bind Abst) u0 t3) | (THead -_ _ t0) \Rightarrow t0])) (THead (Flat Appl) v1 (THead (Bind Abst) u0 t3)) -(THead (Flat Appl) u t) H11) in (\lambda (H14: (eq T v1 u)).(let H15 \def -(eq_ind T v1 (\lambda (t0: T).((eq T t0 (THead (Flat Appl) u t)) \to (arity g -c2 v2 a2))) H8 u H14) in (let H16 \def (eq_ind T v1 (\lambda (t0: T).(pr0 t0 -v2)) H7 u H14) in (let H17 \def (eq_ind_r T t (\lambda (t0: T).((eq T t3 -(THead (Flat Appl) u t0)) \to (arity g c2 t4 a2))) H10 (THead (Bind Abst) u0 -t3) H13) in (let H18 \def (eq_ind_r T t (\lambda (t0: T).((eq T u (THead -(Flat Appl) u t0)) \to (arity g c2 v2 a2))) H15 (THead (Bind Abst) u0 t3) -H13) in (let H19 \def (eq_ind_r T t (\lambda (t0: T).(\forall (c3: C).((wcpr0 -c c3) \to (\forall (t5: T).((pr0 t0 t5) \to (arity g c3 t5 (AHead a1 -a2))))))) H3 (THead (Bind Abst) u0 t3) H13) in (let H20 \def (eq_ind_r T t -(\lambda (t0: T).(arity g c t0 (AHead a1 a2))) H2 (THead (Bind Abst) u0 t3) -H13) in (let H21 \def (H1 c2 H4 v2 H16) in (let H22 \def (H19 c2 H4 (THead -(Bind Abst) u0 t4) (pr0_comp u0 u0 (pr0_refl u0) t3 t4 H9 (Bind Abst))) in -(let H23 \def (arity_gen_abst g c2 u0 t4 (AHead a1 a2) H22) in (ex3_2_ind A A -(\lambda (a3: A).(\lambda (a4: A).(eq A (AHead a1 a2) (AHead a3 a4)))) -(\lambda (a3: A).(\lambda (_: A).(arity g c2 u0 (asucc g a3)))) (\lambda (_: -A).(\lambda (a4: A).(arity g (CHead c2 (Bind Abst) u0) t4 a4))) (arity g c2 -(THead (Bind Abbr) v2 t4) a2) (\lambda (x0: A).(\lambda (x1: A).(\lambda -(H24: (eq A (AHead a1 a2) (AHead x0 x1))).(\lambda (H25: (arity g c2 u0 -(asucc g x0))).(\lambda (H26: (arity g (CHead c2 (Bind Abst) u0) t4 x1)).(let -H27 \def (f_equal A A (\lambda (e: A).(match e in A return (\lambda (_: A).A) -with [(ASort _ _) \Rightarrow a1 | (AHead a0 _) \Rightarrow a0])) (AHead a1 -a2) (AHead x0 x1) H24) in ((let H28 \def (f_equal A A (\lambda (e: A).(match -e in A return (\lambda (_: A).A) with [(ASort _ _) \Rightarrow a2 | (AHead _ -a0) \Rightarrow a0])) (AHead a1 a2) (AHead x0 x1) H24) in (\lambda (H29: (eq -A a1 x0)).(let H30 \def (eq_ind_r A x1 (\lambda (a0: A).(arity g (CHead c2 -(Bind Abst) u0) t4 a0)) H26 a2 H28) in (let H31 \def (eq_ind_r A x0 (\lambda -(a0: A).(arity g c2 u0 (asucc g a0))) H25 a1 H29) in (arity_bind g Abbr -not_abbr_abst c2 v2 a1 H21 t4 a2 (csuba_arity g (CHead c2 (Bind Abst) u0) t4 -a2 H30 (CHead c2 (Bind Abbr) v2) (csuba_abst g c2 c2 (csuba_refl g c2) u0 a1 -H31 v2 H21))))))) H27))))))) H23)))))))))))) H12)))))))))))) (\lambda (b: -B).(\lambda (H7: (not (eq B b Abst))).(\lambda (v1: T).(\lambda (v2: -T).(\lambda (H8: (pr0 v1 v2)).(\lambda (H9: (((eq T v1 (THead (Flat Appl) u -t)) \to (arity g c2 v2 a2)))).(\lambda (u1: T).(\lambda (u2: T).(\lambda -(H10: (pr0 u1 u2)).(\lambda (H11: (((eq T u1 (THead (Flat Appl) u t)) \to -(arity g c2 u2 a2)))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H12: (pr0 -t3 t4)).(\lambda (H13: (((eq T t3 (THead (Flat Appl) u t)) \to (arity g c2 t4 -a2)))).(\lambda (H14: (eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) -(THead (Flat Appl) u t))).(let H15 \def (f_equal T T (\lambda (e: T).(match e -in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow v1 | (TLRef _) -\Rightarrow v1 | (THead _ t0 _) \Rightarrow t0])) (THead (Flat Appl) v1 -(THead (Bind b) u1 t3)) (THead (Flat Appl) u t) H14) in ((let H16 \def -(f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with -[(TSort _) \Rightarrow (THead (Bind b) u1 t3) | (TLRef _) \Rightarrow (THead -(Bind b) u1 t3) | (THead _ _ t0) \Rightarrow t0])) (THead (Flat Appl) v1 -(THead (Bind b) u1 t3)) (THead (Flat Appl) u t) H14) in (\lambda (H17: (eq T -v1 u)).(let H18 \def (eq_ind T v1 (\lambda (t0: T).((eq T t0 (THead (Flat -Appl) u t)) \to (arity g c2 v2 a2))) H9 u H17) in (let H19 \def (eq_ind T v1 -(\lambda (t0: T).(pr0 t0 v2)) H8 u H17) in (let H20 \def (eq_ind_r T t -(\lambda (t0: T).((eq T t3 (THead (Flat Appl) u t0)) \to (arity g c2 t4 a2))) -H13 (THead (Bind b) u1 t3) H16) in (let H21 \def (eq_ind_r T t (\lambda (t0: -T).((eq T u1 (THead (Flat Appl) u t0)) \to (arity g c2 u2 a2))) H11 (THead -(Bind b) u1 t3) H16) in (let H22 \def (eq_ind_r T t (\lambda (t0: T).((eq T u -(THead (Flat Appl) u t0)) \to (arity g c2 v2 a2))) H18 (THead (Bind b) u1 t3) -H16) in (let H23 \def (eq_ind_r T t (\lambda (t0: T).(\forall (c3: C).((wcpr0 -c c3) \to (\forall (t5: T).((pr0 t0 t5) \to (arity g c3 t5 (AHead a1 -a2))))))) H3 (THead (Bind b) u1 t3) H16) in (let H24 \def (eq_ind_r T t -(\lambda (t0: T).(arity g c t0 (AHead a1 a2))) H2 (THead (Bind b) u1 t3) H16) -in (let H25 \def (H1 c2 H4 v2 H19) in (let H26 \def (H23 c2 H4 (THead (Bind -b) u2 t4) (pr0_comp u1 u2 H10 t3 t4 H12 (Bind b))) in (let H27 \def -(arity_gen_bind b H7 g c2 u2 t4 (AHead a1 a2) H26) in (ex2_ind A (\lambda -(a3: A).(arity g c2 u2 a3)) (\lambda (_: A).(arity g (CHead c2 (Bind b) u2) -t4 (AHead a1 a2))) (arity g c2 (THead (Bind b) u2 (THead (Flat Appl) (lift (S -O) O v2) t4)) a2) (\lambda (x: A).(\lambda (H28: (arity g c2 u2 x)).(\lambda -(H29: (arity g (CHead c2 (Bind b) u2) t4 (AHead a1 a2))).(arity_bind g b H7 -c2 u2 x H28 (THead (Flat Appl) (lift (S O) O v2) t4) a2 (arity_appl g (CHead -c2 (Bind b) u2) (lift (S O) O v2) a1 (arity_lift g c2 v2 a1 H25 (CHead c2 -(Bind b) u2) (S O) O (drop_drop (Bind b) O c2 c2 (drop_refl c2) u2)) t4 a2 -H29))))) H27))))))))))))) H15))))))))))))))))) (\lambda (u1: T).(\lambda (u2: -T).(\lambda (_: (pr0 u1 u2)).(\lambda (_: (((eq T u1 (THead (Flat Appl) u t)) -\to (arity g c2 u2 a2)))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 -t3 t4)).(\lambda (_: (((eq T t3 (THead (Flat Appl) u t)) \to (arity g c2 t4 -a2)))).(\lambda (w: T).(\lambda (_: (subst0 O u2 t4 w)).(\lambda (H12: (eq T -(THead (Bind Abbr) u1 t3) (THead (Flat Appl) u t))).(let H13 \def (eq_ind T -(THead (Bind Abbr) u1 t3) (\lambda (ee: T).(match ee in T return (\lambda (_: -T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | -(THead k _ _) \Rightarrow (match k in K return (\lambda (_: K).Prop) with -[(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I (THead (Flat -Appl) u t) H12) in (False_ind (arity g c2 (THead (Bind Abbr) u2 w) a2) +T).(match e with [(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | +(THead _ t0 _) \Rightarrow t0])) (THead (Bind b) u0 (lift (S O) O t3)) (THead +(Bind Abst) u t) H10) in ((let H13 \def (f_equal T T (\lambda (e: T).(match e +with [(TSort _) \Rightarrow (lref_map (\lambda (x: nat).(plus x (S O))) O t3) +| (TLRef _) \Rightarrow (lref_map (\lambda (x: nat).(plus x (S O))) O t3) | +(THead _ _ t0) \Rightarrow t0])) (THead (Bind b) u0 (lift (S O) O t3)) (THead +(Bind Abst) u t) H10) in (\lambda (_: (eq T u0 u)).(\lambda (H15: (eq B b +Abst)).(let H16 \def (eq_ind B b (\lambda (b0: B).(not (eq B b0 Abst))) H7 +Abst H15) in (let H17 \def (eq_ind_r T t (\lambda (t0: T).((eq T t3 (THead +(Bind Abst) u t0)) \to (arity g c2 t4 (AHead a1 a2)))) H9 (lift (S O) O t3) +H13) in (let H18 \def (eq_ind_r T t (\lambda (t0: T).(\forall (c3: C).((wcpr0 +(CHead c (Bind Abst) u) c3) \to (\forall (t5: T).((pr0 t0 t5) \to (arity g c3 +t5 a2)))))) H3 (lift (S O) O t3) H13) in (let H19 \def (eq_ind_r T t (\lambda +(t0: T).(arity g (CHead c (Bind Abst) u) t0 a2)) H2 (lift (S O) O t3) H13) in +(let H20 \def (match (H16 (refl_equal B Abst)) in False with []) in +H20)))))))) H12)) H11)))))))))) (\lambda (t3: T).(\lambda (t4: T).(\lambda +(_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead (Bind Abst) u t)) \to (arity +g c2 t4 (AHead a1 a2))))).(\lambda (u0: T).(\lambda (H9: (eq T (THead (Flat +Cast) u0 t3) (THead (Bind Abst) u t))).(let H10 \def (eq_ind T (THead (Flat +Cast) u0 t3) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | +(TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k with [(Bind +_) \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind Abst) u +t) H9) in (False_ind (arity g c2 t4 (AHead a1 a2)) H10)))))))) y t2 H6))) +H5)))))))))))))) (\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda +(_: (arity g c u a1)).(\lambda (H1: ((\forall (c2: C).((wcpr0 c c2) \to +(\forall (t2: T).((pr0 u t2) \to (arity g c2 t2 a1))))))).(\lambda (t: +T).(\lambda (a2: A).(\lambda (H2: (arity g c t (AHead a1 a2))).(\lambda (H3: +((\forall (c2: C).((wcpr0 c c2) \to (\forall (t2: T).((pr0 t t2) \to (arity g +c2 t2 (AHead a1 a2)))))))).(\lambda (c2: C).(\lambda (H4: (wcpr0 c +c2)).(\lambda (t2: T).(\lambda (H5: (pr0 (THead (Flat Appl) u t) +t2)).(insert_eq T (THead (Flat Appl) u t) (\lambda (t0: T).(pr0 t0 t2)) +(\lambda (_: T).(arity g c2 t2 a2)) (\lambda (y: T).(\lambda (H6: (pr0 y +t2)).(pr0_ind (\lambda (t0: T).(\lambda (t3: T).((eq T t0 (THead (Flat Appl) +u t)) \to (arity g c2 t3 a2)))) (\lambda (t0: T).(\lambda (H7: (eq T t0 +(THead (Flat Appl) u t))).(let H8 \def (f_equal T T (\lambda (e: T).e) t0 +(THead (Flat Appl) u t) H7) in (eq_ind_r T (THead (Flat Appl) u t) (\lambda +(t3: T).(arity g c2 t3 a2)) (arity_appl g c2 u a1 (H1 c2 H4 u (pr0_refl u)) t +a2 (H3 c2 H4 t (pr0_refl t))) t0 H8)))) (\lambda (u1: T).(\lambda (u2: +T).(\lambda (H7: (pr0 u1 u2)).(\lambda (H8: (((eq T u1 (THead (Flat Appl) u +t)) \to (arity g c2 u2 a2)))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H9: +(pr0 t3 t4)).(\lambda (H10: (((eq T t3 (THead (Flat Appl) u t)) \to (arity g +c2 t4 a2)))).(\lambda (k: K).(\lambda (H11: (eq T (THead k u1 t3) (THead +(Flat Appl) u t))).(let H12 \def (f_equal T K (\lambda (e: T).(match e with +[(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | (THead k0 _ _) +\Rightarrow k0])) (THead k u1 t3) (THead (Flat Appl) u t) H11) in ((let H13 +\def (f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow u1 | +(TLRef _) \Rightarrow u1 | (THead _ t0 _) \Rightarrow t0])) (THead k u1 t3) +(THead (Flat Appl) u t) H11) in ((let H14 \def (f_equal T T (\lambda (e: +T).(match e with [(TSort _) \Rightarrow t3 | (TLRef _) \Rightarrow t3 | +(THead _ _ t0) \Rightarrow t0])) (THead k u1 t3) (THead (Flat Appl) u t) H11) +in (\lambda (H15: (eq T u1 u)).(\lambda (H16: (eq K k (Flat Appl))).(eq_ind_r +K (Flat Appl) (\lambda (k0: K).(arity g c2 (THead k0 u2 t4) a2)) (let H17 +\def (eq_ind T t3 (\lambda (t0: T).((eq T t0 (THead (Flat Appl) u t)) \to +(arity g c2 t4 a2))) H10 t H14) in (let H18 \def (eq_ind T t3 (\lambda (t0: +T).(pr0 t0 t4)) H9 t H14) in (let H19 \def (eq_ind T u1 (\lambda (t0: T).((eq +T t0 (THead (Flat Appl) u t)) \to (arity g c2 u2 a2))) H8 u H15) in (let H20 +\def (eq_ind T u1 (\lambda (t0: T).(pr0 t0 u2)) H7 u H15) in (arity_appl g c2 +u2 a1 (H1 c2 H4 u2 H20) t4 a2 (H3 c2 H4 t4 H18)))))) k H16)))) H13)) +H12)))))))))))) (\lambda (u0: T).(\lambda (v1: T).(\lambda (v2: T).(\lambda +(H7: (pr0 v1 v2)).(\lambda (H8: (((eq T v1 (THead (Flat Appl) u t)) \to +(arity g c2 v2 a2)))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H9: (pr0 t3 +t4)).(\lambda (H10: (((eq T t3 (THead (Flat Appl) u t)) \to (arity g c2 t4 +a2)))).(\lambda (H11: (eq T (THead (Flat Appl) v1 (THead (Bind Abst) u0 t3)) +(THead (Flat Appl) u t))).(let H12 \def (f_equal T T (\lambda (e: T).(match e +with [(TSort _) \Rightarrow v1 | (TLRef _) \Rightarrow v1 | (THead _ t0 _) +\Rightarrow t0])) (THead (Flat Appl) v1 (THead (Bind Abst) u0 t3)) (THead +(Flat Appl) u t) H11) in ((let H13 \def (f_equal T T (\lambda (e: T).(match e +with [(TSort _) \Rightarrow (THead (Bind Abst) u0 t3) | (TLRef _) \Rightarrow +(THead (Bind Abst) u0 t3) | (THead _ _ t0) \Rightarrow t0])) (THead (Flat +Appl) v1 (THead (Bind Abst) u0 t3)) (THead (Flat Appl) u t) H11) in (\lambda +(H14: (eq T v1 u)).(let H15 \def (eq_ind T v1 (\lambda (t0: T).((eq T t0 +(THead (Flat Appl) u t)) \to (arity g c2 v2 a2))) H8 u H14) in (let H16 \def +(eq_ind T v1 (\lambda (t0: T).(pr0 t0 v2)) H7 u H14) in (let H17 \def +(eq_ind_r T t (\lambda (t0: T).((eq T t3 (THead (Flat Appl) u t0)) \to (arity +g c2 t4 a2))) H10 (THead (Bind Abst) u0 t3) H13) in (let H18 \def (eq_ind_r T +t (\lambda (t0: T).((eq T u (THead (Flat Appl) u t0)) \to (arity g c2 v2 +a2))) H15 (THead (Bind Abst) u0 t3) H13) in (let H19 \def (eq_ind_r T t +(\lambda (t0: T).(\forall (c3: C).((wcpr0 c c3) \to (\forall (t5: T).((pr0 t0 +t5) \to (arity g c3 t5 (AHead a1 a2))))))) H3 (THead (Bind Abst) u0 t3) H13) +in (let H20 \def (eq_ind_r T t (\lambda (t0: T).(arity g c t0 (AHead a1 a2))) +H2 (THead (Bind Abst) u0 t3) H13) in (let H21 \def (H1 c2 H4 v2 H16) in (let +H22 \def (H19 c2 H4 (THead (Bind Abst) u0 t4) (pr0_comp u0 u0 (pr0_refl u0) +t3 t4 H9 (Bind Abst))) in (let H23 \def (arity_gen_abst g c2 u0 t4 (AHead a1 +a2) H22) in (ex3_2_ind A A (\lambda (a3: A).(\lambda (a4: A).(eq A (AHead a1 +a2) (AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: A).(arity g c2 u0 (asucc g +a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g (CHead c2 (Bind Abst) u0) t4 +a4))) (arity g c2 (THead (Bind Abbr) v2 t4) a2) (\lambda (x0: A).(\lambda +(x1: A).(\lambda (H24: (eq A (AHead a1 a2) (AHead x0 x1))).(\lambda (H25: +(arity g c2 u0 (asucc g x0))).(\lambda (H26: (arity g (CHead c2 (Bind Abst) +u0) t4 x1)).(let H27 \def (f_equal A A (\lambda (e: A).(match e with [(ASort +_ _) \Rightarrow a1 | (AHead a0 _) \Rightarrow a0])) (AHead a1 a2) (AHead x0 +x1) H24) in ((let H28 \def (f_equal A A (\lambda (e: A).(match e with [(ASort +_ _) \Rightarrow a2 | (AHead _ a0) \Rightarrow a0])) (AHead a1 a2) (AHead x0 +x1) H24) in (\lambda (H29: (eq A a1 x0)).(let H30 \def (eq_ind_r A x1 +(\lambda (a0: A).(arity g (CHead c2 (Bind Abst) u0) t4 a0)) H26 a2 H28) in +(let H31 \def (eq_ind_r A x0 (\lambda (a0: A).(arity g c2 u0 (asucc g a0))) +H25 a1 H29) in (arity_bind g Abbr not_abbr_abst c2 v2 a1 H21 t4 a2 +(csuba_arity g (CHead c2 (Bind Abst) u0) t4 a2 H30 (CHead c2 (Bind Abbr) v2) +(csuba_abst g c2 c2 (csuba_refl g c2) u0 a1 H31 v2 H21))))))) H27))))))) +H23)))))))))))) H12)))))))))))) (\lambda (b: B).(\lambda (H7: (not (eq B b +Abst))).(\lambda (v1: T).(\lambda (v2: T).(\lambda (H8: (pr0 v1 v2)).(\lambda +(H9: (((eq T v1 (THead (Flat Appl) u t)) \to (arity g c2 v2 a2)))).(\lambda +(u1: T).(\lambda (u2: T).(\lambda (H10: (pr0 u1 u2)).(\lambda (H11: (((eq T +u1 (THead (Flat Appl) u t)) \to (arity g c2 u2 a2)))).(\lambda (t3: +T).(\lambda (t4: T).(\lambda (H12: (pr0 t3 t4)).(\lambda (H13: (((eq T t3 +(THead (Flat Appl) u t)) \to (arity g c2 t4 a2)))).(\lambda (H14: (eq T +(THead (Flat Appl) v1 (THead (Bind b) u1 t3)) (THead (Flat Appl) u t))).(let +H15 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow v1 +| (TLRef _) \Rightarrow v1 | (THead _ t0 _) \Rightarrow t0])) (THead (Flat +Appl) v1 (THead (Bind b) u1 t3)) (THead (Flat Appl) u t) H14) in ((let H16 +\def (f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow (THead +(Bind b) u1 t3) | (TLRef _) \Rightarrow (THead (Bind b) u1 t3) | (THead _ _ +t0) \Rightarrow t0])) (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) (THead +(Flat Appl) u t) H14) in (\lambda (H17: (eq T v1 u)).(let H18 \def (eq_ind T +v1 (\lambda (t0: T).((eq T t0 (THead (Flat Appl) u t)) \to (arity g c2 v2 +a2))) H9 u H17) in (let H19 \def (eq_ind T v1 (\lambda (t0: T).(pr0 t0 v2)) +H8 u H17) in (let H20 \def (eq_ind_r T t (\lambda (t0: T).((eq T t3 (THead +(Flat Appl) u t0)) \to (arity g c2 t4 a2))) H13 (THead (Bind b) u1 t3) H16) +in (let H21 \def (eq_ind_r T t (\lambda (t0: T).((eq T u1 (THead (Flat Appl) +u t0)) \to (arity g c2 u2 a2))) H11 (THead (Bind b) u1 t3) H16) in (let H22 +\def (eq_ind_r T t (\lambda (t0: T).((eq T u (THead (Flat Appl) u t0)) \to +(arity g c2 v2 a2))) H18 (THead (Bind b) u1 t3) H16) in (let H23 \def +(eq_ind_r T t (\lambda (t0: T).(\forall (c3: C).((wcpr0 c c3) \to (\forall +(t5: T).((pr0 t0 t5) \to (arity g c3 t5 (AHead a1 a2))))))) H3 (THead (Bind +b) u1 t3) H16) in (let H24 \def (eq_ind_r T t (\lambda (t0: T).(arity g c t0 +(AHead a1 a2))) H2 (THead (Bind b) u1 t3) H16) in (let H25 \def (H1 c2 H4 v2 +H19) in (let H26 \def (H23 c2 H4 (THead (Bind b) u2 t4) (pr0_comp u1 u2 H10 +t3 t4 H12 (Bind b))) in (let H27 \def (arity_gen_bind b H7 g c2 u2 t4 (AHead +a1 a2) H26) in (ex2_ind A (\lambda (a3: A).(arity g c2 u2 a3)) (\lambda (_: +A).(arity g (CHead c2 (Bind b) u2) t4 (AHead a1 a2))) (arity g c2 (THead +(Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) a2) (\lambda (x: +A).(\lambda (H28: (arity g c2 u2 x)).(\lambda (H29: (arity g (CHead c2 (Bind +b) u2) t4 (AHead a1 a2))).(arity_bind g b H7 c2 u2 x H28 (THead (Flat Appl) +(lift (S O) O v2) t4) a2 (arity_appl g (CHead c2 (Bind b) u2) (lift (S O) O +v2) a1 (arity_lift g c2 v2 a1 H25 (CHead c2 (Bind b) u2) (S O) O (drop_drop +(Bind b) O c2 c2 (drop_refl c2) u2)) t4 a2 H29))))) H27))))))))))))) +H15))))))))))))))))) (\lambda (u1: T).(\lambda (u2: T).(\lambda (_: (pr0 u1 +u2)).(\lambda (_: (((eq T u1 (THead (Flat Appl) u t)) \to (arity g c2 u2 +a2)))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda +(_: (((eq T t3 (THead (Flat Appl) u t)) \to (arity g c2 t4 a2)))).(\lambda +(w: T).(\lambda (_: (subst0 O u2 t4 w)).(\lambda (H12: (eq T (THead (Bind +Abbr) u1 t3) (THead (Flat Appl) u t))).(let H13 \def (eq_ind T (THead (Bind +Abbr) u1 t3) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | +(TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k with [(Bind +_) \Rightarrow True | (Flat _) \Rightarrow False])])) I (THead (Flat Appl) u +t) H12) in (False_ind (arity g c2 (THead (Bind Abbr) u2 w) a2) H13))))))))))))) (\lambda (b: B).(\lambda (_: (not (eq B b Abst))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead (Flat Appl) u t)) \to (arity g c2 t4 a2)))).(\lambda (u0: T).(\lambda (H10: (eq T (THead (Bind b) u0 (lift (S O) O t3)) (THead (Flat Appl) u t))).(let H11 \def (eq_ind T (THead (Bind b) u0 (lift (S O) O t3)) (\lambda -(ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) -\Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow -(match k in K return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow True | +(ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow +False | (THead k _ _) \Rightarrow (match k with [(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I (THead (Flat Appl) u t) H10) in (False_ind (arity g c2 t4 a2) H11)))))))))) (\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead (Flat Appl) u t)) \to (arity g c2 t4 a2)))).(\lambda (u0: T).(\lambda (H9: (eq T (THead (Flat Cast) u0 t3) (THead (Flat Appl) u t))).(let H10 \def (eq_ind T (THead (Flat Cast) u0 t3) -(\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) -\Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow -(match k in K return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | -(Flat f) \Rightarrow (match f in F return (\lambda (_: F).Prop) with [Appl -\Rightarrow False | Cast \Rightarrow True])])])) I (THead (Flat Appl) u t) -H9) in (False_ind (arity g c2 t4 a2) H10)))))))) y t2 H6))) H5)))))))))))))) +(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) +\Rightarrow False | (THead k _ _) \Rightarrow (match k with [(Bind _) +\Rightarrow False | (Flat f) \Rightarrow (match f with [Appl \Rightarrow +False | Cast \Rightarrow True])])])) I (THead (Flat Appl) u t) H9) in +(False_ind (arity g c2 t4 a2) H10)))))))) y t2 H6))) H5)))))))))))))) (\lambda (c: C).(\lambda (u: T).(\lambda (a0: A).(\lambda (_: (arity g c u (asucc g a0))).(\lambda (H1: ((\forall (c2: C).((wcpr0 c c2) \to (\forall (t2: T).((pr0 u t2) \to (arity g c2 t2 (asucc g a0)))))))).(\lambda (t: @@ -488,18 +450,17 @@ T).(\lambda (u2: T).(\lambda (H7: (pr0 u1 u2)).(\lambda (H8: (((eq T u1 (t4: T).(\lambda (H9: (pr0 t3 t4)).(\lambda (H10: (((eq T t3 (THead (Flat Cast) u t)) \to (arity g c2 t4 a0)))).(\lambda (k: K).(\lambda (H11: (eq T (THead k u1 t3) (THead (Flat Cast) u t))).(let H12 \def (f_equal T K (\lambda -(e: T).(match e in T return (\lambda (_: T).K) with [(TSort _) \Rightarrow k -| (TLRef _) \Rightarrow k | (THead k0 _ _) \Rightarrow k0])) (THead k u1 t3) -(THead (Flat Cast) u t) H11) in ((let H13 \def (f_equal T T (\lambda (e: -T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow u1 | -(TLRef _) \Rightarrow u1 | (THead _ t0 _) \Rightarrow t0])) (THead k u1 t3) -(THead (Flat Cast) u t) H11) in ((let H14 \def (f_equal T T (\lambda (e: -T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow t3 | -(TLRef _) \Rightarrow t3 | (THead _ _ t0) \Rightarrow t0])) (THead k u1 t3) -(THead (Flat Cast) u t) H11) in (\lambda (H15: (eq T u1 u)).(\lambda (H16: -(eq K k (Flat Cast))).(eq_ind_r K (Flat Cast) (\lambda (k0: K).(arity g c2 -(THead k0 u2 t4) a0)) (let H17 \def (eq_ind T t3 (\lambda (t0: T).((eq T t0 -(THead (Flat Cast) u t)) \to (arity g c2 t4 a0))) H10 t H14) in (let H18 \def +(e: T).(match e with [(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | +(THead k0 _ _) \Rightarrow k0])) (THead k u1 t3) (THead (Flat Cast) u t) H11) +in ((let H13 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) +\Rightarrow u1 | (TLRef _) \Rightarrow u1 | (THead _ t0 _) \Rightarrow t0])) +(THead k u1 t3) (THead (Flat Cast) u t) H11) in ((let H14 \def (f_equal T T +(\lambda (e: T).(match e with [(TSort _) \Rightarrow t3 | (TLRef _) +\Rightarrow t3 | (THead _ _ t0) \Rightarrow t0])) (THead k u1 t3) (THead +(Flat Cast) u t) H11) in (\lambda (H15: (eq T u1 u)).(\lambda (H16: (eq K k +(Flat Cast))).(eq_ind_r K (Flat Cast) (\lambda (k0: K).(arity g c2 (THead k0 +u2 t4) a0)) (let H17 \def (eq_ind T t3 (\lambda (t0: T).((eq T t0 (THead +(Flat Cast) u t)) \to (arity g c2 t4 a0))) H10 t H14) in (let H18 \def (eq_ind T t3 (\lambda (t0: T).(pr0 t0 t4)) H9 t H14) in (let H19 \def (eq_ind T u1 (\lambda (t0: T).((eq T t0 (THead (Flat Cast) u t)) \to (arity g c2 u2 a0))) H8 u H15) in (let H20 \def (eq_ind T u1 (\lambda (t0: T).(pr0 t0 u2)) @@ -510,69 +471,61 @@ T).(\lambda (v2: T).(\lambda (_: (pr0 v1 v2)).(\lambda (_: (((eq T v1 (THead T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead (Flat Cast) u t)) \to (arity g c2 t4 a0)))).(\lambda (H11: (eq T (THead (Flat Appl) v1 (THead (Bind Abst) u0 t3)) (THead (Flat Cast) u t))).(let H12 \def (eq_ind T (THead -(Flat Appl) v1 (THead (Bind Abst) u0 t3)) (\lambda (ee: T).(match ee in T -return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) -\Rightarrow False | (THead k _ _) \Rightarrow (match k in K return (\lambda -(_: K).Prop) with [(Bind _) \Rightarrow False | (Flat f) \Rightarrow (match f -in F return (\lambda (_: F).Prop) with [Appl \Rightarrow True | Cast -\Rightarrow False])])])) I (THead (Flat Cast) u t) H11) in (False_ind (arity -g c2 (THead (Bind Abbr) v2 t4) a0) H12)))))))))))) (\lambda (b: B).(\lambda -(_: (not (eq B b Abst))).(\lambda (v1: T).(\lambda (v2: T).(\lambda (_: (pr0 -v1 v2)).(\lambda (_: (((eq T v1 (THead (Flat Cast) u t)) \to (arity g c2 v2 -a0)))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (_: (pr0 u1 u2)).(\lambda -(_: (((eq T u1 (THead (Flat Cast) u t)) \to (arity g c2 u2 a0)))).(\lambda -(t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 -(THead (Flat Cast) u t)) \to (arity g c2 t4 a0)))).(\lambda (H14: (eq T -(THead (Flat Appl) v1 (THead (Bind b) u1 t3)) (THead (Flat Cast) u t))).(let -H15 \def (eq_ind T (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) (\lambda -(ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) +(Flat Appl) v1 (THead (Bind Abst) u0 t3)) (\lambda (ee: T).(match ee with +[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) +\Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat f) \Rightarrow +(match f with [Appl \Rightarrow True | Cast \Rightarrow False])])])) I (THead +(Flat Cast) u t) H11) in (False_ind (arity g c2 (THead (Bind Abbr) v2 t4) a0) +H12)))))))))))) (\lambda (b: B).(\lambda (_: (not (eq B b Abst))).(\lambda +(v1: T).(\lambda (v2: T).(\lambda (_: (pr0 v1 v2)).(\lambda (_: (((eq T v1 +(THead (Flat Cast) u t)) \to (arity g c2 v2 a0)))).(\lambda (u1: T).(\lambda +(u2: T).(\lambda (_: (pr0 u1 u2)).(\lambda (_: (((eq T u1 (THead (Flat Cast) +u t)) \to (arity g c2 u2 a0)))).(\lambda (t3: T).(\lambda (t4: T).(\lambda +(_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead (Flat Cast) u t)) \to (arity +g c2 t4 a0)))).(\lambda (H14: (eq T (THead (Flat Appl) v1 (THead (Bind b) u1 +t3)) (THead (Flat Cast) u t))).(let H15 \def (eq_ind T (THead (Flat Appl) v1 +(THead (Bind b) u1 t3)) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow -(match k in K return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | -(Flat f) \Rightarrow (match f in F return (\lambda (_: F).Prop) with [Appl -\Rightarrow True | Cast \Rightarrow False])])])) I (THead (Flat Cast) u t) -H14) in (False_ind (arity g c2 (THead (Bind b) u2 (THead (Flat Appl) (lift (S -O) O v2) t4)) a0) H15))))))))))))))))) (\lambda (u1: T).(\lambda (u2: -T).(\lambda (_: (pr0 u1 u2)).(\lambda (_: (((eq T u1 (THead (Flat Cast) u t)) -\to (arity g c2 u2 a0)))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 +(match k with [(Bind _) \Rightarrow False | (Flat f) \Rightarrow (match f +with [Appl \Rightarrow True | Cast \Rightarrow False])])])) I (THead (Flat +Cast) u t) H14) in (False_ind (arity g c2 (THead (Bind b) u2 (THead (Flat +Appl) (lift (S O) O v2) t4)) a0) H15))))))))))))))))) (\lambda (u1: +T).(\lambda (u2: T).(\lambda (_: (pr0 u1 u2)).(\lambda (_: (((eq T u1 (THead +(Flat Cast) u t)) \to (arity g c2 u2 a0)))).(\lambda (t3: T).(\lambda (t4: +T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead (Flat Cast) u t)) +\to (arity g c2 t4 a0)))).(\lambda (w: T).(\lambda (_: (subst0 O u2 t4 +w)).(\lambda (H12: (eq T (THead (Bind Abbr) u1 t3) (THead (Flat Cast) u +t))).(let H13 \def (eq_ind T (THead (Bind Abbr) u1 t3) (\lambda (ee: +T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False +| (THead k _ _) \Rightarrow (match k with [(Bind _) \Rightarrow True | (Flat +_) \Rightarrow False])])) I (THead (Flat Cast) u t) H12) in (False_ind (arity +g c2 (THead (Bind Abbr) u2 w) a0) H13))))))))))))) (\lambda (b: B).(\lambda +(_: (not (eq B b Abst))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead (Flat Cast) u t)) \to (arity g c2 t4 -a0)))).(\lambda (w: T).(\lambda (_: (subst0 O u2 t4 w)).(\lambda (H12: (eq T -(THead (Bind Abbr) u1 t3) (THead (Flat Cast) u t))).(let H13 \def (eq_ind T -(THead (Bind Abbr) u1 t3) (\lambda (ee: T).(match ee in T return (\lambda (_: -T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | -(THead k _ _) \Rightarrow (match k in K return (\lambda (_: K).Prop) with +a0)))).(\lambda (u0: T).(\lambda (H10: (eq T (THead (Bind b) u0 (lift (S O) O +t3)) (THead (Flat Cast) u t))).(let H11 \def (eq_ind T (THead (Bind b) u0 +(lift (S O) O t3)) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow +False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k with [(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I (THead (Flat -Cast) u t) H12) in (False_ind (arity g c2 (THead (Bind Abbr) u2 w) a0) -H13))))))))))))) (\lambda (b: B).(\lambda (_: (not (eq B b Abst))).(\lambda -(t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 +Cast) u t) H10) in (False_ind (arity g c2 t4 a0) H11)))))))))) (\lambda (t3: +T).(\lambda (t4: T).(\lambda (H7: (pr0 t3 t4)).(\lambda (H8: (((eq T t3 (THead (Flat Cast) u t)) \to (arity g c2 t4 a0)))).(\lambda (u0: T).(\lambda -(H10: (eq T (THead (Bind b) u0 (lift (S O) O t3)) (THead (Flat Cast) u -t))).(let H11 \def (eq_ind T (THead (Bind b) u0 (lift (S O) O t3)) (\lambda -(ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) -\Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow -(match k in K return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow True | -(Flat _) \Rightarrow False])])) I (THead (Flat Cast) u t) H10) in (False_ind -(arity g c2 t4 a0) H11)))))))))) (\lambda (t3: T).(\lambda (t4: T).(\lambda -(H7: (pr0 t3 t4)).(\lambda (H8: (((eq T t3 (THead (Flat Cast) u t)) \to -(arity g c2 t4 a0)))).(\lambda (u0: T).(\lambda (H9: (eq T (THead (Flat Cast) -u0 t3) (THead (Flat Cast) u t))).(let H10 \def (f_equal T T (\lambda (e: -T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow u0 | -(TLRef _) \Rightarrow u0 | (THead _ t0 _) \Rightarrow t0])) (THead (Flat -Cast) u0 t3) (THead (Flat Cast) u t) H9) in ((let H11 \def (f_equal T T -(\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) -\Rightarrow t3 | (TLRef _) \Rightarrow t3 | (THead _ _ t0) \Rightarrow t0])) -(THead (Flat Cast) u0 t3) (THead (Flat Cast) u t) H9) in (\lambda (_: (eq T -u0 u)).(let H13 \def (eq_ind T t3 (\lambda (t0: T).((eq T t0 (THead (Flat -Cast) u t)) \to (arity g c2 t4 a0))) H8 t H11) in (let H14 \def (eq_ind T t3 -(\lambda (t0: T).(pr0 t0 t4)) H7 t H11) in (H3 c2 H4 t4 H14))))) H10)))))))) -y t2 H6))) H5))))))))))))) (\lambda (c: C).(\lambda (t: T).(\lambda (a1: -A).(\lambda (_: (arity g c t a1)).(\lambda (H1: ((\forall (c2: C).((wcpr0 c -c2) \to (\forall (t2: T).((pr0 t t2) \to (arity g c2 t2 a1))))))).(\lambda -(a2: A).(\lambda (H2: (leq g a1 a2)).(\lambda (c2: C).(\lambda (H3: (wcpr0 c -c2)).(\lambda (t2: T).(\lambda (H4: (pr0 t t2)).(arity_repl g c2 t2 a1 (H1 c2 -H3 t2 H4) a2 H2)))))))))))) c1 t1 a H))))). -(* COMMENTS -Initial nodes: 10246 -END *) +(H9: (eq T (THead (Flat Cast) u0 t3) (THead (Flat Cast) u t))).(let H10 \def +(f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow u0 | (TLRef +_) \Rightarrow u0 | (THead _ t0 _) \Rightarrow t0])) (THead (Flat Cast) u0 +t3) (THead (Flat Cast) u t) H9) in ((let H11 \def (f_equal T T (\lambda (e: +T).(match e with [(TSort _) \Rightarrow t3 | (TLRef _) \Rightarrow t3 | +(THead _ _ t0) \Rightarrow t0])) (THead (Flat Cast) u0 t3) (THead (Flat Cast) +u t) H9) in (\lambda (_: (eq T u0 u)).(let H13 \def (eq_ind T t3 (\lambda +(t0: T).((eq T t0 (THead (Flat Cast) u t)) \to (arity g c2 t4 a0))) H8 t H11) +in (let H14 \def (eq_ind T t3 (\lambda (t0: T).(pr0 t0 t4)) H7 t H11) in (H3 +c2 H4 t4 H14))))) H10)))))))) y t2 H6))) H5))))))))))))) (\lambda (c: +C).(\lambda (t: T).(\lambda (a1: A).(\lambda (_: (arity g c t a1)).(\lambda +(H1: ((\forall (c2: C).((wcpr0 c c2) \to (\forall (t2: T).((pr0 t t2) \to +(arity g c2 t2 a1))))))).(\lambda (a2: A).(\lambda (H2: (leq g a1 +a2)).(\lambda (c2: C).(\lambda (H3: (wcpr0 c c2)).(\lambda (t2: T).(\lambda +(H4: (pr0 t t2)).(arity_repl g c2 t2 a1 (H1 c2 H3 t2 H4) a2 H2)))))))))))) c1 +t1 a H))))). theorem arity_sred_wcpr0_pr1: \forall (t1: T).(\forall (t2: T).((pr1 t1 t2) \to (\forall (g: G).(\forall @@ -592,9 +545,6 @@ a))))))))).(\lambda (g: G).(\lambda (c1: C).(\lambda (a: A).(\lambda (H3: (arity g c1 t4 a)).(\lambda (c2: C).(\lambda (H4: (wcpr0 c1 c2)).(H2 g c2 a (arity_sred_wcpr0_pr0 g c1 t4 a H3 c2 H4 t3 H0) c2 (wcpr0_refl c2)))))))))))))) t1 t2 H))). -(* COMMENTS -Initial nodes: 213 -END *) theorem arity_sred_pr2: \forall (c: C).(\forall (t1: T).(\forall (t2: T).((pr2 c t1 t2) \to (\forall @@ -612,9 +562,6 @@ t4)).(\lambda (t: T).(\lambda (H2: (subst0 i u t4 t)).(\lambda (g: G).(\lambda (a: A).(\lambda (H3: (arity g c0 t3 a)).(arity_subst0 g c0 t4 a (arity_sred_wcpr0_pr0 g c0 t3 a H3 c0 (wcpr0_refl c0) t4 H1) d u i H0 t H2)))))))))))))) c t1 t2 H)))). -(* COMMENTS -Initial nodes: 205 -END *) theorem arity_sred_pr3: \forall (c: C).(\forall (t1: T).(\forall (t2: T).((pr3 c t1 t2) \to (\forall @@ -629,7 +576,4 @@ T).(\lambda (t4: T).(\lambda (H0: (pr2 c t4 t3)).(\lambda (t5: T).(\lambda t3 a) \to (arity g c t5 a)))))).(\lambda (g: G).(\lambda (a: A).(\lambda (H3: (arity g c t4 a)).(H2 g a (arity_sred_pr2 c t4 t3 H0 g a H3))))))))))) t1 t2 H)))). -(* COMMENTS -Initial nodes: 151 -END *) diff --git a/matita/matita/contribs/lambdadelta/basic_1/arity/props.ma b/matita/matita/contribs/lambdadelta/basic_1/arity/props.ma index 6f131df09..971f8d47e 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/arity/props.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/arity/props.ma @@ -14,27 +14,35 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/arity/fwd.ma". +include "basic_1/arity/fwd.ma". theorem node_inh: \forall (g: G).(\forall (n: nat).(\forall (k: nat).(ex_2 C T (\lambda (c: C).(\lambda (t: T).(arity g c t (ASort k n))))))) \def - \lambda (g: G).(\lambda (n: nat).(\lambda (k: nat).(nat_ind (\lambda (n0: -nat).(ex_2 C T (\lambda (c: C).(\lambda (t: T).(arity g c t (ASort n0 n)))))) -(ex_2_intro C T (\lambda (c: C).(\lambda (t: T).(arity g c t (ASort O n)))) -(CSort O) (TSort n) (arity_sort g (CSort O) n)) (\lambda (n0: nat).(\lambda -(H: (ex_2 C T (\lambda (c: C).(\lambda (t: T).(arity g c t (ASort n0 -n)))))).(let H0 \def H in (ex_2_ind C T (\lambda (c: C).(\lambda (t: -T).(arity g c t (ASort n0 n)))) (ex_2 C T (\lambda (c: C).(\lambda (t: -T).(arity g c t (ASort (S n0) n))))) (\lambda (x0: C).(\lambda (x1: -T).(\lambda (H1: (arity g x0 x1 (ASort n0 n))).(ex_2_intro C T (\lambda (c: -C).(\lambda (t: T).(arity g c t (ASort (S n0) n)))) (CHead x0 (Bind Abst) x1) -(TLRef O) (arity_abst g (CHead x0 (Bind Abst) x1) x0 x1 O (getl_refl Abst x0 -x1) (ASort (S n0) n) H1))))) H0)))) k))). -(* COMMENTS -Initial nodes: 253 -END *) + \lambda (g: G).(\lambda (n: nat).(\lambda (k: nat).(let TMP_3 \def (\lambda +(n0: nat).(let TMP_2 \def (\lambda (c: C).(\lambda (t: T).(let TMP_1 \def +(ASort n0 n) in (arity g c t TMP_1)))) in (ex_2 C T TMP_2))) in (let TMP_5 +\def (\lambda (c: C).(\lambda (t: T).(let TMP_4 \def (ASort O n) in (arity g +c t TMP_4)))) in (let TMP_6 \def (CSort O) in (let TMP_7 \def (TSort n) in +(let TMP_8 \def (CSort O) in (let TMP_9 \def (arity_sort g TMP_8 n) in (let +TMP_10 \def (ex_2_intro C T TMP_5 TMP_6 TMP_7 TMP_9) in (let TMP_30 \def +(\lambda (n0: nat).(\lambda (H: (ex_2 C T (\lambda (c: C).(\lambda (t: +T).(arity g c t (ASort n0 n)))))).(let H0 \def H in (let TMP_12 \def (\lambda +(c: C).(\lambda (t: T).(let TMP_11 \def (ASort n0 n) in (arity g c t +TMP_11)))) in (let TMP_15 \def (\lambda (c: C).(\lambda (t: T).(let TMP_13 +\def (S n0) in (let TMP_14 \def (ASort TMP_13 n) in (arity g c t TMP_14))))) +in (let TMP_16 \def (ex_2 C T TMP_15) in (let TMP_29 \def (\lambda (x0: +C).(\lambda (x1: T).(\lambda (H1: (arity g x0 x1 (ASort n0 n))).(let TMP_19 +\def (\lambda (c: C).(\lambda (t: T).(let TMP_17 \def (S n0) in (let TMP_18 +\def (ASort TMP_17 n) in (arity g c t TMP_18))))) in (let TMP_20 \def (Bind +Abst) in (let TMP_21 \def (CHead x0 TMP_20 x1) in (let TMP_22 \def (TLRef O) +in (let TMP_23 \def (Bind Abst) in (let TMP_24 \def (CHead x0 TMP_23 x1) in +(let TMP_25 \def (getl_refl Abst x0 x1) in (let TMP_26 \def (S n0) in (let +TMP_27 \def (ASort TMP_26 n) in (let TMP_28 \def (arity_abst g TMP_24 x0 x1 O +TMP_25 TMP_27 H1) in (ex_2_intro C T TMP_19 TMP_21 TMP_22 +TMP_28)))))))))))))) in (ex_2_ind C T TMP_12 TMP_16 TMP_29 H0)))))))) in +(nat_ind TMP_3 TMP_10 TMP_30 k))))))))))). theorem arity_lift: \forall (g: G).(\forall (c2: C).(\forall (t: T).(\forall (a: A).((arity g c2 @@ -42,274 +50,457 @@ t a) \to (\forall (c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c2) \to (arity g c1 (lift h d t) a))))))))) \def \lambda (g: G).(\lambda (c2: C).(\lambda (t: T).(\lambda (a: A).(\lambda (H: -(arity g c2 t a)).(arity_ind g (\lambda (c: C).(\lambda (t0: T).(\lambda (a0: -A).(\forall (c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) \to -(arity g c1 (lift h d t0) a0)))))))) (\lambda (c: C).(\lambda (n: -nat).(\lambda (c1: C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (_: (drop -h d c1 c)).(eq_ind_r T (TSort n) (\lambda (t0: T).(arity g c1 t0 (ASort O -n))) (arity_sort g c1 n) (lift h d (TSort n)) (lift_sort n h d)))))))) -(\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda -(H0: (getl i c (CHead d (Bind Abbr) u))).(\lambda (a0: A).(\lambda (H1: -(arity g d u a0)).(\lambda (H2: ((\forall (c1: C).(\forall (h: nat).(\forall -(d0: nat).((drop h d0 c1 d) \to (arity g c1 (lift h d0 u) a0))))))).(\lambda -(c1: C).(\lambda (h: nat).(\lambda (d0: nat).(\lambda (H3: (drop h d0 c1 -c)).(lt_le_e i d0 (arity g c1 (lift h d0 (TLRef i)) a0) (\lambda (H4: (lt i -d0)).(eq_ind_r T (TLRef i) (\lambda (t0: T).(arity g c1 t0 a0)) (let H5 \def -(drop_getl_trans_le i d0 (le_S_n i d0 (le_S (S i) d0 H4)) c1 c h H3 (CHead d -(Bind Abbr) u) H0) in (ex3_2_ind C C (\lambda (e0: C).(\lambda (_: C).(drop i -O c1 e0))) (\lambda (e0: C).(\lambda (e1: C).(drop h (minus d0 i) e0 e1))) -(\lambda (_: C).(\lambda (e1: C).(clear e1 (CHead d (Bind Abbr) u)))) (arity -g c1 (TLRef i) a0) (\lambda (x0: C).(\lambda (x1: C).(\lambda (H6: (drop i O -c1 x0)).(\lambda (H7: (drop h (minus d0 i) x0 x1)).(\lambda (H8: (clear x1 -(CHead d (Bind Abbr) u))).(let H9 \def (eq_ind nat (minus d0 i) (\lambda (n: -nat).(drop h n x0 x1)) H7 (S (minus d0 (S i))) (minus_x_Sy d0 i H4)) in (let -H10 \def (drop_clear_S x1 x0 h (minus d0 (S i)) H9 Abbr d u H8) in (ex2_ind C -(\lambda (c3: C).(clear x0 (CHead c3 (Bind Abbr) (lift h (minus d0 (S i)) -u)))) (\lambda (c3: C).(drop h (minus d0 (S i)) c3 d)) (arity g c1 (TLRef i) -a0) (\lambda (x: C).(\lambda (H11: (clear x0 (CHead x (Bind Abbr) (lift h -(minus d0 (S i)) u)))).(\lambda (H12: (drop h (minus d0 (S i)) x -d)).(arity_abbr g c1 x (lift h (minus d0 (S i)) u) i (getl_intro i c1 (CHead -x (Bind Abbr) (lift h (minus d0 (S i)) u)) x0 H6 H11) a0 (H2 x h (minus d0 (S -i)) H12))))) H10)))))))) H5)) (lift h d0 (TLRef i)) (lift_lref_lt i h d0 -H4))) (\lambda (H4: (le d0 i)).(eq_ind_r T (TLRef (plus i h)) (\lambda (t0: -T).(arity g c1 t0 a0)) (arity_abbr g c1 d u (plus i h) (drop_getl_trans_ge i -c1 c d0 h H3 (CHead d (Bind Abbr) u) H0 H4) a0 H1) (lift h d0 (TLRef i)) -(lift_lref_ge i h d0 H4)))))))))))))))) (\lambda (c: C).(\lambda (d: +(arity g c2 t a)).(let TMP_2 \def (\lambda (c: C).(\lambda (t0: T).(\lambda +(a0: A).(\forall (c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) +\to (let TMP_1 \def (lift h d t0) in (arity g c1 TMP_1 a0))))))))) in (let +TMP_10 \def (\lambda (c: C).(\lambda (n: nat).(\lambda (c1: C).(\lambda (h: +nat).(\lambda (d: nat).(\lambda (_: (drop h d c1 c)).(let TMP_3 \def (TSort +n) in (let TMP_5 \def (\lambda (t0: T).(let TMP_4 \def (ASort O n) in (arity +g c1 t0 TMP_4))) in (let TMP_6 \def (arity_sort g c1 n) in (let TMP_7 \def +(TSort n) in (let TMP_8 \def (lift h d TMP_7) in (let TMP_9 \def (lift_sort n +h d) in (eq_ind_r T TMP_3 TMP_5 TMP_6 TMP_8 TMP_9))))))))))))) in (let TMP_86 +\def (\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: +nat).(\lambda (H0: (getl i c (CHead d (Bind Abbr) u))).(\lambda (a0: +A).(\lambda (H1: (arity g d u a0)).(\lambda (H2: ((\forall (c1: C).(\forall +(h: nat).(\forall (d0: nat).((drop h d0 c1 d) \to (arity g c1 (lift h d0 u) +a0))))))).(\lambda (c1: C).(\lambda (h: nat).(\lambda (d0: nat).(\lambda (H3: +(drop h d0 c1 c)).(let TMP_11 \def (TLRef i) in (let TMP_12 \def (lift h d0 +TMP_11) in (let TMP_13 \def (arity g c1 TMP_12 a0) in (let TMP_73 \def +(\lambda (H4: (lt i d0)).(let TMP_14 \def (TLRef i) in (let TMP_15 \def +(\lambda (t0: T).(arity g c1 t0 a0)) in (let TMP_16 \def (S i) in (let TMP_17 +\def (S d0) in (let TMP_18 \def (S i) in (let TMP_19 \def (S TMP_18) in (let +TMP_20 \def (S d0) in (let TMP_21 \def (S i) in (let TMP_22 \def (le_n_S +TMP_21 d0 H4) in (let TMP_23 \def (le_S TMP_19 TMP_20 TMP_22) in (let TMP_24 +\def (le_S_n TMP_16 TMP_17 TMP_23) in (let TMP_25 \def (le_S_n i d0 TMP_24) +in (let TMP_26 \def (Bind Abbr) in (let TMP_27 \def (CHead d TMP_26 u) in +(let H5 \def (drop_getl_trans_le i d0 TMP_25 c1 c h H3 TMP_27 H0) in (let +TMP_28 \def (\lambda (e0: C).(\lambda (_: C).(drop i O c1 e0))) in (let +TMP_30 \def (\lambda (e0: C).(\lambda (e1: C).(let TMP_29 \def (minus d0 i) +in (drop h TMP_29 e0 e1)))) in (let TMP_33 \def (\lambda (_: C).(\lambda (e1: +C).(let TMP_31 \def (Bind Abbr) in (let TMP_32 \def (CHead d TMP_31 u) in +(clear e1 TMP_32))))) in (let TMP_34 \def (TLRef i) in (let TMP_35 \def +(arity g c1 TMP_34 a0) in (let TMP_68 \def (\lambda (x0: C).(\lambda (x1: +C).(\lambda (H6: (drop i O c1 x0)).(\lambda (H7: (drop h (minus d0 i) x0 +x1)).(\lambda (H8: (clear x1 (CHead d (Bind Abbr) u))).(let TMP_36 \def +(minus d0 i) in (let TMP_37 \def (\lambda (n: nat).(drop h n x0 x1)) in (let +TMP_38 \def (S i) in (let TMP_39 \def (minus d0 TMP_38) in (let TMP_40 \def +(S TMP_39) in (let TMP_41 \def (minus_x_Sy d0 i H4) in (let H9 \def (eq_ind +nat TMP_36 TMP_37 H7 TMP_40 TMP_41) in (let TMP_42 \def (S i) in (let TMP_43 +\def (minus d0 TMP_42) in (let H10 \def (drop_clear_S x1 x0 h TMP_43 H9 Abbr +d u H8) in (let TMP_49 \def (\lambda (c3: C).(let TMP_44 \def (Bind Abbr) in +(let TMP_45 \def (S i) in (let TMP_46 \def (minus d0 TMP_45) in (let TMP_47 +\def (lift h TMP_46 u) in (let TMP_48 \def (CHead c3 TMP_44 TMP_47) in (clear +x0 TMP_48))))))) in (let TMP_52 \def (\lambda (c3: C).(let TMP_50 \def (S i) +in (let TMP_51 \def (minus d0 TMP_50) in (drop h TMP_51 c3 d)))) in (let +TMP_53 \def (TLRef i) in (let TMP_54 \def (arity g c1 TMP_53 a0) in (let +TMP_67 \def (\lambda (x: C).(\lambda (H11: (clear x0 (CHead x (Bind Abbr) +(lift h (minus d0 (S i)) u)))).(\lambda (H12: (drop h (minus d0 (S i)) x +d)).(let TMP_55 \def (S i) in (let TMP_56 \def (minus d0 TMP_55) in (let +TMP_57 \def (lift h TMP_56 u) in (let TMP_58 \def (Bind Abbr) in (let TMP_59 +\def (S i) in (let TMP_60 \def (minus d0 TMP_59) in (let TMP_61 \def (lift h +TMP_60 u) in (let TMP_62 \def (CHead x TMP_58 TMP_61) in (let TMP_63 \def +(getl_intro i c1 TMP_62 x0 H6 H11) in (let TMP_64 \def (S i) in (let TMP_65 +\def (minus d0 TMP_64) in (let TMP_66 \def (H2 x h TMP_65 H12) in (arity_abbr +g c1 x TMP_57 i TMP_63 a0 TMP_66)))))))))))))))) in (ex2_ind C TMP_49 TMP_52 +TMP_54 TMP_67 H10))))))))))))))))))))) in (let TMP_69 \def (ex3_2_ind C C +TMP_28 TMP_30 TMP_33 TMP_35 TMP_68 H5) in (let TMP_70 \def (TLRef i) in (let +TMP_71 \def (lift h d0 TMP_70) in (let TMP_72 \def (lift_lref_lt i h d0 H4) +in (eq_ind_r T TMP_14 TMP_15 TMP_69 TMP_71 TMP_72))))))))))))))))))))))))))) +in (let TMP_85 \def (\lambda (H4: (le d0 i)).(let TMP_74 \def (plus i h) in +(let TMP_75 \def (TLRef TMP_74) in (let TMP_76 \def (\lambda (t0: T).(arity g +c1 t0 a0)) in (let TMP_77 \def (plus i h) in (let TMP_78 \def (Bind Abbr) in +(let TMP_79 \def (CHead d TMP_78 u) in (let TMP_80 \def (drop_getl_trans_ge i +c1 c d0 h H3 TMP_79 H0 H4) in (let TMP_81 \def (arity_abbr g c1 d u TMP_77 +TMP_80 a0 H1) in (let TMP_82 \def (TLRef i) in (let TMP_83 \def (lift h d0 +TMP_82) in (let TMP_84 \def (lift_lref_ge i h d0 H4) in (eq_ind_r T TMP_75 +TMP_76 TMP_81 TMP_83 TMP_84))))))))))))) in (lt_le_e i d0 TMP_13 TMP_73 +TMP_85)))))))))))))))))) in (let TMP_162 \def (\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c (CHead d (Bind Abst) u))).(\lambda (a0: A).(\lambda (H1: (arity g d u (asucc g a0))).(\lambda (H2: ((\forall (c1: C).(\forall (h: nat).(\forall (d0: nat).((drop h d0 c1 d) \to (arity g c1 (lift h d0 u) (asucc g a0)))))))).(\lambda (c1: C).(\lambda (h: nat).(\lambda (d0: nat).(\lambda -(H3: (drop h d0 c1 c)).(lt_le_e i d0 (arity g c1 (lift h d0 (TLRef i)) a0) -(\lambda (H4: (lt i d0)).(eq_ind_r T (TLRef i) (\lambda (t0: T).(arity g c1 -t0 a0)) (let H5 \def (drop_getl_trans_le i d0 (le_S_n i d0 (le_S (S i) d0 -H4)) c1 c h H3 (CHead d (Bind Abst) u) H0) in (ex3_2_ind C C (\lambda (e0: -C).(\lambda (_: C).(drop i O c1 e0))) (\lambda (e0: C).(\lambda (e1: C).(drop -h (minus d0 i) e0 e1))) (\lambda (_: C).(\lambda (e1: C).(clear e1 (CHead d -(Bind Abst) u)))) (arity g c1 (TLRef i) a0) (\lambda (x0: C).(\lambda (x1: -C).(\lambda (H6: (drop i O c1 x0)).(\lambda (H7: (drop h (minus d0 i) x0 -x1)).(\lambda (H8: (clear x1 (CHead d (Bind Abst) u))).(let H9 \def (eq_ind -nat (minus d0 i) (\lambda (n: nat).(drop h n x0 x1)) H7 (S (minus d0 (S i))) -(minus_x_Sy d0 i H4)) in (let H10 \def (drop_clear_S x1 x0 h (minus d0 (S i)) -H9 Abst d u H8) in (ex2_ind C (\lambda (c3: C).(clear x0 (CHead c3 (Bind -Abst) (lift h (minus d0 (S i)) u)))) (\lambda (c3: C).(drop h (minus d0 (S -i)) c3 d)) (arity g c1 (TLRef i) a0) (\lambda (x: C).(\lambda (H11: (clear x0 -(CHead x (Bind Abst) (lift h (minus d0 (S i)) u)))).(\lambda (H12: (drop h -(minus d0 (S i)) x d)).(arity_abst g c1 x (lift h (minus d0 (S i)) u) i -(getl_intro i c1 (CHead x (Bind Abst) (lift h (minus d0 (S i)) u)) x0 H6 H11) -a0 (H2 x h (minus d0 (S i)) H12))))) H10)))))))) H5)) (lift h d0 (TLRef i)) -(lift_lref_lt i h d0 H4))) (\lambda (H4: (le d0 i)).(eq_ind_r T (TLRef (plus -i h)) (\lambda (t0: T).(arity g c1 t0 a0)) (arity_abst g c1 d u (plus i h) -(drop_getl_trans_ge i c1 c d0 h H3 (CHead d (Bind Abst) u) H0 H4) a0 H1) -(lift h d0 (TLRef i)) (lift_lref_ge i h d0 H4)))))))))))))))) (\lambda (b: -B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c: C).(\lambda (u: -T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H2: ((\forall -(c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) \to (arity g c1 -(lift h d u) a1))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity -g (CHead c (Bind b) u) t0 a2)).(\lambda (H4: ((\forall (c1: C).(\forall (h: -nat).(\forall (d: nat).((drop h d c1 (CHead c (Bind b) u)) \to (arity g c1 -(lift h d t0) a2))))))).(\lambda (c1: C).(\lambda (h: nat).(\lambda (d: -nat).(\lambda (H5: (drop h d c1 c)).(eq_ind_r T (THead (Bind b) (lift h d u) -(lift h (s (Bind b) d) t0)) (\lambda (t1: T).(arity g c1 t1 a2)) (arity_bind -g b H0 c1 (lift h d u) a1 (H2 c1 h d H5) (lift h (s (Bind b) d) t0) a2 (H4 -(CHead c1 (Bind b) (lift h d u)) h (s (Bind b) d) (drop_skip_bind h d c1 c H5 -b u))) (lift h d (THead (Bind b) u t0)) (lift_head (Bind b) u t0 h -d))))))))))))))))) (\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda -(_: (arity g c u (asucc g a1))).(\lambda (H1: ((\forall (c1: C).(\forall (h: -nat).(\forall (d: nat).((drop h d c1 c) \to (arity g c1 (lift h d u) (asucc g +(H3: (drop h d0 c1 c)).(let TMP_87 \def (TLRef i) in (let TMP_88 \def (lift h +d0 TMP_87) in (let TMP_89 \def (arity g c1 TMP_88 a0) in (let TMP_149 \def +(\lambda (H4: (lt i d0)).(let TMP_90 \def (TLRef i) in (let TMP_91 \def +(\lambda (t0: T).(arity g c1 t0 a0)) in (let TMP_92 \def (S i) in (let TMP_93 +\def (S d0) in (let TMP_94 \def (S i) in (let TMP_95 \def (S TMP_94) in (let +TMP_96 \def (S d0) in (let TMP_97 \def (S i) in (let TMP_98 \def (le_n_S +TMP_97 d0 H4) in (let TMP_99 \def (le_S TMP_95 TMP_96 TMP_98) in (let TMP_100 +\def (le_S_n TMP_92 TMP_93 TMP_99) in (let TMP_101 \def (le_S_n i d0 TMP_100) +in (let TMP_102 \def (Bind Abst) in (let TMP_103 \def (CHead d TMP_102 u) in +(let H5 \def (drop_getl_trans_le i d0 TMP_101 c1 c h H3 TMP_103 H0) in (let +TMP_104 \def (\lambda (e0: C).(\lambda (_: C).(drop i O c1 e0))) in (let +TMP_106 \def (\lambda (e0: C).(\lambda (e1: C).(let TMP_105 \def (minus d0 i) +in (drop h TMP_105 e0 e1)))) in (let TMP_109 \def (\lambda (_: C).(\lambda +(e1: C).(let TMP_107 \def (Bind Abst) in (let TMP_108 \def (CHead d TMP_107 +u) in (clear e1 TMP_108))))) in (let TMP_110 \def (TLRef i) in (let TMP_111 +\def (arity g c1 TMP_110 a0) in (let TMP_144 \def (\lambda (x0: C).(\lambda +(x1: C).(\lambda (H6: (drop i O c1 x0)).(\lambda (H7: (drop h (minus d0 i) x0 +x1)).(\lambda (H8: (clear x1 (CHead d (Bind Abst) u))).(let TMP_112 \def +(minus d0 i) in (let TMP_113 \def (\lambda (n: nat).(drop h n x0 x1)) in (let +TMP_114 \def (S i) in (let TMP_115 \def (minus d0 TMP_114) in (let TMP_116 +\def (S TMP_115) in (let TMP_117 \def (minus_x_Sy d0 i H4) in (let H9 \def +(eq_ind nat TMP_112 TMP_113 H7 TMP_116 TMP_117) in (let TMP_118 \def (S i) in +(let TMP_119 \def (minus d0 TMP_118) in (let H10 \def (drop_clear_S x1 x0 h +TMP_119 H9 Abst d u H8) in (let TMP_125 \def (\lambda (c3: C).(let TMP_120 +\def (Bind Abst) in (let TMP_121 \def (S i) in (let TMP_122 \def (minus d0 +TMP_121) in (let TMP_123 \def (lift h TMP_122 u) in (let TMP_124 \def (CHead +c3 TMP_120 TMP_123) in (clear x0 TMP_124))))))) in (let TMP_128 \def (\lambda +(c3: C).(let TMP_126 \def (S i) in (let TMP_127 \def (minus d0 TMP_126) in +(drop h TMP_127 c3 d)))) in (let TMP_129 \def (TLRef i) in (let TMP_130 \def +(arity g c1 TMP_129 a0) in (let TMP_143 \def (\lambda (x: C).(\lambda (H11: +(clear x0 (CHead x (Bind Abst) (lift h (minus d0 (S i)) u)))).(\lambda (H12: +(drop h (minus d0 (S i)) x d)).(let TMP_131 \def (S i) in (let TMP_132 \def +(minus d0 TMP_131) in (let TMP_133 \def (lift h TMP_132 u) in (let TMP_134 +\def (Bind Abst) in (let TMP_135 \def (S i) in (let TMP_136 \def (minus d0 +TMP_135) in (let TMP_137 \def (lift h TMP_136 u) in (let TMP_138 \def (CHead +x TMP_134 TMP_137) in (let TMP_139 \def (getl_intro i c1 TMP_138 x0 H6 H11) +in (let TMP_140 \def (S i) in (let TMP_141 \def (minus d0 TMP_140) in (let +TMP_142 \def (H2 x h TMP_141 H12) in (arity_abst g c1 x TMP_133 i TMP_139 a0 +TMP_142)))))))))))))))) in (ex2_ind C TMP_125 TMP_128 TMP_130 TMP_143 +H10))))))))))))))))))))) in (let TMP_145 \def (ex3_2_ind C C TMP_104 TMP_106 +TMP_109 TMP_111 TMP_144 H5) in (let TMP_146 \def (TLRef i) in (let TMP_147 +\def (lift h d0 TMP_146) in (let TMP_148 \def (lift_lref_lt i h d0 H4) in +(eq_ind_r T TMP_90 TMP_91 TMP_145 TMP_147 TMP_148))))))))))))))))))))))))))) +in (let TMP_161 \def (\lambda (H4: (le d0 i)).(let TMP_150 \def (plus i h) in +(let TMP_151 \def (TLRef TMP_150) in (let TMP_152 \def (\lambda (t0: +T).(arity g c1 t0 a0)) in (let TMP_153 \def (plus i h) in (let TMP_154 \def +(Bind Abst) in (let TMP_155 \def (CHead d TMP_154 u) in (let TMP_156 \def +(drop_getl_trans_ge i c1 c d0 h H3 TMP_155 H0 H4) in (let TMP_157 \def +(arity_abst g c1 d u TMP_153 TMP_156 a0 H1) in (let TMP_158 \def (TLRef i) in +(let TMP_159 \def (lift h d0 TMP_158) in (let TMP_160 \def (lift_lref_ge i h +d0 H4) in (eq_ind_r T TMP_151 TMP_152 TMP_157 TMP_159 TMP_160))))))))))))) in +(lt_le_e i d0 TMP_89 TMP_149 TMP_161)))))))))))))))))) in (let TMP_188 \def +(\lambda (b: B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c: C).(\lambda +(u: T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H2: +((\forall (c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) \to +(arity g c1 (lift h d u) a1))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda +(_: (arity g (CHead c (Bind b) u) t0 a2)).(\lambda (H4: ((\forall (c1: +C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 (CHead c (Bind b) u)) +\to (arity g c1 (lift h d t0) a2))))))).(\lambda (c1: C).(\lambda (h: +nat).(\lambda (d: nat).(\lambda (H5: (drop h d c1 c)).(let TMP_163 \def (Bind +b) in (let TMP_164 \def (lift h d u) in (let TMP_165 \def (Bind b) in (let +TMP_166 \def (s TMP_165 d) in (let TMP_167 \def (lift h TMP_166 t0) in (let +TMP_168 \def (THead TMP_163 TMP_164 TMP_167) in (let TMP_169 \def (\lambda +(t1: T).(arity g c1 t1 a2)) in (let TMP_170 \def (lift h d u) in (let TMP_171 +\def (H2 c1 h d H5) in (let TMP_172 \def (Bind b) in (let TMP_173 \def (s +TMP_172 d) in (let TMP_174 \def (lift h TMP_173 t0) in (let TMP_175 \def +(Bind b) in (let TMP_176 \def (lift h d u) in (let TMP_177 \def (CHead c1 +TMP_175 TMP_176) in (let TMP_178 \def (Bind b) in (let TMP_179 \def (s +TMP_178 d) in (let TMP_180 \def (drop_skip_bind h d c1 c H5 b u) in (let +TMP_181 \def (H4 TMP_177 h TMP_179 TMP_180) in (let TMP_182 \def (arity_bind +g b H0 c1 TMP_170 a1 TMP_171 TMP_174 a2 TMP_181) in (let TMP_183 \def (Bind +b) in (let TMP_184 \def (THead TMP_183 u t0) in (let TMP_185 \def (lift h d +TMP_184) in (let TMP_186 \def (Bind b) in (let TMP_187 \def (lift_head +TMP_186 u t0 h d) in (eq_ind_r T TMP_168 TMP_169 TMP_182 TMP_185 +TMP_187))))))))))))))))))))))))))))))))))))))))) in (let TMP_215 \def +(\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u +(asucc g a1))).(\lambda (H1: ((\forall (c1: C).(\forall (h: nat).(\forall (d: +nat).((drop h d c1 c) \to (arity g c1 (lift h d u) (asucc g a1)))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c (Bind Abst) u) t0 a2)).(\lambda (H3: ((\forall (c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 (CHead c (Bind Abst) u)) \to (arity g c1 (lift h d t0) a2))))))).(\lambda (c1: C).(\lambda (h: nat).(\lambda (d: -nat).(\lambda (H4: (drop h d c1 c)).(eq_ind_r T (THead (Bind Abst) (lift h d -u) (lift h (s (Bind Abst) d) t0)) (\lambda (t1: T).(arity g c1 t1 (AHead a1 -a2))) (arity_head g c1 (lift h d u) a1 (H1 c1 h d H4) (lift h (s (Bind Abst) -d) t0) a2 (H3 (CHead c1 (Bind Abst) (lift h d u)) h (s (Bind Abst) d) -(drop_skip_bind h d c1 c H4 Abst u))) (lift h d (THead (Bind Abst) u t0)) -(lift_head (Bind Abst) u t0 h d))))))))))))))) (\lambda (c: C).(\lambda (u: -T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H1: ((\forall -(c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) \to (arity g c1 -(lift h d u) a1))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity -g c t0 (AHead a1 a2))).(\lambda (H3: ((\forall (c1: C).(\forall (h: -nat).(\forall (d: nat).((drop h d c1 c) \to (arity g c1 (lift h d t0) (AHead -a1 a2)))))))).(\lambda (c1: C).(\lambda (h: nat).(\lambda (d: nat).(\lambda -(H4: (drop h d c1 c)).(eq_ind_r T (THead (Flat Appl) (lift h d u) (lift h (s -(Flat Appl) d) t0)) (\lambda (t1: T).(arity g c1 t1 a2)) (arity_appl g c1 -(lift h d u) a1 (H1 c1 h d H4) (lift h (s (Flat Appl) d) t0) a2 (H3 c1 h (s -(Flat Appl) d) H4)) (lift h d (THead (Flat Appl) u t0)) (lift_head (Flat -Appl) u t0 h d))))))))))))))) (\lambda (c: C).(\lambda (u: T).(\lambda (a0: -A).(\lambda (_: (arity g c u (asucc g a0))).(\lambda (H1: ((\forall (c1: -C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) \to (arity g c1 (lift -h d u) (asucc g a0)))))))).(\lambda (t0: T).(\lambda (_: (arity g c t0 -a0)).(\lambda (H3: ((\forall (c1: C).(\forall (h: nat).(\forall (d: -nat).((drop h d c1 c) \to (arity g c1 (lift h d t0) a0))))))).(\lambda (c1: -C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H4: (drop h d c1 -c)).(eq_ind_r T (THead (Flat Cast) (lift h d u) (lift h (s (Flat Cast) d) -t0)) (\lambda (t1: T).(arity g c1 t1 a0)) (arity_cast g c1 (lift h d u) a0 -(H1 c1 h d H4) (lift h (s (Flat Cast) d) t0) (H3 c1 h (s (Flat Cast) d) H4)) -(lift h d (THead (Flat Cast) u t0)) (lift_head (Flat Cast) u t0 h -d)))))))))))))) (\lambda (c: C).(\lambda (t0: T).(\lambda (a1: A).(\lambda -(_: (arity g c t0 a1)).(\lambda (H1: ((\forall (c1: C).(\forall (h: -nat).(\forall (d: nat).((drop h d c1 c) \to (arity g c1 (lift h d t0) -a1))))))).(\lambda (a2: A).(\lambda (H2: (leq g a1 a2)).(\lambda (c1: -C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H3: (drop h d c1 -c)).(arity_repl g c1 (lift h d t0) a1 (H1 c1 h d H3) a2 H2)))))))))))) c2 t a -H))))). -(* COMMENTS -Initial nodes: 2661 -END *) +nat).(\lambda (H4: (drop h d c1 c)).(let TMP_189 \def (Bind Abst) in (let +TMP_190 \def (lift h d u) in (let TMP_191 \def (Bind Abst) in (let TMP_192 +\def (s TMP_191 d) in (let TMP_193 \def (lift h TMP_192 t0) in (let TMP_194 +\def (THead TMP_189 TMP_190 TMP_193) in (let TMP_196 \def (\lambda (t1: +T).(let TMP_195 \def (AHead a1 a2) in (arity g c1 t1 TMP_195))) in (let +TMP_197 \def (lift h d u) in (let TMP_198 \def (H1 c1 h d H4) in (let TMP_199 +\def (Bind Abst) in (let TMP_200 \def (s TMP_199 d) in (let TMP_201 \def +(lift h TMP_200 t0) in (let TMP_202 \def (Bind Abst) in (let TMP_203 \def +(lift h d u) in (let TMP_204 \def (CHead c1 TMP_202 TMP_203) in (let TMP_205 +\def (Bind Abst) in (let TMP_206 \def (s TMP_205 d) in (let TMP_207 \def +(drop_skip_bind h d c1 c H4 Abst u) in (let TMP_208 \def (H3 TMP_204 h +TMP_206 TMP_207) in (let TMP_209 \def (arity_head g c1 TMP_197 a1 TMP_198 +TMP_201 a2 TMP_208) in (let TMP_210 \def (Bind Abst) in (let TMP_211 \def +(THead TMP_210 u t0) in (let TMP_212 \def (lift h d TMP_211) in (let TMP_213 +\def (Bind Abst) in (let TMP_214 \def (lift_head TMP_213 u t0 h d) in +(eq_ind_r T TMP_194 TMP_196 TMP_209 TMP_212 +TMP_214))))))))))))))))))))))))))))))))))))))) in (let TMP_237 \def (\lambda +(c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u +a1)).(\lambda (H1: ((\forall (c1: C).(\forall (h: nat).(\forall (d: +nat).((drop h d c1 c) \to (arity g c1 (lift h d u) a1))))))).(\lambda (t0: +T).(\lambda (a2: A).(\lambda (_: (arity g c t0 (AHead a1 a2))).(\lambda (H3: +((\forall (c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) \to +(arity g c1 (lift h d t0) (AHead a1 a2)))))))).(\lambda (c1: C).(\lambda (h: +nat).(\lambda (d: nat).(\lambda (H4: (drop h d c1 c)).(let TMP_216 \def (Flat +Appl) in (let TMP_217 \def (lift h d u) in (let TMP_218 \def (Flat Appl) in +(let TMP_219 \def (s TMP_218 d) in (let TMP_220 \def (lift h TMP_219 t0) in +(let TMP_221 \def (THead TMP_216 TMP_217 TMP_220) in (let TMP_222 \def +(\lambda (t1: T).(arity g c1 t1 a2)) in (let TMP_223 \def (lift h d u) in +(let TMP_224 \def (H1 c1 h d H4) in (let TMP_225 \def (Flat Appl) in (let +TMP_226 \def (s TMP_225 d) in (let TMP_227 \def (lift h TMP_226 t0) in (let +TMP_228 \def (Flat Appl) in (let TMP_229 \def (s TMP_228 d) in (let TMP_230 +\def (H3 c1 h TMP_229 H4) in (let TMP_231 \def (arity_appl g c1 TMP_223 a1 +TMP_224 TMP_227 a2 TMP_230) in (let TMP_232 \def (Flat Appl) in (let TMP_233 +\def (THead TMP_232 u t0) in (let TMP_234 \def (lift h d TMP_233) in (let +TMP_235 \def (Flat Appl) in (let TMP_236 \def (lift_head TMP_235 u t0 h d) in +(eq_ind_r T TMP_221 TMP_222 TMP_231 TMP_234 +TMP_236))))))))))))))))))))))))))))))))))) in (let TMP_259 \def (\lambda (c: +C).(\lambda (u: T).(\lambda (a0: A).(\lambda (_: (arity g c u (asucc g +a0))).(\lambda (H1: ((\forall (c1: C).(\forall (h: nat).(\forall (d: +nat).((drop h d c1 c) \to (arity g c1 (lift h d u) (asucc g +a0)))))))).(\lambda (t0: T).(\lambda (_: (arity g c t0 a0)).(\lambda (H3: +((\forall (c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) \to +(arity g c1 (lift h d t0) a0))))))).(\lambda (c1: C).(\lambda (h: +nat).(\lambda (d: nat).(\lambda (H4: (drop h d c1 c)).(let TMP_238 \def (Flat +Cast) in (let TMP_239 \def (lift h d u) in (let TMP_240 \def (Flat Cast) in +(let TMP_241 \def (s TMP_240 d) in (let TMP_242 \def (lift h TMP_241 t0) in +(let TMP_243 \def (THead TMP_238 TMP_239 TMP_242) in (let TMP_244 \def +(\lambda (t1: T).(arity g c1 t1 a0)) in (let TMP_245 \def (lift h d u) in +(let TMP_246 \def (H1 c1 h d H4) in (let TMP_247 \def (Flat Cast) in (let +TMP_248 \def (s TMP_247 d) in (let TMP_249 \def (lift h TMP_248 t0) in (let +TMP_250 \def (Flat Cast) in (let TMP_251 \def (s TMP_250 d) in (let TMP_252 +\def (H3 c1 h TMP_251 H4) in (let TMP_253 \def (arity_cast g c1 TMP_245 a0 +TMP_246 TMP_249 TMP_252) in (let TMP_254 \def (Flat Cast) in (let TMP_255 +\def (THead TMP_254 u t0) in (let TMP_256 \def (lift h d TMP_255) in (let +TMP_257 \def (Flat Cast) in (let TMP_258 \def (lift_head TMP_257 u t0 h d) in +(eq_ind_r T TMP_243 TMP_244 TMP_253 TMP_256 +TMP_258)))))))))))))))))))))))))))))))))) in (let TMP_262 \def (\lambda (c: +C).(\lambda (t0: T).(\lambda (a1: A).(\lambda (_: (arity g c t0 a1)).(\lambda +(H1: ((\forall (c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) +\to (arity g c1 (lift h d t0) a1))))))).(\lambda (a2: A).(\lambda (H2: (leq g +a1 a2)).(\lambda (c1: C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H3: +(drop h d c1 c)).(let TMP_260 \def (lift h d t0) in (let TMP_261 \def (H1 c1 +h d H3) in (arity_repl g c1 TMP_260 a1 TMP_261 a2 H2)))))))))))))) in +(arity_ind g TMP_2 TMP_10 TMP_86 TMP_162 TMP_188 TMP_215 TMP_237 TMP_259 +TMP_262 c2 t a H)))))))))))))). theorem arity_mono: \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (a1: A).((arity g c t a1) \to (\forall (a2: A).((arity g c t a2) \to (leq g a1 a2))))))) \def \lambda (g: G).(\lambda (c: C).(\lambda (t: T).(\lambda (a1: A).(\lambda (H: -(arity g c t a1)).(arity_ind g (\lambda (c0: C).(\lambda (t0: T).(\lambda (a: -A).(\forall (a2: A).((arity g c0 t0 a2) \to (leq g a a2)))))) (\lambda (c0: -C).(\lambda (n: nat).(\lambda (a2: A).(\lambda (H0: (arity g c0 (TSort n) -a2)).(leq_sym g a2 (ASort O n) (arity_gen_sort g c0 n a2 H0)))))) (\lambda -(c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl -i c0 (CHead d (Bind Abbr) u))).(\lambda (a: A).(\lambda (_: (arity g d u -a)).(\lambda (H2: ((\forall (a2: A).((arity g d u a2) \to (leq g a -a2))))).(\lambda (a2: A).(\lambda (H3: (arity g c0 (TLRef i) a2)).(let H4 -\def (arity_gen_lref g c0 i a2 H3) in (or_ind (ex2_2 C T (\lambda (d0: -C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abbr) u0)))) (\lambda (d0: -C).(\lambda (u0: T).(arity g d0 u0 a2)))) (ex2_2 C T (\lambda (d0: -C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda (d0: -C).(\lambda (u0: T).(arity g d0 u0 (asucc g a2))))) (leq g a a2) (\lambda -(H5: (ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind -Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 -a2))))).(ex2_2_ind C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 -(Bind Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 a2))) -(leq g a a2) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl i c0 -(CHead x0 (Bind Abbr) x1))).(\lambda (H7: (arity g x0 x1 a2)).(let H8 \def -(eq_ind C (CHead d (Bind Abbr) u) (\lambda (c1: C).(getl i c0 c1)) H0 (CHead -x0 (Bind Abbr) x1) (getl_mono c0 (CHead d (Bind Abbr) u) i H0 (CHead x0 (Bind -Abbr) x1) H6)) in (let H9 \def (f_equal C C (\lambda (e: C).(match e in C -return (\lambda (_: C).C) with [(CSort _) \Rightarrow d | (CHead c1 _ _) -\Rightarrow c1])) (CHead d (Bind Abbr) u) (CHead x0 (Bind Abbr) x1) -(getl_mono c0 (CHead d (Bind Abbr) u) i H0 (CHead x0 (Bind Abbr) x1) H6)) in -((let H10 \def (f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: -C).T) with [(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) (CHead -d (Bind Abbr) u) (CHead x0 (Bind Abbr) x1) (getl_mono c0 (CHead d (Bind Abbr) -u) i H0 (CHead x0 (Bind Abbr) x1) H6)) in (\lambda (H11: (eq C d x0)).(let -H12 \def (eq_ind_r T x1 (\lambda (t0: T).(getl i c0 (CHead x0 (Bind Abbr) -t0))) H8 u H10) in (let H13 \def (eq_ind_r T x1 (\lambda (t0: T).(arity g x0 -t0 a2)) H7 u H10) in (let H14 \def (eq_ind_r C x0 (\lambda (c1: C).(getl i c0 -(CHead c1 (Bind Abbr) u))) H12 d H11) in (let H15 \def (eq_ind_r C x0 -(\lambda (c1: C).(arity g c1 u a2)) H13 d H11) in (H2 a2 H15))))))) H9))))))) -H5)) (\lambda (H5: (ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 -(CHead d0 (Bind Abst) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 -(asucc g a2)))))).(ex2_2_ind C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 -(CHead d0 (Bind Abst) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 -(asucc g a2)))) (leq g a a2) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: -(getl i c0 (CHead x0 (Bind Abst) x1))).(\lambda (_: (arity g x0 x1 (asucc g -a2))).(let H8 \def (eq_ind C (CHead d (Bind Abbr) u) (\lambda (c1: C).(getl i -c0 c1)) H0 (CHead x0 (Bind Abst) x1) (getl_mono c0 (CHead d (Bind Abbr) u) i -H0 (CHead x0 (Bind Abst) x1) H6)) in (let H9 \def (eq_ind C (CHead d (Bind -Abbr) u) (\lambda (ee: C).(match ee in C return (\lambda (_: C).Prop) with -[(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match k in K return -(\lambda (_: K).Prop) with [(Bind b) \Rightarrow (match b in B return -(\lambda (_: B).Prop) with [Abbr \Rightarrow True | Abst \Rightarrow False | -Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead x0 (Bind -Abst) x1) (getl_mono c0 (CHead d (Bind Abbr) u) i H0 (CHead x0 (Bind Abst) -x1) H6)) in (False_ind (leq g a a2) H9))))))) H5)) H4)))))))))))) (\lambda +(arity g c t a1)).(let TMP_1 \def (\lambda (c0: C).(\lambda (t0: T).(\lambda +(a: A).(\forall (a2: A).((arity g c0 t0 a2) \to (leq g a a2)))))) in (let +TMP_4 \def (\lambda (c0: C).(\lambda (n: nat).(\lambda (a2: A).(\lambda (H0: +(arity g c0 (TSort n) a2)).(let TMP_2 \def (ASort O n) in (let TMP_3 \def +(arity_gen_sort g c0 n a2 H0) in (leq_sym g a2 TMP_2 TMP_3))))))) in (let +TMP_92 \def (\lambda (c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: +nat).(\lambda (H0: (getl i c0 (CHead d (Bind Abbr) u))).(\lambda (a: +A).(\lambda (_: (arity g d u a)).(\lambda (H2: ((\forall (a2: A).((arity g d +u a2) \to (leq g a a2))))).(\lambda (a2: A).(\lambda (H3: (arity g c0 (TLRef +i) a2)).(let H4 \def (arity_gen_lref g c0 i a2 H3) in (let TMP_7 \def +(\lambda (d0: C).(\lambda (u0: T).(let TMP_5 \def (Bind Abbr) in (let TMP_6 +\def (CHead d0 TMP_5 u0) in (getl i c0 TMP_6))))) in (let TMP_8 \def (\lambda +(d0: C).(\lambda (u0: T).(arity g d0 u0 a2))) in (let TMP_9 \def (ex2_2 C T +TMP_7 TMP_8) in (let TMP_12 \def (\lambda (d0: C).(\lambda (u0: T).(let +TMP_10 \def (Bind Abst) in (let TMP_11 \def (CHead d0 TMP_10 u0) in (getl i +c0 TMP_11))))) in (let TMP_14 \def (\lambda (d0: C).(\lambda (u0: T).(let +TMP_13 \def (asucc g a2) in (arity g d0 u0 TMP_13)))) in (let TMP_15 \def +(ex2_2 C T TMP_12 TMP_14) in (let TMP_16 \def (leq g a a2) in (let TMP_62 +\def (\lambda (H5: (ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 +(CHead d0 (Bind Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 +a2))))).(let TMP_19 \def (\lambda (d0: C).(\lambda (u0: T).(let TMP_17 \def +(Bind Abbr) in (let TMP_18 \def (CHead d0 TMP_17 u0) in (getl i c0 +TMP_18))))) in (let TMP_20 \def (\lambda (d0: C).(\lambda (u0: T).(arity g d0 +u0 a2))) in (let TMP_21 \def (leq g a a2) in (let TMP_61 \def (\lambda (x0: +C).(\lambda (x1: T).(\lambda (H6: (getl i c0 (CHead x0 (Bind Abbr) +x1))).(\lambda (H7: (arity g x0 x1 a2)).(let TMP_22 \def (Bind Abbr) in (let +TMP_23 \def (CHead d TMP_22 u) in (let TMP_24 \def (\lambda (c1: C).(getl i +c0 c1)) in (let TMP_25 \def (Bind Abbr) in (let TMP_26 \def (CHead x0 TMP_25 +x1) in (let TMP_27 \def (Bind Abbr) in (let TMP_28 \def (CHead d TMP_27 u) in +(let TMP_29 \def (Bind Abbr) in (let TMP_30 \def (CHead x0 TMP_29 x1) in (let +TMP_31 \def (getl_mono c0 TMP_28 i H0 TMP_30 H6) in (let H8 \def (eq_ind C +TMP_23 TMP_24 H0 TMP_26 TMP_31) in (let TMP_32 \def (\lambda (e: C).(match e +with [(CSort _) \Rightarrow d | (CHead c1 _ _) \Rightarrow c1])) in (let +TMP_33 \def (Bind Abbr) in (let TMP_34 \def (CHead d TMP_33 u) in (let TMP_35 +\def (Bind Abbr) in (let TMP_36 \def (CHead x0 TMP_35 x1) in (let TMP_37 \def +(Bind Abbr) in (let TMP_38 \def (CHead d TMP_37 u) in (let TMP_39 \def (Bind +Abbr) in (let TMP_40 \def (CHead x0 TMP_39 x1) in (let TMP_41 \def (getl_mono +c0 TMP_38 i H0 TMP_40 H6) in (let H9 \def (f_equal C C TMP_32 TMP_34 TMP_36 +TMP_41) in (let TMP_42 \def (\lambda (e: C).(match e with [(CSort _) +\Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) in (let TMP_43 \def (Bind +Abbr) in (let TMP_44 \def (CHead d TMP_43 u) in (let TMP_45 \def (Bind Abbr) +in (let TMP_46 \def (CHead x0 TMP_45 x1) in (let TMP_47 \def (Bind Abbr) in +(let TMP_48 \def (CHead d TMP_47 u) in (let TMP_49 \def (Bind Abbr) in (let +TMP_50 \def (CHead x0 TMP_49 x1) in (let TMP_51 \def (getl_mono c0 TMP_48 i +H0 TMP_50 H6) in (let H10 \def (f_equal C T TMP_42 TMP_44 TMP_46 TMP_51) in +(let TMP_60 \def (\lambda (H11: (eq C d x0)).(let TMP_54 \def (\lambda (t0: +T).(let TMP_52 \def (Bind Abbr) in (let TMP_53 \def (CHead x0 TMP_52 t0) in +(getl i c0 TMP_53)))) in (let H12 \def (eq_ind_r T x1 TMP_54 H8 u H10) in +(let TMP_55 \def (\lambda (t0: T).(arity g x0 t0 a2)) in (let H13 \def +(eq_ind_r T x1 TMP_55 H7 u H10) in (let TMP_58 \def (\lambda (c1: C).(let +TMP_56 \def (Bind Abbr) in (let TMP_57 \def (CHead c1 TMP_56 u) in (getl i c0 +TMP_57)))) in (let H14 \def (eq_ind_r C x0 TMP_58 H12 d H11) in (let TMP_59 +\def (\lambda (c1: C).(arity g c1 u a2)) in (let H15 \def (eq_ind_r C x0 +TMP_59 H13 d H11) in (H2 a2 H15)))))))))) in (TMP_60 +H9))))))))))))))))))))))))))))))))))))))) in (ex2_2_ind C T TMP_19 TMP_20 +TMP_21 TMP_61 H5)))))) in (let TMP_91 \def (\lambda (H5: (ex2_2 C T (\lambda +(d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda +(d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g a2)))))).(let TMP_65 \def +(\lambda (d0: C).(\lambda (u0: T).(let TMP_63 \def (Bind Abst) in (let TMP_64 +\def (CHead d0 TMP_63 u0) in (getl i c0 TMP_64))))) in (let TMP_67 \def +(\lambda (d0: C).(\lambda (u0: T).(let TMP_66 \def (asucc g a2) in (arity g +d0 u0 TMP_66)))) in (let TMP_68 \def (leq g a a2) in (let TMP_90 \def +(\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl i c0 (CHead x0 (Bind +Abst) x1))).(\lambda (_: (arity g x0 x1 (asucc g a2))).(let TMP_69 \def (Bind +Abbr) in (let TMP_70 \def (CHead d TMP_69 u) in (let TMP_71 \def (\lambda +(c1: C).(getl i c0 c1)) in (let TMP_72 \def (Bind Abst) in (let TMP_73 \def +(CHead x0 TMP_72 x1) in (let TMP_74 \def (Bind Abbr) in (let TMP_75 \def +(CHead d TMP_74 u) in (let TMP_76 \def (Bind Abst) in (let TMP_77 \def (CHead +x0 TMP_76 x1) in (let TMP_78 \def (getl_mono c0 TMP_75 i H0 TMP_77 H6) in +(let H8 \def (eq_ind C TMP_70 TMP_71 H0 TMP_73 TMP_78) in (let TMP_79 \def +(Bind Abbr) in (let TMP_80 \def (CHead d TMP_79 u) in (let TMP_81 \def +(\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) +\Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr +\Rightarrow True | Abst \Rightarrow False | Void \Rightarrow False]) | (Flat +_) \Rightarrow False])])) in (let TMP_82 \def (Bind Abst) in (let TMP_83 \def +(CHead x0 TMP_82 x1) in (let TMP_84 \def (Bind Abbr) in (let TMP_85 \def +(CHead d TMP_84 u) in (let TMP_86 \def (Bind Abst) in (let TMP_87 \def (CHead +x0 TMP_86 x1) in (let TMP_88 \def (getl_mono c0 TMP_85 i H0 TMP_87 H6) in +(let H9 \def (eq_ind C TMP_80 TMP_81 I TMP_83 TMP_88) in (let TMP_89 \def +(leq g a a2) in (False_ind TMP_89 H9)))))))))))))))))))))))))))) in +(ex2_2_ind C T TMP_65 TMP_67 TMP_68 TMP_90 H5)))))) in (or_ind TMP_9 TMP_15 +TMP_16 TMP_62 TMP_91 H4))))))))))))))))))))) in (let TMP_184 \def (\lambda (c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c0 (CHead d (Bind Abst) u))).(\lambda (a: A).(\lambda (_: (arity g d u (asucc g a))).(\lambda (H2: ((\forall (a2: A).((arity g d u a2) \to (leq g (asucc g a) a2))))).(\lambda (a2: A).(\lambda (H3: (arity g c0 (TLRef i) -a2)).(let H4 \def (arity_gen_lref g c0 i a2 H3) in (or_ind (ex2_2 C T -(\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abbr) u0)))) -(\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 a2)))) (ex2_2 C T (\lambda -(d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda -(d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g a2))))) (leq g a a2) -(\lambda (H5: (ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead -d0 (Bind Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 -a2))))).(ex2_2_ind C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 -(Bind Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 a2))) -(leq g a a2) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl i c0 -(CHead x0 (Bind Abbr) x1))).(\lambda (_: (arity g x0 x1 a2)).(let H8 \def -(eq_ind C (CHead d (Bind Abst) u) (\lambda (c1: C).(getl i c0 c1)) H0 (CHead -x0 (Bind Abbr) x1) (getl_mono c0 (CHead d (Bind Abst) u) i H0 (CHead x0 (Bind -Abbr) x1) H6)) in (let H9 \def (eq_ind C (CHead d (Bind Abst) u) (\lambda -(ee: C).(match ee in C return (\lambda (_: C).Prop) with [(CSort _) -\Rightarrow False | (CHead _ k _) \Rightarrow (match k in K return (\lambda -(_: K).Prop) with [(Bind b) \Rightarrow (match b in B return (\lambda (_: -B).Prop) with [Abbr \Rightarrow False | Abst \Rightarrow True | Void -\Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead x0 (Bind Abbr) -x1) (getl_mono c0 (CHead d (Bind Abst) u) i H0 (CHead x0 (Bind Abbr) x1) H6)) -in (False_ind (leq g a a2) H9))))))) H5)) (\lambda (H5: (ex2_2 C T (\lambda -(d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda -(d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g a2)))))).(ex2_2_ind C T -(\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) -(\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g a2)))) (leq g a a2) -(\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl i c0 (CHead x0 (Bind -Abst) x1))).(\lambda (H7: (arity g x0 x1 (asucc g a2))).(let H8 \def (eq_ind -C (CHead d (Bind Abst) u) (\lambda (c1: C).(getl i c0 c1)) H0 (CHead x0 (Bind -Abst) x1) (getl_mono c0 (CHead d (Bind Abst) u) i H0 (CHead x0 (Bind Abst) -x1) H6)) in (let H9 \def (f_equal C C (\lambda (e: C).(match e in C return -(\lambda (_: C).C) with [(CSort _) \Rightarrow d | (CHead c1 _ _) \Rightarrow -c1])) (CHead d (Bind Abst) u) (CHead x0 (Bind Abst) x1) (getl_mono c0 (CHead -d (Bind Abst) u) i H0 (CHead x0 (Bind Abst) x1) H6)) in ((let H10 \def -(f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) with -[(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) (CHead d (Bind -Abst) u) (CHead x0 (Bind Abst) x1) (getl_mono c0 (CHead d (Bind Abst) u) i H0 -(CHead x0 (Bind Abst) x1) H6)) in (\lambda (H11: (eq C d x0)).(let H12 \def -(eq_ind_r T x1 (\lambda (t0: T).(getl i c0 (CHead x0 (Bind Abst) t0))) H8 u -H10) in (let H13 \def (eq_ind_r T x1 (\lambda (t0: T).(arity g x0 t0 (asucc g -a2))) H7 u H10) in (let H14 \def (eq_ind_r C x0 (\lambda (c1: C).(getl i c0 -(CHead c1 (Bind Abst) u))) H12 d H11) in (let H15 \def (eq_ind_r C x0 -(\lambda (c1: C).(arity g c1 u (asucc g a2))) H13 d H11) in (asucc_inj g a a2 -(H2 (asucc g a2) H15)))))))) H9))))))) H5)) H4)))))))))))) (\lambda (b: -B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c0: C).(\lambda (u: -T).(\lambda (a2: A).(\lambda (_: (arity g c0 u a2)).(\lambda (_: ((\forall -(a3: A).((arity g c0 u a3) \to (leq g a2 a3))))).(\lambda (t0: T).(\lambda -(a3: A).(\lambda (_: (arity g (CHead c0 (Bind b) u) t0 a3)).(\lambda (H4: -((\forall (a4: A).((arity g (CHead c0 (Bind b) u) t0 a4) \to (leq g a3 -a4))))).(\lambda (a0: A).(\lambda (H5: (arity g c0 (THead (Bind b) u t0) -a0)).(let H6 \def (arity_gen_bind b H0 g c0 u t0 a0 H5) in (ex2_ind A -(\lambda (a4: A).(arity g c0 u a4)) (\lambda (_: A).(arity g (CHead c0 (Bind -b) u) t0 a0)) (leq g a3 a0) (\lambda (x: A).(\lambda (_: (arity g c0 u -x)).(\lambda (H8: (arity g (CHead c0 (Bind b) u) t0 a0)).(H4 a0 H8)))) -H6))))))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (a2: A).(\lambda -(_: (arity g c0 u (asucc g a2))).(\lambda (H1: ((\forall (a3: A).((arity g c0 -u a3) \to (leq g (asucc g a2) a3))))).(\lambda (t0: T).(\lambda (a3: -A).(\lambda (_: (arity g (CHead c0 (Bind Abst) u) t0 a3)).(\lambda (H3: -((\forall (a4: A).((arity g (CHead c0 (Bind Abst) u) t0 a4) \to (leq g a3 -a4))))).(\lambda (a0: A).(\lambda (H4: (arity g c0 (THead (Bind Abst) u t0) -a0)).(let H5 \def (arity_gen_abst g c0 u t0 a0 H4) in (ex3_2_ind A A (\lambda -(a4: A).(\lambda (a5: A).(eq A a0 (AHead a4 a5)))) (\lambda (a4: A).(\lambda -(_: A).(arity g c0 u (asucc g a4)))) (\lambda (_: A).(\lambda (a5: A).(arity -g (CHead c0 (Bind Abst) u) t0 a5))) (leq g (AHead a2 a3) a0) (\lambda (x0: -A).(\lambda (x1: A).(\lambda (H6: (eq A a0 (AHead x0 x1))).(\lambda (H7: +a2)).(let H4 \def (arity_gen_lref g c0 i a2 H3) in (let TMP_95 \def (\lambda +(d0: C).(\lambda (u0: T).(let TMP_93 \def (Bind Abbr) in (let TMP_94 \def +(CHead d0 TMP_93 u0) in (getl i c0 TMP_94))))) in (let TMP_96 \def (\lambda +(d0: C).(\lambda (u0: T).(arity g d0 u0 a2))) in (let TMP_97 \def (ex2_2 C T +TMP_95 TMP_96) in (let TMP_100 \def (\lambda (d0: C).(\lambda (u0: T).(let +TMP_98 \def (Bind Abst) in (let TMP_99 \def (CHead d0 TMP_98 u0) in (getl i +c0 TMP_99))))) in (let TMP_102 \def (\lambda (d0: C).(\lambda (u0: T).(let +TMP_101 \def (asucc g a2) in (arity g d0 u0 TMP_101)))) in (let TMP_103 \def +(ex2_2 C T TMP_100 TMP_102) in (let TMP_104 \def (leq g a a2) in (let TMP_132 +\def (\lambda (H5: (ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 +(CHead d0 (Bind Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 +a2))))).(let TMP_107 \def (\lambda (d0: C).(\lambda (u0: T).(let TMP_105 \def +(Bind Abbr) in (let TMP_106 \def (CHead d0 TMP_105 u0) in (getl i c0 +TMP_106))))) in (let TMP_108 \def (\lambda (d0: C).(\lambda (u0: T).(arity g +d0 u0 a2))) in (let TMP_109 \def (leq g a a2) in (let TMP_131 \def (\lambda +(x0: C).(\lambda (x1: T).(\lambda (H6: (getl i c0 (CHead x0 (Bind Abbr) +x1))).(\lambda (_: (arity g x0 x1 a2)).(let TMP_110 \def (Bind Abst) in (let +TMP_111 \def (CHead d TMP_110 u) in (let TMP_112 \def (\lambda (c1: C).(getl +i c0 c1)) in (let TMP_113 \def (Bind Abbr) in (let TMP_114 \def (CHead x0 +TMP_113 x1) in (let TMP_115 \def (Bind Abst) in (let TMP_116 \def (CHead d +TMP_115 u) in (let TMP_117 \def (Bind Abbr) in (let TMP_118 \def (CHead x0 +TMP_117 x1) in (let TMP_119 \def (getl_mono c0 TMP_116 i H0 TMP_118 H6) in +(let H8 \def (eq_ind C TMP_111 TMP_112 H0 TMP_114 TMP_119) in (let TMP_120 +\def (Bind Abst) in (let TMP_121 \def (CHead d TMP_120 u) in (let TMP_122 +\def (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ +k _) \Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr +\Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat +_) \Rightarrow False])])) in (let TMP_123 \def (Bind Abbr) in (let TMP_124 +\def (CHead x0 TMP_123 x1) in (let TMP_125 \def (Bind Abst) in (let TMP_126 +\def (CHead d TMP_125 u) in (let TMP_127 \def (Bind Abbr) in (let TMP_128 +\def (CHead x0 TMP_127 x1) in (let TMP_129 \def (getl_mono c0 TMP_126 i H0 +TMP_128 H6) in (let H9 \def (eq_ind C TMP_121 TMP_122 I TMP_124 TMP_129) in +(let TMP_130 \def (leq g a a2) in (False_ind TMP_130 +H9)))))))))))))))))))))))))))) in (ex2_2_ind C T TMP_107 TMP_108 TMP_109 +TMP_131 H5)))))) in (let TMP_183 \def (\lambda (H5: (ex2_2 C T (\lambda (d0: +C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda (d0: +C).(\lambda (u0: T).(arity g d0 u0 (asucc g a2)))))).(let TMP_135 \def +(\lambda (d0: C).(\lambda (u0: T).(let TMP_133 \def (Bind Abst) in (let +TMP_134 \def (CHead d0 TMP_133 u0) in (getl i c0 TMP_134))))) in (let TMP_137 +\def (\lambda (d0: C).(\lambda (u0: T).(let TMP_136 \def (asucc g a2) in +(arity g d0 u0 TMP_136)))) in (let TMP_138 \def (leq g a a2) in (let TMP_182 +\def (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl i c0 (CHead x0 +(Bind Abst) x1))).(\lambda (H7: (arity g x0 x1 (asucc g a2))).(let TMP_139 +\def (Bind Abst) in (let TMP_140 \def (CHead d TMP_139 u) in (let TMP_141 +\def (\lambda (c1: C).(getl i c0 c1)) in (let TMP_142 \def (Bind Abst) in +(let TMP_143 \def (CHead x0 TMP_142 x1) in (let TMP_144 \def (Bind Abst) in +(let TMP_145 \def (CHead d TMP_144 u) in (let TMP_146 \def (Bind Abst) in +(let TMP_147 \def (CHead x0 TMP_146 x1) in (let TMP_148 \def (getl_mono c0 +TMP_145 i H0 TMP_147 H6) in (let H8 \def (eq_ind C TMP_140 TMP_141 H0 TMP_143 +TMP_148) in (let TMP_149 \def (\lambda (e: C).(match e with [(CSort _) +\Rightarrow d | (CHead c1 _ _) \Rightarrow c1])) in (let TMP_150 \def (Bind +Abst) in (let TMP_151 \def (CHead d TMP_150 u) in (let TMP_152 \def (Bind +Abst) in (let TMP_153 \def (CHead x0 TMP_152 x1) in (let TMP_154 \def (Bind +Abst) in (let TMP_155 \def (CHead d TMP_154 u) in (let TMP_156 \def (Bind +Abst) in (let TMP_157 \def (CHead x0 TMP_156 x1) in (let TMP_158 \def +(getl_mono c0 TMP_155 i H0 TMP_157 H6) in (let H9 \def (f_equal C C TMP_149 +TMP_151 TMP_153 TMP_158) in (let TMP_159 \def (\lambda (e: C).(match e with +[(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) in (let TMP_160 +\def (Bind Abst) in (let TMP_161 \def (CHead d TMP_160 u) in (let TMP_162 +\def (Bind Abst) in (let TMP_163 \def (CHead x0 TMP_162 x1) in (let TMP_164 +\def (Bind Abst) in (let TMP_165 \def (CHead d TMP_164 u) in (let TMP_166 +\def (Bind Abst) in (let TMP_167 \def (CHead x0 TMP_166 x1) in (let TMP_168 +\def (getl_mono c0 TMP_165 i H0 TMP_167 H6) in (let H10 \def (f_equal C T +TMP_159 TMP_161 TMP_163 TMP_168) in (let TMP_181 \def (\lambda (H11: (eq C d +x0)).(let TMP_171 \def (\lambda (t0: T).(let TMP_169 \def (Bind Abst) in (let +TMP_170 \def (CHead x0 TMP_169 t0) in (getl i c0 TMP_170)))) in (let H12 \def +(eq_ind_r T x1 TMP_171 H8 u H10) in (let TMP_173 \def (\lambda (t0: T).(let +TMP_172 \def (asucc g a2) in (arity g x0 t0 TMP_172))) in (let H13 \def +(eq_ind_r T x1 TMP_173 H7 u H10) in (let TMP_176 \def (\lambda (c1: C).(let +TMP_174 \def (Bind Abst) in (let TMP_175 \def (CHead c1 TMP_174 u) in (getl i +c0 TMP_175)))) in (let H14 \def (eq_ind_r C x0 TMP_176 H12 d H11) in (let +TMP_178 \def (\lambda (c1: C).(let TMP_177 \def (asucc g a2) in (arity g c1 u +TMP_177))) in (let H15 \def (eq_ind_r C x0 TMP_178 H13 d H11) in (let TMP_179 +\def (asucc g a2) in (let TMP_180 \def (H2 TMP_179 H15) in (asucc_inj g a a2 +TMP_180)))))))))))) in (TMP_181 H9))))))))))))))))))))))))))))))))))))))) in +(ex2_2_ind C T TMP_135 TMP_137 TMP_138 TMP_182 H5)))))) in (or_ind TMP_97 +TMP_103 TMP_104 TMP_132 TMP_183 H4))))))))))))))))))))) in (let TMP_191 \def +(\lambda (b: B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c0: C).(\lambda +(u: T).(\lambda (a2: A).(\lambda (_: (arity g c0 u a2)).(\lambda (_: +((\forall (a3: A).((arity g c0 u a3) \to (leq g a2 a3))))).(\lambda (t0: +T).(\lambda (a3: A).(\lambda (_: (arity g (CHead c0 (Bind b) u) t0 +a3)).(\lambda (H4: ((\forall (a4: A).((arity g (CHead c0 (Bind b) u) t0 a4) +\to (leq g a3 a4))))).(\lambda (a0: A).(\lambda (H5: (arity g c0 (THead (Bind +b) u t0) a0)).(let H6 \def (arity_gen_bind b H0 g c0 u t0 a0 H5) in (let +TMP_185 \def (\lambda (a4: A).(arity g c0 u a4)) in (let TMP_188 \def +(\lambda (_: A).(let TMP_186 \def (Bind b) in (let TMP_187 \def (CHead c0 +TMP_186 u) in (arity g TMP_187 t0 a0)))) in (let TMP_189 \def (leq g a3 a0) +in (let TMP_190 \def (\lambda (x: A).(\lambda (_: (arity g c0 u x)).(\lambda +(H8: (arity g (CHead c0 (Bind b) u) t0 a0)).(H4 a0 H8)))) in (ex2_ind A +TMP_185 TMP_188 TMP_189 TMP_190 H6))))))))))))))))))) in (let TMP_210 \def +(\lambda (c0: C).(\lambda (u: T).(\lambda (a2: A).(\lambda (_: (arity g c0 u +(asucc g a2))).(\lambda (H1: ((\forall (a3: A).((arity g c0 u a3) \to (leq g +(asucc g a2) a3))))).(\lambda (t0: T).(\lambda (a3: A).(\lambda (_: (arity g +(CHead c0 (Bind Abst) u) t0 a3)).(\lambda (H3: ((\forall (a4: A).((arity g +(CHead c0 (Bind Abst) u) t0 a4) \to (leq g a3 a4))))).(\lambda (a0: +A).(\lambda (H4: (arity g c0 (THead (Bind Abst) u t0) a0)).(let H5 \def +(arity_gen_abst g c0 u t0 a0 H4) in (let TMP_193 \def (\lambda (a4: +A).(\lambda (a5: A).(let TMP_192 \def (AHead a4 a5) in (eq A a0 TMP_192)))) +in (let TMP_195 \def (\lambda (a4: A).(\lambda (_: A).(let TMP_194 \def +(asucc g a4) in (arity g c0 u TMP_194)))) in (let TMP_198 \def (\lambda (_: +A).(\lambda (a5: A).(let TMP_196 \def (Bind Abst) in (let TMP_197 \def (CHead +c0 TMP_196 u) in (arity g TMP_197 t0 a5))))) in (let TMP_199 \def (AHead a2 +a3) in (let TMP_200 \def (leq g TMP_199 a0) in (let TMP_209 \def (\lambda +(x0: A).(\lambda (x1: A).(\lambda (H6: (eq A a0 (AHead x0 x1))).(\lambda (H7: (arity g c0 u (asucc g x0))).(\lambda (H8: (arity g (CHead c0 (Bind Abst) u) -t0 x1)).(eq_ind_r A (AHead x0 x1) (\lambda (a: A).(leq g (AHead a2 a3) a)) -(leq_head g a2 x0 (asucc_inj g a2 x0 (H1 (asucc g x0) H7)) a3 x1 (H3 x1 H8)) -a0 H6)))))) H5))))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (a2: -A).(\lambda (_: (arity g c0 u a2)).(\lambda (_: ((\forall (a3: A).((arity g -c0 u a3) \to (leq g a2 a3))))).(\lambda (t0: T).(\lambda (a3: A).(\lambda (_: -(arity g c0 t0 (AHead a2 a3))).(\lambda (H3: ((\forall (a4: A).((arity g c0 -t0 a4) \to (leq g (AHead a2 a3) a4))))).(\lambda (a0: A).(\lambda (H4: (arity -g c0 (THead (Flat Appl) u t0) a0)).(let H5 \def (arity_gen_appl g c0 u t0 a0 -H4) in (ex2_ind A (\lambda (a4: A).(arity g c0 u a4)) (\lambda (a4: A).(arity -g c0 t0 (AHead a4 a0))) (leq g a3 a0) (\lambda (x: A).(\lambda (_: (arity g -c0 u x)).(\lambda (H7: (arity g c0 t0 (AHead x a0))).(ahead_inj_snd g a2 a3 x -a0 (H3 (AHead x a0) H7))))) H5))))))))))))) (\lambda (c0: C).(\lambda (u: +t0 x1)).(let TMP_201 \def (AHead x0 x1) in (let TMP_203 \def (\lambda (a: +A).(let TMP_202 \def (AHead a2 a3) in (leq g TMP_202 a))) in (let TMP_204 +\def (asucc g x0) in (let TMP_205 \def (H1 TMP_204 H7) in (let TMP_206 \def +(asucc_inj g a2 x0 TMP_205) in (let TMP_207 \def (H3 x1 H8) in (let TMP_208 +\def (leq_head g a2 x0 TMP_206 a3 x1 TMP_207) in (eq_ind_r A TMP_201 TMP_203 +TMP_208 a0 H6))))))))))))) in (ex3_2_ind A A TMP_193 TMP_195 TMP_198 TMP_200 +TMP_209 H5))))))))))))))))))) in (let TMP_218 \def (\lambda (c0: C).(\lambda +(u: T).(\lambda (a2: A).(\lambda (_: (arity g c0 u a2)).(\lambda (_: +((\forall (a3: A).((arity g c0 u a3) \to (leq g a2 a3))))).(\lambda (t0: +T).(\lambda (a3: A).(\lambda (_: (arity g c0 t0 (AHead a2 a3))).(\lambda (H3: +((\forall (a4: A).((arity g c0 t0 a4) \to (leq g (AHead a2 a3) +a4))))).(\lambda (a0: A).(\lambda (H4: (arity g c0 (THead (Flat Appl) u t0) +a0)).(let H5 \def (arity_gen_appl g c0 u t0 a0 H4) in (let TMP_211 \def +(\lambda (a4: A).(arity g c0 u a4)) in (let TMP_213 \def (\lambda (a4: +A).(let TMP_212 \def (AHead a4 a0) in (arity g c0 t0 TMP_212))) in (let +TMP_214 \def (leq g a3 a0) in (let TMP_217 \def (\lambda (x: A).(\lambda (_: +(arity g c0 u x)).(\lambda (H7: (arity g c0 t0 (AHead x a0))).(let TMP_215 +\def (AHead x a0) in (let TMP_216 \def (H3 TMP_215 H7) in (ahead_inj_snd g a2 +a3 x a0 TMP_216)))))) in (ex2_ind A TMP_211 TMP_213 TMP_214 TMP_217 +H5))))))))))))))))) in (let TMP_224 \def (\lambda (c0: C).(\lambda (u: T).(\lambda (a: A).(\lambda (_: (arity g c0 u (asucc g a))).(\lambda (_: ((\forall (a2: A).((arity g c0 u a2) \to (leq g (asucc g a) a2))))).(\lambda (t0: T).(\lambda (_: (arity g c0 t0 a)).(\lambda (H3: ((\forall (a2: A).((arity g c0 t0 a2) \to (leq g a a2))))).(\lambda (a2: A).(\lambda (H4: (arity g c0 (THead (Flat Cast) u t0) a2)).(let H5 \def (arity_gen_cast g c0 u -t0 a2 H4) in (land_ind (arity g c0 u (asucc g a2)) (arity g c0 t0 a2) (leq g -a a2) (\lambda (_: (arity g c0 u (asucc g a2))).(\lambda (H7: (arity g c0 t0 -a2)).(H3 a2 H7))) H5)))))))))))) (\lambda (c0: C).(\lambda (t0: T).(\lambda -(a2: A).(\lambda (_: (arity g c0 t0 a2)).(\lambda (H1: ((\forall (a3: -A).((arity g c0 t0 a3) \to (leq g a2 a3))))).(\lambda (a3: A).(\lambda (H2: -(leq g a2 a3)).(\lambda (a0: A).(\lambda (H3: (arity g c0 t0 a0)).(leq_trans -g a3 a2 (leq_sym g a2 a3 H2) a0 (H1 a0 H3))))))))))) c t a1 H))))). -(* COMMENTS -Initial nodes: 2947 -END *) +t0 a2 H4) in (let TMP_219 \def (asucc g a2) in (let TMP_220 \def (arity g c0 +u TMP_219) in (let TMP_221 \def (arity g c0 t0 a2) in (let TMP_222 \def (leq +g a a2) in (let TMP_223 \def (\lambda (_: (arity g c0 u (asucc g +a2))).(\lambda (H7: (arity g c0 t0 a2)).(H3 a2 H7))) in (land_ind TMP_220 +TMP_221 TMP_222 TMP_223 H5))))))))))))))))) in (let TMP_227 \def (\lambda +(c0: C).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g c0 t0 +a2)).(\lambda (H1: ((\forall (a3: A).((arity g c0 t0 a3) \to (leq g a2 +a3))))).(\lambda (a3: A).(\lambda (H2: (leq g a2 a3)).(\lambda (a0: +A).(\lambda (H3: (arity g c0 t0 a0)).(let TMP_225 \def (leq_sym g a2 a3 H2) +in (let TMP_226 \def (H1 a0 H3) in (leq_trans g a3 a2 TMP_225 a0 +TMP_226)))))))))))) in (arity_ind g TMP_1 TMP_4 TMP_92 TMP_184 TMP_191 +TMP_210 TMP_218 TMP_224 TMP_227 c t a1 H)))))))))))))). theorem arity_repellent: \forall (g: G).(\forall (c: C).(\forall (w: T).(\forall (t: T).(\forall (a1: @@ -320,19 +511,23 @@ Prop).P))))))))) \lambda (g: G).(\lambda (c: C).(\lambda (w: T).(\lambda (t: T).(\lambda (a1: A).(\lambda (H: (arity g (CHead c (Bind Abst) w) t a1)).(\lambda (a2: A).(\lambda (H0: (arity g c (THead (Bind Abst) w t) a2)).(\lambda (H1: (leq g -a1 a2)).(\lambda (P: Prop).(let H_y \def (arity_repl g (CHead c (Bind Abst) -w) t a1 H a2 H1) in (let H2 \def (arity_gen_abst g c w t a2 H0) in (ex3_2_ind -A A (\lambda (a3: A).(\lambda (a4: A).(eq A a2 (AHead a3 a4)))) (\lambda (a3: -A).(\lambda (_: A).(arity g c w (asucc g a3)))) (\lambda (_: A).(\lambda (a4: -A).(arity g (CHead c (Bind Abst) w) t a4))) P (\lambda (x0: A).(\lambda (x1: +a1 a2)).(\lambda (P: Prop).(let TMP_1 \def (Bind Abst) in (let TMP_2 \def +(CHead c TMP_1 w) in (let H_y \def (arity_repl g TMP_2 t a1 H a2 H1) in (let +H2 \def (arity_gen_abst g c w t a2 H0) in (let TMP_4 \def (\lambda (a3: +A).(\lambda (a4: A).(let TMP_3 \def (AHead a3 a4) in (eq A a2 TMP_3)))) in +(let TMP_6 \def (\lambda (a3: A).(\lambda (_: A).(let TMP_5 \def (asucc g a3) +in (arity g c w TMP_5)))) in (let TMP_9 \def (\lambda (_: A).(\lambda (a4: +A).(let TMP_7 \def (Bind Abst) in (let TMP_8 \def (CHead c TMP_7 w) in (arity +g TMP_8 t a4))))) in (let TMP_18 \def (\lambda (x0: A).(\lambda (x1: A).(\lambda (H3: (eq A a2 (AHead x0 x1))).(\lambda (_: (arity g c w (asucc g -x0))).(\lambda (H5: (arity g (CHead c (Bind Abst) w) t x1)).(let H6 \def -(eq_ind A a2 (\lambda (a: A).(arity g (CHead c (Bind Abst) w) t a)) H_y -(AHead x0 x1) H3) in (leq_ahead_false_2 g x1 x0 (arity_mono g (CHead c (Bind -Abst) w) t (AHead x0 x1) H6 x1 H5) P))))))) H2)))))))))))). -(* COMMENTS -Initial nodes: 283 -END *) +x0))).(\lambda (H5: (arity g (CHead c (Bind Abst) w) t x1)).(let TMP_12 \def +(\lambda (a: A).(let TMP_10 \def (Bind Abst) in (let TMP_11 \def (CHead c +TMP_10 w) in (arity g TMP_11 t a)))) in (let TMP_13 \def (AHead x0 x1) in +(let H6 \def (eq_ind A a2 TMP_12 H_y TMP_13 H3) in (let TMP_14 \def (Bind +Abst) in (let TMP_15 \def (CHead c TMP_14 w) in (let TMP_16 \def (AHead x0 +x1) in (let TMP_17 \def (arity_mono g TMP_15 t TMP_16 H6 x1 H5) in +(leq_ahead_false_2 g x1 x0 TMP_17 P))))))))))))) in (ex3_2_ind A A TMP_4 +TMP_6 TMP_9 P TMP_18 H2)))))))))))))))))). theorem arity_appls_cast: \forall (g: G).(\forall (c: C).(\forall (u: T).(\forall (t: T).(\forall (vs: @@ -341,36 +536,58 @@ TList).(\forall (a: A).((arity g c (THeads (Flat Appl) vs u) (asucc g a)) \to vs (THead (Flat Cast) u t)) a)))))))) \def \lambda (g: G).(\lambda (c: C).(\lambda (u: T).(\lambda (t: T).(\lambda (vs: -TList).(TList_ind (\lambda (t0: TList).(\forall (a: A).((arity g c (THeads -(Flat Appl) t0 u) (asucc g a)) \to ((arity g c (THeads (Flat Appl) t0 t) a) -\to (arity g c (THeads (Flat Appl) t0 (THead (Flat Cast) u t)) a))))) -(\lambda (a: A).(\lambda (H: (arity g c u (asucc g a))).(\lambda (H0: (arity -g c t a)).(arity_cast g c u a H t H0)))) (\lambda (t0: T).(\lambda (t1: -TList).(\lambda (H: ((\forall (a: A).((arity g c (THeads (Flat Appl) t1 u) -(asucc g a)) \to ((arity g c (THeads (Flat Appl) t1 t) a) \to (arity g c -(THeads (Flat Appl) t1 (THead (Flat Cast) u t)) a)))))).(\lambda (a: -A).(\lambda (H0: (arity g c (THead (Flat Appl) t0 (THeads (Flat Appl) t1 u)) -(asucc g a))).(\lambda (H1: (arity g c (THead (Flat Appl) t0 (THeads (Flat -Appl) t1 t)) a)).(let H2 \def (arity_gen_appl g c t0 (THeads (Flat Appl) t1 -t) a H1) in (ex2_ind A (\lambda (a1: A).(arity g c t0 a1)) (\lambda (a1: -A).(arity g c (THeads (Flat Appl) t1 t) (AHead a1 a))) (arity g c (THead -(Flat Appl) t0 (THeads (Flat Appl) t1 (THead (Flat Cast) u t))) a) (\lambda -(x: A).(\lambda (H3: (arity g c t0 x)).(\lambda (H4: (arity g c (THeads (Flat -Appl) t1 t) (AHead x a))).(let H5 \def (arity_gen_appl g c t0 (THeads (Flat -Appl) t1 u) (asucc g a) H0) in (ex2_ind A (\lambda (a1: A).(arity g c t0 a1)) -(\lambda (a1: A).(arity g c (THeads (Flat Appl) t1 u) (AHead a1 (asucc g -a)))) (arity g c (THead (Flat Appl) t0 (THeads (Flat Appl) t1 (THead (Flat -Cast) u t))) a) (\lambda (x0: A).(\lambda (H6: (arity g c t0 x0)).(\lambda -(H7: (arity g c (THeads (Flat Appl) t1 u) (AHead x0 (asucc g -a)))).(arity_appl g c t0 x H3 (THeads (Flat Appl) t1 (THead (Flat Cast) u t)) -a (H (AHead x a) (arity_repl g c (THeads (Flat Appl) t1 u) (AHead x (asucc g -a)) (arity_repl g c (THeads (Flat Appl) t1 u) (AHead x0 (asucc g a)) H7 -(AHead x (asucc g a)) (leq_head g x0 x (arity_mono g c t0 x0 H6 x H3) (asucc -g a) (asucc g a) (leq_refl g (asucc g a)))) (asucc g (AHead x a)) (leq_refl g -(asucc g (AHead x a)))) H4))))) H5))))) H2)))))))) vs))))). -(* COMMENTS -Initial nodes: 707 -END *) +TList).(let TMP_5 \def (\lambda (t0: TList).(\forall (a: A).((arity g c +(THeads (Flat Appl) t0 u) (asucc g a)) \to ((arity g c (THeads (Flat Appl) t0 +t) a) \to (let TMP_1 \def (Flat Appl) in (let TMP_2 \def (Flat Cast) in (let +TMP_3 \def (THead TMP_2 u t) in (let TMP_4 \def (THeads TMP_1 t0 TMP_3) in +(arity g c TMP_4 a))))))))) in (let TMP_6 \def (\lambda (a: A).(\lambda (H: +(arity g c u (asucc g a))).(\lambda (H0: (arity g c t a)).(arity_cast g c u a +H t H0)))) in (let TMP_68 \def (\lambda (t0: T).(\lambda (t1: TList).(\lambda +(H: ((\forall (a: A).((arity g c (THeads (Flat Appl) t1 u) (asucc g a)) \to +((arity g c (THeads (Flat Appl) t1 t) a) \to (arity g c (THeads (Flat Appl) +t1 (THead (Flat Cast) u t)) a)))))).(\lambda (a: A).(\lambda (H0: (arity g c +(THead (Flat Appl) t0 (THeads (Flat Appl) t1 u)) (asucc g a))).(\lambda (H1: +(arity g c (THead (Flat Appl) t0 (THeads (Flat Appl) t1 t)) a)).(let TMP_7 +\def (Flat Appl) in (let TMP_8 \def (THeads TMP_7 t1 t) in (let H2 \def +(arity_gen_appl g c t0 TMP_8 a H1) in (let TMP_9 \def (\lambda (a1: A).(arity +g c t0 a1)) in (let TMP_13 \def (\lambda (a1: A).(let TMP_10 \def (Flat Appl) +in (let TMP_11 \def (THeads TMP_10 t1 t) in (let TMP_12 \def (AHead a1 a) in +(arity g c TMP_11 TMP_12))))) in (let TMP_14 \def (Flat Appl) in (let TMP_15 +\def (Flat Appl) in (let TMP_16 \def (Flat Cast) in (let TMP_17 \def (THead +TMP_16 u t) in (let TMP_18 \def (THeads TMP_15 t1 TMP_17) in (let TMP_19 \def +(THead TMP_14 t0 TMP_18) in (let TMP_20 \def (arity g c TMP_19 a) in (let +TMP_67 \def (\lambda (x: A).(\lambda (H3: (arity g c t0 x)).(\lambda (H4: +(arity g c (THeads (Flat Appl) t1 t) (AHead x a))).(let TMP_21 \def (Flat +Appl) in (let TMP_22 \def (THeads TMP_21 t1 u) in (let TMP_23 \def (asucc g +a) in (let H5 \def (arity_gen_appl g c t0 TMP_22 TMP_23 H0) in (let TMP_24 +\def (\lambda (a1: A).(arity g c t0 a1)) in (let TMP_29 \def (\lambda (a1: +A).(let TMP_25 \def (Flat Appl) in (let TMP_26 \def (THeads TMP_25 t1 u) in +(let TMP_27 \def (asucc g a) in (let TMP_28 \def (AHead a1 TMP_27) in (arity +g c TMP_26 TMP_28)))))) in (let TMP_30 \def (Flat Appl) in (let TMP_31 \def +(Flat Appl) in (let TMP_32 \def (Flat Cast) in (let TMP_33 \def (THead TMP_32 +u t) in (let TMP_34 \def (THeads TMP_31 t1 TMP_33) in (let TMP_35 \def (THead +TMP_30 t0 TMP_34) in (let TMP_36 \def (arity g c TMP_35 a) in (let TMP_66 +\def (\lambda (x0: A).(\lambda (H6: (arity g c t0 x0)).(\lambda (H7: (arity g +c (THeads (Flat Appl) t1 u) (AHead x0 (asucc g a)))).(let TMP_37 \def (Flat +Appl) in (let TMP_38 \def (Flat Cast) in (let TMP_39 \def (THead TMP_38 u t) +in (let TMP_40 \def (THeads TMP_37 t1 TMP_39) in (let TMP_41 \def (AHead x a) +in (let TMP_42 \def (Flat Appl) in (let TMP_43 \def (THeads TMP_42 t1 u) in +(let TMP_44 \def (asucc g a) in (let TMP_45 \def (AHead x TMP_44) in (let +TMP_46 \def (Flat Appl) in (let TMP_47 \def (THeads TMP_46 t1 u) in (let +TMP_48 \def (asucc g a) in (let TMP_49 \def (AHead x0 TMP_48) in (let TMP_50 +\def (asucc g a) in (let TMP_51 \def (AHead x TMP_50) in (let TMP_52 \def +(arity_mono g c t0 x0 H6 x H3) in (let TMP_53 \def (asucc g a) in (let TMP_54 +\def (asucc g a) in (let TMP_55 \def (asucc g a) in (let TMP_56 \def +(leq_refl g TMP_55) in (let TMP_57 \def (leq_head g x0 x TMP_52 TMP_53 TMP_54 +TMP_56) in (let TMP_58 \def (arity_repl g c TMP_47 TMP_49 H7 TMP_51 TMP_57) +in (let TMP_59 \def (AHead x a) in (let TMP_60 \def (asucc g TMP_59) in (let +TMP_61 \def (AHead x a) in (let TMP_62 \def (asucc g TMP_61) in (let TMP_63 +\def (leq_refl g TMP_62) in (let TMP_64 \def (arity_repl g c TMP_43 TMP_45 +TMP_58 TMP_60 TMP_63) in (let TMP_65 \def (H TMP_41 TMP_64 H4) in (arity_appl +g c t0 x H3 TMP_40 a TMP_65))))))))))))))))))))))))))))))))) in (ex2_ind A +TMP_24 TMP_29 TMP_36 TMP_66 H5)))))))))))))))))) in (ex2_ind A TMP_9 TMP_13 +TMP_20 TMP_67 H2)))))))))))))))))))) in (TList_ind TMP_5 TMP_6 TMP_68 +vs)))))))). theorem arity_appls_abbr: \forall (g: G).(\forall (c: C).(\forall (d: C).(\forall (v: T).(\forall (i: @@ -380,24 +597,33 @@ nat).((getl i c (CHead d (Bind Abbr) v)) \to (\forall (vs: TList).(\forall \def \lambda (g: G).(\lambda (c: C).(\lambda (d: C).(\lambda (v: T).(\lambda (i: nat).(\lambda (H: (getl i c (CHead d (Bind Abbr) v))).(\lambda (vs: -TList).(TList_ind (\lambda (t: TList).(\forall (a: A).((arity g c (THeads -(Flat Appl) t (lift (S i) O v)) a) \to (arity g c (THeads (Flat Appl) t -(TLRef i)) a)))) (\lambda (a: A).(\lambda (H0: (arity g c (lift (S i) O v) -a)).(arity_abbr g c d v i H a (arity_gen_lift g c v a (S i) O H0 d (getl_drop -Abbr c d v i H))))) (\lambda (t: T).(\lambda (t0: TList).(\lambda (H0: -((\forall (a: A).((arity g c (THeads (Flat Appl) t0 (lift (S i) O v)) a) \to -(arity g c (THeads (Flat Appl) t0 (TLRef i)) a))))).(\lambda (a: A).(\lambda -(H1: (arity g c (THead (Flat Appl) t (THeads (Flat Appl) t0 (lift (S i) O -v))) a)).(let H2 \def (arity_gen_appl g c t (THeads (Flat Appl) t0 (lift (S -i) O v)) a H1) in (ex2_ind A (\lambda (a1: A).(arity g c t a1)) (\lambda (a1: -A).(arity g c (THeads (Flat Appl) t0 (lift (S i) O v)) (AHead a1 a))) (arity -g c (THead (Flat Appl) t (THeads (Flat Appl) t0 (TLRef i))) a) (\lambda (x: -A).(\lambda (H3: (arity g c t x)).(\lambda (H4: (arity g c (THeads (Flat -Appl) t0 (lift (S i) O v)) (AHead x a))).(arity_appl g c t x H3 (THeads (Flat -Appl) t0 (TLRef i)) a (H0 (AHead x a) H4))))) H2))))))) vs))))))). -(* COMMENTS -Initial nodes: 425 -END *) +TList).(let TMP_4 \def (\lambda (t: TList).(\forall (a: A).((arity g c +(THeads (Flat Appl) t (lift (S i) O v)) a) \to (let TMP_1 \def (Flat Appl) in +(let TMP_2 \def (TLRef i) in (let TMP_3 \def (THeads TMP_1 t TMP_2) in (arity +g c TMP_3 a))))))) in (let TMP_8 \def (\lambda (a: A).(\lambda (H0: (arity g +c (lift (S i) O v) a)).(let TMP_5 \def (S i) in (let TMP_6 \def (getl_drop +Abbr c d v i H) in (let TMP_7 \def (arity_gen_lift g c v a TMP_5 O H0 d +TMP_6) in (arity_abbr g c d v i H a TMP_7)))))) in (let TMP_32 \def (\lambda +(t: T).(\lambda (t0: TList).(\lambda (H0: ((\forall (a: A).((arity g c +(THeads (Flat Appl) t0 (lift (S i) O v)) a) \to (arity g c (THeads (Flat +Appl) t0 (TLRef i)) a))))).(\lambda (a: A).(\lambda (H1: (arity g c (THead +(Flat Appl) t (THeads (Flat Appl) t0 (lift (S i) O v))) a)).(let TMP_9 \def +(Flat Appl) in (let TMP_10 \def (S i) in (let TMP_11 \def (lift TMP_10 O v) +in (let TMP_12 \def (THeads TMP_9 t0 TMP_11) in (let H2 \def (arity_gen_appl +g c t TMP_12 a H1) in (let TMP_13 \def (\lambda (a1: A).(arity g c t a1)) in +(let TMP_19 \def (\lambda (a1: A).(let TMP_14 \def (Flat Appl) in (let TMP_15 +\def (S i) in (let TMP_16 \def (lift TMP_15 O v) in (let TMP_17 \def (THeads +TMP_14 t0 TMP_16) in (let TMP_18 \def (AHead a1 a) in (arity g c TMP_17 +TMP_18))))))) in (let TMP_20 \def (Flat Appl) in (let TMP_21 \def (Flat Appl) +in (let TMP_22 \def (TLRef i) in (let TMP_23 \def (THeads TMP_21 t0 TMP_22) +in (let TMP_24 \def (THead TMP_20 t TMP_23) in (let TMP_25 \def (arity g c +TMP_24 a) in (let TMP_31 \def (\lambda (x: A).(\lambda (H3: (arity g c t +x)).(\lambda (H4: (arity g c (THeads (Flat Appl) t0 (lift (S i) O v)) (AHead +x a))).(let TMP_26 \def (Flat Appl) in (let TMP_27 \def (TLRef i) in (let +TMP_28 \def (THeads TMP_26 t0 TMP_27) in (let TMP_29 \def (AHead x a) in (let +TMP_30 \def (H0 TMP_29 H4) in (arity_appl g c t x H3 TMP_28 a TMP_30))))))))) +in (ex2_ind A TMP_13 TMP_19 TMP_25 TMP_31 H2)))))))))))))))))))) in +(TList_ind TMP_4 TMP_8 TMP_32 vs)))))))))). theorem arity_appls_bind: \forall (g: G).(\forall (b: B).((not (eq B b Abst)) \to (\forall (c: @@ -408,27 +634,42 @@ Appl) vs (THead (Bind b) v t)) a2))))))))))) \def \lambda (g: G).(\lambda (b: B).(\lambda (H: (not (eq B b Abst))).(\lambda (c: C).(\lambda (v: T).(\lambda (a1: A).(\lambda (H0: (arity g c v -a1)).(\lambda (t: T).(\lambda (vs: TList).(TList_ind (\lambda (t0: +a1)).(\lambda (t: T).(\lambda (vs: TList).(let TMP_5 \def (\lambda (t0: TList).(\forall (a2: A).((arity g (CHead c (Bind b) v) (THeads (Flat Appl) -(lifts (S O) O t0) t) a2) \to (arity g c (THeads (Flat Appl) t0 (THead (Bind -b) v t)) a2)))) (\lambda (a2: A).(\lambda (H1: (arity g (CHead c (Bind b) v) -t a2)).(arity_bind g b H c v a1 H0 t a2 H1))) (\lambda (t0: T).(\lambda (t1: +(lifts (S O) O t0) t) a2) \to (let TMP_1 \def (Flat Appl) in (let TMP_2 \def +(Bind b) in (let TMP_3 \def (THead TMP_2 v t) in (let TMP_4 \def (THeads +TMP_1 t0 TMP_3) in (arity g c TMP_4 a2)))))))) in (let TMP_6 \def (\lambda +(a2: A).(\lambda (H1: (arity g (CHead c (Bind b) v) t a2)).(arity_bind g b H +c v a1 H0 t a2 H1))) in (let TMP_49 \def (\lambda (t0: T).(\lambda (t1: TList).(\lambda (H1: ((\forall (a2: A).((arity g (CHead c (Bind b) v) (THeads (Flat Appl) (lifts (S O) O t1) t) a2) \to (arity g c (THeads (Flat Appl) t1 (THead (Bind b) v t)) a2))))).(\lambda (a2: A).(\lambda (H2: (arity g (CHead c (Bind b) v) (THead (Flat Appl) (lift (S O) O t0) (THeads (Flat Appl) (lifts -(S O) O t1) t)) a2)).(let H3 \def (arity_gen_appl g (CHead c (Bind b) v) -(lift (S O) O t0) (THeads (Flat Appl) (lifts (S O) O t1) t) a2 H2) in -(ex2_ind A (\lambda (a3: A).(arity g (CHead c (Bind b) v) (lift (S O) O t0) -a3)) (\lambda (a3: A).(arity g (CHead c (Bind b) v) (THeads (Flat Appl) -(lifts (S O) O t1) t) (AHead a3 a2))) (arity g c (THead (Flat Appl) t0 -(THeads (Flat Appl) t1 (THead (Bind b) v t))) a2) (\lambda (x: A).(\lambda -(H4: (arity g (CHead c (Bind b) v) (lift (S O) O t0) x)).(\lambda (H5: (arity -g (CHead c (Bind b) v) (THeads (Flat Appl) (lifts (S O) O t1) t) (AHead x -a2))).(arity_appl g c t0 x (arity_gen_lift g (CHead c (Bind b) v) t0 x (S O) -O H4 c (drop_drop (Bind b) O c c (drop_refl c) v)) (THeads (Flat Appl) t1 -(THead (Bind b) v t)) a2 (H1 (AHead x a2) H5))))) H3))))))) vs))))))))). -(* COMMENTS -Initial nodes: 567 -END *) +(S O) O t1) t)) a2)).(let TMP_7 \def (Bind b) in (let TMP_8 \def (CHead c +TMP_7 v) in (let TMP_9 \def (S O) in (let TMP_10 \def (lift TMP_9 O t0) in +(let TMP_11 \def (Flat Appl) in (let TMP_12 \def (S O) in (let TMP_13 \def +(lifts TMP_12 O t1) in (let TMP_14 \def (THeads TMP_11 TMP_13 t) in (let H3 +\def (arity_gen_appl g TMP_8 TMP_10 TMP_14 a2 H2) in (let TMP_19 \def +(\lambda (a3: A).(let TMP_15 \def (Bind b) in (let TMP_16 \def (CHead c +TMP_15 v) in (let TMP_17 \def (S O) in (let TMP_18 \def (lift TMP_17 O t0) in +(arity g TMP_16 TMP_18 a3)))))) in (let TMP_27 \def (\lambda (a3: A).(let +TMP_20 \def (Bind b) in (let TMP_21 \def (CHead c TMP_20 v) in (let TMP_22 +\def (Flat Appl) in (let TMP_23 \def (S O) in (let TMP_24 \def (lifts TMP_23 +O t1) in (let TMP_25 \def (THeads TMP_22 TMP_24 t) in (let TMP_26 \def (AHead +a3 a2) in (arity g TMP_21 TMP_25 TMP_26))))))))) in (let TMP_28 \def (Flat +Appl) in (let TMP_29 \def (Flat Appl) in (let TMP_30 \def (Bind b) in (let +TMP_31 \def (THead TMP_30 v t) in (let TMP_32 \def (THeads TMP_29 t1 TMP_31) +in (let TMP_33 \def (THead TMP_28 t0 TMP_32) in (let TMP_34 \def (arity g c +TMP_33 a2) in (let TMP_48 \def (\lambda (x: A).(\lambda (H4: (arity g (CHead +c (Bind b) v) (lift (S O) O t0) x)).(\lambda (H5: (arity g (CHead c (Bind b) +v) (THeads (Flat Appl) (lifts (S O) O t1) t) (AHead x a2))).(let TMP_35 \def +(Bind b) in (let TMP_36 \def (CHead c TMP_35 v) in (let TMP_37 \def (S O) in +(let TMP_38 \def (Bind b) in (let TMP_39 \def (drop_refl c) in (let TMP_40 +\def (drop_drop TMP_38 O c c TMP_39 v) in (let TMP_41 \def (arity_gen_lift g +TMP_36 t0 x TMP_37 O H4 c TMP_40) in (let TMP_42 \def (Flat Appl) in (let +TMP_43 \def (Bind b) in (let TMP_44 \def (THead TMP_43 v t) in (let TMP_45 +\def (THeads TMP_42 t1 TMP_44) in (let TMP_46 \def (AHead x a2) in (let +TMP_47 \def (H1 TMP_46 H5) in (arity_appl g c t0 x TMP_41 TMP_45 a2 +TMP_47))))))))))))))))) in (ex2_ind A TMP_19 TMP_27 TMP_34 TMP_48 +H3))))))))))))))))))))))))) in (TList_ind TMP_5 TMP_6 TMP_49 vs)))))))))))). diff --git a/matita/matita/contribs/lambdadelta/basic_1/arity/subst0.ma b/matita/matita/contribs/lambdadelta/basic_1/arity/subst0.ma index 16046993b..48d87a2a4 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/arity/subst0.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/arity/subst0.ma @@ -14,17 +14,17 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/arity/props.ma". +include "basic_1/arity/props.ma". -include "Basic-1/fsubst0/fwd.ma". +include "basic_1/fsubst0/fwd.ma". -include "Basic-1/csubst0/getl.ma". +include "basic_1/csubst0/getl.ma". -include "Basic-1/subst0/dec.ma". +include "basic_1/subst0/dec.ma". -include "Basic-1/subst0/fwd.ma". +include "basic_1/subst0/fwd.ma". -include "Basic-1/getl/getl.ma". +include "basic_1/getl/getl.ma". theorem arity_gen_cvoid_subst0: \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (a: A).((arity g c t @@ -53,19 +53,18 @@ w))).(let H7 \def (eq_ind_r nat i0 (\lambda (n: nat).(getl n c0 (CHead d0 (Bind Void) u0))) H3 i H5) in (let H8 \def (eq_ind C (CHead d (Bind Abbr) u) (\lambda (c1: C).(getl i c0 c1)) H0 (CHead d0 (Bind Void) u0) (getl_mono c0 (CHead d (Bind Abbr) u) i H0 (CHead d0 (Bind Void) u0) H7)) in (let H9 \def -(eq_ind C (CHead d (Bind Abbr) u) (\lambda (ee: C).(match ee in C return -(\lambda (_: C).Prop) with [(CSort _) \Rightarrow False | (CHead _ k _) -\Rightarrow (match k in K return (\lambda (_: K).Prop) with [(Bind b) -\Rightarrow (match b in B return (\lambda (_: B).Prop) with [Abbr \Rightarrow -True | Abst \Rightarrow False | Void \Rightarrow False]) | (Flat _) -\Rightarrow False])])) I (CHead d0 (Bind Void) u0) (getl_mono c0 (CHead d -(Bind Abbr) u) i H0 (CHead d0 (Bind Void) u0) H7)) in (False_ind P H9)))))) -(subst0_gen_lref w v i0 i H4)))))))))))))))))) (\lambda (c0: C).(\lambda (d: -C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c0 (CHead d (Bind -Abst) u))).(\lambda (a0: A).(\lambda (_: (arity g d u (asucc g a0))).(\lambda -(_: ((\forall (d0: C).(\forall (u0: T).(\forall (i0: nat).((getl i0 d (CHead -d0 (Bind Void) u0)) \to (\forall (w: T).(\forall (v: T).((subst0 i0 w u v) -\to (\forall (P: Prop).P)))))))))).(\lambda (d0: C).(\lambda (u0: T).(\lambda +(eq_ind C (CHead d (Bind Abbr) u) (\lambda (ee: C).(match ee with [(CSort _) +\Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind b) +\Rightarrow (match b with [Abbr \Rightarrow True | Abst \Rightarrow False | +Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead d0 (Bind +Void) u0) (getl_mono c0 (CHead d (Bind Abbr) u) i H0 (CHead d0 (Bind Void) +u0) H7)) in (False_ind P H9)))))) (subst0_gen_lref w v i0 i +H4)))))))))))))))))) (\lambda (c0: C).(\lambda (d: C).(\lambda (u: +T).(\lambda (i: nat).(\lambda (H0: (getl i c0 (CHead d (Bind Abst) +u))).(\lambda (a0: A).(\lambda (_: (arity g d u (asucc g a0))).(\lambda (_: +((\forall (d0: C).(\forall (u0: T).(\forall (i0: nat).((getl i0 d (CHead d0 +(Bind Void) u0)) \to (\forall (w: T).(\forall (v: T).((subst0 i0 w u v) \to +(\forall (P: Prop).P)))))))))).(\lambda (d0: C).(\lambda (u0: T).(\lambda (i0: nat).(\lambda (H3: (getl i0 c0 (CHead d0 (Bind Void) u0))).(\lambda (w: T).(\lambda (v: T).(\lambda (H4: (subst0 i0 w (TLRef i) v)).(\lambda (P: Prop).(land_ind (eq nat i i0) (eq T v (lift (S i) O w)) P (\lambda (H5: (eq @@ -74,38 +73,37 @@ i0 (\lambda (n: nat).(getl n c0 (CHead d0 (Bind Void) u0))) H3 i H5) in (let H8 \def (eq_ind C (CHead d (Bind Abst) u) (\lambda (c1: C).(getl i c0 c1)) H0 (CHead d0 (Bind Void) u0) (getl_mono c0 (CHead d (Bind Abst) u) i H0 (CHead d0 (Bind Void) u0) H7)) in (let H9 \def (eq_ind C (CHead d (Bind Abst) u) -(\lambda (ee: C).(match ee in C return (\lambda (_: C).Prop) with [(CSort _) -\Rightarrow False | (CHead _ k _) \Rightarrow (match k in K return (\lambda -(_: K).Prop) with [(Bind b) \Rightarrow (match b in B return (\lambda (_: -B).Prop) with [Abbr \Rightarrow False | Abst \Rightarrow True | Void -\Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead d0 (Bind Void) -u0) (getl_mono c0 (CHead d (Bind Abst) u) i H0 (CHead d0 (Bind Void) u0) H7)) -in (False_ind P H9)))))) (subst0_gen_lref w v i0 i H4)))))))))))))))))) -(\lambda (b: B).(\lambda (_: (not (eq B b Abst))).(\lambda (c0: C).(\lambda -(u: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u a1)).(\lambda (H2: -((\forall (d: C).(\forall (u0: T).(\forall (i: nat).((getl i c0 (CHead d -(Bind Void) u0)) \to (\forall (w: T).(\forall (v: T).((subst0 i w u v) \to -(\forall (P: Prop).P)))))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: -(arity g (CHead c0 (Bind b) u) t0 a2)).(\lambda (H4: ((\forall (d: -C).(\forall (u0: T).(\forall (i: nat).((getl i (CHead c0 (Bind b) u) (CHead d -(Bind Void) u0)) \to (\forall (w: T).(\forall (v: T).((subst0 i w t0 v) \to -(\forall (P: Prop).P)))))))))).(\lambda (d: C).(\lambda (u0: T).(\lambda (i: -nat).(\lambda (H5: (getl i c0 (CHead d (Bind Void) u0))).(\lambda (w: -T).(\lambda (v: T).(\lambda (H6: (subst0 i w (THead (Bind b) u t0) -v)).(\lambda (P: Prop).(or3_ind (ex2 T (\lambda (u2: T).(eq T v (THead (Bind -b) u2 t0))) (\lambda (u2: T).(subst0 i w u u2))) (ex2 T (\lambda (t2: T).(eq -T v (THead (Bind b) u t2))) (\lambda (t2: T).(subst0 (s (Bind b) i) w t0 -t2))) (ex3_2 T T (\lambda (u2: T).(\lambda (t2: T).(eq T v (THead (Bind b) u2 -t2)))) (\lambda (u2: T).(\lambda (_: T).(subst0 i w u u2))) (\lambda (_: -T).(\lambda (t2: T).(subst0 (s (Bind b) i) w t0 t2)))) P (\lambda (H7: (ex2 T -(\lambda (u2: T).(eq T v (THead (Bind b) u2 t0))) (\lambda (u2: T).(subst0 i -w u u2)))).(ex2_ind T (\lambda (u2: T).(eq T v (THead (Bind b) u2 t0))) -(\lambda (u2: T).(subst0 i w u u2)) P (\lambda (x: T).(\lambda (_: (eq T v -(THead (Bind b) x t0))).(\lambda (H9: (subst0 i w u x)).(H2 d u0 i H5 w x H9 -P)))) H7)) (\lambda (H7: (ex2 T (\lambda (t2: T).(eq T v (THead (Bind b) u -t2))) (\lambda (t2: T).(subst0 (s (Bind b) i) w t0 t2)))).(ex2_ind T (\lambda -(t2: T).(eq T v (THead (Bind b) u t2))) (\lambda (t2: T).(subst0 (s (Bind b) -i) w t0 t2)) P (\lambda (x: T).(\lambda (_: (eq T v (THead (Bind b) u +(\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) +\Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr +\Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat +_) \Rightarrow False])])) I (CHead d0 (Bind Void) u0) (getl_mono c0 (CHead d +(Bind Abst) u) i H0 (CHead d0 (Bind Void) u0) H7)) in (False_ind P H9)))))) +(subst0_gen_lref w v i0 i H4)))))))))))))))))) (\lambda (b: B).(\lambda (_: +(not (eq B b Abst))).(\lambda (c0: C).(\lambda (u: T).(\lambda (a1: +A).(\lambda (_: (arity g c0 u a1)).(\lambda (H2: ((\forall (d: C).(\forall +(u0: T).(\forall (i: nat).((getl i c0 (CHead d (Bind Void) u0)) \to (\forall +(w: T).(\forall (v: T).((subst0 i w u v) \to (\forall (P: +Prop).P)))))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g +(CHead c0 (Bind b) u) t0 a2)).(\lambda (H4: ((\forall (d: C).(\forall (u0: +T).(\forall (i: nat).((getl i (CHead c0 (Bind b) u) (CHead d (Bind Void) u0)) +\to (\forall (w: T).(\forall (v: T).((subst0 i w t0 v) \to (\forall (P: +Prop).P)))))))))).(\lambda (d: C).(\lambda (u0: T).(\lambda (i: nat).(\lambda +(H5: (getl i c0 (CHead d (Bind Void) u0))).(\lambda (w: T).(\lambda (v: +T).(\lambda (H6: (subst0 i w (THead (Bind b) u t0) v)).(\lambda (P: +Prop).(or3_ind (ex2 T (\lambda (u2: T).(eq T v (THead (Bind b) u2 t0))) +(\lambda (u2: T).(subst0 i w u u2))) (ex2 T (\lambda (t2: T).(eq T v (THead +(Bind b) u t2))) (\lambda (t2: T).(subst0 (s (Bind b) i) w t0 t2))) (ex3_2 T +T (\lambda (u2: T).(\lambda (t2: T).(eq T v (THead (Bind b) u2 t2)))) +(\lambda (u2: T).(\lambda (_: T).(subst0 i w u u2))) (\lambda (_: T).(\lambda +(t2: T).(subst0 (s (Bind b) i) w t0 t2)))) P (\lambda (H7: (ex2 T (\lambda +(u2: T).(eq T v (THead (Bind b) u2 t0))) (\lambda (u2: T).(subst0 i w u +u2)))).(ex2_ind T (\lambda (u2: T).(eq T v (THead (Bind b) u2 t0))) (\lambda +(u2: T).(subst0 i w u u2)) P (\lambda (x: T).(\lambda (_: (eq T v (THead +(Bind b) x t0))).(\lambda (H9: (subst0 i w u x)).(H2 d u0 i H5 w x H9 P)))) +H7)) (\lambda (H7: (ex2 T (\lambda (t2: T).(eq T v (THead (Bind b) u t2))) +(\lambda (t2: T).(subst0 (s (Bind b) i) w t0 t2)))).(ex2_ind T (\lambda (t2: +T).(eq T v (THead (Bind b) u t2))) (\lambda (t2: T).(subst0 (s (Bind b) i) w +t0 t2)) P (\lambda (x: T).(\lambda (_: (eq T v (THead (Bind b) u x))).(\lambda (H9: (subst0 (s (Bind b) i) w t0 x)).(H4 d u0 (S i) (getl_clear_bind b (CHead c0 (Bind b) u) c0 u (clear_bind b c0 u) (CHead d (Bind Void) u0) i H5) w x H9 P)))) H7)) (\lambda (H7: (ex3_2 T T (\lambda @@ -233,9 +231,6 @@ A).(\lambda (_: (leq g a1 a2)).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H3: (getl i c0 (CHead d (Bind Void) u))).(\lambda (w: T).(\lambda (v: T).(\lambda (H4: (subst0 i w t0 v)).(\lambda (P: Prop).(H1 d u i H3 w v H4 P)))))))))))))))) c t a H))))). -(* COMMENTS -Initial nodes: 4131 -END *) theorem arity_gen_cvoid: \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (a: A).((arity g c t @@ -257,9 +252,6 @@ t (lift (S O) i x)))).(or_ind (subst0 i u t (lift (S O) i x)) (eq T t (lift x) (\lambda (t0: T).(ex T (\lambda (v: T).(eq T t0 (lift (S O) i v))))) (ex_intro T (\lambda (v: T).(eq T (lift (S O) i x) (lift (S O) i v))) x (refl_equal T (lift (S O) i x))) t H3))) H2))) H1))))))))))). -(* COMMENTS -Initial nodes: 423 -END *) theorem arity_fsubst0: \forall (g: G).(\forall (c1: C).(\forall (t1: T).(\forall (a: A).((arity g @@ -311,47 +303,47 @@ u0) (\lambda (t: T).(arity g c t a0)) (let H11 \def (eq_ind_r nat i0 (\lambda (n: nat).(getl n c (CHead d1 (Bind Abbr) u0))) H3 i H9) in (let H12 \def (eq_ind C (CHead d (Bind Abbr) u) (\lambda (c0: C).(getl i c c0)) H0 (CHead d1 (Bind Abbr) u0) (getl_mono c (CHead d (Bind Abbr) u) i H0 (CHead d1 (Bind -Abbr) u0) H11)) in (let H13 \def (f_equal C C (\lambda (e: C).(match e in C -return (\lambda (_: C).C) with [(CSort _) \Rightarrow d | (CHead c0 _ _) -\Rightarrow c0])) (CHead d (Bind Abbr) u) (CHead d1 (Bind Abbr) u0) -(getl_mono c (CHead d (Bind Abbr) u) i H0 (CHead d1 (Bind Abbr) u0) H11)) in -((let H14 \def (f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: -C).T) with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) (CHead d -(Bind Abbr) u) (CHead d1 (Bind Abbr) u0) (getl_mono c (CHead d (Bind Abbr) u) -i H0 (CHead d1 (Bind Abbr) u0) H11)) in (\lambda (H15: (eq C d d1)).(let H16 -\def (eq_ind_r T u0 (\lambda (t: T).(getl i c (CHead d1 (Bind Abbr) t))) H12 -u H14) in (eq_ind T u (\lambda (t: T).(arity g c (lift (S i) O t) a0)) (let -H17 \def (eq_ind_r C d1 (\lambda (c0: C).(getl i c (CHead c0 (Bind Abbr) u))) -H16 d H15) in (arity_lift g d u a0 H1 c (S i) O (getl_drop Abbr c d u i -H17))) u0 H14)))) H13)))) t2 H10))) (subst0_gen_lref u0 t2 i0 i H8)) c2 H7))) -H6)) (\lambda (H6: (land (eq T (TLRef i) t2) (csubst0 i0 u0 c c2))).(land_ind -(eq T (TLRef i) t2) (csubst0 i0 u0 c c2) (arity g c2 t2 a0) (\lambda (H7: (eq -T (TLRef i) t2)).(\lambda (H8: (csubst0 i0 u0 c c2)).(eq_ind T (TLRef i) -(\lambda (t: T).(arity g c2 t a0)) (lt_le_e i i0 (arity g c2 (TLRef i) a0) -(\lambda (H9: (lt i i0)).(let H10 \def (csubst0_getl_lt i0 i H9 c c2 u0 H8 -(CHead d (Bind Abbr) u) H0) in (or4_ind (getl i c2 (CHead d (Bind Abbr) u)) -(ex3_4 B C T T (\lambda (b: B).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: -T).(eq C (CHead d (Bind Abbr) u) (CHead e0 (Bind b) u1)))))) (\lambda (b: -B).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(getl i c2 (CHead e0 -(Bind b) w)))))) (\lambda (_: B).(\lambda (_: C).(\lambda (u1: T).(\lambda -(w: T).(subst0 (minus i0 (S i)) u0 u1 w)))))) (ex3_4 B C C T (\lambda (b: -B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(eq C (CHead d (Bind -Abbr) u) (CHead e1 (Bind b) u1)))))) (\lambda (b: B).(\lambda (_: C).(\lambda -(e2: C).(\lambda (u1: T).(getl i c2 (CHead e2 (Bind b) u1)))))) (\lambda (_: -B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (minus i0 (S -i)) u0 e1 e2)))))) (ex4_5 B C C T T (\lambda (b: B).(\lambda (e1: C).(\lambda -(_: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead d (Bind Abbr) u) (CHead -e1 (Bind b) u1))))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: -C).(\lambda (_: T).(\lambda (w: T).(getl i c2 (CHead e2 (Bind b) w))))))) -(\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: -T).(subst0 (minus i0 (S i)) u0 u1 w)))))) (\lambda (_: B).(\lambda (e1: -C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus i0 (S i)) -u0 e1 e2))))))) (arity g c2 (TLRef i) a0) (\lambda (H11: (getl i c2 (CHead d -(Bind Abbr) u))).(let H12 \def (eq_ind nat (minus i0 i) (\lambda (n: -nat).(getl n (CHead d (Bind Abbr) u) (CHead d1 (Bind Abbr) u0))) -(getl_conf_le i0 (CHead d1 (Bind Abbr) u0) c H3 (CHead d (Bind Abbr) u) i H0 -(le_S_n i i0 (le_S (S i) i0 H9))) (S (minus i0 (S i))) (minus_x_Sy i0 i H9)) -in (arity_abbr g c2 d u i H11 a0 H1))) (\lambda (H11: (ex3_4 B C T T (\lambda +Abbr) u0) H11)) in (let H13 \def (f_equal C C (\lambda (e: C).(match e with +[(CSort _) \Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) (CHead d (Bind +Abbr) u) (CHead d1 (Bind Abbr) u0) (getl_mono c (CHead d (Bind Abbr) u) i H0 +(CHead d1 (Bind Abbr) u0) H11)) in ((let H14 \def (f_equal C T (\lambda (e: +C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) +(CHead d (Bind Abbr) u) (CHead d1 (Bind Abbr) u0) (getl_mono c (CHead d (Bind +Abbr) u) i H0 (CHead d1 (Bind Abbr) u0) H11)) in (\lambda (H15: (eq C d +d1)).(let H16 \def (eq_ind_r T u0 (\lambda (t: T).(getl i c (CHead d1 (Bind +Abbr) t))) H12 u H14) in (eq_ind T u (\lambda (t: T).(arity g c (lift (S i) O +t) a0)) (let H17 \def (eq_ind_r C d1 (\lambda (c0: C).(getl i c (CHead c0 +(Bind Abbr) u))) H16 d H15) in (arity_lift g d u a0 H1 c (S i) O (getl_drop +Abbr c d u i H17))) u0 H14)))) H13)))) t2 H10))) (subst0_gen_lref u0 t2 i0 i +H8)) c2 H7))) H6)) (\lambda (H6: (land (eq T (TLRef i) t2) (csubst0 i0 u0 c +c2))).(land_ind (eq T (TLRef i) t2) (csubst0 i0 u0 c c2) (arity g c2 t2 a0) +(\lambda (H7: (eq T (TLRef i) t2)).(\lambda (H8: (csubst0 i0 u0 c +c2)).(eq_ind T (TLRef i) (\lambda (t: T).(arity g c2 t a0)) (lt_le_e i i0 +(arity g c2 (TLRef i) a0) (\lambda (H9: (lt i i0)).(let H10 \def +(csubst0_getl_lt i0 i H9 c c2 u0 H8 (CHead d (Bind Abbr) u) H0) in (or4_ind +(getl i c2 (CHead d (Bind Abbr) u)) (ex3_4 B C T T (\lambda (b: B).(\lambda +(e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead d (Bind Abbr) u) (CHead +e0 (Bind b) u1)))))) (\lambda (b: B).(\lambda (e0: C).(\lambda (_: +T).(\lambda (w: T).(getl i c2 (CHead e0 (Bind b) w)))))) (\lambda (_: +B).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) +u0 u1 w)))))) (ex3_4 B C C T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: +C).(\lambda (u1: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 (Bind b) u1)))))) +(\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u1: T).(getl i c2 +(CHead e2 (Bind b) u1)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: +C).(\lambda (_: T).(csubst0 (minus i0 (S i)) u0 e1 e2)))))) (ex4_5 B C C T T +(\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda +(_: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 (Bind b) u1))))))) (\lambda +(b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(getl +i c2 (CHead e2 (Bind b) w))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: +C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) u0 u1 w)))))) +(\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda +(_: T).(csubst0 (minus i0 (S i)) u0 e1 e2))))))) (arity g c2 (TLRef i) a0) +(\lambda (H11: (getl i c2 (CHead d (Bind Abbr) u))).(let H12 \def (eq_ind nat +(minus i0 i) (\lambda (n: nat).(getl n (CHead d (Bind Abbr) u) (CHead d1 +(Bind Abbr) u0))) (getl_conf_le i0 (CHead d1 (Bind Abbr) u0) c H3 (CHead d +(Bind Abbr) u) i H0 (le_S_n i i0 (le_S_n (S i) (S i0) (le_S (S (S i)) (S i0) +(le_n_S (S i) i0 H9))))) (S (minus i0 (S i))) (minus_x_Sy i0 i H9)) in +(arity_abbr g c2 d u i H11 a0 H1))) (\lambda (H11: (ex3_4 B C T T (\lambda (b: B).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead d (Bind Abbr) u) (CHead e0 (Bind b) u1)))))) (\lambda (b: B).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(getl i c2 (CHead e0 (Bind b) w)))))) @@ -367,16 +359,15 @@ Abbr) u) (CHead x1 (Bind x0) x2))).(\lambda (H13: (getl i c2 (CHead x1 (Bind x0) x3))).(\lambda (H14: (subst0 (minus i0 (S i)) u0 x2 x3)).(let H15 \def (eq_ind nat (minus i0 i) (\lambda (n: nat).(getl n (CHead d (Bind Abbr) u) (CHead d1 (Bind Abbr) u0))) (getl_conf_le i0 (CHead d1 (Bind Abbr) u0) c H3 -(CHead d (Bind Abbr) u) i H0 (le_S_n i i0 (le_S (S i) i0 H9))) (S (minus i0 -(S i))) (minus_x_Sy i0 i H9)) in (let H16 \def (f_equal C C (\lambda (e: -C).(match e in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow d | -(CHead c0 _ _) \Rightarrow c0])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) -x2) H12) in ((let H17 \def (f_equal C B (\lambda (e: C).(match e in C return -(\lambda (_: C).B) with [(CSort _) \Rightarrow Abbr | (CHead _ k _) -\Rightarrow (match k in K return (\lambda (_: K).B) with [(Bind b) -\Rightarrow b | (Flat _) \Rightarrow Abbr])])) (CHead d (Bind Abbr) u) (CHead -x1 (Bind x0) x2) H12) in ((let H18 \def (f_equal C T (\lambda (e: C).(match e -in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u | (CHead _ _ t) +(CHead d (Bind Abbr) u) i H0 (le_S_n i i0 (le_S_n (S i) (S i0) (le_S (S (S +i)) (S i0) (le_n_S (S i) i0 H9))))) (S (minus i0 (S i))) (minus_x_Sy i0 i +H9)) in (let H16 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) +\Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) (CHead d (Bind Abbr) u) +(CHead x1 (Bind x0) x2) H12) in ((let H17 \def (f_equal C B (\lambda (e: +C).(match e with [(CSort _) \Rightarrow Abbr | (CHead _ k _) \Rightarrow +(match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow Abbr])])) (CHead +d (Bind Abbr) u) (CHead x1 (Bind x0) x2) H12) in ((let H18 \def (f_equal C T +(\lambda (e: C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x2) H12) in (\lambda (H19: (eq B Abbr x0)).(\lambda (H20: (eq C d x1)).(let H21 \def (eq_ind_r T x2 (\lambda (t: T).(subst0 (minus i0 (S i)) u0 t x3)) H14 u H18) @@ -401,16 +392,15 @@ C (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3))).(\lambda (H13: (getl i c2 (CHead x2 (Bind x0) x3))).(\lambda (H14: (csubst0 (minus i0 (S i)) u0 x1 x2)).(let H15 \def (eq_ind nat (minus i0 i) (\lambda (n: nat).(getl n (CHead d (Bind Abbr) u) (CHead d1 (Bind Abbr) u0))) (getl_conf_le i0 (CHead d1 (Bind -Abbr) u0) c H3 (CHead d (Bind Abbr) u) i H0 (le_S_n i i0 (le_S (S i) i0 H9))) -(S (minus i0 (S i))) (minus_x_Sy i0 i H9)) in (let H16 \def (f_equal C C -(\lambda (e: C).(match e in C return (\lambda (_: C).C) with [(CSort _) -\Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) (CHead d (Bind Abbr) u) -(CHead x1 (Bind x0) x3) H12) in ((let H17 \def (f_equal C B (\lambda (e: -C).(match e in C return (\lambda (_: C).B) with [(CSort _) \Rightarrow Abbr | -(CHead _ k _) \Rightarrow (match k in K return (\lambda (_: K).B) with [(Bind -b) \Rightarrow b | (Flat _) \Rightarrow Abbr])])) (CHead d (Bind Abbr) u) -(CHead x1 (Bind x0) x3) H12) in ((let H18 \def (f_equal C T (\lambda (e: -C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u | +Abbr) u0) c H3 (CHead d (Bind Abbr) u) i H0 (le_S_n i i0 (le_S_n (S i) (S i0) +(le_S (S (S i)) (S i0) (le_n_S (S i) i0 H9))))) (S (minus i0 (S i))) +(minus_x_Sy i0 i H9)) in (let H16 \def (f_equal C C (\lambda (e: C).(match e +with [(CSort _) \Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) (CHead d +(Bind Abbr) u) (CHead x1 (Bind x0) x3) H12) in ((let H17 \def (f_equal C B +(\lambda (e: C).(match e with [(CSort _) \Rightarrow Abbr | (CHead _ k _) +\Rightarrow (match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow +Abbr])])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H12) in ((let H18 +\def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H12) in (\lambda (H19: (eq B Abbr x0)).(\lambda (H20: (eq C d x1)).(let H21 \def (eq_ind_r T x3 (\lambda (t: T).(getl i c2 (CHead x2 (Bind x0) t))) @@ -441,15 +431,14 @@ x0) x4))).(\lambda (H14: (subst0 (minus i0 (S i)) u0 x3 x4)).(\lambda (H15: (csubst0 (minus i0 (S i)) u0 x1 x2)).(let H16 \def (eq_ind nat (minus i0 i) (\lambda (n: nat).(getl n (CHead d (Bind Abbr) u) (CHead d1 (Bind Abbr) u0))) (getl_conf_le i0 (CHead d1 (Bind Abbr) u0) c H3 (CHead d (Bind Abbr) u) i H0 -(le_S_n i i0 (le_S (S i) i0 H9))) (S (minus i0 (S i))) (minus_x_Sy i0 i H9)) -in (let H17 \def (f_equal C C (\lambda (e: C).(match e in C return (\lambda -(_: C).C) with [(CSort _) \Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) -(CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H12) in ((let H18 \def -(f_equal C B (\lambda (e: C).(match e in C return (\lambda (_: C).B) with -[(CSort _) \Rightarrow Abbr | (CHead _ k _) \Rightarrow (match k in K return -(\lambda (_: K).B) with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow -Abbr])])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H12) in ((let H19 -\def (f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) +(le_S_n i i0 (le_S_n (S i) (S i0) (le_S (S (S i)) (S i0) (le_n_S (S i) i0 +H9))))) (S (minus i0 (S i))) (minus_x_Sy i0 i H9)) in (let H17 \def (f_equal +C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow d | (CHead c0 _ _) +\Rightarrow c0])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H12) in +((let H18 \def (f_equal C B (\lambda (e: C).(match e with [(CSort _) +\Rightarrow Abbr | (CHead _ k _) \Rightarrow (match k with [(Bind b) +\Rightarrow b | (Flat _) \Rightarrow Abbr])])) (CHead d (Bind Abbr) u) (CHead +x1 (Bind x0) x3) H12) in ((let H19 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H12) in (\lambda (H20: (eq B Abbr x0)).(\lambda (H21: (eq C d x1)).(let H22 \def (eq_ind_r T x3 (\lambda (t: @@ -472,34 +461,34 @@ nat).(csubst0 n u0 c c2)) H8 i H9) in (let H12 \def (eq_ind_r nat i0 (\lambda (n: nat).(getl n c (CHead d1 (Bind Abbr) u0))) H3 i H9) in (let H13 \def (eq_ind C (CHead d (Bind Abbr) u) (\lambda (c0: C).(getl i c c0)) H0 (CHead d1 (Bind Abbr) u0) (getl_mono c (CHead d (Bind Abbr) u) i H0 (CHead d1 (Bind -Abbr) u0) H12)) in (let H14 \def (f_equal C C (\lambda (e: C).(match e in C -return (\lambda (_: C).C) with [(CSort _) \Rightarrow d | (CHead c0 _ _) -\Rightarrow c0])) (CHead d (Bind Abbr) u) (CHead d1 (Bind Abbr) u0) -(getl_mono c (CHead d (Bind Abbr) u) i H0 (CHead d1 (Bind Abbr) u0) H12)) in -((let H15 \def (f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: -C).T) with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) (CHead d -(Bind Abbr) u) (CHead d1 (Bind Abbr) u0) (getl_mono c (CHead d (Bind Abbr) u) -i H0 (CHead d1 (Bind Abbr) u0) H12)) in (\lambda (H16: (eq C d d1)).(let H17 -\def (eq_ind_r T u0 (\lambda (t: T).(getl i c (CHead d1 (Bind Abbr) t))) H13 -u H15) in (let H18 \def (eq_ind_r T u0 (\lambda (t: T).(csubst0 i t c c2)) -H11 u H15) in (eq_ind T u (\lambda (t: T).(arity g c2 (lift (S i) O t) a0)) -(let H19 \def (eq_ind_r C d1 (\lambda (c0: C).(getl i c (CHead c0 (Bind Abbr) -u))) H17 d H16) in (arity_lift g d u a0 H1 c2 (S i) O (getl_drop Abbr c2 d u -i (csubst0_getl_ge i i (le_n i) c c2 u H18 (CHead d (Bind Abbr) u) H19)))) u0 -H15))))) H14))))) t2 H10))) (subst0_gen_lref u0 t2 i0 i H7)))) H6)) -H5)))))))))))))))))) (\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda -(i: nat).(\lambda (H0: (getl i c (CHead d (Bind Abst) u))).(\lambda (a0: -A).(\lambda (H1: (arity g d u (asucc g a0))).(\lambda (H2: ((\forall (d1: -C).(\forall (u0: T).(\forall (i0: nat).((getl i0 d (CHead d1 (Bind Abbr) u0)) -\to (\forall (c2: C).(\forall (t2: T).((fsubst0 i0 u0 d u c2 t2) \to (arity g -c2 t2 (asucc g a0))))))))))).(\lambda (d1: C).(\lambda (u0: T).(\lambda (i0: -nat).(\lambda (H3: (getl i0 c (CHead d1 (Bind Abbr) u0))).(\lambda (c2: -C).(\lambda (t2: T).(\lambda (H4: (fsubst0 i0 u0 c (TLRef i) c2 t2)).(let H_x -\def (fsubst0_gen_base c c2 (TLRef i) t2 u0 i0 H4) in (let H5 \def H_x in -(or3_ind (land (eq C c c2) (subst0 i0 u0 (TLRef i) t2)) (land (eq T (TLRef i) -t2) (csubst0 i0 u0 c c2)) (land (subst0 i0 u0 (TLRef i) t2) (csubst0 i0 u0 c -c2)) (arity g c2 t2 a0) (\lambda (H6: (land (eq C c c2) (subst0 i0 u0 (TLRef -i) t2))).(land_ind (eq C c c2) (subst0 i0 u0 (TLRef i) t2) (arity g c2 t2 a0) +Abbr) u0) H12)) in (let H14 \def (f_equal C C (\lambda (e: C).(match e with +[(CSort _) \Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) (CHead d (Bind +Abbr) u) (CHead d1 (Bind Abbr) u0) (getl_mono c (CHead d (Bind Abbr) u) i H0 +(CHead d1 (Bind Abbr) u0) H12)) in ((let H15 \def (f_equal C T (\lambda (e: +C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) +(CHead d (Bind Abbr) u) (CHead d1 (Bind Abbr) u0) (getl_mono c (CHead d (Bind +Abbr) u) i H0 (CHead d1 (Bind Abbr) u0) H12)) in (\lambda (H16: (eq C d +d1)).(let H17 \def (eq_ind_r T u0 (\lambda (t: T).(getl i c (CHead d1 (Bind +Abbr) t))) H13 u H15) in (let H18 \def (eq_ind_r T u0 (\lambda (t: +T).(csubst0 i t c c2)) H11 u H15) in (eq_ind T u (\lambda (t: T).(arity g c2 +(lift (S i) O t) a0)) (let H19 \def (eq_ind_r C d1 (\lambda (c0: C).(getl i c +(CHead c0 (Bind Abbr) u))) H17 d H16) in (arity_lift g d u a0 H1 c2 (S i) O +(getl_drop Abbr c2 d u i (csubst0_getl_ge i i (le_n i) c c2 u H18 (CHead d +(Bind Abbr) u) H19)))) u0 H15))))) H14))))) t2 H10))) (subst0_gen_lref u0 t2 +i0 i H7)))) H6)) H5)))))))))))))))))) (\lambda (c: C).(\lambda (d: +C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c (CHead d (Bind +Abst) u))).(\lambda (a0: A).(\lambda (H1: (arity g d u (asucc g +a0))).(\lambda (H2: ((\forall (d1: C).(\forall (u0: T).(\forall (i0: +nat).((getl i0 d (CHead d1 (Bind Abbr) u0)) \to (\forall (c2: C).(\forall +(t2: T).((fsubst0 i0 u0 d u c2 t2) \to (arity g c2 t2 (asucc g +a0))))))))))).(\lambda (d1: C).(\lambda (u0: T).(\lambda (i0: nat).(\lambda +(H3: (getl i0 c (CHead d1 (Bind Abbr) u0))).(\lambda (c2: C).(\lambda (t2: +T).(\lambda (H4: (fsubst0 i0 u0 c (TLRef i) c2 t2)).(let H_x \def +(fsubst0_gen_base c c2 (TLRef i) t2 u0 i0 H4) in (let H5 \def H_x in (or3_ind +(land (eq C c c2) (subst0 i0 u0 (TLRef i) t2)) (land (eq T (TLRef i) t2) +(csubst0 i0 u0 c c2)) (land (subst0 i0 u0 (TLRef i) t2) (csubst0 i0 u0 c c2)) +(arity g c2 t2 a0) (\lambda (H6: (land (eq C c c2) (subst0 i0 u0 (TLRef i) +t2))).(land_ind (eq C c c2) (subst0 i0 u0 (TLRef i) t2) (arity g c2 t2 a0) (\lambda (H7: (eq C c c2)).(\lambda (H8: (subst0 i0 u0 (TLRef i) t2)).(eq_ind C c (\lambda (c0: C).(arity g c0 t2 a0)) (land_ind (eq nat i i0) (eq T t2 (lift (S i) O u0)) (arity g c t2 a0) (\lambda (H9: (eq nat i i0)).(\lambda @@ -508,41 +497,40 @@ T).(arity g c t a0)) (let H11 \def (eq_ind_r nat i0 (\lambda (n: nat).(getl n c (CHead d1 (Bind Abbr) u0))) H3 i H9) in (let H12 \def (eq_ind C (CHead d (Bind Abst) u) (\lambda (c0: C).(getl i c c0)) H0 (CHead d1 (Bind Abbr) u0) (getl_mono c (CHead d (Bind Abst) u) i H0 (CHead d1 (Bind Abbr) u0) H11)) in -(let H13 \def (eq_ind C (CHead d (Bind Abst) u) (\lambda (ee: C).(match ee in -C return (\lambda (_: C).Prop) with [(CSort _) \Rightarrow False | (CHead _ k -_) \Rightarrow (match k in K return (\lambda (_: K).Prop) with [(Bind b) -\Rightarrow (match b in B return (\lambda (_: B).Prop) with [Abbr \Rightarrow -False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat _) -\Rightarrow False])])) I (CHead d1 (Bind Abbr) u0) (getl_mono c (CHead d -(Bind Abst) u) i H0 (CHead d1 (Bind Abbr) u0) H11)) in (False_ind (arity g c -(lift (S i) O u0) a0) H13)))) t2 H10))) (subst0_gen_lref u0 t2 i0 i H8)) c2 -H7))) H6)) (\lambda (H6: (land (eq T (TLRef i) t2) (csubst0 i0 u0 c -c2))).(land_ind (eq T (TLRef i) t2) (csubst0 i0 u0 c c2) (arity g c2 t2 a0) -(\lambda (H7: (eq T (TLRef i) t2)).(\lambda (H8: (csubst0 i0 u0 c -c2)).(eq_ind T (TLRef i) (\lambda (t: T).(arity g c2 t a0)) (lt_le_e i i0 -(arity g c2 (TLRef i) a0) (\lambda (H9: (lt i i0)).(let H10 \def -(csubst0_getl_lt i0 i H9 c c2 u0 H8 (CHead d (Bind Abst) u) H0) in (or4_ind -(getl i c2 (CHead d (Bind Abst) u)) (ex3_4 B C T T (\lambda (b: B).(\lambda -(e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead d (Bind Abst) u) (CHead -e0 (Bind b) u1)))))) (\lambda (b: B).(\lambda (e0: C).(\lambda (_: -T).(\lambda (w: T).(getl i c2 (CHead e0 (Bind b) w)))))) (\lambda (_: -B).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) -u0 u1 w)))))) (ex3_4 B C C T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: -C).(\lambda (u1: T).(eq C (CHead d (Bind Abst) u) (CHead e1 (Bind b) u1)))))) -(\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u1: T).(getl i c2 -(CHead e2 (Bind b) u1)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: -C).(\lambda (_: T).(csubst0 (minus i0 (S i)) u0 e1 e2)))))) (ex4_5 B C C T T -(\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda -(_: T).(eq C (CHead d (Bind Abst) u) (CHead e1 (Bind b) u1))))))) (\lambda -(b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(getl -i c2 (CHead e2 (Bind b) w))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: -C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) u0 u1 w)))))) -(\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda -(_: T).(csubst0 (minus i0 (S i)) u0 e1 e2))))))) (arity g c2 (TLRef i) a0) -(\lambda (H11: (getl i c2 (CHead d (Bind Abst) u))).(let H12 \def (eq_ind nat -(minus i0 i) (\lambda (n: nat).(getl n (CHead d (Bind Abst) u) (CHead d1 -(Bind Abbr) u0))) (getl_conf_le i0 (CHead d1 (Bind Abbr) u0) c H3 (CHead d -(Bind Abst) u) i H0 (le_S_n i i0 (le_S (S i) i0 H9))) (S (minus i0 (S i))) +(let H13 \def (eq_ind C (CHead d (Bind Abst) u) (\lambda (ee: C).(match ee +with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match k with +[(Bind b) \Rightarrow (match b with [Abbr \Rightarrow False | Abst +\Rightarrow True | Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) +I (CHead d1 (Bind Abbr) u0) (getl_mono c (CHead d (Bind Abst) u) i H0 (CHead +d1 (Bind Abbr) u0) H11)) in (False_ind (arity g c (lift (S i) O u0) a0) +H13)))) t2 H10))) (subst0_gen_lref u0 t2 i0 i H8)) c2 H7))) H6)) (\lambda +(H6: (land (eq T (TLRef i) t2) (csubst0 i0 u0 c c2))).(land_ind (eq T (TLRef +i) t2) (csubst0 i0 u0 c c2) (arity g c2 t2 a0) (\lambda (H7: (eq T (TLRef i) +t2)).(\lambda (H8: (csubst0 i0 u0 c c2)).(eq_ind T (TLRef i) (\lambda (t: +T).(arity g c2 t a0)) (lt_le_e i i0 (arity g c2 (TLRef i) a0) (\lambda (H9: +(lt i i0)).(let H10 \def (csubst0_getl_lt i0 i H9 c c2 u0 H8 (CHead d (Bind +Abst) u) H0) in (or4_ind (getl i c2 (CHead d (Bind Abst) u)) (ex3_4 B C T T +(\lambda (b: B).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C +(CHead d (Bind Abst) u) (CHead e0 (Bind b) u1)))))) (\lambda (b: B).(\lambda +(e0: C).(\lambda (_: T).(\lambda (w: T).(getl i c2 (CHead e0 (Bind b) w)))))) +(\lambda (_: B).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 +(minus i0 (S i)) u0 u1 w)))))) (ex3_4 B C C T (\lambda (b: B).(\lambda (e1: +C).(\lambda (_: C).(\lambda (u1: T).(eq C (CHead d (Bind Abst) u) (CHead e1 +(Bind b) u1)))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda +(u1: T).(getl i c2 (CHead e2 (Bind b) u1)))))) (\lambda (_: B).(\lambda (e1: +C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (minus i0 (S i)) u0 e1 e2)))))) +(ex4_5 B C C T T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda +(u1: T).(\lambda (_: T).(eq C (CHead d (Bind Abst) u) (CHead e1 (Bind b) +u1))))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: +T).(\lambda (w: T).(getl i c2 (CHead e2 (Bind b) w))))))) (\lambda (_: +B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 +(minus i0 (S i)) u0 u1 w)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: +C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus i0 (S i)) u0 e1 e2))))))) +(arity g c2 (TLRef i) a0) (\lambda (H11: (getl i c2 (CHead d (Bind Abst) +u))).(let H12 \def (eq_ind nat (minus i0 i) (\lambda (n: nat).(getl n (CHead +d (Bind Abst) u) (CHead d1 (Bind Abbr) u0))) (getl_conf_le i0 (CHead d1 (Bind +Abbr) u0) c H3 (CHead d (Bind Abst) u) i H0 (le_S_n i i0 (le_S_n (S i) (S i0) +(le_S (S (S i)) (S i0) (le_n_S (S i) i0 H9))))) (S (minus i0 (S i))) (minus_x_Sy i0 i H9)) in (arity_abst g c2 d u i H11 a0 H1))) (\lambda (H11: (ex3_4 B C T T (\lambda (b: B).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead d (Bind Abst) u) (CHead e0 (Bind b) u1)))))) (\lambda (b: @@ -559,16 +547,15 @@ B).(\lambda (x1: C).(\lambda (x2: T).(\lambda (x3: T).(\lambda (H12: (eq C (CHead x1 (Bind x0) x3))).(\lambda (H14: (subst0 (minus i0 (S i)) u0 x2 x3)).(let H15 \def (eq_ind nat (minus i0 i) (\lambda (n: nat).(getl n (CHead d (Bind Abst) u) (CHead d1 (Bind Abbr) u0))) (getl_conf_le i0 (CHead d1 (Bind -Abbr) u0) c H3 (CHead d (Bind Abst) u) i H0 (le_S_n i i0 (le_S (S i) i0 H9))) -(S (minus i0 (S i))) (minus_x_Sy i0 i H9)) in (let H16 \def (f_equal C C -(\lambda (e: C).(match e in C return (\lambda (_: C).C) with [(CSort _) -\Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) (CHead d (Bind Abst) u) -(CHead x1 (Bind x0) x2) H12) in ((let H17 \def (f_equal C B (\lambda (e: -C).(match e in C return (\lambda (_: C).B) with [(CSort _) \Rightarrow Abst | -(CHead _ k _) \Rightarrow (match k in K return (\lambda (_: K).B) with [(Bind -b) \Rightarrow b | (Flat _) \Rightarrow Abst])])) (CHead d (Bind Abst) u) -(CHead x1 (Bind x0) x2) H12) in ((let H18 \def (f_equal C T (\lambda (e: -C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u | +Abbr) u0) c H3 (CHead d (Bind Abst) u) i H0 (le_S_n i i0 (le_S_n (S i) (S i0) +(le_S (S (S i)) (S i0) (le_n_S (S i) i0 H9))))) (S (minus i0 (S i))) +(minus_x_Sy i0 i H9)) in (let H16 \def (f_equal C C (\lambda (e: C).(match e +with [(CSort _) \Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) (CHead d +(Bind Abst) u) (CHead x1 (Bind x0) x2) H12) in ((let H17 \def (f_equal C B +(\lambda (e: C).(match e with [(CSort _) \Rightarrow Abst | (CHead _ k _) +\Rightarrow (match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow +Abst])])) (CHead d (Bind Abst) u) (CHead x1 (Bind x0) x2) H12) in ((let H18 +\def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) (CHead d (Bind Abst) u) (CHead x1 (Bind x0) x2) H12) in (\lambda (H19: (eq B Abst x0)).(\lambda (H20: (eq C d x1)).(let H21 \def (eq_ind_r T x2 (\lambda (t: T).(subst0 (minus i0 (S i)) u0 t x3)) @@ -593,16 +580,15 @@ C (CHead d (Bind Abst) u) (CHead x1 (Bind x0) x3))).(\lambda (H13: (getl i c2 (CHead x2 (Bind x0) x3))).(\lambda (H14: (csubst0 (minus i0 (S i)) u0 x1 x2)).(let H15 \def (eq_ind nat (minus i0 i) (\lambda (n: nat).(getl n (CHead d (Bind Abst) u) (CHead d1 (Bind Abbr) u0))) (getl_conf_le i0 (CHead d1 (Bind -Abbr) u0) c H3 (CHead d (Bind Abst) u) i H0 (le_S_n i i0 (le_S (S i) i0 H9))) -(S (minus i0 (S i))) (minus_x_Sy i0 i H9)) in (let H16 \def (f_equal C C -(\lambda (e: C).(match e in C return (\lambda (_: C).C) with [(CSort _) -\Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) (CHead d (Bind Abst) u) -(CHead x1 (Bind x0) x3) H12) in ((let H17 \def (f_equal C B (\lambda (e: -C).(match e in C return (\lambda (_: C).B) with [(CSort _) \Rightarrow Abst | -(CHead _ k _) \Rightarrow (match k in K return (\lambda (_: K).B) with [(Bind -b) \Rightarrow b | (Flat _) \Rightarrow Abst])])) (CHead d (Bind Abst) u) -(CHead x1 (Bind x0) x3) H12) in ((let H18 \def (f_equal C T (\lambda (e: -C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u | +Abbr) u0) c H3 (CHead d (Bind Abst) u) i H0 (le_S_n i i0 (le_S_n (S i) (S i0) +(le_S (S (S i)) (S i0) (le_n_S (S i) i0 H9))))) (S (minus i0 (S i))) +(minus_x_Sy i0 i H9)) in (let H16 \def (f_equal C C (\lambda (e: C).(match e +with [(CSort _) \Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) (CHead d +(Bind Abst) u) (CHead x1 (Bind x0) x3) H12) in ((let H17 \def (f_equal C B +(\lambda (e: C).(match e with [(CSort _) \Rightarrow Abst | (CHead _ k _) +\Rightarrow (match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow +Abst])])) (CHead d (Bind Abst) u) (CHead x1 (Bind x0) x3) H12) in ((let H18 +\def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) (CHead d (Bind Abst) u) (CHead x1 (Bind x0) x3) H12) in (\lambda (H19: (eq B Abst x0)).(\lambda (H20: (eq C d x1)).(let H21 \def (eq_ind_r T x3 (\lambda (t: T).(getl i c2 (CHead x2 (Bind x0) t))) @@ -633,15 +619,14 @@ x0) x4))).(\lambda (H14: (subst0 (minus i0 (S i)) u0 x3 x4)).(\lambda (H15: (csubst0 (minus i0 (S i)) u0 x1 x2)).(let H16 \def (eq_ind nat (minus i0 i) (\lambda (n: nat).(getl n (CHead d (Bind Abst) u) (CHead d1 (Bind Abbr) u0))) (getl_conf_le i0 (CHead d1 (Bind Abbr) u0) c H3 (CHead d (Bind Abst) u) i H0 -(le_S_n i i0 (le_S (S i) i0 H9))) (S (minus i0 (S i))) (minus_x_Sy i0 i H9)) -in (let H17 \def (f_equal C C (\lambda (e: C).(match e in C return (\lambda -(_: C).C) with [(CSort _) \Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) -(CHead d (Bind Abst) u) (CHead x1 (Bind x0) x3) H12) in ((let H18 \def -(f_equal C B (\lambda (e: C).(match e in C return (\lambda (_: C).B) with -[(CSort _) \Rightarrow Abst | (CHead _ k _) \Rightarrow (match k in K return -(\lambda (_: K).B) with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow -Abst])])) (CHead d (Bind Abst) u) (CHead x1 (Bind x0) x3) H12) in ((let H19 -\def (f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) +(le_S_n i i0 (le_S_n (S i) (S i0) (le_S (S (S i)) (S i0) (le_n_S (S i) i0 +H9))))) (S (minus i0 (S i))) (minus_x_Sy i0 i H9)) in (let H17 \def (f_equal +C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow d | (CHead c0 _ _) +\Rightarrow c0])) (CHead d (Bind Abst) u) (CHead x1 (Bind x0) x3) H12) in +((let H18 \def (f_equal C B (\lambda (e: C).(match e with [(CSort _) +\Rightarrow Abst | (CHead _ k _) \Rightarrow (match k with [(Bind b) +\Rightarrow b | (Flat _) \Rightarrow Abst])])) (CHead d (Bind Abst) u) (CHead +x1 (Bind x0) x3) H12) in ((let H19 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) (CHead d (Bind Abst) u) (CHead x1 (Bind x0) x3) H12) in (\lambda (H20: (eq B Abst x0)).(\lambda (H21: (eq C d x1)).(let H22 \def (eq_ind_r T x3 (\lambda (t: @@ -665,38 +650,37 @@ nat).(csubst0 n u0 c c2)) H8 i H9) in (let H12 \def (eq_ind_r nat i0 (\lambda (eq_ind C (CHead d (Bind Abst) u) (\lambda (c0: C).(getl i c c0)) H0 (CHead d1 (Bind Abbr) u0) (getl_mono c (CHead d (Bind Abst) u) i H0 (CHead d1 (Bind Abbr) u0) H12)) in (let H14 \def (eq_ind C (CHead d (Bind Abst) u) (\lambda -(ee: C).(match ee in C return (\lambda (_: C).Prop) with [(CSort _) -\Rightarrow False | (CHead _ k _) \Rightarrow (match k in K return (\lambda -(_: K).Prop) with [(Bind b) \Rightarrow (match b in B return (\lambda (_: -B).Prop) with [Abbr \Rightarrow False | Abst \Rightarrow True | Void -\Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead d1 (Bind Abbr) -u0) (getl_mono c (CHead d (Bind Abst) u) i H0 (CHead d1 (Bind Abbr) u0) H12)) -in (False_ind (arity g c2 (lift (S i) O u0) a0) H14))))) t2 H10))) -(subst0_gen_lref u0 t2 i0 i H7)))) H6)) H5)))))))))))))))))) (\lambda (b: -B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c: C).(\lambda (u: -T).(\lambda (a1: A).(\lambda (H1: (arity g c u a1)).(\lambda (H2: ((\forall -(d1: C).(\forall (u0: T).(\forall (i: nat).((getl i c (CHead d1 (Bind Abbr) -u0)) \to (\forall (c2: C).(\forall (t2: T).((fsubst0 i u0 c u c2 t2) \to -(arity g c2 t2 a1)))))))))).(\lambda (t: T).(\lambda (a2: A).(\lambda (_: -(arity g (CHead c (Bind b) u) t a2)).(\lambda (H4: ((\forall (d1: C).(\forall -(u0: T).(\forall (i: nat).((getl i (CHead c (Bind b) u) (CHead d1 (Bind Abbr) -u0)) \to (\forall (c2: C).(\forall (t2: T).((fsubst0 i u0 (CHead c (Bind b) -u) t c2 t2) \to (arity g c2 t2 a2)))))))))).(\lambda (d1: C).(\lambda (u0: -T).(\lambda (i: nat).(\lambda (H5: (getl i c (CHead d1 (Bind Abbr) -u0))).(\lambda (c2: C).(\lambda (t2: T).(\lambda (H6: (fsubst0 i u0 c (THead -(Bind b) u t) c2 t2)).(let H_x \def (fsubst0_gen_base c c2 (THead (Bind b) u -t) t2 u0 i H6) in (let H7 \def H_x in (or3_ind (land (eq C c c2) (subst0 i u0 -(THead (Bind b) u t) t2)) (land (eq T (THead (Bind b) u t) t2) (csubst0 i u0 -c c2)) (land (subst0 i u0 (THead (Bind b) u t) t2) (csubst0 i u0 c c2)) -(arity g c2 t2 a2) (\lambda (H8: (land (eq C c c2) (subst0 i u0 (THead (Bind -b) u t) t2))).(land_ind (eq C c c2) (subst0 i u0 (THead (Bind b) u t) t2) -(arity g c2 t2 a2) (\lambda (H9: (eq C c c2)).(\lambda (H10: (subst0 i u0 -(THead (Bind b) u t) t2)).(eq_ind C c (\lambda (c0: C).(arity g c0 t2 a2)) -(or3_ind (ex2 T (\lambda (u2: T).(eq T t2 (THead (Bind b) u2 t))) (\lambda -(u2: T).(subst0 i u0 u u2))) (ex2 T (\lambda (t3: T).(eq T t2 (THead (Bind b) -u t3))) (\lambda (t3: T).(subst0 (s (Bind b) i) u0 t t3))) (ex3_2 T T -(\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead (Bind b) u2 t3)))) (\lambda -(u2: T).(\lambda (_: T).(subst0 i u0 u u2))) (\lambda (_: T).(\lambda (t3: +(ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) +\Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr +\Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat +_) \Rightarrow False])])) I (CHead d1 (Bind Abbr) u0) (getl_mono c (CHead d +(Bind Abst) u) i H0 (CHead d1 (Bind Abbr) u0) H12)) in (False_ind (arity g c2 +(lift (S i) O u0) a0) H14))))) t2 H10))) (subst0_gen_lref u0 t2 i0 i H7)))) +H6)) H5)))))))))))))))))) (\lambda (b: B).(\lambda (H0: (not (eq B b +Abst))).(\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (H1: (arity +g c u a1)).(\lambda (H2: ((\forall (d1: C).(\forall (u0: T).(\forall (i: +nat).((getl i c (CHead d1 (Bind Abbr) u0)) \to (\forall (c2: C).(\forall (t2: +T).((fsubst0 i u0 c u c2 t2) \to (arity g c2 t2 a1)))))))))).(\lambda (t: +T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c (Bind b) u) t +a2)).(\lambda (H4: ((\forall (d1: C).(\forall (u0: T).(\forall (i: +nat).((getl i (CHead c (Bind b) u) (CHead d1 (Bind Abbr) u0)) \to (\forall +(c2: C).(\forall (t2: T).((fsubst0 i u0 (CHead c (Bind b) u) t c2 t2) \to +(arity g c2 t2 a2)))))))))).(\lambda (d1: C).(\lambda (u0: T).(\lambda (i: +nat).(\lambda (H5: (getl i c (CHead d1 (Bind Abbr) u0))).(\lambda (c2: +C).(\lambda (t2: T).(\lambda (H6: (fsubst0 i u0 c (THead (Bind b) u t) c2 +t2)).(let H_x \def (fsubst0_gen_base c c2 (THead (Bind b) u t) t2 u0 i H6) in +(let H7 \def H_x in (or3_ind (land (eq C c c2) (subst0 i u0 (THead (Bind b) u +t) t2)) (land (eq T (THead (Bind b) u t) t2) (csubst0 i u0 c c2)) (land +(subst0 i u0 (THead (Bind b) u t) t2) (csubst0 i u0 c c2)) (arity g c2 t2 a2) +(\lambda (H8: (land (eq C c c2) (subst0 i u0 (THead (Bind b) u t) +t2))).(land_ind (eq C c c2) (subst0 i u0 (THead (Bind b) u t) t2) (arity g c2 +t2 a2) (\lambda (H9: (eq C c c2)).(\lambda (H10: (subst0 i u0 (THead (Bind b) +u t) t2)).(eq_ind C c (\lambda (c0: C).(arity g c0 t2 a2)) (or3_ind (ex2 T +(\lambda (u2: T).(eq T t2 (THead (Bind b) u2 t))) (\lambda (u2: T).(subst0 i +u0 u u2))) (ex2 T (\lambda (t3: T).(eq T t2 (THead (Bind b) u t3))) (\lambda +(t3: T).(subst0 (s (Bind b) i) u0 t t3))) (ex3_2 T T (\lambda (u2: +T).(\lambda (t3: T).(eq T t2 (THead (Bind b) u2 t3)))) (\lambda (u2: +T).(\lambda (_: T).(subst0 i u0 u u2))) (\lambda (_: T).(\lambda (t3: T).(subst0 (s (Bind b) i) u0 t t3)))) (arity g c t2 a2) (\lambda (H11: (ex2 T (\lambda (u2: T).(eq T t2 (THead (Bind b) u2 t))) (\lambda (u2: T).(subst0 i u0 u u2)))).(ex2_ind T (\lambda (u2: T).(eq T t2 (THead (Bind b) u2 t))) @@ -1116,9 +1100,6 @@ c c2))).(land_ind (subst0 i u t t2) (csubst0 i u c c2) (arity g c2 t2 a2) (\lambda (H7: (subst0 i u t t2)).(\lambda (H8: (csubst0 i u c c2)).(arity_repl g c2 t2 a1 (H1 d1 u i H3 c2 t2 (fsubst0_both i u c t t2 H7 c2 H8)) a2 H2))) H6)) H5))))))))))))))))) c1 t1 a H))))). -(* COMMENTS -Initial nodes: 20387 -END *) theorem arity_subst0: \forall (g: G).(\forall (c: C).(\forall (t1: T).(\forall (a: A).((arity g c @@ -1131,7 +1112,4 @@ a))))))))))) (H0: (getl i c (CHead d (Bind Abbr) u))).(\lambda (t2: T).(\lambda (H1: (subst0 i u t1 t2)).(arity_fsubst0 g c t1 a H d u i H0 c t2 (fsubst0_snd i u c t1 t2 H1)))))))))))). -(* COMMENTS -Initial nodes: 89 -END *) diff --git a/matita/matita/contribs/lambdadelta/basic_1/csuba/arity.ma b/matita/matita/contribs/lambdadelta/basic_1/csuba/arity.ma index fe021cd0f..3307ed325 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/csuba/arity.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/csuba/arity.ma @@ -14,95 +14,119 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/csuba/getl.ma". +include "basic_1/csuba/getl.ma". -include "Basic-1/csuba/props.ma". +include "basic_1/csuba/props.ma". -include "Basic-1/arity/props.ma". +include "basic_1/arity/fwd.ma". -include "Basic-1/csubv/getl.ma". +include "basic_1/csubv/getl.ma". theorem csuba_arity: \forall (g: G).(\forall (c1: C).(\forall (t: T).(\forall (a: A).((arity g c1 t a) \to (\forall (c2: C).((csuba g c1 c2) \to (arity g c2 t a))))))) \def \lambda (g: G).(\lambda (c1: C).(\lambda (t: T).(\lambda (a: A).(\lambda (H: -(arity g c1 t a)).(arity_ind g (\lambda (c: C).(\lambda (t0: T).(\lambda (a0: -A).(\forall (c2: C).((csuba g c c2) \to (arity g c2 t0 a0)))))) (\lambda (c: -C).(\lambda (n: nat).(\lambda (c2: C).(\lambda (_: (csuba g c -c2)).(arity_sort g c2 n))))) (\lambda (c: C).(\lambda (d: C).(\lambda (u: -T).(\lambda (i: nat).(\lambda (H0: (getl i c (CHead d (Bind Abbr) -u))).(\lambda (a0: A).(\lambda (_: (arity g d u a0)).(\lambda (H2: ((\forall -(c2: C).((csuba g d c2) \to (arity g c2 u a0))))).(\lambda (c2: C).(\lambda -(H3: (csuba g c c2)).(let H4 \def (csuba_getl_abbr g c d u i H0 c2 H3) in -(ex2_ind C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abbr) u))) (\lambda -(d2: C).(csuba g d d2)) (arity g c2 (TLRef i) a0) (\lambda (x: C).(\lambda -(H5: (getl i c2 (CHead x (Bind Abbr) u))).(\lambda (H6: (csuba g d -x)).(arity_abbr g c2 x u i H5 a0 (H2 x H6))))) H4)))))))))))) (\lambda (c: +(arity g c1 t a)).(let TMP_1 \def (\lambda (c: C).(\lambda (t0: T).(\lambda +(a0: A).(\forall (c2: C).((csuba g c c2) \to (arity g c2 t0 a0)))))) in (let +TMP_2 \def (\lambda (c: C).(\lambda (n: nat).(\lambda (c2: C).(\lambda (_: +(csuba g c c2)).(arity_sort g c2 n))))) in (let TMP_11 \def (\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c -(CHead d (Bind Abst) u))).(\lambda (a0: A).(\lambda (H1: (arity g d u (asucc -g a0))).(\lambda (H2: ((\forall (c2: C).((csuba g d c2) \to (arity g c2 u -(asucc g a0)))))).(\lambda (c2: C).(\lambda (H3: (csuba g c c2)).(let H4 \def -(csuba_getl_abst g c d u i H0 c2 H3) in (or_ind (ex2 C (\lambda (d2: C).(getl -i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d d2))) (ex4_3 C T -A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 -(Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g -d d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(arity g d u (asucc -g a1))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: A).(arity g d2 u2 -a1))))) (arity g c2 (TLRef i) a0) (\lambda (H5: (ex2 C (\lambda (d2: C).(getl -i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d d2)))).(ex2_ind C -(\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: -C).(csuba g d d2)) (arity g c2 (TLRef i) a0) (\lambda (x: C).(\lambda (H6: -(getl i c2 (CHead x (Bind Abst) u))).(\lambda (H7: (csuba g d x)).(arity_abst -g c2 x u i H6 a0 (H2 x H7))))) H5)) (\lambda (H5: (ex4_3 C T A (\lambda (d2: -C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abbr) u2))))) -(\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d d2)))) (\lambda -(_: C).(\lambda (_: T).(\lambda (a1: A).(arity g d u (asucc g a1))))) -(\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: A).(arity g d2 u2 -a1)))))).(ex4_3_ind C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: -A).(getl i c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: -T).(\lambda (_: A).(csuba g d d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda -(a1: A).(arity g d u (asucc g a1))))) (\lambda (d2: C).(\lambda (u2: -T).(\lambda (a1: A).(arity g d2 u2 a1)))) (arity g c2 (TLRef i) a0) (\lambda -(x0: C).(\lambda (x1: T).(\lambda (x2: A).(\lambda (H6: (getl i c2 (CHead x0 -(Bind Abbr) x1))).(\lambda (_: (csuba g d x0)).(\lambda (H8: (arity g d u -(asucc g x2))).(\lambda (H9: (arity g x0 x1 x2)).(arity_repl g c2 (TLRef i) -x2 (arity_abbr g c2 x0 x1 i H6 x2 H9) a0 (asucc_inj g x2 a0 (arity_mono g d u -(asucc g x2) H8 (asucc g a0) H1)))))))))) H5)) H4)))))))))))) (\lambda (b: -B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c: C).(\lambda (u: -T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H2: ((\forall -(c2: C).((csuba g c c2) \to (arity g c2 u a1))))).(\lambda (t0: T).(\lambda -(a2: A).(\lambda (_: (arity g (CHead c (Bind b) u) t0 a2)).(\lambda (H4: -((\forall (c2: C).((csuba g (CHead c (Bind b) u) c2) \to (arity g c2 t0 -a2))))).(\lambda (c2: C).(\lambda (H5: (csuba g c c2)).(arity_bind g b H0 c2 -u a1 (H2 c2 H5) t0 a2 (H4 (CHead c2 (Bind b) u) (csuba_head g c c2 H5 (Bind -b) u)))))))))))))))) (\lambda (c: C).(\lambda (u: T).(\lambda (a1: -A).(\lambda (_: (arity g c u (asucc g a1))).(\lambda (H1: ((\forall (c2: -C).((csuba g c c2) \to (arity g c2 u (asucc g a1)))))).(\lambda (t0: -T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c (Bind Abst) u) t0 -a2)).(\lambda (H3: ((\forall (c2: C).((csuba g (CHead c (Bind Abst) u) c2) -\to (arity g c2 t0 a2))))).(\lambda (c2: C).(\lambda (H4: (csuba g c -c2)).(arity_head g c2 u a1 (H1 c2 H4) t0 a2 (H3 (CHead c2 (Bind Abst) u) -(csuba_head g c c2 H4 (Bind Abst) u)))))))))))))) (\lambda (c: C).(\lambda -(u: T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H1: +(CHead d (Bind Abbr) u))).(\lambda (a0: A).(\lambda (_: (arity g d u +a0)).(\lambda (H2: ((\forall (c2: C).((csuba g d c2) \to (arity g c2 u +a0))))).(\lambda (c2: C).(\lambda (H3: (csuba g c c2)).(let H4 \def +(csuba_getl_abbr g c d u i H0 c2 H3) in (let TMP_5 \def (\lambda (d2: C).(let +TMP_3 \def (Bind Abbr) in (let TMP_4 \def (CHead d2 TMP_3 u) in (getl i c2 +TMP_4)))) in (let TMP_6 \def (\lambda (d2: C).(csuba g d d2)) in (let TMP_7 +\def (TLRef i) in (let TMP_8 \def (arity g c2 TMP_7 a0) in (let TMP_10 \def +(\lambda (x: C).(\lambda (H5: (getl i c2 (CHead x (Bind Abbr) u))).(\lambda +(H6: (csuba g d x)).(let TMP_9 \def (H2 x H6) in (arity_abbr g c2 x u i H5 a0 +TMP_9))))) in (ex2_ind C TMP_5 TMP_6 TMP_8 TMP_10 H4))))))))))))))))) in (let +TMP_53 \def (\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: +nat).(\lambda (H0: (getl i c (CHead d (Bind Abst) u))).(\lambda (a0: +A).(\lambda (H1: (arity g d u (asucc g a0))).(\lambda (H2: ((\forall (c2: +C).((csuba g d c2) \to (arity g c2 u (asucc g a0)))))).(\lambda (c2: +C).(\lambda (H3: (csuba g c c2)).(let H4 \def (csuba_getl_abst g c d u i H0 +c2 H3) in (let TMP_14 \def (\lambda (d2: C).(let TMP_12 \def (Bind Abst) in +(let TMP_13 \def (CHead d2 TMP_12 u) in (getl i c2 TMP_13)))) in (let TMP_15 +\def (\lambda (d2: C).(csuba g d d2)) in (let TMP_16 \def (ex2 C TMP_14 +TMP_15) in (let TMP_19 \def (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: +A).(let TMP_17 \def (Bind Abbr) in (let TMP_18 \def (CHead d2 TMP_17 u2) in +(getl i c2 TMP_18)))))) in (let TMP_20 \def (\lambda (d2: C).(\lambda (_: +T).(\lambda (_: A).(csuba g d d2)))) in (let TMP_22 \def (\lambda (_: +C).(\lambda (_: T).(\lambda (a1: A).(let TMP_21 \def (asucc g a1) in (arity g +d u TMP_21))))) in (let TMP_23 \def (\lambda (d2: C).(\lambda (u2: +T).(\lambda (a1: A).(arity g d2 u2 a1)))) in (let TMP_24 \def (ex4_3 C T A +TMP_19 TMP_20 TMP_22 TMP_23) in (let TMP_25 \def (TLRef i) in (let TMP_26 +\def (arity g c2 TMP_25 a0) in (let TMP_35 \def (\lambda (H5: (ex2 C (\lambda +(d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d +d2)))).(let TMP_29 \def (\lambda (d2: C).(let TMP_27 \def (Bind Abst) in (let +TMP_28 \def (CHead d2 TMP_27 u) in (getl i c2 TMP_28)))) in (let TMP_30 \def +(\lambda (d2: C).(csuba g d d2)) in (let TMP_31 \def (TLRef i) in (let TMP_32 +\def (arity g c2 TMP_31 a0) in (let TMP_34 \def (\lambda (x: C).(\lambda (H6: +(getl i c2 (CHead x (Bind Abst) u))).(\lambda (H7: (csuba g d x)).(let TMP_33 +\def (H2 x H7) in (arity_abst g c2 x u i H6 a0 TMP_33))))) in (ex2_ind C +TMP_29 TMP_30 TMP_32 TMP_34 H5))))))) in (let TMP_52 \def (\lambda (H5: +(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 +(CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: +A).(csuba g d d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(arity +g d u (asucc g a1))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: +A).(arity g d2 u2 a1)))))).(let TMP_38 \def (\lambda (d2: C).(\lambda (u2: +T).(\lambda (_: A).(let TMP_36 \def (Bind Abbr) in (let TMP_37 \def (CHead d2 +TMP_36 u2) in (getl i c2 TMP_37)))))) in (let TMP_39 \def (\lambda (d2: +C).(\lambda (_: T).(\lambda (_: A).(csuba g d d2)))) in (let TMP_41 \def +(\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(let TMP_40 \def (asucc g +a1) in (arity g d u TMP_40))))) in (let TMP_42 \def (\lambda (d2: C).(\lambda +(u2: T).(\lambda (a1: A).(arity g d2 u2 a1)))) in (let TMP_43 \def (TLRef i) +in (let TMP_44 \def (arity g c2 TMP_43 a0) in (let TMP_51 \def (\lambda (x0: +C).(\lambda (x1: T).(\lambda (x2: A).(\lambda (H6: (getl i c2 (CHead x0 (Bind +Abbr) x1))).(\lambda (_: (csuba g d x0)).(\lambda (H8: (arity g d u (asucc g +x2))).(\lambda (H9: (arity g x0 x1 x2)).(let TMP_45 \def (TLRef i) in (let +TMP_46 \def (arity_abbr g c2 x0 x1 i H6 x2 H9) in (let TMP_47 \def (asucc g +x2) in (let TMP_48 \def (asucc g a0) in (let TMP_49 \def (arity_mono g d u +TMP_47 H8 TMP_48 H1) in (let TMP_50 \def (asucc_inj g x2 a0 TMP_49) in +(arity_repl g c2 TMP_45 x2 TMP_46 a0 TMP_50)))))))))))))) in (ex4_3_ind C T A +TMP_38 TMP_39 TMP_41 TMP_42 TMP_44 TMP_51 H5))))))))) in (or_ind TMP_16 +TMP_24 TMP_26 TMP_35 TMP_52 H4)))))))))))))))))))))))) in (let TMP_60 \def +(\lambda (b: B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c: C).(\lambda +(u: T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H2: ((\forall (c2: C).((csuba g c c2) \to (arity g c2 u a1))))).(\lambda (t0: -T).(\lambda (a2: A).(\lambda (_: (arity g c t0 (AHead a1 a2))).(\lambda (H3: -((\forall (c2: C).((csuba g c c2) \to (arity g c2 t0 (AHead a1 -a2)))))).(\lambda (c2: C).(\lambda (H4: (csuba g c c2)).(arity_appl g c2 u a1 -(H1 c2 H4) t0 a2 (H3 c2 H4))))))))))))) (\lambda (c: C).(\lambda (u: +T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c (Bind b) u) t0 +a2)).(\lambda (H4: ((\forall (c2: C).((csuba g (CHead c (Bind b) u) c2) \to +(arity g c2 t0 a2))))).(\lambda (c2: C).(\lambda (H5: (csuba g c c2)).(let +TMP_54 \def (H2 c2 H5) in (let TMP_55 \def (Bind b) in (let TMP_56 \def +(CHead c2 TMP_55 u) in (let TMP_57 \def (Bind b) in (let TMP_58 \def +(csuba_head g c c2 H5 TMP_57 u) in (let TMP_59 \def (H4 TMP_56 TMP_58) in +(arity_bind g b H0 c2 u a1 TMP_54 t0 a2 TMP_59)))))))))))))))))))) in (let +TMP_67 \def (\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: +(arity g c u (asucc g a1))).(\lambda (H1: ((\forall (c2: C).((csuba g c c2) +\to (arity g c2 u (asucc g a1)))))).(\lambda (t0: T).(\lambda (a2: +A).(\lambda (_: (arity g (CHead c (Bind Abst) u) t0 a2)).(\lambda (H3: +((\forall (c2: C).((csuba g (CHead c (Bind Abst) u) c2) \to (arity g c2 t0 +a2))))).(\lambda (c2: C).(\lambda (H4: (csuba g c c2)).(let TMP_61 \def (H1 +c2 H4) in (let TMP_62 \def (Bind Abst) in (let TMP_63 \def (CHead c2 TMP_62 +u) in (let TMP_64 \def (Bind Abst) in (let TMP_65 \def (csuba_head g c c2 H4 +TMP_64 u) in (let TMP_66 \def (H3 TMP_63 TMP_65) in (arity_head g c2 u a1 +TMP_61 t0 a2 TMP_66)))))))))))))))))) in (let TMP_70 \def (\lambda (c: +C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda +(H1: ((\forall (c2: C).((csuba g c c2) \to (arity g c2 u a1))))).(\lambda +(t0: T).(\lambda (a2: A).(\lambda (_: (arity g c t0 (AHead a1 a2))).(\lambda +(H3: ((\forall (c2: C).((csuba g c c2) \to (arity g c2 t0 (AHead a1 +a2)))))).(\lambda (c2: C).(\lambda (H4: (csuba g c c2)).(let TMP_68 \def (H1 +c2 H4) in (let TMP_69 \def (H3 c2 H4) in (arity_appl g c2 u a1 TMP_68 t0 a2 +TMP_69)))))))))))))) in (let TMP_73 \def (\lambda (c: C).(\lambda (u: T).(\lambda (a0: A).(\lambda (_: (arity g c u (asucc g a0))).(\lambda (H1: ((\forall (c2: C).((csuba g c c2) \to (arity g c2 u (asucc g a0)))))).(\lambda (t0: T).(\lambda (_: (arity g c t0 a0)).(\lambda (H3: ((\forall (c2: C).((csuba g c c2) \to (arity g c2 t0 a0))))).(\lambda (c2: -C).(\lambda (H4: (csuba g c c2)).(arity_cast g c2 u a0 (H1 c2 H4) t0 (H3 c2 -H4)))))))))))) (\lambda (c: C).(\lambda (t0: T).(\lambda (a1: A).(\lambda (_: -(arity g c t0 a1)).(\lambda (H1: ((\forall (c2: C).((csuba g c c2) \to (arity -g c2 t0 a1))))).(\lambda (a2: A).(\lambda (H2: (leq g a1 a2)).(\lambda (c2: -C).(\lambda (H3: (csuba g c c2)).(arity_repl g c2 t0 a1 (H1 c2 H3) a2 -H2)))))))))) c1 t a H))))). -(* COMMENTS -Initial nodes: 1505 -END *) +C).(\lambda (H4: (csuba g c c2)).(let TMP_71 \def (H1 c2 H4) in (let TMP_72 +\def (H3 c2 H4) in (arity_cast g c2 u a0 TMP_71 t0 TMP_72))))))))))))) in +(let TMP_75 \def (\lambda (c: C).(\lambda (t0: T).(\lambda (a1: A).(\lambda +(_: (arity g c t0 a1)).(\lambda (H1: ((\forall (c2: C).((csuba g c c2) \to +(arity g c2 t0 a1))))).(\lambda (a2: A).(\lambda (H2: (leq g a1 a2)).(\lambda +(c2: C).(\lambda (H3: (csuba g c c2)).(let TMP_74 \def (H1 c2 H3) in +(arity_repl g c2 t0 a1 TMP_74 a2 H2))))))))))) in (arity_ind g TMP_1 TMP_2 +TMP_11 TMP_53 TMP_60 TMP_67 TMP_70 TMP_73 TMP_75 c1 t a H)))))))))))))). theorem csuba_arity_rev: \forall (g: G).(\forall (c1: C).(\forall (t: T).(\forall (a: A).((arity g c1 @@ -110,189 +134,291 @@ t a) \to (\forall (c2: C).((csuba g c2 c1) \to ((csubv c2 c1) \to (arity g c2 t a)))))))) \def \lambda (g: G).(\lambda (c1: C).(\lambda (t: T).(\lambda (a: A).(\lambda (H: -(arity g c1 t a)).(arity_ind g (\lambda (c: C).(\lambda (t0: T).(\lambda (a0: -A).(\forall (c2: C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 t0 -a0))))))) (\lambda (c: C).(\lambda (n: nat).(\lambda (c2: C).(\lambda (_: -(csuba g c2 c)).(\lambda (_: (csubv c2 c)).(arity_sort g c2 n)))))) (\lambda -(c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl -i c (CHead d (Bind Abbr) u))).(\lambda (a0: A).(\lambda (H1: (arity g d u -a0)).(\lambda (H2: ((\forall (c2: C).((csuba g c2 d) \to ((csubv c2 d) \to -(arity g c2 u a0)))))).(\lambda (c2: C).(\lambda (H3: (csuba g c2 -c)).(\lambda (H4: (csubv c2 c)).(let H_x \def (csuba_getl_abbr_rev g c d u i -H0 c2 H3) in (let H5 \def H_x in (or3_ind (ex2 C (\lambda (d2: C).(getl i c2 -(CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d2 d))) (ex4_3 C T A -(\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind -Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 -d)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: A).(arity g d2 u2 -(asucc g a1))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(arity g d -u a1))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 -(Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d)))) (arity -g c2 (TLRef i) a0) (\lambda (H6: (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 -(Bind Abbr) u))) (\lambda (d2: C).(csuba g d2 d)))).(ex2_ind C (\lambda (d2: -C).(getl i c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d2 d)) -(arity g c2 (TLRef i) a0) (\lambda (x: C).(\lambda (H7: (getl i c2 (CHead x -(Bind Abbr) u))).(\lambda (H8: (csuba g x d)).(let H_x0 \def (csubv_getl_conf -c2 c H4 Abbr x u i H7) in (let H9 \def H_x0 in (ex2_3_ind B C T (\lambda (_: -B).(\lambda (d2: C).(\lambda (_: T).(csubv x d2)))) (\lambda (b2: B).(\lambda -(d2: C).(\lambda (v2: T).(getl i c (CHead d2 (Bind b2) v2))))) (arity g c2 -(TLRef i) a0) (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: T).(\lambda -(H10: (csubv x x1)).(\lambda (H11: (getl i c (CHead x1 (Bind x0) x2))).(let -H12 \def (eq_ind C (CHead d (Bind Abbr) u) (\lambda (c0: C).(getl i c c0)) H0 -(CHead x1 (Bind x0) x2) (getl_mono c (CHead d (Bind Abbr) u) i H0 (CHead x1 -(Bind x0) x2) H11)) in (let H13 \def (f_equal C C (\lambda (e: C).(match e in -C return (\lambda (_: C).C) with [(CSort _) \Rightarrow d | (CHead c0 _ _) -\Rightarrow c0])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x2) (getl_mono -c (CHead d (Bind Abbr) u) i H0 (CHead x1 (Bind x0) x2) H11)) in ((let H14 -\def (f_equal C B (\lambda (e: C).(match e in C return (\lambda (_: C).B) -with [(CSort _) \Rightarrow Abbr | (CHead _ k _) \Rightarrow (match k in K -return (\lambda (_: K).B) with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow -Abbr])])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x2) (getl_mono c (CHead -d (Bind Abbr) u) i H0 (CHead x1 (Bind x0) x2) H11)) in ((let H15 \def -(f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) with -[(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) (CHead d (Bind -Abbr) u) (CHead x1 (Bind x0) x2) (getl_mono c (CHead d (Bind Abbr) u) i H0 -(CHead x1 (Bind x0) x2) H11)) in (\lambda (H16: (eq B Abbr x0)).(\lambda -(H17: (eq C d x1)).(let H18 \def (eq_ind_r T x2 (\lambda (t0: T).(getl i c -(CHead x1 (Bind x0) t0))) H12 u H15) in (let H19 \def (eq_ind_r C x1 (\lambda -(c0: C).(getl i c (CHead c0 (Bind x0) u))) H18 d H17) in (let H20 \def -(eq_ind_r C x1 (\lambda (c0: C).(csubv x c0)) H10 d H17) in (let H21 \def -(eq_ind_r B x0 (\lambda (b: B).(getl i c (CHead d (Bind b) u))) H19 Abbr H16) -in (arity_abbr g c2 x u i H7 a0 (H2 x H8 H20))))))))) H14)) H13)))))))) -H9)))))) H6)) (\lambda (H6: (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: -T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: -C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d)))) (\lambda (d2: -C).(\lambda (u2: T).(\lambda (a1: A).(arity g d2 u2 (asucc g a1))))) (\lambda -(_: C).(\lambda (_: T).(\lambda (a1: A).(arity g d u a1)))))).(ex4_3_ind C T -A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 -(Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g -d2 d)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: A).(arity g d2 u2 -(asucc g a1))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(arity g d -u a1)))) (arity g c2 (TLRef i) a0) (\lambda (x0: C).(\lambda (x1: T).(\lambda -(x2: A).(\lambda (H7: (getl i c2 (CHead x0 (Bind Abst) x1))).(\lambda (_: -(csuba g x0 d)).(\lambda (H9: (arity g x0 x1 (asucc g x2))).(\lambda (H10: -(arity g d u x2)).(arity_repl g c2 (TLRef i) x2 (arity_abst g c2 x0 x1 i H7 -x2 H9) a0 (arity_mono g d u x2 H10 a0 H1))))))))) H6)) (\lambda (H6: (ex2_2 C -T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) -(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d))))).(ex2_2_ind C T (\lambda -(d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda -(d2: C).(\lambda (_: T).(csuba g d2 d))) (arity g c2 (TLRef i) a0) (\lambda -(x0: C).(\lambda (x1: T).(\lambda (H7: (getl i c2 (CHead x0 (Bind Void) -x1))).(\lambda (_: (csuba g x0 d)).(let H_x0 \def (csubv_getl_conf_void c2 c -H4 x0 x1 i H7) in (let H9 \def H_x0 in (ex2_2_ind C T (\lambda (d2: -C).(\lambda (_: T).(csubv x0 d2))) (\lambda (d2: C).(\lambda (v2: T).(getl i -c (CHead d2 (Bind Void) v2)))) (arity g c2 (TLRef i) a0) (\lambda (x2: -C).(\lambda (x3: T).(\lambda (_: (csubv x0 x2)).(\lambda (H11: (getl i c -(CHead x2 (Bind Void) x3))).(let H12 \def (eq_ind C (CHead d (Bind Abbr) u) -(\lambda (c0: C).(getl i c c0)) H0 (CHead x2 (Bind Void) x3) (getl_mono c -(CHead d (Bind Abbr) u) i H0 (CHead x2 (Bind Void) x3) H11)) in (let H13 \def -(eq_ind C (CHead d (Bind Abbr) u) (\lambda (ee: C).(match ee in C return -(\lambda (_: C).Prop) with [(CSort _) \Rightarrow False | (CHead _ k _) -\Rightarrow (match k in K return (\lambda (_: K).Prop) with [(Bind b) -\Rightarrow (match b in B return (\lambda (_: B).Prop) with [Abbr \Rightarrow -True | Abst \Rightarrow False | Void \Rightarrow False]) | (Flat _) -\Rightarrow False])])) I (CHead x2 (Bind Void) x3) (getl_mono c (CHead d -(Bind Abbr) u) i H0 (CHead x2 (Bind Void) x3) H11)) in (False_ind (arity g c2 -(TLRef i) a0) H13))))))) H9))))))) H6)) H5)))))))))))))) (\lambda (c: -C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c -(CHead d (Bind Abst) u))).(\lambda (a0: A).(\lambda (_: (arity g d u (asucc g -a0))).(\lambda (H2: ((\forall (c2: C).((csuba g c2 d) \to ((csubv c2 d) \to -(arity g c2 u (asucc g a0))))))).(\lambda (c2: C).(\lambda (H3: (csuba g c2 -c)).(\lambda (H4: (csubv c2 c)).(let H_x \def (csuba_getl_abst_rev g c d u i -H0 c2 H3) in (let H5 \def H_x in (or_ind (ex2 C (\lambda (d2: C).(getl i c2 -(CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d))) (ex2_2 C T +(arity g c1 t a)).(let TMP_1 \def (\lambda (c: C).(\lambda (t0: T).(\lambda +(a0: A).(\forall (c2: C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 t0 +a0))))))) in (let TMP_2 \def (\lambda (c: C).(\lambda (n: nat).(\lambda (c2: +C).(\lambda (_: (csuba g c2 c)).(\lambda (_: (csubv c2 c)).(arity_sort g c2 +n)))))) in (let TMP_142 \def (\lambda (c: C).(\lambda (d: C).(\lambda (u: +T).(\lambda (i: nat).(\lambda (H0: (getl i c (CHead d (Bind Abbr) +u))).(\lambda (a0: A).(\lambda (H1: (arity g d u a0)).(\lambda (H2: ((\forall +(c2: C).((csuba g c2 d) \to ((csubv c2 d) \to (arity g c2 u a0)))))).(\lambda +(c2: C).(\lambda (H3: (csuba g c2 c)).(\lambda (H4: (csubv c2 c)).(let H_x +\def (csuba_getl_abbr_rev g c d u i H0 c2 H3) in (let H5 \def H_x in (let +TMP_5 \def (\lambda (d2: C).(let TMP_3 \def (Bind Abbr) in (let TMP_4 \def +(CHead d2 TMP_3 u) in (getl i c2 TMP_4)))) in (let TMP_6 \def (\lambda (d2: +C).(csuba g d2 d)) in (let TMP_7 \def (ex2 C TMP_5 TMP_6) in (let TMP_10 \def +(\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(let TMP_8 \def (Bind Abst) +in (let TMP_9 \def (CHead d2 TMP_8 u2) in (getl i c2 TMP_9)))))) in (let +TMP_11 \def (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 +d)))) in (let TMP_13 \def (\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: +A).(let TMP_12 \def (asucc g a1) in (arity g d2 u2 TMP_12))))) in (let TMP_14 +\def (\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(arity g d u a1)))) in +(let TMP_15 \def (ex4_3 C T A TMP_10 TMP_11 TMP_13 TMP_14) in (let TMP_18 +\def (\lambda (d2: C).(\lambda (u2: T).(let TMP_16 \def (Bind Void) in (let +TMP_17 \def (CHead d2 TMP_16 u2) in (getl i c2 TMP_17))))) in (let TMP_19 +\def (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d))) in (let TMP_20 \def +(ex2_2 C T TMP_18 TMP_19) in (let TMP_21 \def (TLRef i) in (let TMP_22 \def +(arity g c2 TMP_21 a0) in (let TMP_90 \def (\lambda (H6: (ex2 C (\lambda (d2: +C).(getl i c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d2 +d)))).(let TMP_25 \def (\lambda (d2: C).(let TMP_23 \def (Bind Abbr) in (let +TMP_24 \def (CHead d2 TMP_23 u) in (getl i c2 TMP_24)))) in (let TMP_26 \def +(\lambda (d2: C).(csuba g d2 d)) in (let TMP_27 \def (TLRef i) in (let TMP_28 +\def (arity g c2 TMP_27 a0) in (let TMP_89 \def (\lambda (x: C).(\lambda (H7: +(getl i c2 (CHead x (Bind Abbr) u))).(\lambda (H8: (csuba g x d)).(let H_x0 +\def (csubv_getl_conf c2 c H4 Abbr x u i H7) in (let H9 \def H_x0 in (let +TMP_29 \def (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csubv x d2)))) +in (let TMP_32 \def (\lambda (b2: B).(\lambda (d2: C).(\lambda (v2: T).(let +TMP_30 \def (Bind b2) in (let TMP_31 \def (CHead d2 TMP_30 v2) in (getl i c +TMP_31)))))) in (let TMP_33 \def (TLRef i) in (let TMP_34 \def (arity g c2 +TMP_33 a0) in (let TMP_88 \def (\lambda (x0: B).(\lambda (x1: C).(\lambda +(x2: T).(\lambda (H10: (csubv x x1)).(\lambda (H11: (getl i c (CHead x1 (Bind +x0) x2))).(let TMP_35 \def (Bind Abbr) in (let TMP_36 \def (CHead d TMP_35 u) +in (let TMP_37 \def (\lambda (c0: C).(getl i c c0)) in (let TMP_38 \def (Bind +x0) in (let TMP_39 \def (CHead x1 TMP_38 x2) in (let TMP_40 \def (Bind Abbr) +in (let TMP_41 \def (CHead d TMP_40 u) in (let TMP_42 \def (Bind x0) in (let +TMP_43 \def (CHead x1 TMP_42 x2) in (let TMP_44 \def (getl_mono c TMP_41 i H0 +TMP_43 H11) in (let H12 \def (eq_ind C TMP_36 TMP_37 H0 TMP_39 TMP_44) in +(let TMP_45 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow d | +(CHead c0 _ _) \Rightarrow c0])) in (let TMP_46 \def (Bind Abbr) in (let +TMP_47 \def (CHead d TMP_46 u) in (let TMP_48 \def (Bind x0) in (let TMP_49 +\def (CHead x1 TMP_48 x2) in (let TMP_50 \def (Bind Abbr) in (let TMP_51 \def +(CHead d TMP_50 u) in (let TMP_52 \def (Bind x0) in (let TMP_53 \def (CHead +x1 TMP_52 x2) in (let TMP_54 \def (getl_mono c TMP_51 i H0 TMP_53 H11) in +(let H13 \def (f_equal C C TMP_45 TMP_47 TMP_49 TMP_54) in (let TMP_55 \def +(\lambda (e: C).(match e with [(CSort _) \Rightarrow Abbr | (CHead _ k _) +\Rightarrow (match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow +Abbr])])) in (let TMP_56 \def (Bind Abbr) in (let TMP_57 \def (CHead d TMP_56 +u) in (let TMP_58 \def (Bind x0) in (let TMP_59 \def (CHead x1 TMP_58 x2) in +(let TMP_60 \def (Bind Abbr) in (let TMP_61 \def (CHead d TMP_60 u) in (let +TMP_62 \def (Bind x0) in (let TMP_63 \def (CHead x1 TMP_62 x2) in (let TMP_64 +\def (getl_mono c TMP_61 i H0 TMP_63 H11) in (let H14 \def (f_equal C B +TMP_55 TMP_57 TMP_59 TMP_64) in (let TMP_65 \def (\lambda (e: C).(match e +with [(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) in (let +TMP_66 \def (Bind Abbr) in (let TMP_67 \def (CHead d TMP_66 u) in (let TMP_68 +\def (Bind x0) in (let TMP_69 \def (CHead x1 TMP_68 x2) in (let TMP_70 \def +(Bind Abbr) in (let TMP_71 \def (CHead d TMP_70 u) in (let TMP_72 \def (Bind +x0) in (let TMP_73 \def (CHead x1 TMP_72 x2) in (let TMP_74 \def (getl_mono c +TMP_71 i H0 TMP_73 H11) in (let H15 \def (f_equal C T TMP_65 TMP_67 TMP_69 +TMP_74) in (let TMP_86 \def (\lambda (H16: (eq B Abbr x0)).(\lambda (H17: (eq +C d x1)).(let TMP_77 \def (\lambda (t0: T).(let TMP_75 \def (Bind x0) in (let +TMP_76 \def (CHead x1 TMP_75 t0) in (getl i c TMP_76)))) in (let H18 \def +(eq_ind_r T x2 TMP_77 H12 u H15) in (let TMP_80 \def (\lambda (c0: C).(let +TMP_78 \def (Bind x0) in (let TMP_79 \def (CHead c0 TMP_78 u) in (getl i c +TMP_79)))) in (let H19 \def (eq_ind_r C x1 TMP_80 H18 d H17) in (let TMP_81 +\def (\lambda (c0: C).(csubv x c0)) in (let H20 \def (eq_ind_r C x1 TMP_81 +H10 d H17) in (let TMP_84 \def (\lambda (b: B).(let TMP_82 \def (Bind b) in +(let TMP_83 \def (CHead d TMP_82 u) in (getl i c TMP_83)))) in (let H21 \def +(eq_ind_r B x0 TMP_84 H19 Abbr H16) in (let TMP_85 \def (H2 x H8 H20) in +(arity_abbr g c2 x u i H7 a0 TMP_85)))))))))))) in (let TMP_87 \def (TMP_86 +H14) in (TMP_87 H13)))))))))))))))))))))))))))))))))))))))))))))))))))) in +(ex2_3_ind B C T TMP_29 TMP_32 TMP_34 TMP_88 H9))))))))))) in (ex2_ind C +TMP_25 TMP_26 TMP_28 TMP_89 H6))))))) in (let TMP_104 \def (\lambda (H6: +(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 +(CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: +A).(csuba g d2 d)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: +A).(arity g d2 u2 (asucc g a1))))) (\lambda (_: C).(\lambda (_: T).(\lambda +(a1: A).(arity g d u a1)))))).(let TMP_93 \def (\lambda (d2: C).(\lambda (u2: +T).(\lambda (_: A).(let TMP_91 \def (Bind Abst) in (let TMP_92 \def (CHead d2 +TMP_91 u2) in (getl i c2 TMP_92)))))) in (let TMP_94 \def (\lambda (d2: +C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d)))) in (let TMP_96 \def +(\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: A).(let TMP_95 \def (asucc g +a1) in (arity g d2 u2 TMP_95))))) in (let TMP_97 \def (\lambda (_: +C).(\lambda (_: T).(\lambda (a1: A).(arity g d u a1)))) in (let TMP_98 \def +(TLRef i) in (let TMP_99 \def (arity g c2 TMP_98 a0) in (let TMP_103 \def +(\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: A).(\lambda (H7: (getl i c2 +(CHead x0 (Bind Abst) x1))).(\lambda (_: (csuba g x0 d)).(\lambda (H9: (arity +g x0 x1 (asucc g x2))).(\lambda (H10: (arity g d u x2)).(let TMP_100 \def +(TLRef i) in (let TMP_101 \def (arity_abst g c2 x0 x1 i H7 x2 H9) in (let +TMP_102 \def (arity_mono g d u x2 H10 a0 H1) in (arity_repl g c2 TMP_100 x2 +TMP_101 a0 TMP_102))))))))))) in (ex4_3_ind C T A TMP_93 TMP_94 TMP_96 TMP_97 +TMP_99 TMP_103 H6))))))))) in (let TMP_141 \def (\lambda (H6: (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) -(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d)))) (arity g c2 (TLRef i) a0) -(\lambda (H6: (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) -(\lambda (d2: C).(csuba g d2 d)))).(ex2_ind C (\lambda (d2: C).(getl i c2 -(CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d)) (arity g c2 -(TLRef i) a0) (\lambda (x: C).(\lambda (H7: (getl i c2 (CHead x (Bind Abst) +(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d))))).(let TMP_107 \def +(\lambda (d2: C).(\lambda (u2: T).(let TMP_105 \def (Bind Void) in (let +TMP_106 \def (CHead d2 TMP_105 u2) in (getl i c2 TMP_106))))) in (let TMP_108 +\def (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d))) in (let TMP_109 \def +(TLRef i) in (let TMP_110 \def (arity g c2 TMP_109 a0) in (let TMP_140 \def +(\lambda (x0: C).(\lambda (x1: T).(\lambda (H7: (getl i c2 (CHead x0 (Bind +Void) x1))).(\lambda (_: (csuba g x0 d)).(let H_x0 \def (csubv_getl_conf_void +c2 c H4 x0 x1 i H7) in (let H9 \def H_x0 in (let TMP_111 \def (\lambda (d2: +C).(\lambda (_: T).(csubv x0 d2))) in (let TMP_114 \def (\lambda (d2: +C).(\lambda (v2: T).(let TMP_112 \def (Bind Void) in (let TMP_113 \def (CHead +d2 TMP_112 v2) in (getl i c TMP_113))))) in (let TMP_115 \def (TLRef i) in +(let TMP_116 \def (arity g c2 TMP_115 a0) in (let TMP_139 \def (\lambda (x2: +C).(\lambda (x3: T).(\lambda (_: (csubv x0 x2)).(\lambda (H11: (getl i c +(CHead x2 (Bind Void) x3))).(let TMP_117 \def (Bind Abbr) in (let TMP_118 +\def (CHead d TMP_117 u) in (let TMP_119 \def (\lambda (c0: C).(getl i c c0)) +in (let TMP_120 \def (Bind Void) in (let TMP_121 \def (CHead x2 TMP_120 x3) +in (let TMP_122 \def (Bind Abbr) in (let TMP_123 \def (CHead d TMP_122 u) in +(let TMP_124 \def (Bind Void) in (let TMP_125 \def (CHead x2 TMP_124 x3) in +(let TMP_126 \def (getl_mono c TMP_123 i H0 TMP_125 H11) in (let H12 \def +(eq_ind C TMP_118 TMP_119 H0 TMP_121 TMP_126) in (let TMP_127 \def (Bind +Abbr) in (let TMP_128 \def (CHead d TMP_127 u) in (let TMP_129 \def (\lambda +(ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) +\Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr +\Rightarrow True | Abst \Rightarrow False | Void \Rightarrow False]) | (Flat +_) \Rightarrow False])])) in (let TMP_130 \def (Bind Void) in (let TMP_131 +\def (CHead x2 TMP_130 x3) in (let TMP_132 \def (Bind Abbr) in (let TMP_133 +\def (CHead d TMP_132 u) in (let TMP_134 \def (Bind Void) in (let TMP_135 +\def (CHead x2 TMP_134 x3) in (let TMP_136 \def (getl_mono c TMP_133 i H0 +TMP_135 H11) in (let H13 \def (eq_ind C TMP_128 TMP_129 I TMP_131 TMP_136) in +(let TMP_137 \def (TLRef i) in (let TMP_138 \def (arity g c2 TMP_137 a0) in +(False_ind TMP_138 H13))))))))))))))))))))))))))))) in (ex2_2_ind C T TMP_111 +TMP_114 TMP_116 TMP_139 H9)))))))))))) in (ex2_2_ind C T TMP_107 TMP_108 +TMP_110 TMP_140 H6))))))) in (or3_ind TMP_7 TMP_15 TMP_20 TMP_22 TMP_90 +TMP_104 TMP_141 H5)))))))))))))))))))))))))))))) in (let TMP_260 \def +(\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda +(H0: (getl i c (CHead d (Bind Abst) u))).(\lambda (a0: A).(\lambda (_: (arity +g d u (asucc g a0))).(\lambda (H2: ((\forall (c2: C).((csuba g c2 d) \to +((csubv c2 d) \to (arity g c2 u (asucc g a0))))))).(\lambda (c2: C).(\lambda +(H3: (csuba g c2 c)).(\lambda (H4: (csubv c2 c)).(let H_x \def +(csuba_getl_abst_rev g c d u i H0 c2 H3) in (let H5 \def H_x in (let TMP_145 +\def (\lambda (d2: C).(let TMP_143 \def (Bind Abst) in (let TMP_144 \def +(CHead d2 TMP_143 u) in (getl i c2 TMP_144)))) in (let TMP_146 \def (\lambda +(d2: C).(csuba g d2 d)) in (let TMP_147 \def (ex2 C TMP_145 TMP_146) in (let +TMP_150 \def (\lambda (d2: C).(\lambda (u2: T).(let TMP_148 \def (Bind Void) +in (let TMP_149 \def (CHead d2 TMP_148 u2) in (getl i c2 TMP_149))))) in (let +TMP_151 \def (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d))) in (let +TMP_152 \def (ex2_2 C T TMP_150 TMP_151) in (let TMP_153 \def (TLRef i) in +(let TMP_154 \def (arity g c2 TMP_153 a0) in (let TMP_222 \def (\lambda (H6: +(ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: +C).(csuba g d2 d)))).(let TMP_157 \def (\lambda (d2: C).(let TMP_155 \def +(Bind Abst) in (let TMP_156 \def (CHead d2 TMP_155 u) in (getl i c2 +TMP_156)))) in (let TMP_158 \def (\lambda (d2: C).(csuba g d2 d)) in (let +TMP_159 \def (TLRef i) in (let TMP_160 \def (arity g c2 TMP_159 a0) in (let +TMP_221 \def (\lambda (x: C).(\lambda (H7: (getl i c2 (CHead x (Bind Abst) u))).(\lambda (H8: (csuba g x d)).(let H_x0 \def (csubv_getl_conf c2 c H4 -Abst x u i H7) in (let H9 \def H_x0 in (ex2_3_ind B C T (\lambda (_: -B).(\lambda (d2: C).(\lambda (_: T).(csubv x d2)))) (\lambda (b2: B).(\lambda -(d2: C).(\lambda (v2: T).(getl i c (CHead d2 (Bind b2) v2))))) (arity g c2 -(TLRef i) a0) (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: T).(\lambda +Abst x u i H7) in (let H9 \def H_x0 in (let TMP_161 \def (\lambda (_: +B).(\lambda (d2: C).(\lambda (_: T).(csubv x d2)))) in (let TMP_164 \def +(\lambda (b2: B).(\lambda (d2: C).(\lambda (v2: T).(let TMP_162 \def (Bind +b2) in (let TMP_163 \def (CHead d2 TMP_162 v2) in (getl i c TMP_163)))))) in +(let TMP_165 \def (TLRef i) in (let TMP_166 \def (arity g c2 TMP_165 a0) in +(let TMP_220 \def (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: T).(\lambda (H10: (csubv x x1)).(\lambda (H11: (getl i c (CHead x1 (Bind x0) x2))).(let -H12 \def (eq_ind C (CHead d (Bind Abst) u) (\lambda (c0: C).(getl i c c0)) H0 -(CHead x1 (Bind x0) x2) (getl_mono c (CHead d (Bind Abst) u) i H0 (CHead x1 -(Bind x0) x2) H11)) in (let H13 \def (f_equal C C (\lambda (e: C).(match e in -C return (\lambda (_: C).C) with [(CSort _) \Rightarrow d | (CHead c0 _ _) -\Rightarrow c0])) (CHead d (Bind Abst) u) (CHead x1 (Bind x0) x2) (getl_mono -c (CHead d (Bind Abst) u) i H0 (CHead x1 (Bind x0) x2) H11)) in ((let H14 -\def (f_equal C B (\lambda (e: C).(match e in C return (\lambda (_: C).B) -with [(CSort _) \Rightarrow Abst | (CHead _ k _) \Rightarrow (match k in K -return (\lambda (_: K).B) with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow -Abst])])) (CHead d (Bind Abst) u) (CHead x1 (Bind x0) x2) (getl_mono c (CHead -d (Bind Abst) u) i H0 (CHead x1 (Bind x0) x2) H11)) in ((let H15 \def -(f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) with -[(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) (CHead d (Bind -Abst) u) (CHead x1 (Bind x0) x2) (getl_mono c (CHead d (Bind Abst) u) i H0 -(CHead x1 (Bind x0) x2) H11)) in (\lambda (H16: (eq B Abst x0)).(\lambda -(H17: (eq C d x1)).(let H18 \def (eq_ind_r T x2 (\lambda (t0: T).(getl i c -(CHead x1 (Bind x0) t0))) H12 u H15) in (let H19 \def (eq_ind_r C x1 (\lambda -(c0: C).(getl i c (CHead c0 (Bind x0) u))) H18 d H17) in (let H20 \def -(eq_ind_r C x1 (\lambda (c0: C).(csubv x c0)) H10 d H17) in (let H21 \def -(eq_ind_r B x0 (\lambda (b: B).(getl i c (CHead d (Bind b) u))) H19 Abst H16) -in (arity_abst g c2 x u i H7 a0 (H2 x H8 H20))))))))) H14)) H13)))))))) -H9)))))) H6)) (\lambda (H6: (ex2_2 C T (\lambda (d2: C).(\lambda (u2: -T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: -T).(csuba g d2 d))))).(ex2_2_ind C T (\lambda (d2: C).(\lambda (u2: T).(getl -i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g -d2 d))) (arity g c2 (TLRef i) a0) (\lambda (x0: C).(\lambda (x1: T).(\lambda -(H7: (getl i c2 (CHead x0 (Bind Void) x1))).(\lambda (_: (csuba g x0 d)).(let -H_x0 \def (csubv_getl_conf_void c2 c H4 x0 x1 i H7) in (let H9 \def H_x0 in -(ex2_2_ind C T (\lambda (d2: C).(\lambda (_: T).(csubv x0 d2))) (\lambda (d2: -C).(\lambda (v2: T).(getl i c (CHead d2 (Bind Void) v2)))) (arity g c2 (TLRef -i) a0) (\lambda (x2: C).(\lambda (x3: T).(\lambda (_: (csubv x0 x2)).(\lambda -(H11: (getl i c (CHead x2 (Bind Void) x3))).(let H12 \def (eq_ind C (CHead d -(Bind Abst) u) (\lambda (c0: C).(getl i c c0)) H0 (CHead x2 (Bind Void) x3) -(getl_mono c (CHead d (Bind Abst) u) i H0 (CHead x2 (Bind Void) x3) H11)) in -(let H13 \def (eq_ind C (CHead d (Bind Abst) u) (\lambda (ee: C).(match ee in -C return (\lambda (_: C).Prop) with [(CSort _) \Rightarrow False | (CHead _ k -_) \Rightarrow (match k in K return (\lambda (_: K).Prop) with [(Bind b) -\Rightarrow (match b in B return (\lambda (_: B).Prop) with [Abbr \Rightarrow -False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat _) -\Rightarrow False])])) I (CHead x2 (Bind Void) x3) (getl_mono c (CHead d -(Bind Abst) u) i H0 (CHead x2 (Bind Void) x3) H11)) in (False_ind (arity g c2 -(TLRef i) a0) H13))))))) H9))))))) H6)) H5)))))))))))))) (\lambda (b: -B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c: C).(\lambda (u: -T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H2: ((\forall -(c2: C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 u a1)))))).(\lambda -(t0: T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c (Bind b) u) t0 -a2)).(\lambda (H4: ((\forall (c2: C).((csuba g c2 (CHead c (Bind b) u)) \to -((csubv c2 (CHead c (Bind b) u)) \to (arity g c2 t0 a2)))))).(\lambda (c2: -C).(\lambda (H5: (csuba g c2 c)).(\lambda (H6: (csubv c2 c)).(arity_bind g b -H0 c2 u a1 (H2 c2 H5 H6) t0 a2 (H4 (CHead c2 (Bind b) u) (csuba_head g c2 c -H5 (Bind b) u) (csubv_bind_same c2 c H6 b u u))))))))))))))))) (\lambda (c: -C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u (asucc g -a1))).(\lambda (H1: ((\forall (c2: C).((csuba g c2 c) \to ((csubv c2 c) \to -(arity g c2 u (asucc g a1))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda -(_: (arity g (CHead c (Bind Abst) u) t0 a2)).(\lambda (H3: ((\forall (c2: -C).((csuba g c2 (CHead c (Bind Abst) u)) \to ((csubv c2 (CHead c (Bind Abst) -u)) \to (arity g c2 t0 a2)))))).(\lambda (c2: C).(\lambda (H4: (csuba g c2 -c)).(\lambda (H5: (csubv c2 c)).(arity_head g c2 u a1 (H1 c2 H4 H5) t0 a2 (H3 -(CHead c2 (Bind Abst) u) (csuba_head g c2 c H4 (Bind Abst) u) -(csubv_bind_same c2 c H5 Abst u u))))))))))))))) (\lambda (c: C).(\lambda (u: +TMP_167 \def (Bind Abst) in (let TMP_168 \def (CHead d TMP_167 u) in (let +TMP_169 \def (\lambda (c0: C).(getl i c c0)) in (let TMP_170 \def (Bind x0) +in (let TMP_171 \def (CHead x1 TMP_170 x2) in (let TMP_172 \def (Bind Abst) +in (let TMP_173 \def (CHead d TMP_172 u) in (let TMP_174 \def (Bind x0) in +(let TMP_175 \def (CHead x1 TMP_174 x2) in (let TMP_176 \def (getl_mono c +TMP_173 i H0 TMP_175 H11) in (let H12 \def (eq_ind C TMP_168 TMP_169 H0 +TMP_171 TMP_176) in (let TMP_177 \def (\lambda (e: C).(match e with [(CSort +_) \Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) in (let TMP_178 \def +(Bind Abst) in (let TMP_179 \def (CHead d TMP_178 u) in (let TMP_180 \def +(Bind x0) in (let TMP_181 \def (CHead x1 TMP_180 x2) in (let TMP_182 \def +(Bind Abst) in (let TMP_183 \def (CHead d TMP_182 u) in (let TMP_184 \def +(Bind x0) in (let TMP_185 \def (CHead x1 TMP_184 x2) in (let TMP_186 \def +(getl_mono c TMP_183 i H0 TMP_185 H11) in (let H13 \def (f_equal C C TMP_177 +TMP_179 TMP_181 TMP_186) in (let TMP_187 \def (\lambda (e: C).(match e with +[(CSort _) \Rightarrow Abst | (CHead _ k _) \Rightarrow (match k with [(Bind +b) \Rightarrow b | (Flat _) \Rightarrow Abst])])) in (let TMP_188 \def (Bind +Abst) in (let TMP_189 \def (CHead d TMP_188 u) in (let TMP_190 \def (Bind x0) +in (let TMP_191 \def (CHead x1 TMP_190 x2) in (let TMP_192 \def (Bind Abst) +in (let TMP_193 \def (CHead d TMP_192 u) in (let TMP_194 \def (Bind x0) in +(let TMP_195 \def (CHead x1 TMP_194 x2) in (let TMP_196 \def (getl_mono c +TMP_193 i H0 TMP_195 H11) in (let H14 \def (f_equal C B TMP_187 TMP_189 +TMP_191 TMP_196) in (let TMP_197 \def (\lambda (e: C).(match e with [(CSort +_) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) in (let TMP_198 \def +(Bind Abst) in (let TMP_199 \def (CHead d TMP_198 u) in (let TMP_200 \def +(Bind x0) in (let TMP_201 \def (CHead x1 TMP_200 x2) in (let TMP_202 \def +(Bind Abst) in (let TMP_203 \def (CHead d TMP_202 u) in (let TMP_204 \def +(Bind x0) in (let TMP_205 \def (CHead x1 TMP_204 x2) in (let TMP_206 \def +(getl_mono c TMP_203 i H0 TMP_205 H11) in (let H15 \def (f_equal C T TMP_197 +TMP_199 TMP_201 TMP_206) in (let TMP_218 \def (\lambda (H16: (eq B Abst +x0)).(\lambda (H17: (eq C d x1)).(let TMP_209 \def (\lambda (t0: T).(let +TMP_207 \def (Bind x0) in (let TMP_208 \def (CHead x1 TMP_207 t0) in (getl i +c TMP_208)))) in (let H18 \def (eq_ind_r T x2 TMP_209 H12 u H15) in (let +TMP_212 \def (\lambda (c0: C).(let TMP_210 \def (Bind x0) in (let TMP_211 +\def (CHead c0 TMP_210 u) in (getl i c TMP_211)))) in (let H19 \def (eq_ind_r +C x1 TMP_212 H18 d H17) in (let TMP_213 \def (\lambda (c0: C).(csubv x c0)) +in (let H20 \def (eq_ind_r C x1 TMP_213 H10 d H17) in (let TMP_216 \def +(\lambda (b: B).(let TMP_214 \def (Bind b) in (let TMP_215 \def (CHead d +TMP_214 u) in (getl i c TMP_215)))) in (let H21 \def (eq_ind_r B x0 TMP_216 +H19 Abst H16) in (let TMP_217 \def (H2 x H8 H20) in (arity_abst g c2 x u i H7 +a0 TMP_217)))))))))))) in (let TMP_219 \def (TMP_218 H14) in (TMP_219 +H13)))))))))))))))))))))))))))))))))))))))))))))))))))) in (ex2_3_ind B C T +TMP_161 TMP_164 TMP_166 TMP_220 H9))))))))))) in (ex2_ind C TMP_157 TMP_158 +TMP_160 TMP_221 H6))))))) in (let TMP_259 \def (\lambda (H6: (ex2_2 C T +(\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) +(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d))))).(let TMP_225 \def +(\lambda (d2: C).(\lambda (u2: T).(let TMP_223 \def (Bind Void) in (let +TMP_224 \def (CHead d2 TMP_223 u2) in (getl i c2 TMP_224))))) in (let TMP_226 +\def (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d))) in (let TMP_227 \def +(TLRef i) in (let TMP_228 \def (arity g c2 TMP_227 a0) in (let TMP_258 \def +(\lambda (x0: C).(\lambda (x1: T).(\lambda (H7: (getl i c2 (CHead x0 (Bind +Void) x1))).(\lambda (_: (csuba g x0 d)).(let H_x0 \def (csubv_getl_conf_void +c2 c H4 x0 x1 i H7) in (let H9 \def H_x0 in (let TMP_229 \def (\lambda (d2: +C).(\lambda (_: T).(csubv x0 d2))) in (let TMP_232 \def (\lambda (d2: +C).(\lambda (v2: T).(let TMP_230 \def (Bind Void) in (let TMP_231 \def (CHead +d2 TMP_230 v2) in (getl i c TMP_231))))) in (let TMP_233 \def (TLRef i) in +(let TMP_234 \def (arity g c2 TMP_233 a0) in (let TMP_257 \def (\lambda (x2: +C).(\lambda (x3: T).(\lambda (_: (csubv x0 x2)).(\lambda (H11: (getl i c +(CHead x2 (Bind Void) x3))).(let TMP_235 \def (Bind Abst) in (let TMP_236 +\def (CHead d TMP_235 u) in (let TMP_237 \def (\lambda (c0: C).(getl i c c0)) +in (let TMP_238 \def (Bind Void) in (let TMP_239 \def (CHead x2 TMP_238 x3) +in (let TMP_240 \def (Bind Abst) in (let TMP_241 \def (CHead d TMP_240 u) in +(let TMP_242 \def (Bind Void) in (let TMP_243 \def (CHead x2 TMP_242 x3) in +(let TMP_244 \def (getl_mono c TMP_241 i H0 TMP_243 H11) in (let H12 \def +(eq_ind C TMP_236 TMP_237 H0 TMP_239 TMP_244) in (let TMP_245 \def (Bind +Abst) in (let TMP_246 \def (CHead d TMP_245 u) in (let TMP_247 \def (\lambda +(ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) +\Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr +\Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat +_) \Rightarrow False])])) in (let TMP_248 \def (Bind Void) in (let TMP_249 +\def (CHead x2 TMP_248 x3) in (let TMP_250 \def (Bind Abst) in (let TMP_251 +\def (CHead d TMP_250 u) in (let TMP_252 \def (Bind Void) in (let TMP_253 +\def (CHead x2 TMP_252 x3) in (let TMP_254 \def (getl_mono c TMP_251 i H0 +TMP_253 H11) in (let H13 \def (eq_ind C TMP_246 TMP_247 I TMP_249 TMP_254) in +(let TMP_255 \def (TLRef i) in (let TMP_256 \def (arity g c2 TMP_255 a0) in +(False_ind TMP_256 H13))))))))))))))))))))))))))))) in (ex2_2_ind C T TMP_229 +TMP_232 TMP_234 TMP_257 H9)))))))))))) in (ex2_2_ind C T TMP_225 TMP_226 +TMP_228 TMP_258 H6))))))) in (or_ind TMP_147 TMP_152 TMP_154 TMP_222 TMP_259 +H5)))))))))))))))))))))))) in (let TMP_268 \def (\lambda (b: B).(\lambda (H0: +(not (eq B b Abst))).(\lambda (c: C).(\lambda (u: T).(\lambda (a1: +A).(\lambda (_: (arity g c u a1)).(\lambda (H2: ((\forall (c2: C).((csuba g +c2 c) \to ((csubv c2 c) \to (arity g c2 u a1)))))).(\lambda (t0: T).(\lambda +(a2: A).(\lambda (_: (arity g (CHead c (Bind b) u) t0 a2)).(\lambda (H4: +((\forall (c2: C).((csuba g c2 (CHead c (Bind b) u)) \to ((csubv c2 (CHead c +(Bind b) u)) \to (arity g c2 t0 a2)))))).(\lambda (c2: C).(\lambda (H5: +(csuba g c2 c)).(\lambda (H6: (csubv c2 c)).(let TMP_261 \def (H2 c2 H5 H6) +in (let TMP_262 \def (Bind b) in (let TMP_263 \def (CHead c2 TMP_262 u) in +(let TMP_264 \def (Bind b) in (let TMP_265 \def (csuba_head g c2 c H5 TMP_264 +u) in (let TMP_266 \def (csubv_bind_same c2 c H6 b u u) in (let TMP_267 \def +(H4 TMP_263 TMP_265 TMP_266) in (arity_bind g b H0 c2 u a1 TMP_261 t0 a2 +TMP_267)))))))))))))))))))))) in (let TMP_276 \def (\lambda (c: C).(\lambda +(u: T).(\lambda (a1: A).(\lambda (_: (arity g c u (asucc g a1))).(\lambda +(H1: ((\forall (c2: C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 u +(asucc g a1))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g +(CHead c (Bind Abst) u) t0 a2)).(\lambda (H3: ((\forall (c2: C).((csuba g c2 +(CHead c (Bind Abst) u)) \to ((csubv c2 (CHead c (Bind Abst) u)) \to (arity g +c2 t0 a2)))))).(\lambda (c2: C).(\lambda (H4: (csuba g c2 c)).(\lambda (H5: +(csubv c2 c)).(let TMP_269 \def (H1 c2 H4 H5) in (let TMP_270 \def (Bind +Abst) in (let TMP_271 \def (CHead c2 TMP_270 u) in (let TMP_272 \def (Bind +Abst) in (let TMP_273 \def (csuba_head g c2 c H4 TMP_272 u) in (let TMP_274 +\def (csubv_bind_same c2 c H5 Abst u u) in (let TMP_275 \def (H3 TMP_271 +TMP_273 TMP_274) in (arity_head g c2 u a1 TMP_269 t0 a2 +TMP_275)))))))))))))))))))) in (let TMP_279 \def (\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H1: ((\forall (c2: C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 u a1)))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g c t0 (AHead a1 a2))).(\lambda (H3: ((\forall (c2: C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 t0 (AHead a1 a2))))))).(\lambda (c2: C).(\lambda (H4: (csuba g c2 c)).(\lambda -(H5: (csubv c2 c)).(arity_appl g c2 u a1 (H1 c2 H4 H5) t0 a2 (H3 c2 H4 -H5)))))))))))))) (\lambda (c: C).(\lambda (u: T).(\lambda (a0: A).(\lambda +(H5: (csubv c2 c)).(let TMP_277 \def (H1 c2 H4 H5) in (let TMP_278 \def (H3 +c2 H4 H5) in (arity_appl g c2 u a1 TMP_277 t0 a2 TMP_278))))))))))))))) in +(let TMP_282 \def (\lambda (c: C).(\lambda (u: T).(\lambda (a0: A).(\lambda (_: (arity g c u (asucc g a0))).(\lambda (H1: ((\forall (c2: C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 u (asucc g a0))))))).(\lambda (t0: T).(\lambda (_: (arity g c t0 a0)).(\lambda (H3: ((\forall (c2: C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 t0 a0)))))).(\lambda (c2: C).(\lambda -(H4: (csuba g c2 c)).(\lambda (H5: (csubv c2 c)).(arity_cast g c2 u a0 (H1 c2 -H4 H5) t0 (H3 c2 H4 H5))))))))))))) (\lambda (c: C).(\lambda (t0: T).(\lambda -(a1: A).(\lambda (_: (arity g c t0 a1)).(\lambda (H1: ((\forall (c2: -C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 t0 a1)))))).(\lambda -(a2: A).(\lambda (H2: (leq g a1 a2)).(\lambda (c2: C).(\lambda (H3: (csuba g -c2 c)).(\lambda (H4: (csubv c2 c)).(arity_repl g c2 t0 a1 (H1 c2 H3 H4) a2 -H2))))))))))) c1 t a H))))). -(* COMMENTS -Initial nodes: 3597 -END *) +(H4: (csuba g c2 c)).(\lambda (H5: (csubv c2 c)).(let TMP_280 \def (H1 c2 H4 +H5) in (let TMP_281 \def (H3 c2 H4 H5) in (arity_cast g c2 u a0 TMP_280 t0 +TMP_281)))))))))))))) in (let TMP_284 \def (\lambda (c: C).(\lambda (t0: +T).(\lambda (a1: A).(\lambda (_: (arity g c t0 a1)).(\lambda (H1: ((\forall +(c2: C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 t0 +a1)))))).(\lambda (a2: A).(\lambda (H2: (leq g a1 a2)).(\lambda (c2: +C).(\lambda (H3: (csuba g c2 c)).(\lambda (H4: (csubv c2 c)).(let TMP_283 +\def (H1 c2 H3 H4) in (arity_repl g c2 t0 a1 TMP_283 a2 H2)))))))))))) in +(arity_ind g TMP_1 TMP_2 TMP_142 TMP_260 TMP_268 TMP_276 TMP_279 TMP_282 +TMP_284 c1 t a H)))))))))))))). theorem arity_appls_appl: \forall (g: G).(\forall (c: C).(\forall (v: T).(\forall (a1: A).((arity g c @@ -303,34 +429,52 @@ T).(\forall (vs: TList).(\forall (a2: A).((arity g c (THeads (Flat Appl) vs \def \lambda (g: G).(\lambda (c: C).(\lambda (v: T).(\lambda (a1: A).(\lambda (H: (arity g c v a1)).(\lambda (u: T).(\lambda (H0: (arity g c u (asucc g -a1))).(\lambda (t: T).(\lambda (vs: TList).(TList_ind (\lambda (t0: +a1))).(\lambda (t: T).(\lambda (vs: TList).(let TMP_7 \def (\lambda (t0: TList).(\forall (a2: A).((arity g c (THeads (Flat Appl) t0 (THead (Bind Abbr) -v t)) a2) \to (arity g c (THeads (Flat Appl) t0 (THead (Flat Appl) v (THead -(Bind Abst) u t))) a2)))) (\lambda (a2: A).(\lambda (H1: (arity g c (THead -(Bind Abbr) v t) a2)).(let H_x \def (arity_gen_bind Abbr (\lambda (H2: (eq B -Abbr Abst)).(not_abbr_abst H2)) g c v t a2 H1) in (let H2 \def H_x in -(ex2_ind A (\lambda (a3: A).(arity g c v a3)) (\lambda (_: A).(arity g (CHead -c (Bind Abbr) v) t a2)) (arity g c (THead (Flat Appl) v (THead (Bind Abst) u -t)) a2) (\lambda (x: A).(\lambda (_: (arity g c v x)).(\lambda (H4: (arity g -(CHead c (Bind Abbr) v) t a2)).(arity_appl g c v a1 H (THead (Bind Abst) u t) -a2 (arity_head g c u a1 H0 t a2 (csuba_arity_rev g (CHead c (Bind Abbr) v) t -a2 H4 (CHead c (Bind Abst) u) (csuba_abst g c c (csuba_refl g c) u a1 H0 v H) -(csubv_bind c c (csubv_refl c) Abst (sym_not_eq B Void Abst not_void_abst) -Abbr u v))))))) H2))))) (\lambda (t0: T).(\lambda (t1: TList).(\lambda (H1: -((\forall (a2: A).((arity g c (THeads (Flat Appl) t1 (THead (Bind Abbr) v t)) -a2) \to (arity g c (THeads (Flat Appl) t1 (THead (Flat Appl) v (THead (Bind -Abst) u t))) a2))))).(\lambda (a2: A).(\lambda (H2: (arity g c (THead (Flat -Appl) t0 (THeads (Flat Appl) t1 (THead (Bind Abbr) v t))) a2)).(let H3 \def -(arity_gen_appl g c t0 (THeads (Flat Appl) t1 (THead (Bind Abbr) v t)) a2 H2) -in (ex2_ind A (\lambda (a3: A).(arity g c t0 a3)) (\lambda (a3: A).(arity g c -(THeads (Flat Appl) t1 (THead (Bind Abbr) v t)) (AHead a3 a2))) (arity g c -(THead (Flat Appl) t0 (THeads (Flat Appl) t1 (THead (Flat Appl) v (THead -(Bind Abst) u t)))) a2) (\lambda (x: A).(\lambda (H4: (arity g c t0 -x)).(\lambda (H5: (arity g c (THeads (Flat Appl) t1 (THead (Bind Abbr) v t)) -(AHead x a2))).(arity_appl g c t0 x H4 (THeads (Flat Appl) t1 (THead (Flat -Appl) v (THead (Bind Abst) u t))) a2 (H1 (AHead x a2) H5))))) H3))))))) -vs))))))))). -(* COMMENTS -Initial nodes: 687 -END *) +v t)) a2) \to (let TMP_1 \def (Flat Appl) in (let TMP_2 \def (Flat Appl) in +(let TMP_3 \def (Bind Abst) in (let TMP_4 \def (THead TMP_3 u t) in (let +TMP_5 \def (THead TMP_2 v TMP_4) in (let TMP_6 \def (THeads TMP_1 t0 TMP_5) +in (arity g c TMP_6 a2)))))))))) in (let TMP_30 \def (\lambda (a2: +A).(\lambda (H1: (arity g c (THead (Bind Abbr) v t) a2)).(let H_x \def +(arity_gen_bind Abbr not_abbr_abst g c v t a2 H1) in (let H2 \def H_x in (let +TMP_8 \def (\lambda (a3: A).(arity g c v a3)) in (let TMP_11 \def (\lambda +(_: A).(let TMP_9 \def (Bind Abbr) in (let TMP_10 \def (CHead c TMP_9 v) in +(arity g TMP_10 t a2)))) in (let TMP_12 \def (Flat Appl) in (let TMP_13 \def +(Bind Abst) in (let TMP_14 \def (THead TMP_13 u t) in (let TMP_15 \def (THead +TMP_12 v TMP_14) in (let TMP_16 \def (arity g c TMP_15 a2) in (let TMP_29 +\def (\lambda (x: A).(\lambda (_: (arity g c v x)).(\lambda (H4: (arity g +(CHead c (Bind Abbr) v) t a2)).(let TMP_17 \def (Bind Abst) in (let TMP_18 +\def (THead TMP_17 u t) in (let TMP_19 \def (Bind Abbr) in (let TMP_20 \def +(CHead c TMP_19 v) in (let TMP_21 \def (Bind Abst) in (let TMP_22 \def (CHead +c TMP_21 u) in (let TMP_23 \def (csuba_refl g c) in (let TMP_24 \def +(csuba_abst g c c TMP_23 u a1 H0 v H) in (let TMP_25 \def (csubv_refl c) in +(let TMP_26 \def (csubv_bind c c TMP_25 Abst not_abst_void Abbr u v) in (let +TMP_27 \def (csuba_arity_rev g TMP_20 t a2 H4 TMP_22 TMP_24 TMP_26) in (let +TMP_28 \def (arity_head g c u a1 H0 t a2 TMP_27) in (arity_appl g c v a1 H +TMP_18 a2 TMP_28)))))))))))))))) in (ex2_ind A TMP_8 TMP_11 TMP_16 TMP_29 +H2))))))))))))) in (let TMP_60 \def (\lambda (t0: T).(\lambda (t1: +TList).(\lambda (H1: ((\forall (a2: A).((arity g c (THeads (Flat Appl) t1 +(THead (Bind Abbr) v t)) a2) \to (arity g c (THeads (Flat Appl) t1 (THead +(Flat Appl) v (THead (Bind Abst) u t))) a2))))).(\lambda (a2: A).(\lambda +(H2: (arity g c (THead (Flat Appl) t0 (THeads (Flat Appl) t1 (THead (Bind +Abbr) v t))) a2)).(let TMP_31 \def (Flat Appl) in (let TMP_32 \def (Bind +Abbr) in (let TMP_33 \def (THead TMP_32 v t) in (let TMP_34 \def (THeads +TMP_31 t1 TMP_33) in (let H3 \def (arity_gen_appl g c t0 TMP_34 a2 H2) in +(let TMP_35 \def (\lambda (a3: A).(arity g c t0 a3)) in (let TMP_41 \def +(\lambda (a3: A).(let TMP_36 \def (Flat Appl) in (let TMP_37 \def (Bind Abbr) +in (let TMP_38 \def (THead TMP_37 v t) in (let TMP_39 \def (THeads TMP_36 t1 +TMP_38) in (let TMP_40 \def (AHead a3 a2) in (arity g c TMP_39 TMP_40))))))) +in (let TMP_42 \def (Flat Appl) in (let TMP_43 \def (Flat Appl) in (let +TMP_44 \def (Flat Appl) in (let TMP_45 \def (Bind Abst) in (let TMP_46 \def +(THead TMP_45 u t) in (let TMP_47 \def (THead TMP_44 v TMP_46) in (let TMP_48 +\def (THeads TMP_43 t1 TMP_47) in (let TMP_49 \def (THead TMP_42 t0 TMP_48) +in (let TMP_50 \def (arity g c TMP_49 a2) in (let TMP_59 \def (\lambda (x: +A).(\lambda (H4: (arity g c t0 x)).(\lambda (H5: (arity g c (THeads (Flat +Appl) t1 (THead (Bind Abbr) v t)) (AHead x a2))).(let TMP_51 \def (Flat Appl) +in (let TMP_52 \def (Flat Appl) in (let TMP_53 \def (Bind Abst) in (let +TMP_54 \def (THead TMP_53 u t) in (let TMP_55 \def (THead TMP_52 v TMP_54) in +(let TMP_56 \def (THeads TMP_51 t1 TMP_55) in (let TMP_57 \def (AHead x a2) +in (let TMP_58 \def (H1 TMP_57 H5) in (arity_appl g c t0 x H4 TMP_56 a2 +TMP_58)))))))))))) in (ex2_ind A TMP_35 TMP_41 TMP_50 TMP_59 +H3))))))))))))))))))))))) in (TList_ind TMP_7 TMP_30 TMP_60 vs)))))))))))). diff --git a/matita/matita/contribs/lambdadelta/basic_1/csuba/clear.ma b/matita/matita/contribs/lambdadelta/basic_1/csuba/clear.ma index 2350fd1e8..af8360519 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/csuba/clear.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/csuba/clear.ma @@ -14,9 +14,9 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/csuba/defs.ma". +include "basic_1/csuba/fwd.ma". -include "Basic-1/clear/fwd.ma". +include "basic_1/clear/fwd.ma". theorem csuba_clear_conf: \forall (g: G).(\forall (c1: C).(\forall (c2: C).((csuba g c1 c2) \to @@ -24,53 +24,84 @@ theorem csuba_clear_conf: (\lambda (e2: C).(clear c2 e2)))))))) \def \lambda (g: G).(\lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csuba g c1 -c2)).(csuba_ind g (\lambda (c: C).(\lambda (c0: C).(\forall (e1: C).((clear c -e1) \to (ex2 C (\lambda (e2: C).(csuba g e1 e2)) (\lambda (e2: C).(clear c0 -e2))))))) (\lambda (n: nat).(\lambda (e1: C).(\lambda (H0: (clear (CSort n) -e1)).(clear_gen_sort e1 n H0 (ex2 C (\lambda (e2: C).(csuba g e1 e2)) -(\lambda (e2: C).(clear (CSort n) e2))))))) (\lambda (c3: C).(\lambda (c4: -C).(\lambda (H0: (csuba g c3 c4)).(\lambda (H1: ((\forall (e1: C).((clear c3 -e1) \to (ex2 C (\lambda (e2: C).(csuba g e1 e2)) (\lambda (e2: C).(clear c4 +c2)).(let TMP_3 \def (\lambda (c: C).(\lambda (c0: C).(\forall (e1: +C).((clear c e1) \to (let TMP_1 \def (\lambda (e2: C).(csuba g e1 e2)) in +(let TMP_2 \def (\lambda (e2: C).(clear c0 e2)) in (ex2 C TMP_1 TMP_2))))))) +in (let TMP_8 \def (\lambda (n: nat).(\lambda (e1: C).(\lambda (H0: (clear +(CSort n) e1)).(let TMP_4 \def (\lambda (e2: C).(csuba g e1 e2)) in (let +TMP_6 \def (\lambda (e2: C).(let TMP_5 \def (CSort n) in (clear TMP_5 e2))) +in (let TMP_7 \def (ex2 C TMP_4 TMP_6) in (clear_gen_sort e1 n H0 +TMP_7))))))) in (let TMP_49 \def (\lambda (c3: C).(\lambda (c4: C).(\lambda +(H0: (csuba g c3 c4)).(\lambda (H1: ((\forall (e1: C).((clear c3 e1) \to (ex2 +C (\lambda (e2: C).(csuba g e1 e2)) (\lambda (e2: C).(clear c4 e2))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (e1: C).(\lambda (H2: -(clear (CHead c3 k u) e1)).(K_ind (\lambda (k0: K).((clear (CHead c3 k0 u) -e1) \to (ex2 C (\lambda (e2: C).(csuba g e1 e2)) (\lambda (e2: C).(clear -(CHead c4 k0 u) e2))))) (\lambda (b: B).(\lambda (H3: (clear (CHead c3 (Bind -b) u) e1)).(eq_ind_r C (CHead c3 (Bind b) u) (\lambda (c: C).(ex2 C (\lambda -(e2: C).(csuba g c e2)) (\lambda (e2: C).(clear (CHead c4 (Bind b) u) e2)))) -(ex_intro2 C (\lambda (e2: C).(csuba g (CHead c3 (Bind b) u) e2)) (\lambda -(e2: C).(clear (CHead c4 (Bind b) u) e2)) (CHead c4 (Bind b) u) (csuba_head g -c3 c4 H0 (Bind b) u) (clear_bind b c4 u)) e1 (clear_gen_bind b c3 e1 u H3)))) -(\lambda (f: F).(\lambda (H3: (clear (CHead c3 (Flat f) u) e1)).(let H4 \def -(H1 e1 (clear_gen_flat f c3 e1 u H3)) in (ex2_ind C (\lambda (e2: C).(csuba g -e1 e2)) (\lambda (e2: C).(clear c4 e2)) (ex2 C (\lambda (e2: C).(csuba g e1 -e2)) (\lambda (e2: C).(clear (CHead c4 (Flat f) u) e2))) (\lambda (x: -C).(\lambda (H5: (csuba g e1 x)).(\lambda (H6: (clear c4 x)).(ex_intro2 C -(\lambda (e2: C).(csuba g e1 e2)) (\lambda (e2: C).(clear (CHead c4 (Flat f) -u) e2)) x H5 (clear_flat c4 x H6 f u))))) H4)))) k H2))))))))) (\lambda (c3: +(clear (CHead c3 k u) e1)).(let TMP_12 \def (\lambda (k0: K).((clear (CHead +c3 k0 u) e1) \to (let TMP_9 \def (\lambda (e2: C).(csuba g e1 e2)) in (let +TMP_11 \def (\lambda (e2: C).(let TMP_10 \def (CHead c4 k0 u) in (clear +TMP_10 e2))) in (ex2 C TMP_9 TMP_11))))) in (let TMP_33 \def (\lambda (b: +B).(\lambda (H3: (clear (CHead c3 (Bind b) u) e1)).(let TMP_13 \def (Bind b) +in (let TMP_14 \def (CHead c3 TMP_13 u) in (let TMP_19 \def (\lambda (c: +C).(let TMP_15 \def (\lambda (e2: C).(csuba g c e2)) in (let TMP_18 \def +(\lambda (e2: C).(let TMP_16 \def (Bind b) in (let TMP_17 \def (CHead c4 +TMP_16 u) in (clear TMP_17 e2)))) in (ex2 C TMP_15 TMP_18)))) in (let TMP_22 +\def (\lambda (e2: C).(let TMP_20 \def (Bind b) in (let TMP_21 \def (CHead c3 +TMP_20 u) in (csuba g TMP_21 e2)))) in (let TMP_25 \def (\lambda (e2: C).(let +TMP_23 \def (Bind b) in (let TMP_24 \def (CHead c4 TMP_23 u) in (clear TMP_24 +e2)))) in (let TMP_26 \def (Bind b) in (let TMP_27 \def (CHead c4 TMP_26 u) +in (let TMP_28 \def (Bind b) in (let TMP_29 \def (csuba_head g c3 c4 H0 +TMP_28 u) in (let TMP_30 \def (clear_bind b c4 u) in (let TMP_31 \def +(ex_intro2 C TMP_22 TMP_25 TMP_27 TMP_29 TMP_30) in (let TMP_32 \def +(clear_gen_bind b c3 e1 u H3) in (eq_ind_r C TMP_14 TMP_19 TMP_31 e1 +TMP_32))))))))))))))) in (let TMP_48 \def (\lambda (f: F).(\lambda (H3: +(clear (CHead c3 (Flat f) u) e1)).(let TMP_34 \def (clear_gen_flat f c3 e1 u +H3) in (let H4 \def (H1 e1 TMP_34) in (let TMP_35 \def (\lambda (e2: +C).(csuba g e1 e2)) in (let TMP_36 \def (\lambda (e2: C).(clear c4 e2)) in +(let TMP_37 \def (\lambda (e2: C).(csuba g e1 e2)) in (let TMP_40 \def +(\lambda (e2: C).(let TMP_38 \def (Flat f) in (let TMP_39 \def (CHead c4 +TMP_38 u) in (clear TMP_39 e2)))) in (let TMP_41 \def (ex2 C TMP_37 TMP_40) +in (let TMP_47 \def (\lambda (x: C).(\lambda (H5: (csuba g e1 x)).(\lambda +(H6: (clear c4 x)).(let TMP_42 \def (\lambda (e2: C).(csuba g e1 e2)) in (let +TMP_45 \def (\lambda (e2: C).(let TMP_43 \def (Flat f) in (let TMP_44 \def +(CHead c4 TMP_43 u) in (clear TMP_44 e2)))) in (let TMP_46 \def (clear_flat +c4 x H6 f u) in (ex_intro2 C TMP_42 TMP_45 x H5 TMP_46))))))) in (ex2_ind C +TMP_35 TMP_36 TMP_41 TMP_47 H4))))))))))) in (K_ind TMP_12 TMP_33 TMP_48 k +H2)))))))))))) in (let TMP_69 \def (\lambda (c3: C).(\lambda (c4: C).(\lambda +(H0: (csuba g c3 c4)).(\lambda (_: ((\forall (e1: C).((clear c3 e1) \to (ex2 +C (\lambda (e2: C).(csuba g e1 e2)) (\lambda (e2: C).(clear c4 +e2))))))).(\lambda (b: B).(\lambda (H2: (not (eq B b Void))).(\lambda (u1: +T).(\lambda (u2: T).(\lambda (e1: C).(\lambda (H3: (clear (CHead c3 (Bind +Void) u1) e1)).(let TMP_50 \def (Bind Void) in (let TMP_51 \def (CHead c3 +TMP_50 u1) in (let TMP_56 \def (\lambda (c: C).(let TMP_52 \def (\lambda (e2: +C).(csuba g c e2)) in (let TMP_55 \def (\lambda (e2: C).(let TMP_53 \def +(Bind b) in (let TMP_54 \def (CHead c4 TMP_53 u2) in (clear TMP_54 e2)))) in +(ex2 C TMP_52 TMP_55)))) in (let TMP_59 \def (\lambda (e2: C).(let TMP_57 +\def (Bind Void) in (let TMP_58 \def (CHead c3 TMP_57 u1) in (csuba g TMP_58 +e2)))) in (let TMP_62 \def (\lambda (e2: C).(let TMP_60 \def (Bind b) in (let +TMP_61 \def (CHead c4 TMP_60 u2) in (clear TMP_61 e2)))) in (let TMP_63 \def +(Bind b) in (let TMP_64 \def (CHead c4 TMP_63 u2) in (let TMP_65 \def +(csuba_void g c3 c4 H0 b H2 u1 u2) in (let TMP_66 \def (clear_bind b c4 u2) +in (let TMP_67 \def (ex_intro2 C TMP_59 TMP_62 TMP_64 TMP_65 TMP_66) in (let +TMP_68 \def (clear_gen_bind Void c3 e1 u1 H3) in (eq_ind_r C TMP_51 TMP_56 +TMP_67 e1 TMP_68)))))))))))))))))))))) in (let TMP_89 \def (\lambda (c3: C).(\lambda (c4: C).(\lambda (H0: (csuba g c3 c4)).(\lambda (_: ((\forall (e1: C).((clear c3 e1) \to (ex2 C (\lambda (e2: C).(csuba g e1 e2)) (\lambda -(e2: C).(clear c4 e2))))))).(\lambda (b: B).(\lambda (H2: (not (eq B b -Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (e1: C).(\lambda (H3: -(clear (CHead c3 (Bind Void) u1) e1)).(eq_ind_r C (CHead c3 (Bind Void) u1) -(\lambda (c: C).(ex2 C (\lambda (e2: C).(csuba g c e2)) (\lambda (e2: -C).(clear (CHead c4 (Bind b) u2) e2)))) (ex_intro2 C (\lambda (e2: C).(csuba -g (CHead c3 (Bind Void) u1) e2)) (\lambda (e2: C).(clear (CHead c4 (Bind b) -u2) e2)) (CHead c4 (Bind b) u2) (csuba_void g c3 c4 H0 b H2 u1 u2) -(clear_bind b c4 u2)) e1 (clear_gen_bind Void c3 e1 u1 H3)))))))))))) -(\lambda (c3: C).(\lambda (c4: C).(\lambda (H0: (csuba g c3 c4)).(\lambda (_: -((\forall (e1: C).((clear c3 e1) \to (ex2 C (\lambda (e2: C).(csuba g e1 e2)) -(\lambda (e2: C).(clear c4 e2))))))).(\lambda (t: T).(\lambda (a: A).(\lambda -(H2: (arity g c3 t (asucc g a))).(\lambda (u: T).(\lambda (H3: (arity g c4 u -a)).(\lambda (e1: C).(\lambda (H4: (clear (CHead c3 (Bind Abst) t) -e1)).(eq_ind_r C (CHead c3 (Bind Abst) t) (\lambda (c: C).(ex2 C (\lambda -(e2: C).(csuba g c e2)) (\lambda (e2: C).(clear (CHead c4 (Bind Abbr) u) -e2)))) (ex_intro2 C (\lambda (e2: C).(csuba g (CHead c3 (Bind Abst) t) e2)) -(\lambda (e2: C).(clear (CHead c4 (Bind Abbr) u) e2)) (CHead c4 (Bind Abbr) -u) (csuba_abst g c3 c4 H0 t a H2 u H3) (clear_bind Abbr c4 u)) e1 -(clear_gen_bind Abst c3 e1 t H4))))))))))))) c1 c2 H)))). -(* COMMENTS -Initial nodes: 937 -END *) +(e2: C).(clear c4 e2))))))).(\lambda (t: T).(\lambda (a: A).(\lambda (H2: +(arity g c3 t (asucc g a))).(\lambda (u: T).(\lambda (H3: (arity g c4 u +a)).(\lambda (e1: C).(\lambda (H4: (clear (CHead c3 (Bind Abst) t) e1)).(let +TMP_70 \def (Bind Abst) in (let TMP_71 \def (CHead c3 TMP_70 t) in (let +TMP_76 \def (\lambda (c: C).(let TMP_72 \def (\lambda (e2: C).(csuba g c e2)) +in (let TMP_75 \def (\lambda (e2: C).(let TMP_73 \def (Bind Abbr) in (let +TMP_74 \def (CHead c4 TMP_73 u) in (clear TMP_74 e2)))) in (ex2 C TMP_72 +TMP_75)))) in (let TMP_79 \def (\lambda (e2: C).(let TMP_77 \def (Bind Abst) +in (let TMP_78 \def (CHead c3 TMP_77 t) in (csuba g TMP_78 e2)))) in (let +TMP_82 \def (\lambda (e2: C).(let TMP_80 \def (Bind Abbr) in (let TMP_81 \def +(CHead c4 TMP_80 u) in (clear TMP_81 e2)))) in (let TMP_83 \def (Bind Abbr) +in (let TMP_84 \def (CHead c4 TMP_83 u) in (let TMP_85 \def (csuba_abst g c3 +c4 H0 t a H2 u H3) in (let TMP_86 \def (clear_bind Abbr c4 u) in (let TMP_87 +\def (ex_intro2 C TMP_79 TMP_82 TMP_84 TMP_85 TMP_86) in (let TMP_88 \def +(clear_gen_bind Abst c3 e1 t H4) in (eq_ind_r C TMP_71 TMP_76 TMP_87 e1 +TMP_88))))))))))))))))))))))) in (csuba_ind g TMP_3 TMP_8 TMP_49 TMP_69 +TMP_89 c1 c2 H))))))))). theorem csuba_clear_trans: \forall (g: G).(\forall (c1: C).(\forall (c2: C).((csuba g c2 c1) \to @@ -78,51 +109,82 @@ theorem csuba_clear_trans: (\lambda (e2: C).(clear c2 e2)))))))) \def \lambda (g: G).(\lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csuba g c2 -c1)).(csuba_ind g (\lambda (c: C).(\lambda (c0: C).(\forall (e1: C).((clear -c0 e1) \to (ex2 C (\lambda (e2: C).(csuba g e2 e1)) (\lambda (e2: C).(clear c -e2))))))) (\lambda (n: nat).(\lambda (e1: C).(\lambda (H0: (clear (CSort n) -e1)).(clear_gen_sort e1 n H0 (ex2 C (\lambda (e2: C).(csuba g e2 e1)) -(\lambda (e2: C).(clear (CSort n) e2))))))) (\lambda (c3: C).(\lambda (c4: -C).(\lambda (H0: (csuba g c3 c4)).(\lambda (H1: ((\forall (e1: C).((clear c4 -e1) \to (ex2 C (\lambda (e2: C).(csuba g e2 e1)) (\lambda (e2: C).(clear c3 +c1)).(let TMP_3 \def (\lambda (c: C).(\lambda (c0: C).(\forall (e1: +C).((clear c0 e1) \to (let TMP_1 \def (\lambda (e2: C).(csuba g e2 e1)) in +(let TMP_2 \def (\lambda (e2: C).(clear c e2)) in (ex2 C TMP_1 TMP_2))))))) +in (let TMP_8 \def (\lambda (n: nat).(\lambda (e1: C).(\lambda (H0: (clear +(CSort n) e1)).(let TMP_4 \def (\lambda (e2: C).(csuba g e2 e1)) in (let +TMP_6 \def (\lambda (e2: C).(let TMP_5 \def (CSort n) in (clear TMP_5 e2))) +in (let TMP_7 \def (ex2 C TMP_4 TMP_6) in (clear_gen_sort e1 n H0 +TMP_7))))))) in (let TMP_49 \def (\lambda (c3: C).(\lambda (c4: C).(\lambda +(H0: (csuba g c3 c4)).(\lambda (H1: ((\forall (e1: C).((clear c4 e1) \to (ex2 +C (\lambda (e2: C).(csuba g e2 e1)) (\lambda (e2: C).(clear c3 e2))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (e1: C).(\lambda (H2: -(clear (CHead c4 k u) e1)).(K_ind (\lambda (k0: K).((clear (CHead c4 k0 u) -e1) \to (ex2 C (\lambda (e2: C).(csuba g e2 e1)) (\lambda (e2: C).(clear -(CHead c3 k0 u) e2))))) (\lambda (b: B).(\lambda (H3: (clear (CHead c4 (Bind -b) u) e1)).(eq_ind_r C (CHead c4 (Bind b) u) (\lambda (c: C).(ex2 C (\lambda -(e2: C).(csuba g e2 c)) (\lambda (e2: C).(clear (CHead c3 (Bind b) u) e2)))) -(ex_intro2 C (\lambda (e2: C).(csuba g e2 (CHead c4 (Bind b) u))) (\lambda -(e2: C).(clear (CHead c3 (Bind b) u) e2)) (CHead c3 (Bind b) u) (csuba_head g -c3 c4 H0 (Bind b) u) (clear_bind b c3 u)) e1 (clear_gen_bind b c4 e1 u H3)))) -(\lambda (f: F).(\lambda (H3: (clear (CHead c4 (Flat f) u) e1)).(let H4 \def -(H1 e1 (clear_gen_flat f c4 e1 u H3)) in (ex2_ind C (\lambda (e2: C).(csuba g -e2 e1)) (\lambda (e2: C).(clear c3 e2)) (ex2 C (\lambda (e2: C).(csuba g e2 -e1)) (\lambda (e2: C).(clear (CHead c3 (Flat f) u) e2))) (\lambda (x: -C).(\lambda (H5: (csuba g x e1)).(\lambda (H6: (clear c3 x)).(ex_intro2 C -(\lambda (e2: C).(csuba g e2 e1)) (\lambda (e2: C).(clear (CHead c3 (Flat f) -u) e2)) x H5 (clear_flat c3 x H6 f u))))) H4)))) k H2))))))))) (\lambda (c3: -C).(\lambda (c4: C).(\lambda (H0: (csuba g c3 c4)).(\lambda (_: ((\forall -(e1: C).((clear c4 e1) \to (ex2 C (\lambda (e2: C).(csuba g e2 e1)) (\lambda -(e2: C).(clear c3 e2))))))).(\lambda (b: B).(\lambda (H2: (not (eq B b -Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (e1: C).(\lambda (H3: -(clear (CHead c4 (Bind b) u2) e1)).(eq_ind_r C (CHead c4 (Bind b) u2) -(\lambda (c: C).(ex2 C (\lambda (e2: C).(csuba g e2 c)) (\lambda (e2: -C).(clear (CHead c3 (Bind Void) u1) e2)))) (ex_intro2 C (\lambda (e2: -C).(csuba g e2 (CHead c4 (Bind b) u2))) (\lambda (e2: C).(clear (CHead c3 -(Bind Void) u1) e2)) (CHead c3 (Bind Void) u1) (csuba_void g c3 c4 H0 b H2 u1 -u2) (clear_bind Void c3 u1)) e1 (clear_gen_bind b c4 e1 u2 H3)))))))))))) -(\lambda (c3: C).(\lambda (c4: C).(\lambda (H0: (csuba g c3 c4)).(\lambda (_: -((\forall (e1: C).((clear c4 e1) \to (ex2 C (\lambda (e2: C).(csuba g e2 e1)) -(\lambda (e2: C).(clear c3 e2))))))).(\lambda (t: T).(\lambda (a: A).(\lambda -(H2: (arity g c3 t (asucc g a))).(\lambda (u: T).(\lambda (H3: (arity g c4 u -a)).(\lambda (e1: C).(\lambda (H4: (clear (CHead c4 (Bind Abbr) u) -e1)).(eq_ind_r C (CHead c4 (Bind Abbr) u) (\lambda (c: C).(ex2 C (\lambda -(e2: C).(csuba g e2 c)) (\lambda (e2: C).(clear (CHead c3 (Bind Abst) t) -e2)))) (ex_intro2 C (\lambda (e2: C).(csuba g e2 (CHead c4 (Bind Abbr) u))) -(\lambda (e2: C).(clear (CHead c3 (Bind Abst) t) e2)) (CHead c3 (Bind Abst) -t) (csuba_abst g c3 c4 H0 t a H2 u H3) (clear_bind Abst c3 t)) e1 -(clear_gen_bind Abbr c4 e1 u H4))))))))))))) c2 c1 H)))). -(* COMMENTS -Initial nodes: 937 -END *) +(clear (CHead c4 k u) e1)).(let TMP_12 \def (\lambda (k0: K).((clear (CHead +c4 k0 u) e1) \to (let TMP_9 \def (\lambda (e2: C).(csuba g e2 e1)) in (let +TMP_11 \def (\lambda (e2: C).(let TMP_10 \def (CHead c3 k0 u) in (clear +TMP_10 e2))) in (ex2 C TMP_9 TMP_11))))) in (let TMP_33 \def (\lambda (b: +B).(\lambda (H3: (clear (CHead c4 (Bind b) u) e1)).(let TMP_13 \def (Bind b) +in (let TMP_14 \def (CHead c4 TMP_13 u) in (let TMP_19 \def (\lambda (c: +C).(let TMP_15 \def (\lambda (e2: C).(csuba g e2 c)) in (let TMP_18 \def +(\lambda (e2: C).(let TMP_16 \def (Bind b) in (let TMP_17 \def (CHead c3 +TMP_16 u) in (clear TMP_17 e2)))) in (ex2 C TMP_15 TMP_18)))) in (let TMP_22 +\def (\lambda (e2: C).(let TMP_20 \def (Bind b) in (let TMP_21 \def (CHead c4 +TMP_20 u) in (csuba g e2 TMP_21)))) in (let TMP_25 \def (\lambda (e2: C).(let +TMP_23 \def (Bind b) in (let TMP_24 \def (CHead c3 TMP_23 u) in (clear TMP_24 +e2)))) in (let TMP_26 \def (Bind b) in (let TMP_27 \def (CHead c3 TMP_26 u) +in (let TMP_28 \def (Bind b) in (let TMP_29 \def (csuba_head g c3 c4 H0 +TMP_28 u) in (let TMP_30 \def (clear_bind b c3 u) in (let TMP_31 \def +(ex_intro2 C TMP_22 TMP_25 TMP_27 TMP_29 TMP_30) in (let TMP_32 \def +(clear_gen_bind b c4 e1 u H3) in (eq_ind_r C TMP_14 TMP_19 TMP_31 e1 +TMP_32))))))))))))))) in (let TMP_48 \def (\lambda (f: F).(\lambda (H3: +(clear (CHead c4 (Flat f) u) e1)).(let TMP_34 \def (clear_gen_flat f c4 e1 u +H3) in (let H4 \def (H1 e1 TMP_34) in (let TMP_35 \def (\lambda (e2: +C).(csuba g e2 e1)) in (let TMP_36 \def (\lambda (e2: C).(clear c3 e2)) in +(let TMP_37 \def (\lambda (e2: C).(csuba g e2 e1)) in (let TMP_40 \def +(\lambda (e2: C).(let TMP_38 \def (Flat f) in (let TMP_39 \def (CHead c3 +TMP_38 u) in (clear TMP_39 e2)))) in (let TMP_41 \def (ex2 C TMP_37 TMP_40) +in (let TMP_47 \def (\lambda (x: C).(\lambda (H5: (csuba g x e1)).(\lambda +(H6: (clear c3 x)).(let TMP_42 \def (\lambda (e2: C).(csuba g e2 e1)) in (let +TMP_45 \def (\lambda (e2: C).(let TMP_43 \def (Flat f) in (let TMP_44 \def +(CHead c3 TMP_43 u) in (clear TMP_44 e2)))) in (let TMP_46 \def (clear_flat +c3 x H6 f u) in (ex_intro2 C TMP_42 TMP_45 x H5 TMP_46))))))) in (ex2_ind C +TMP_35 TMP_36 TMP_41 TMP_47 H4))))))))))) in (K_ind TMP_12 TMP_33 TMP_48 k +H2)))))))))))) in (let TMP_69 \def (\lambda (c3: C).(\lambda (c4: C).(\lambda +(H0: (csuba g c3 c4)).(\lambda (_: ((\forall (e1: C).((clear c4 e1) \to (ex2 +C (\lambda (e2: C).(csuba g e2 e1)) (\lambda (e2: C).(clear c3 +e2))))))).(\lambda (b: B).(\lambda (H2: (not (eq B b Void))).(\lambda (u1: +T).(\lambda (u2: T).(\lambda (e1: C).(\lambda (H3: (clear (CHead c4 (Bind b) +u2) e1)).(let TMP_50 \def (Bind b) in (let TMP_51 \def (CHead c4 TMP_50 u2) +in (let TMP_56 \def (\lambda (c: C).(let TMP_52 \def (\lambda (e2: C).(csuba +g e2 c)) in (let TMP_55 \def (\lambda (e2: C).(let TMP_53 \def (Bind Void) in +(let TMP_54 \def (CHead c3 TMP_53 u1) in (clear TMP_54 e2)))) in (ex2 C +TMP_52 TMP_55)))) in (let TMP_59 \def (\lambda (e2: C).(let TMP_57 \def (Bind +b) in (let TMP_58 \def (CHead c4 TMP_57 u2) in (csuba g e2 TMP_58)))) in (let +TMP_62 \def (\lambda (e2: C).(let TMP_60 \def (Bind Void) in (let TMP_61 \def +(CHead c3 TMP_60 u1) in (clear TMP_61 e2)))) in (let TMP_63 \def (Bind Void) +in (let TMP_64 \def (CHead c3 TMP_63 u1) in (let TMP_65 \def (csuba_void g c3 +c4 H0 b H2 u1 u2) in (let TMP_66 \def (clear_bind Void c3 u1) in (let TMP_67 +\def (ex_intro2 C TMP_59 TMP_62 TMP_64 TMP_65 TMP_66) in (let TMP_68 \def +(clear_gen_bind b c4 e1 u2 H3) in (eq_ind_r C TMP_51 TMP_56 TMP_67 e1 +TMP_68)))))))))))))))))))))) in (let TMP_89 \def (\lambda (c3: C).(\lambda +(c4: C).(\lambda (H0: (csuba g c3 c4)).(\lambda (_: ((\forall (e1: C).((clear +c4 e1) \to (ex2 C (\lambda (e2: C).(csuba g e2 e1)) (\lambda (e2: C).(clear +c3 e2))))))).(\lambda (t: T).(\lambda (a: A).(\lambda (H2: (arity g c3 t +(asucc g a))).(\lambda (u: T).(\lambda (H3: (arity g c4 u a)).(\lambda (e1: +C).(\lambda (H4: (clear (CHead c4 (Bind Abbr) u) e1)).(let TMP_70 \def (Bind +Abbr) in (let TMP_71 \def (CHead c4 TMP_70 u) in (let TMP_76 \def (\lambda +(c: C).(let TMP_72 \def (\lambda (e2: C).(csuba g e2 c)) in (let TMP_75 \def +(\lambda (e2: C).(let TMP_73 \def (Bind Abst) in (let TMP_74 \def (CHead c3 +TMP_73 t) in (clear TMP_74 e2)))) in (ex2 C TMP_72 TMP_75)))) in (let TMP_79 +\def (\lambda (e2: C).(let TMP_77 \def (Bind Abbr) in (let TMP_78 \def (CHead +c4 TMP_77 u) in (csuba g e2 TMP_78)))) in (let TMP_82 \def (\lambda (e2: +C).(let TMP_80 \def (Bind Abst) in (let TMP_81 \def (CHead c3 TMP_80 t) in +(clear TMP_81 e2)))) in (let TMP_83 \def (Bind Abst) in (let TMP_84 \def +(CHead c3 TMP_83 t) in (let TMP_85 \def (csuba_abst g c3 c4 H0 t a H2 u H3) +in (let TMP_86 \def (clear_bind Abst c3 t) in (let TMP_87 \def (ex_intro2 C +TMP_79 TMP_82 TMP_84 TMP_85 TMP_86) in (let TMP_88 \def (clear_gen_bind Abbr +c4 e1 u H4) in (eq_ind_r C TMP_71 TMP_76 TMP_87 e1 +TMP_88))))))))))))))))))))))) in (csuba_ind g TMP_3 TMP_8 TMP_49 TMP_69 +TMP_89 c2 c1 H))))))))). diff --git a/matita/matita/contribs/lambdadelta/basic_1/csuba/defs.ma b/matita/matita/contribs/lambdadelta/basic_1/csuba/defs.ma index cc6a46cd8..948ee345d 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/csuba/defs.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/csuba/defs.ma @@ -14,7 +14,7 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/arity/defs.ma". +include "basic_1/arity/defs.ma". inductive csuba (g: G): C \to (C \to Prop) \def | csuba_sort: \forall (n: nat).(csuba g (CSort n) (CSort n)) diff --git a/matita/matita/contribs/lambdadelta/basic_1/csuba/drop.ma b/matita/matita/contribs/lambdadelta/basic_1/csuba/drop.ma index 1047ac13d..4aba7bc43 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/csuba/drop.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/csuba/drop.ma @@ -14,9 +14,9 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/csuba/fwd.ma". +include "basic_1/csuba/fwd.ma". -include "Basic-1/drop/fwd.ma". +include "basic_1/drop/fwd.ma". theorem csuba_drop_abbr: \forall (i: nat).(\forall (c1: C).(\forall (d1: C).(\forall (u: T).((drop i @@ -56,76 +56,75 @@ Abbr) u) (CSort n0)) (eq nat (S n) O) (eq nat O O) (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2))) (\lambda (_: (eq C (CHead d1 (Bind Abbr) u) (CSort n0))).(\lambda (H3: (eq nat (S n) O)).(\lambda (_: (eq nat O O)).(let H5 \def (eq_ind nat (S n) -(\lambda (ee: nat).(match ee in nat return (\lambda (_: nat).Prop) with [O -\Rightarrow False | (S _) \Rightarrow True])) I O H3) in (False_ind (ex2 C -(\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: -C).(csuba g d1 d2))) H5))))) (drop_gen_sort n0 (S n) O (CHead d1 (Bind Abbr) -u) H0))))))))) (\lambda (c: C).(\lambda (H0: ((\forall (d1: C).(\forall (u: -T).((drop (S n) O c (CHead d1 (Bind Abbr) u)) \to (\forall (g: G).(\forall -(c2: C).((csuba g c c2) \to (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead -d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2))))))))))).(\lambda (k: -K).(\lambda (t: T).(\lambda (d1: C).(\lambda (u: T).(\lambda (H1: (drop (S n) -O (CHead c k t) (CHead d1 (Bind Abbr) u))).(\lambda (g: G).(\lambda (c2: -C).(\lambda (H2: (csuba g (CHead c k t) c2)).(K_ind (\lambda (k0: K).((csuba -g (CHead c k0 t) c2) \to ((drop (r k0 n) O c (CHead d1 (Bind Abbr) u)) \to -(ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u))) (\lambda -(d2: C).(csuba g d1 d2)))))) (\lambda (b: B).(\lambda (H3: (csuba g (CHead c -(Bind b) t) c2)).(\lambda (H4: (drop (r (Bind b) n) O c (CHead d1 (Bind Abbr) -u))).(B_ind (\lambda (b0: B).((csuba g (CHead c (Bind b0) t) c2) \to ((drop -(r (Bind b0) n) O c (CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda (d2: +(\lambda (ee: nat).(match ee with [O \Rightarrow False | (S _) \Rightarrow +True])) I O H3) in (False_ind (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead +d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2))) H5))))) (drop_gen_sort +n0 (S n) O (CHead d1 (Bind Abbr) u) H0))))))))) (\lambda (c: C).(\lambda (H0: +((\forall (d1: C).(\forall (u: T).((drop (S n) O c (CHead d1 (Bind Abbr) u)) +\to (\forall (g: G).(\forall (c2: C).((csuba g c c2) \to (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 -d2)))))) (\lambda (H5: (csuba g (CHead c (Bind Abbr) t) c2)).(\lambda (H6: -(drop (r (Bind Abbr) n) O c (CHead d1 (Bind Abbr) u))).(let H_x \def -(csuba_gen_abbr g c c2 t H5) in (let H7 \def H_x in (ex2_ind C (\lambda (d2: -C).(eq C c2 (CHead d2 (Bind Abbr) t))) (\lambda (d2: C).(csuba g c d2)) (ex2 -C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: -C).(csuba g d1 d2))) (\lambda (x: C).(\lambda (H8: (eq C c2 (CHead x (Bind -Abbr) t))).(\lambda (H9: (csuba g c x)).(eq_ind_r C (CHead x (Bind Abbr) t) -(\lambda (c0: C).(ex2 C (\lambda (d2: C).(drop (S n) O c0 (CHead d2 (Bind -Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))) (let H10 \def (H c d1 u H6 g x -H9) in (ex2_ind C (\lambda (d2: C).(drop n O x (CHead d2 (Bind Abbr) u))) -(\lambda (d2: C).(csuba g d1 d2)) (ex2 C (\lambda (d2: C).(drop (S n) O -(CHead x (Bind Abbr) t) (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g -d1 d2))) (\lambda (x0: C).(\lambda (H11: (drop n O x (CHead x0 (Bind Abbr) -u))).(\lambda (H12: (csuba g d1 x0)).(let H13 \def (refl_equal nat (r (Bind -Abbr) n)) in (let H14 \def (eq_ind nat n (\lambda (n0: nat).(drop n0 O x -(CHead x0 (Bind Abbr) u))) H11 (r (Bind Abbr) n) H13) in (ex_intro2 C -(\lambda (d2: C).(drop (S n) O (CHead x (Bind Abbr) t) (CHead d2 (Bind Abbr) -u))) (\lambda (d2: C).(csuba g d1 d2)) x0 (drop_drop (Bind Abbr) n x (CHead -x0 (Bind Abbr) u) H14 t) H12)))))) H10)) c2 H8)))) H7))))) (\lambda (H5: -(csuba g (CHead c (Bind Abst) t) c2)).(\lambda (H6: (drop (r (Bind Abst) n) O -c (CHead d1 (Bind Abbr) u))).(let H_x \def (csuba_gen_abst g c c2 t H5) in -(let H7 \def H_x in (or_ind (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind -Abst) t))) (\lambda (d2: C).(csuba g c d2))) (ex4_3 C T A (\lambda (d2: -C).(\lambda (u2: T).(\lambda (_: A).(eq C c2 (CHead d2 (Bind Abbr) u2))))) -(\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g c d2)))) (\lambda -(_: C).(\lambda (_: T).(\lambda (a: A).(arity g c t (asucc g a))))) (\lambda -(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a))))) (ex2 C -(\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: -C).(csuba g d1 d2))) (\lambda (H8: (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 -(Bind Abst) t))) (\lambda (d2: C).(csuba g c d2)))).(ex2_ind C (\lambda (d2: -C).(eq C c2 (CHead d2 (Bind Abst) t))) (\lambda (d2: C).(csuba g c d2)) (ex2 -C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: -C).(csuba g d1 d2))) (\lambda (x: C).(\lambda (H9: (eq C c2 (CHead x (Bind -Abst) t))).(\lambda (H10: (csuba g c x)).(eq_ind_r C (CHead x (Bind Abst) t) -(\lambda (c0: C).(ex2 C (\lambda (d2: C).(drop (S n) O c0 (CHead d2 (Bind -Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))) (let H11 \def (H c d1 u H6 g x -H10) in (ex2_ind C (\lambda (d2: C).(drop n O x (CHead d2 (Bind Abbr) u))) -(\lambda (d2: C).(csuba g d1 d2)) (ex2 C (\lambda (d2: C).(drop (S n) O -(CHead x (Bind Abst) t) (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g -d1 d2))) (\lambda (x0: C).(\lambda (H12: (drop n O x (CHead x0 (Bind Abbr) -u))).(\lambda (H13: (csuba g d1 x0)).(let H14 \def (refl_equal nat (r (Bind -Abbr) n)) in (let H15 \def (eq_ind nat n (\lambda (n0: nat).(drop n0 O x -(CHead x0 (Bind Abbr) u))) H12 (r (Bind Abbr) n) H14) in (ex_intro2 C -(\lambda (d2: C).(drop (S n) O (CHead x (Bind Abst) t) (CHead d2 (Bind Abbr) -u))) (\lambda (d2: C).(csuba g d1 d2)) x0 (drop_drop (Bind Abst) n x (CHead -x0 (Bind Abbr) u) H15 t) H13)))))) H11)) c2 H9)))) H8)) (\lambda (H8: (ex4_3 -C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C c2 (CHead d2 -(Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g -c d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g c t (asucc -g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 -a)))))).(ex4_3_ind C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: -A).(eq C c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: +d2))))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (d1: C).(\lambda (u: +T).(\lambda (H1: (drop (S n) O (CHead c k t) (CHead d1 (Bind Abbr) +u))).(\lambda (g: G).(\lambda (c2: C).(\lambda (H2: (csuba g (CHead c k t) +c2)).(K_ind (\lambda (k0: K).((csuba g (CHead c k0 t) c2) \to ((drop (r k0 n) +O c (CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda (d2: C).(drop (S n) O c2 +(CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))))) (\lambda (b: +B).(\lambda (H3: (csuba g (CHead c (Bind b) t) c2)).(\lambda (H4: (drop (r +(Bind b) n) O c (CHead d1 (Bind Abbr) u))).(B_ind (\lambda (b0: B).((csuba g +(CHead c (Bind b0) t) c2) \to ((drop (r (Bind b0) n) O c (CHead d1 (Bind +Abbr) u)) \to (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) +u))) (\lambda (d2: C).(csuba g d1 d2)))))) (\lambda (H5: (csuba g (CHead c +(Bind Abbr) t) c2)).(\lambda (H6: (drop (r (Bind Abbr) n) O c (CHead d1 (Bind +Abbr) u))).(let H_x \def (csuba_gen_abbr g c c2 t H5) in (let H7 \def H_x in +(ex2_ind C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abbr) t))) (\lambda (d2: +C).(csuba g c d2)) (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind +Abbr) u))) (\lambda (d2: C).(csuba g d1 d2))) (\lambda (x: C).(\lambda (H8: +(eq C c2 (CHead x (Bind Abbr) t))).(\lambda (H9: (csuba g c x)).(eq_ind_r C +(CHead x (Bind Abbr) t) (\lambda (c0: C).(ex2 C (\lambda (d2: C).(drop (S n) +O c0 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))) (let H10 +\def (H c d1 u H6 g x H9) in (ex2_ind C (\lambda (d2: C).(drop n O x (CHead +d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)) (ex2 C (\lambda (d2: +C).(drop (S n) O (CHead x (Bind Abbr) t) (CHead d2 (Bind Abbr) u))) (\lambda +(d2: C).(csuba g d1 d2))) (\lambda (x0: C).(\lambda (H11: (drop n O x (CHead +x0 (Bind Abbr) u))).(\lambda (H12: (csuba g d1 x0)).(let H13 \def (refl_equal +nat (r (Bind Abbr) n)) in (let H14 \def (eq_ind nat n (\lambda (n0: +nat).(drop n0 O x (CHead x0 (Bind Abbr) u))) H11 (r (Bind Abbr) n) H13) in +(ex_intro2 C (\lambda (d2: C).(drop (S n) O (CHead x (Bind Abbr) t) (CHead d2 +(Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)) x0 (drop_drop (Bind Abbr) +n x (CHead x0 (Bind Abbr) u) H14 t) H12)))))) H10)) c2 H8)))) H7))))) +(\lambda (H5: (csuba g (CHead c (Bind Abst) t) c2)).(\lambda (H6: (drop (r +(Bind Abst) n) O c (CHead d1 (Bind Abbr) u))).(let H_x \def (csuba_gen_abst g +c c2 t H5) in (let H7 \def H_x in (or_ind (ex2 C (\lambda (d2: C).(eq C c2 +(CHead d2 (Bind Abst) t))) (\lambda (d2: C).(csuba g c d2))) (ex4_3 C T A +(\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C c2 (CHead d2 (Bind +Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g c +d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g c t (asucc g +a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 +a))))) (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u))) +(\lambda (d2: C).(csuba g d1 d2))) (\lambda (H8: (ex2 C (\lambda (d2: C).(eq +C c2 (CHead d2 (Bind Abst) t))) (\lambda (d2: C).(csuba g c d2)))).(ex2_ind C +(\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abst) t))) (\lambda (d2: C).(csuba +g c d2)) (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u))) +(\lambda (d2: C).(csuba g d1 d2))) (\lambda (x: C).(\lambda (H9: (eq C c2 +(CHead x (Bind Abst) t))).(\lambda (H10: (csuba g c x)).(eq_ind_r C (CHead x +(Bind Abst) t) (\lambda (c0: C).(ex2 C (\lambda (d2: C).(drop (S n) O c0 +(CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))) (let H11 \def +(H c d1 u H6 g x H10) in (ex2_ind C (\lambda (d2: C).(drop n O x (CHead d2 +(Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)) (ex2 C (\lambda (d2: +C).(drop (S n) O (CHead x (Bind Abst) t) (CHead d2 (Bind Abbr) u))) (\lambda +(d2: C).(csuba g d1 d2))) (\lambda (x0: C).(\lambda (H12: (drop n O x (CHead +x0 (Bind Abbr) u))).(\lambda (H13: (csuba g d1 x0)).(let H14 \def (refl_equal +nat (r (Bind Abbr) n)) in (let H15 \def (eq_ind nat n (\lambda (n0: +nat).(drop n0 O x (CHead x0 (Bind Abbr) u))) H12 (r (Bind Abbr) n) H14) in +(ex_intro2 C (\lambda (d2: C).(drop (S n) O (CHead x (Bind Abst) t) (CHead d2 +(Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)) x0 (drop_drop (Bind Abst) +n x (CHead x0 (Bind Abbr) u) H15 t) H13)))))) H11)) c2 H9)))) H8)) (\lambda +(H8: (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C c2 +(CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: +A).(csuba g c d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g +c t (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity +g d2 u2 a)))))).(ex4_3_ind C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda +(_: A).(eq C c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g c d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g c t (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))) (ex2 C (\lambda (d2: C).(drop (S n) O @@ -184,9 +183,6 @@ O (CHead x0 (Flat f) x1) (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)) x (drop_drop (Flat f) n x0 (CHead x (Bind Abbr) u) H9 x1) H10)))) H8)) c2 H6))))) H5)))))) k H2 (drop_gen_drop k c (CHead d1 (Bind Abbr) u) t n H1)))))))))))) c1)))) i). -(* COMMENTS -Initial nodes: 3648 -END *) theorem csuba_drop_abst: \forall (i: nat).(\forall (c1: C).(\forall (d1: C).(\forall (u1: T).((drop i @@ -314,24 +310,23 @@ u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))))) (\lambda (_: (eq C (CHead d1 (Bind Abst) u1) (CSort n0))).(\lambda (H3: (eq nat (S n) O)).(\lambda (_: (eq nat O O)).(let H5 \def (eq_ind nat (S -n) (\lambda (ee: nat).(match ee in nat return (\lambda (_: nat).Prop) with [O -\Rightarrow False | (S _) \Rightarrow True])) I O H3) in (False_ind (or (ex2 -C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abst) u1))) (\lambda (d2: -C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda -(_: A).(drop (S n) O c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: -C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: -C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda -(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))))) H5))))) -(drop_gen_sort n0 (S n) O (CHead d1 (Bind Abst) u1) H0))))))))) (\lambda (c: -C).(\lambda (H0: ((\forall (d1: C).(\forall (u1: T).((drop (S n) O c (CHead -d1 (Bind Abst) u1)) \to (\forall (g: G).(\forall (c2: C).((csuba g c c2) \to -(or (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abst) u1))) -(\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda -(u2: T).(\lambda (_: A).(drop (S n) O c2 (CHead d2 (Bind Abbr) u2))))) -(\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda -(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) -(\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 -a)))))))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (d1: C).(\lambda +n) (\lambda (ee: nat).(match ee with [O \Rightarrow False | (S _) \Rightarrow +True])) I O H3) in (False_ind (or (ex2 C (\lambda (d2: C).(drop (S n) O c2 +(CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A +(\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(drop (S n) O c2 (CHead d2 +(Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g +d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 +(asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 +u2 a)))))) H5))))) (drop_gen_sort n0 (S n) O (CHead d1 (Bind Abst) u1) +H0))))))))) (\lambda (c: C).(\lambda (H0: ((\forall (d1: C).(\forall (u1: +T).((drop (S n) O c (CHead d1 (Bind Abst) u1)) \to (\forall (g: G).(\forall +(c2: C).((csuba g c c2) \to (or (ex2 C (\lambda (d2: C).(drop (S n) O c2 +(CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A +(\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(drop (S n) O c2 (CHead d2 +(Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g +d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 +(asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 +u2 a)))))))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (d1: C).(\lambda (u1: T).(\lambda (H1: (drop (S n) O (CHead c k t) (CHead d1 (Bind Abst) u1))).(\lambda (g: G).(\lambda (c2: C).(\lambda (H2: (csuba g (CHead c k t) c2)).(K_ind (\lambda (k0: K).((csuba g (CHead c k0 t) c2) \to ((drop (r k0 n) @@ -802,9 +797,6 @@ g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))) x2 x3 x4 (drop_drop (Flat f) n x0 (CHead x2 (Bind Abbr) x3) H10 x1) H11 H12 H13))))))))) H9)) H8)) c2 H6))))) H5)))))) k H2 (drop_gen_drop k c (CHead d1 (Bind Abst) u1) t n H1)))))))))))) c1)))) i). -(* COMMENTS -Initial nodes: 12528 -END *) theorem csuba_drop_abst_rev: \forall (i: nat).(\forall (c1: C).(\forall (d1: C).(\forall (u: T).((drop i @@ -889,38 +881,37 @@ d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (_: (eq C (CHead d1 (Bind Abst) u) (CSort n0))).(\lambda (H3: (eq nat (S n) O)).(\lambda (_: (eq nat O O)).(let H5 \def (eq_ind nat (S n) -(\lambda (ee: nat).(match ee in nat return (\lambda (_: nat).Prop) with [O -\Rightarrow False | (S _) \Rightarrow True])) I O H3) in (False_ind (or (ex2 -C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: -C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(drop (S n) -O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g -d2 d1))))) H5))))) (drop_gen_sort n0 (S n) O (CHead d1 (Bind Abst) u) -H0))))))))) (\lambda (c: C).(\lambda (H0: ((\forall (d1: C).(\forall (u: -T).((drop (S n) O c (CHead d1 (Bind Abst) u)) \to (\forall (g: G).(\forall -(c2: C).((csuba g c2 c) \to (or (ex2 C (\lambda (d2: C).(drop (S n) O c2 +(\lambda (ee: nat).(match ee with [O \Rightarrow False | (S _) \Rightarrow +True])) I O H3) in (False_ind (or (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind Void) -u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))))))))))).(\lambda -(k: K).(\lambda (t: T).(\lambda (d1: C).(\lambda (u: T).(\lambda (H1: (drop -(S n) O (CHead c k t) (CHead d1 (Bind Abst) u))).(\lambda (g: G).(\lambda -(c2: C).(\lambda (H2: (csuba g c2 (CHead c k t))).(K_ind (\lambda (k0: -K).((csuba g c2 (CHead c k0 t)) \to ((drop (r k0 n) O c (CHead d1 (Bind Abst) -u)) \to (or (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abst) -u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda -(u2: T).(drop (S n) O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: -C).(\lambda (_: T).(csuba g d2 d1)))))))) (\lambda (b: B).(\lambda (H3: -(csuba g c2 (CHead c (Bind b) t))).(\lambda (H4: (drop (r (Bind b) n) O c -(CHead d1 (Bind Abst) u))).(B_ind (\lambda (b0: B).((csuba g c2 (CHead c -(Bind b0) t)) \to ((drop (r (Bind b0) n) O c (CHead d1 (Bind Abst) u)) \to -(or (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abst) u))) -(\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: -T).(drop (S n) O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda -(_: T).(csuba g d2 d1)))))))) (\lambda (H5: (csuba g c2 (CHead c (Bind Abbr) -t))).(\lambda (H6: (drop (r (Bind Abbr) n) O c (CHead d1 (Bind Abst) -u))).(let H_x \def (csuba_gen_abbr_rev g c c2 t H5) in (let H7 \def H_x in -(or3_ind (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abbr) t))) (\lambda -(d2: C).(csuba g d2 c))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: -T).(\lambda (_: A).(eq C c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: +u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) H5))))) +(drop_gen_sort n0 (S n) O (CHead d1 (Bind Abst) u) H0))))))))) (\lambda (c: +C).(\lambda (H0: ((\forall (d1: C).(\forall (u: T).((drop (S n) O c (CHead d1 +(Bind Abst) u)) \to (\forall (g: G).(\forall (c2: C).((csuba g c2 c) \to (or +(ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abst) u))) (\lambda +(d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(drop +(S n) O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: +T).(csuba g d2 d1))))))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (d1: +C).(\lambda (u: T).(\lambda (H1: (drop (S n) O (CHead c k t) (CHead d1 (Bind +Abst) u))).(\lambda (g: G).(\lambda (c2: C).(\lambda (H2: (csuba g c2 (CHead +c k t))).(K_ind (\lambda (k0: K).((csuba g c2 (CHead c k0 t)) \to ((drop (r +k0 n) O c (CHead d1 (Bind Abst) u)) \to (or (ex2 C (\lambda (d2: C).(drop (S +n) O c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 +C T (\lambda (d2: C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind Void) +u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))))))) (\lambda (b: +B).(\lambda (H3: (csuba g c2 (CHead c (Bind b) t))).(\lambda (H4: (drop (r +(Bind b) n) O c (CHead d1 (Bind Abst) u))).(B_ind (\lambda (b0: B).((csuba g +c2 (CHead c (Bind b0) t)) \to ((drop (r (Bind b0) n) O c (CHead d1 (Bind +Abst) u)) \to (or (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind +Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: +C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind Void) u2)))) (\lambda +(d2: C).(\lambda (_: T).(csuba g d2 d1)))))))) (\lambda (H5: (csuba g c2 +(CHead c (Bind Abbr) t))).(\lambda (H6: (drop (r (Bind Abbr) n) O c (CHead d1 +(Bind Abst) u))).(let H_x \def (csuba_gen_abbr_rev g c c2 t H5) in (let H7 +\def H_x in (or3_ind (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abbr) +t))) (\lambda (d2: C).(csuba g d2 c))) (ex4_3 C T A (\lambda (d2: C).(\lambda +(u2: T).(\lambda (_: A).(eq C c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 c)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g c t a))))) (ex2_2 C T @@ -1312,9 +1303,6 @@ Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))) x2 x3 (drop_drop (Flat f) n x0 (CHead x2 (Bind Void) x3) H10 x1) H11)))))) H9)) H8)) c2 H6))))) H5)))))) k H2 (drop_gen_drop k c (CHead d1 (Bind Abst) u) t n H1)))))))))))) c1)))) i). -(* COMMENTS -Initial nodes: 11438 -END *) theorem csuba_drop_abbr_rev: \forall (i: nat).(\forall (c1: C).(\forall (d1: C).(\forall (u1: T).((drop i @@ -1499,71 +1487,71 @@ A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda T).(drop (S n) O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (_: (eq C (CHead d1 (Bind Abbr) u1) (CSort n0))).(\lambda (H3: (eq nat (S n) O)).(\lambda (_: (eq nat O O)).(let -H5 \def (eq_ind nat (S n) (\lambda (ee: nat).(match ee in nat return (\lambda -(_: nat).Prop) with [O \Rightarrow False | (S _) \Rightarrow True])) I O H3) -in (False_ind (or3 (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind +H5 \def (eq_ind nat (S n) (\lambda (ee: nat).(match ee with [O \Rightarrow +False | (S _) \Rightarrow True])) I O H3) in (False_ind (or3 (ex2 C (\lambda +(d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba +g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: +A).(drop (S n) O c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda +(_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: +T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda +(_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 C T (\lambda (d2: +C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind Void) u2)))) (\lambda +(d2: C).(\lambda (_: T).(csuba g d2 d1))))) H5))))) (drop_gen_sort n0 (S n) O +(CHead d1 (Bind Abbr) u1) H0))))))))) (\lambda (c: C).(\lambda (H0: ((\forall +(d1: C).(\forall (u1: T).((drop (S n) O c (CHead d1 (Bind Abbr) u1)) \to +(\forall (g: G).(\forall (c2: C).((csuba g c2 c) \to (or3 (ex2 C (\lambda +(d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba +g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: +A).(drop (S n) O c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda +(_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: +T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda +(_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 C T (\lambda (d2: +C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind Void) u2)))) (\lambda +(d2: C).(\lambda (_: T).(csuba g d2 d1))))))))))))).(\lambda (k: K).(\lambda +(t: T).(\lambda (d1: C).(\lambda (u1: T).(\lambda (H1: (drop (S n) O (CHead c +k t) (CHead d1 (Bind Abbr) u1))).(\lambda (g: G).(\lambda (c2: C).(\lambda +(H2: (csuba g c2 (CHead c k t))).(K_ind (\lambda (k0: K).((csuba g c2 (CHead +c k0 t)) \to ((drop (r k0 n) O c (CHead d1 (Bind Abbr) u1)) \to (or3 (ex2 C +(\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: +C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda +(_: A).(drop (S n) O c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: +C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: +C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda +(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 C T +(\lambda (d2: C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind Void) +u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))))))) (\lambda (b: +B).(\lambda (H3: (csuba g c2 (CHead c (Bind b) t))).(\lambda (H4: (drop (r +(Bind b) n) O c (CHead d1 (Bind Abbr) u1))).(B_ind (\lambda (b0: B).((csuba g +c2 (CHead c (Bind b0) t)) \to ((drop (r (Bind b0) n) O c (CHead d1 (Bind +Abbr) u1)) \to (or3 (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(drop (S n) O c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind -Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) H5))))) -(drop_gen_sort n0 (S n) O (CHead d1 (Bind Abbr) u1) H0))))))))) (\lambda (c: -C).(\lambda (H0: ((\forall (d1: C).(\forall (u1: T).((drop (S n) O c (CHead -d1 (Bind Abbr) u1)) \to (\forall (g: G).(\forall (c2: C).((csuba g c2 c) \to -(or3 (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u1))) -(\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda -(u2: T).(\lambda (_: A).(drop (S n) O c2 (CHead d2 (Bind Abst) u2))))) -(\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda -(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) -(\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 -C T (\lambda (d2: C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind Void) -u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))))))))))).(\lambda -(k: K).(\lambda (t: T).(\lambda (d1: C).(\lambda (u1: T).(\lambda (H1: (drop -(S n) O (CHead c k t) (CHead d1 (Bind Abbr) u1))).(\lambda (g: G).(\lambda -(c2: C).(\lambda (H2: (csuba g c2 (CHead c k t))).(K_ind (\lambda (k0: -K).((csuba g c2 (CHead c k0 t)) \to ((drop (r k0 n) O c (CHead d1 (Bind Abbr) -u1)) \to (or3 (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) -u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: -C).(\lambda (u2: T).(\lambda (_: A).(drop (S n) O c2 (CHead d2 (Bind Abst) -u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) -(\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g -a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) -(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))))))) (\lambda -(b: B).(\lambda (H3: (csuba g c2 (CHead c (Bind b) t))).(\lambda (H4: (drop -(r (Bind b) n) O c (CHead d1 (Bind Abbr) u1))).(B_ind (\lambda (b0: -B).((csuba g c2 (CHead c (Bind b0) t)) \to ((drop (r (Bind b0) n) O c (CHead -d1 (Bind Abbr) u1)) \to (or3 (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead -d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda -(d2: C).(\lambda (u2: T).(\lambda (_: A).(drop (S n) O c2 (CHead d2 (Bind -Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 -d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 -(asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 -u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(drop (S n) O c2 -(CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 -d1)))))))) (\lambda (H5: (csuba g c2 (CHead c (Bind Abbr) t))).(\lambda (H6: -(drop (r (Bind Abbr) n) O c (CHead d1 (Bind Abbr) u1))).(let H_x \def -(csuba_gen_abbr_rev g c c2 t H5) in (let H7 \def H_x in (or3_ind (ex2 C -(\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abbr) t))) (\lambda (d2: C).(csuba -g d2 c))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq -C c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda -(_: A).(csuba g d2 c)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: -A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda -(a: A).(arity g c t a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C -c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 -c)))) (or3 (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) -u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: -C).(\lambda (u2: T).(\lambda (_: A).(drop (S n) O c2 (CHead d2 (Bind Abst) -u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) +(H5: (csuba g c2 (CHead c (Bind Abbr) t))).(\lambda (H6: (drop (r (Bind Abbr) +n) O c (CHead d1 (Bind Abbr) u1))).(let H_x \def (csuba_gen_abbr_rev g c c2 t +H5) in (let H7 \def H_x in (or3_ind (ex2 C (\lambda (d2: C).(eq C c2 (CHead +d2 (Bind Abbr) t))) (\lambda (d2: C).(csuba g d2 c))) (ex4_3 C T A (\lambda +(d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C c2 (CHead d2 (Bind Abst) +u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 c)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g -a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) -(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind -Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda -(H8: (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abbr) t))) (\lambda -(d2: C).(csuba g d2 c)))).(ex2_ind C (\lambda (d2: C).(eq C c2 (CHead d2 -(Bind Abbr) t))) (\lambda (d2: C).(csuba g d2 c)) (or3 (ex2 C (\lambda (d2: +a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g c t a))))) +(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c2 (CHead d2 (Bind Void) +u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 c)))) (or3 (ex2 C +(\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: +C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda +(_: A).(drop (S n) O c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: +C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: +C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda +(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 C T +(\lambda (d2: C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind Void) +u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (H8: +(ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abbr) t))) (\lambda (d2: +C).(csuba g d2 c)))).(ex2_ind C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind +Abbr) t))) (\lambda (d2: C).(csuba g d2 c)) (or3 (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(drop (S n) O c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: @@ -2462,7 +2450,4 @@ T).(drop (S n) O (CHead x0 (Flat f) x1) (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))) x2 x3 (drop_drop (Flat f) n x0 (CHead x2 (Bind Void) x3) H10 x1) H11)))))) H9)) H8)) c2 H6))))) H5)))))) k H2 (drop_gen_drop k c (CHead d1 (Bind Abbr) u1) t n H1)))))))))))) c1)))) i). -(* COMMENTS -Initial nodes: 23852 -END *) diff --git a/matita/matita/contribs/lambdadelta/basic_1/csuba/fwd.ma b/matita/matita/contribs/lambdadelta/basic_1/csuba/fwd.ma index a618761fe..e4101c983 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/csuba/fwd.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/csuba/fwd.ma @@ -14,7 +14,23 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/csuba/defs.ma". +include "basic_1/csuba/defs.ma". + +let rec csuba_ind (g: G) (P: (C \to (C \to Prop))) (f: (\forall (n: nat).(P +(CSort n) (CSort n)))) (f0: (\forall (c1: C).(\forall (c2: C).((csuba g c1 +c2) \to ((P c1 c2) \to (\forall (k: K).(\forall (u: T).(P (CHead c1 k u) +(CHead c2 k u))))))))) (f1: (\forall (c1: C).(\forall (c2: C).((csuba g c1 +c2) \to ((P c1 c2) \to (\forall (b: B).((not (eq B b Void)) \to (\forall (u1: +T).(\forall (u2: T).(P (CHead c1 (Bind Void) u1) (CHead c2 (Bind b) +u2))))))))))) (f2: (\forall (c1: C).(\forall (c2: C).((csuba g c1 c2) \to ((P +c1 c2) \to (\forall (t: T).(\forall (a: A).((arity g c1 t (asucc g a)) \to +(\forall (u: T).((arity g c2 u a) \to (P (CHead c1 (Bind Abst) t) (CHead c2 +(Bind Abbr) u)))))))))))) (c: C) (c0: C) (c1: csuba g c c0) on c1: P c c0 +\def match c1 with [(csuba_sort n) \Rightarrow (f n) | (csuba_head c2 c3 c4 k +u) \Rightarrow (f0 c2 c3 c4 ((csuba_ind g P f f0 f1 f2) c2 c3 c4) k u) | +(csuba_void c2 c3 c4 b n u1 u2) \Rightarrow (f1 c2 c3 c4 ((csuba_ind g P f f0 +f1 f2) c2 c3 c4) b n u1 u2) | (csuba_abst c2 c3 c4 t a a0 u a1) \Rightarrow +(f2 c2 c3 c4 ((csuba_ind g P f f0 f1 f2) c2 c3 c4) t a a0 u a1)]. theorem csuba_gen_abbr: \forall (g: G).(\forall (d1: C).(\forall (c: C).(\forall (u: T).((csuba g @@ -29,63 +45,55 @@ C c (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))) (\lambda (c1: C).((eq C c0 (CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))))) (\lambda (n: nat).(\lambda (H1: (eq C (CSort n) (CHead d1 (Bind Abbr) u))).(let H2 -\def (eq_ind C (CSort n) (\lambda (ee: C).(match ee in C return (\lambda (_: -C).Prop) with [(CSort _) \Rightarrow True | (CHead _ _ _) \Rightarrow -False])) I (CHead d1 (Bind Abbr) u) H1) in (False_ind (ex2 C (\lambda (d2: -C).(eq C (CSort n) (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 -d2))) H2)))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 -c2)).(\lambda (H2: (((eq C c1 (CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda -(d2: C).(eq C c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 -d2)))))).(\lambda (k: K).(\lambda (u0: T).(\lambda (H3: (eq C (CHead c1 k u0) -(CHead d1 (Bind Abbr) u))).(let H4 \def (f_equal C C (\lambda (e: C).(match e -in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow c1 | (CHead c0 _ -_) \Rightarrow c0])) (CHead c1 k u0) (CHead d1 (Bind Abbr) u) H3) in ((let H5 -\def (f_equal C K (\lambda (e: C).(match e in C return (\lambda (_: C).K) +\def (eq_ind C (CSort n) (\lambda (ee: C).(match ee with [(CSort _) +\Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead d1 (Bind Abbr) +u) H1) in (False_ind (ex2 C (\lambda (d2: C).(eq C (CSort n) (CHead d2 (Bind +Abbr) u))) (\lambda (d2: C).(csuba g d1 d2))) H2)))) (\lambda (c1: +C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C c1 +(CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 +(Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))))).(\lambda (k: +K).(\lambda (u0: T).(\lambda (H3: (eq C (CHead c1 k u0) (CHead d1 (Bind Abbr) +u))).(let H4 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) +\Rightarrow c1 | (CHead c0 _ _) \Rightarrow c0])) (CHead c1 k u0) (CHead d1 +(Bind Abbr) u) H3) in ((let H5 \def (f_equal C K (\lambda (e: C).(match e with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) (CHead c1 k u0) (CHead d1 (Bind Abbr) u) H3) in ((let H6 \def (f_equal C T (\lambda (e: -C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u0 | -(CHead _ _ t) \Rightarrow t])) (CHead c1 k u0) (CHead d1 (Bind Abbr) u) H3) -in (\lambda (H7: (eq K k (Bind Abbr))).(\lambda (H8: (eq C c1 d1)).(eq_ind_r -T u (\lambda (t: T).(ex2 C (\lambda (d2: C).(eq C (CHead c2 k t) (CHead d2 -(Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))) (eq_ind_r K (Bind Abbr) -(\lambda (k0: K).(ex2 C (\lambda (d2: C).(eq C (CHead c2 k0 u) (CHead d2 -(Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))) (let H9 \def (eq_ind C -c1 (\lambda (c0: C).((eq C c0 (CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda -(d2: C).(eq C c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 -d2))))) H2 d1 H8) in (let H10 \def (eq_ind C c1 (\lambda (c0: C).(csuba g c0 -c2)) H1 d1 H8) in (ex_intro2 C (\lambda (d2: C).(eq C (CHead c2 (Bind Abbr) -u) (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)) c2 -(refl_equal C (CHead c2 (Bind Abbr) u)) H10))) k H7) u0 H6)))) H5)) -H4))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: (csuba g c1 -c2)).(\lambda (_: (((eq C c1 (CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda -(d2: C).(eq C c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 -d2)))))).(\lambda (b: B).(\lambda (_: (not (eq B b Void))).(\lambda (u1: -T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c1 (Bind Void) u1) (CHead d1 -(Bind Abbr) u))).(let H5 \def (eq_ind C (CHead c1 (Bind Void) u1) (\lambda -(ee: C).(match ee in C return (\lambda (_: C).Prop) with [(CSort _) -\Rightarrow False | (CHead _ k _) \Rightarrow (match k in K return (\lambda -(_: K).Prop) with [(Bind b0) \Rightarrow (match b0 in B return (\lambda (_: -B).Prop) with [Abbr \Rightarrow False | Abst \Rightarrow False | Void -\Rightarrow True]) | (Flat _) \Rightarrow False])])) I (CHead d1 (Bind Abbr) -u) H4) in (False_ind (ex2 C (\lambda (d2: C).(eq C (CHead c2 (Bind b) u2) -(CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2))) H5))))))))))) -(\lambda (c1: C).(\lambda (c2: C).(\lambda (_: (csuba g c1 c2)).(\lambda (_: -(((eq C c1 (CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda (d2: C).(eq C c2 -(CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))))).(\lambda (t: +C).(match e with [(CSort _) \Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) +(CHead c1 k u0) (CHead d1 (Bind Abbr) u) H3) in (\lambda (H7: (eq K k (Bind +Abbr))).(\lambda (H8: (eq C c1 d1)).(eq_ind_r T u (\lambda (t: T).(ex2 C +(\lambda (d2: C).(eq C (CHead c2 k t) (CHead d2 (Bind Abbr) u))) (\lambda +(d2: C).(csuba g d1 d2)))) (eq_ind_r K (Bind Abbr) (\lambda (k0: K).(ex2 C +(\lambda (d2: C).(eq C (CHead c2 k0 u) (CHead d2 (Bind Abbr) u))) (\lambda +(d2: C).(csuba g d1 d2)))) (let H9 \def (eq_ind C c1 (\lambda (c0: C).((eq C +c0 (CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 +(Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2))))) H2 d1 H8) in (let H10 +\def (eq_ind C c1 (\lambda (c0: C).(csuba g c0 c2)) H1 d1 H8) in (ex_intro2 C +(\lambda (d2: C).(eq C (CHead c2 (Bind Abbr) u) (CHead d2 (Bind Abbr) u))) +(\lambda (d2: C).(csuba g d1 d2)) c2 (refl_equal C (CHead c2 (Bind Abbr) u)) +H10))) k H7) u0 H6)))) H5)) H4))))))))) (\lambda (c1: C).(\lambda (c2: +C).(\lambda (_: (csuba g c1 c2)).(\lambda (_: (((eq C c1 (CHead d1 (Bind +Abbr) u)) \to (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abbr) u))) +(\lambda (d2: C).(csuba g d1 d2)))))).(\lambda (b: B).(\lambda (_: (not (eq B +b Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c1 +(Bind Void) u1) (CHead d1 (Bind Abbr) u))).(let H5 \def (eq_ind C (CHead c1 +(Bind Void) u1) (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False +| (CHead _ k _) \Rightarrow (match k with [(Bind b0) \Rightarrow (match b0 +with [Abbr \Rightarrow False | Abst \Rightarrow False | Void \Rightarrow +True]) | (Flat _) \Rightarrow False])])) I (CHead d1 (Bind Abbr) u) H4) in +(False_ind (ex2 C (\lambda (d2: C).(eq C (CHead c2 (Bind b) u2) (CHead d2 +(Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2))) H5))))))))))) (\lambda +(c1: C).(\lambda (c2: C).(\lambda (_: (csuba g c1 c2)).(\lambda (_: (((eq C +c1 (CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 +(Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))))).(\lambda (t: T).(\lambda (a: A).(\lambda (_: (arity g c1 t (asucc g a))).(\lambda (u0: T).(\lambda (_: (arity g c2 u0 a)).(\lambda (H5: (eq C (CHead c1 (Bind Abst) t) (CHead d1 (Bind Abbr) u))).(let H6 \def (eq_ind C (CHead c1 (Bind Abst) t) -(\lambda (ee: C).(match ee in C return (\lambda (_: C).Prop) with [(CSort _) -\Rightarrow False | (CHead _ k _) \Rightarrow (match k in K return (\lambda -(_: K).Prop) with [(Bind b) \Rightarrow (match b in B return (\lambda (_: -B).Prop) with [Abbr \Rightarrow False | Abst \Rightarrow True | Void -\Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead d1 (Bind Abbr) -u) H5) in (False_ind (ex2 C (\lambda (d2: C).(eq C (CHead c2 (Bind Abbr) u0) -(CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2))) H6)))))))))))) -y c H0))) H))))). -(* COMMENTS -Initial nodes: 1117 -END *) +(\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) +\Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr +\Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat +_) \Rightarrow False])])) I (CHead d1 (Bind Abbr) u) H5) in (False_ind (ex2 C +(\lambda (d2: C).(eq C (CHead c2 (Bind Abbr) u0) (CHead d2 (Bind Abbr) u))) +(\lambda (d2: C).(csuba g d1 d2))) H6)))))))))))) y c H0))) H))))). theorem csuba_gen_void: \forall (g: G).(\forall (d1: C).(\forall (c: C).(\forall (u1: T).((csuba g @@ -103,54 +111,52 @@ C).(\lambda (c1: C).((eq C c0 (CHead d1 (Bind Void) u1)) \to (ex2_3 B C T (\lambda (b: B).(\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 (Bind b) u2))))) (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2)))))))) (\lambda (n: nat).(\lambda (H1: (eq C (CSort n) (CHead d1 (Bind -Void) u1))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee in C -return (\lambda (_: C).Prop) with [(CSort _) \Rightarrow True | (CHead _ _ _) -\Rightarrow False])) I (CHead d1 (Bind Void) u1) H1) in (False_ind (ex2_3 B C -T (\lambda (b: B).(\lambda (d2: C).(\lambda (u2: T).(eq C (CSort n) (CHead d2 -(Bind b) u2))))) (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 -d2))))) H2)))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 -c2)).(\lambda (H2: (((eq C c1 (CHead d1 (Bind Void) u1)) \to (ex2_3 B C T -(\lambda (b: B).(\lambda (d2: C).(\lambda (u2: T).(eq C c2 (CHead d2 (Bind b) -u2))))) (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 -d2)))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c1 k u) -(CHead d1 (Bind Void) u1))).(let H4 \def (f_equal C C (\lambda (e: C).(match -e in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow c1 | (CHead c0 _ -_) \Rightarrow c0])) (CHead c1 k u) (CHead d1 (Bind Void) u1) H3) in ((let H5 -\def (f_equal C K (\lambda (e: C).(match e in C return (\lambda (_: C).K) +Void) u1))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee with +[(CSort _) \Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead d1 +(Bind Void) u1) H1) in (False_ind (ex2_3 B C T (\lambda (b: B).(\lambda (d2: +C).(\lambda (u2: T).(eq C (CSort n) (CHead d2 (Bind b) u2))))) (\lambda (_: +B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2))))) H2)))) (\lambda (c1: +C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C c1 +(CHead d1 (Bind Void) u1)) \to (ex2_3 B C T (\lambda (b: B).(\lambda (d2: +C).(\lambda (u2: T).(eq C c2 (CHead d2 (Bind b) u2))))) (\lambda (_: +B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2)))))))).(\lambda (k: +K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c1 k u) (CHead d1 (Bind Void) +u1))).(let H4 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) +\Rightarrow c1 | (CHead c0 _ _) \Rightarrow c0])) (CHead c1 k u) (CHead d1 +(Bind Void) u1) H3) in ((let H5 \def (f_equal C K (\lambda (e: C).(match e with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) (CHead c1 k u) (CHead d1 (Bind Void) u1) H3) in ((let H6 \def (f_equal C T (\lambda (e: -C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u | -(CHead _ _ t) \Rightarrow t])) (CHead c1 k u) (CHead d1 (Bind Void) u1) H3) -in (\lambda (H7: (eq K k (Bind Void))).(\lambda (H8: (eq C c1 d1)).(eq_ind_r -T u1 (\lambda (t: T).(ex2_3 B C T (\lambda (b: B).(\lambda (d2: C).(\lambda -(u2: T).(eq C (CHead c2 k t) (CHead d2 (Bind b) u2))))) (\lambda (_: -B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2)))))) (eq_ind_r K (Bind -Void) (\lambda (k0: K).(ex2_3 B C T (\lambda (b: B).(\lambda (d2: C).(\lambda -(u2: T).(eq C (CHead c2 k0 u1) (CHead d2 (Bind b) u2))))) (\lambda (_: -B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2)))))) (let H9 \def (eq_ind -C c1 (\lambda (c0: C).((eq C c0 (CHead d1 (Bind Void) u1)) \to (ex2_3 B C T -(\lambda (b: B).(\lambda (d2: C).(\lambda (u2: T).(eq C c2 (CHead d2 (Bind b) -u2))))) (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 -d2))))))) H2 d1 H8) in (let H10 \def (eq_ind C c1 (\lambda (c0: C).(csuba g -c0 c2)) H1 d1 H8) in (ex2_3_intro B C T (\lambda (b: B).(\lambda (d2: -C).(\lambda (u2: T).(eq C (CHead c2 (Bind Void) u1) (CHead d2 (Bind b) -u2))))) (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2)))) -Void c2 u1 (refl_equal C (CHead c2 (Bind Void) u1)) H10))) k H7) u H6)))) -H5)) H4))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 -c2)).(\lambda (H2: (((eq C c1 (CHead d1 (Bind Void) u1)) \to (ex2_3 B C T -(\lambda (b: B).(\lambda (d2: C).(\lambda (u2: T).(eq C c2 (CHead d2 (Bind b) -u2))))) (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 -d2)))))))).(\lambda (b: B).(\lambda (_: (not (eq B b Void))).(\lambda (u0: -T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c1 (Bind Void) u0) (CHead d1 -(Bind Void) u1))).(let H5 \def (f_equal C C (\lambda (e: C).(match e in C -return (\lambda (_: C).C) with [(CSort _) \Rightarrow c1 | (CHead c0 _ _) -\Rightarrow c0])) (CHead c1 (Bind Void) u0) (CHead d1 (Bind Void) u1) H4) in -((let H6 \def (f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: -C).T) with [(CSort _) \Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) (CHead -c1 (Bind Void) u0) (CHead d1 (Bind Void) u1) H4) in (\lambda (H7: (eq C c1 -d1)).(let H8 \def (eq_ind C c1 (\lambda (c0: C).((eq C c0 (CHead d1 (Bind -Void) u1)) \to (ex2_3 B C T (\lambda (b0: B).(\lambda (d2: C).(\lambda (u3: -T).(eq C c2 (CHead d2 (Bind b0) u3))))) (\lambda (_: B).(\lambda (d2: +C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) +(CHead c1 k u) (CHead d1 (Bind Void) u1) H3) in (\lambda (H7: (eq K k (Bind +Void))).(\lambda (H8: (eq C c1 d1)).(eq_ind_r T u1 (\lambda (t: T).(ex2_3 B C +T (\lambda (b: B).(\lambda (d2: C).(\lambda (u2: T).(eq C (CHead c2 k t) +(CHead d2 (Bind b) u2))))) (\lambda (_: B).(\lambda (d2: C).(\lambda (_: +T).(csuba g d1 d2)))))) (eq_ind_r K (Bind Void) (\lambda (k0: K).(ex2_3 B C T +(\lambda (b: B).(\lambda (d2: C).(\lambda (u2: T).(eq C (CHead c2 k0 u1) +(CHead d2 (Bind b) u2))))) (\lambda (_: B).(\lambda (d2: C).(\lambda (_: +T).(csuba g d1 d2)))))) (let H9 \def (eq_ind C c1 (\lambda (c0: C).((eq C c0 +(CHead d1 (Bind Void) u1)) \to (ex2_3 B C T (\lambda (b: B).(\lambda (d2: +C).(\lambda (u2: T).(eq C c2 (CHead d2 (Bind b) u2))))) (\lambda (_: +B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2))))))) H2 d1 H8) in (let +H10 \def (eq_ind C c1 (\lambda (c0: C).(csuba g c0 c2)) H1 d1 H8) in +(ex2_3_intro B C T (\lambda (b: B).(\lambda (d2: C).(\lambda (u2: T).(eq C +(CHead c2 (Bind Void) u1) (CHead d2 (Bind b) u2))))) (\lambda (_: B).(\lambda +(d2: C).(\lambda (_: T).(csuba g d1 d2)))) Void c2 u1 (refl_equal C (CHead c2 +(Bind Void) u1)) H10))) k H7) u H6)))) H5)) H4))))))))) (\lambda (c1: +C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C c1 +(CHead d1 (Bind Void) u1)) \to (ex2_3 B C T (\lambda (b: B).(\lambda (d2: +C).(\lambda (u2: T).(eq C c2 (CHead d2 (Bind b) u2))))) (\lambda (_: +B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2)))))))).(\lambda (b: +B).(\lambda (_: (not (eq B b Void))).(\lambda (u0: T).(\lambda (u2: +T).(\lambda (H4: (eq C (CHead c1 (Bind Void) u0) (CHead d1 (Bind Void) +u1))).(let H5 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) +\Rightarrow c1 | (CHead c0 _ _) \Rightarrow c0])) (CHead c1 (Bind Void) u0) +(CHead d1 (Bind Void) u1) H4) in ((let H6 \def (f_equal C T (\lambda (e: +C).(match e with [(CSort _) \Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) +(CHead c1 (Bind Void) u0) (CHead d1 (Bind Void) u1) H4) in (\lambda (H7: (eq +C c1 d1)).(let H8 \def (eq_ind C c1 (\lambda (c0: C).((eq C c0 (CHead d1 +(Bind Void) u1)) \to (ex2_3 B C T (\lambda (b0: B).(\lambda (d2: C).(\lambda +(u3: T).(eq C c2 (CHead d2 (Bind b0) u3))))) (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2))))))) H2 d1 H7) in (let H9 \def (eq_ind C c1 (\lambda (c0: C).(csuba g c0 c2)) H1 d1 H7) in (ex2_3_intro B C T (\lambda (b0: B).(\lambda (d2: C).(\lambda (u3: T).(eq C (CHead c2 (Bind b) u2) (CHead @@ -163,18 +169,14 @@ u2))))) (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2)))))))).(\lambda (t: T).(\lambda (a: A).(\lambda (_: (arity g c1 t (asucc g a))).(\lambda (u: T).(\lambda (_: (arity g c2 u a)).(\lambda (H5: (eq C (CHead c1 (Bind Abst) t) (CHead d1 (Bind Void) u1))).(let H6 \def (eq_ind C -(CHead c1 (Bind Abst) t) (\lambda (ee: C).(match ee in C return (\lambda (_: -C).Prop) with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match -k in K return (\lambda (_: K).Prop) with [(Bind b) \Rightarrow (match b in B -return (\lambda (_: B).Prop) with [Abbr \Rightarrow False | Abst \Rightarrow -True | Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead d1 -(Bind Void) u1) H5) in (False_ind (ex2_3 B C T (\lambda (b: B).(\lambda (d2: +(CHead c1 (Bind Abst) t) (\lambda (ee: C).(match ee with [(CSort _) +\Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind b) +\Rightarrow (match b with [Abbr \Rightarrow False | Abst \Rightarrow True | +Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead d1 (Bind +Void) u1) H5) in (False_ind (ex2_3 B C T (\lambda (b: B).(\lambda (d2: C).(\lambda (u2: T).(eq C (CHead c2 (Bind Abbr) u) (CHead d2 (Bind b) u2))))) (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2))))) H6)))))))))))) y c H0))) H))))). -(* COMMENTS -Initial nodes: 1418 -END *) theorem csuba_gen_abst: \forall (g: G).(\forall (d1: C).(\forall (c: C).(\forall (u1: T).((csuba g @@ -203,62 +205,60 @@ C).(\lambda (u2: T).(\lambda (_: A).(eq C c1 (CHead d2 (Bind Abbr) u2))))) (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a))))))))) (\lambda (n: nat).(\lambda (H1: (eq C (CSort n) (CHead d1 (Bind Abst) -u1))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee in C return -(\lambda (_: C).Prop) with [(CSort _) \Rightarrow True | (CHead _ _ _) -\Rightarrow False])) I (CHead d1 (Bind Abst) u1) H1) in (False_ind (or (ex2 C -(\lambda (d2: C).(eq C (CSort n) (CHead d2 (Bind Abst) u1))) (\lambda (d2: -C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda -(_: A).(eq C (CSort n) (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: -C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: -C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda -(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))))) H2)))) -(\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 c2)).(\lambda -(H2: (((eq C c1 (CHead d1 (Bind Abst) u1)) \to (or (ex2 C (\lambda (d2: -C).(eq C c2 (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) -(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C c2 -(CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: -A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity -g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: -A).(arity g d2 u2 a))))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (H3: -(eq C (CHead c1 k u) (CHead d1 (Bind Abst) u1))).(let H4 \def (f_equal C C -(\lambda (e: C).(match e in C return (\lambda (_: C).C) with [(CSort _) -\Rightarrow c1 | (CHead c0 _ _) \Rightarrow c0])) (CHead c1 k u) (CHead d1 -(Bind Abst) u1) H3) in ((let H5 \def (f_equal C K (\lambda (e: C).(match e in -C return (\lambda (_: C).K) with [(CSort _) \Rightarrow k | (CHead _ k0 _) -\Rightarrow k0])) (CHead c1 k u) (CHead d1 (Bind Abst) u1) H3) in ((let H6 -\def (f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) -with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) (CHead c1 k u) -(CHead d1 (Bind Abst) u1) H3) in (\lambda (H7: (eq K k (Bind Abst))).(\lambda -(H8: (eq C c1 d1)).(eq_ind_r T u1 (\lambda (t: T).(or (ex2 C (\lambda (d2: -C).(eq C (CHead c2 k t) (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g -d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C -(CHead c2 k t) (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: -T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: -T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda -(u2: T).(\lambda (a: A).(arity g d2 u2 a))))))) (eq_ind_r K (Bind Abst) -(\lambda (k0: K).(or (ex2 C (\lambda (d2: C).(eq C (CHead c2 k0 u1) (CHead d2 -(Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda -(d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C (CHead c2 k0 u1) (CHead d2 +u1))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee with +[(CSort _) \Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead d1 +(Bind Abst) u1) H1) in (False_ind (or (ex2 C (\lambda (d2: C).(eq C (CSort n) +(CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A +(\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C (CSort n) (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 -u2 a))))))) (let H9 \def (eq_ind C c1 (\lambda (c0: C).((eq C c0 (CHead d1 -(Bind Abst) u1)) \to (or (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind -Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: -C).(\lambda (u2: T).(\lambda (_: A).(eq C c2 (CHead d2 (Bind Abbr) u2))))) -(\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda -(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) -(\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))))))) H2 -d1 H8) in (let H10 \def (eq_ind C c1 (\lambda (c0: C).(csuba g c0 c2)) H1 d1 -H8) in (or_introl (ex2 C (\lambda (d2: C).(eq C (CHead c2 (Bind Abst) u1) -(CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A -(\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C (CHead c2 (Bind Abst) -u1) (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda +u2 a)))))) H2)))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 +c2)).(\lambda (H2: (((eq C c1 (CHead d1 (Bind Abst) u1)) \to (or (ex2 C +(\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba +g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq +C c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda -(a: A).(arity g d2 u2 a))))) (ex_intro2 C (\lambda (d2: C).(eq C (CHead c2 -(Bind Abst) u1) (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2)) -c2 (refl_equal C (CHead c2 (Bind Abst) u1)) H10)))) k H7) u H6)))) H5)) +(a: A).(arity g d2 u2 a))))))))).(\lambda (k: K).(\lambda (u: T).(\lambda +(H3: (eq C (CHead c1 k u) (CHead d1 (Bind Abst) u1))).(let H4 \def (f_equal C +C (\lambda (e: C).(match e with [(CSort _) \Rightarrow c1 | (CHead c0 _ _) +\Rightarrow c0])) (CHead c1 k u) (CHead d1 (Bind Abst) u1) H3) in ((let H5 +\def (f_equal C K (\lambda (e: C).(match e with [(CSort _) \Rightarrow k | +(CHead _ k0 _) \Rightarrow k0])) (CHead c1 k u) (CHead d1 (Bind Abst) u1) H3) +in ((let H6 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) +\Rightarrow u | (CHead _ _ t) \Rightarrow t])) (CHead c1 k u) (CHead d1 (Bind +Abst) u1) H3) in (\lambda (H7: (eq K k (Bind Abst))).(\lambda (H8: (eq C c1 +d1)).(eq_ind_r T u1 (\lambda (t: T).(or (ex2 C (\lambda (d2: C).(eq C (CHead +c2 k t) (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 +C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C (CHead c2 k t) +(CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: +A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity +g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: +A).(arity g d2 u2 a))))))) (eq_ind_r K (Bind Abst) (\lambda (k0: K).(or (ex2 +C (\lambda (d2: C).(eq C (CHead c2 k0 u1) (CHead d2 (Bind Abst) u1))) +(\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda +(u2: T).(\lambda (_: A).(eq C (CHead c2 k0 u1) (CHead d2 (Bind Abbr) u2))))) +(\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda +(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) +(\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a))))))) +(let H9 \def (eq_ind C c1 (\lambda (c0: C).((eq C c0 (CHead d1 (Bind Abst) +u1)) \to (or (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abst) u1))) +(\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda +(u2: T).(\lambda (_: A).(eq C c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: +C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: +C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda +(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))))))) H2 d1 H8) +in (let H10 \def (eq_ind C c1 (\lambda (c0: C).(csuba g c0 c2)) H1 d1 H8) in +(or_introl (ex2 C (\lambda (d2: C).(eq C (CHead c2 (Bind Abst) u1) (CHead d2 +(Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda +(d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C (CHead c2 (Bind Abst) u1) +(CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: +A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity +g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: +A).(arity g d2 u2 a))))) (ex_intro2 C (\lambda (d2: C).(eq C (CHead c2 (Bind +Abst) u1) (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2)) c2 +(refl_equal C (CHead c2 (Bind Abst) u1)) H10)))) k H7) u H6)))) H5)) H4))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: (csuba g c1 c2)).(\lambda (_: (((eq C c1 (CHead d1 (Bind Abst) u1)) \to (or (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba @@ -269,60 +269,54 @@ A).(arity g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a))))))))).(\lambda (b: B).(\lambda (_: (not (eq B b Void))).(\lambda (u0: T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c1 (Bind Void) u0) (CHead d1 (Bind Abst) u1))).(let H5 \def (eq_ind C (CHead c1 (Bind -Void) u0) (\lambda (ee: C).(match ee in C return (\lambda (_: C).Prop) with -[(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match k in K return -(\lambda (_: K).Prop) with [(Bind b0) \Rightarrow (match b0 in B return -(\lambda (_: B).Prop) with [Abbr \Rightarrow False | Abst \Rightarrow False | -Void \Rightarrow True]) | (Flat _) \Rightarrow False])])) I (CHead d1 (Bind -Abst) u1) H4) in (False_ind (or (ex2 C (\lambda (d2: C).(eq C (CHead c2 (Bind -b) u2) (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 -C T A (\lambda (d2: C).(\lambda (u3: T).(\lambda (_: A).(eq C (CHead c2 (Bind -b) u2) (CHead d2 (Bind Abbr) u3))))) (\lambda (d2: C).(\lambda (_: +Void) u0) (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | +(CHead _ k _) \Rightarrow (match k with [(Bind b0) \Rightarrow (match b0 with +[Abbr \Rightarrow False | Abst \Rightarrow False | Void \Rightarrow True]) | +(Flat _) \Rightarrow False])])) I (CHead d1 (Bind Abst) u1) H4) in (False_ind +(or (ex2 C (\lambda (d2: C).(eq C (CHead c2 (Bind b) u2) (CHead d2 (Bind +Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: +C).(\lambda (u3: T).(\lambda (_: A).(eq C (CHead c2 (Bind b) u2) (CHead d2 +(Bind Abbr) u3))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g +d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 +(asucc g a))))) (\lambda (d2: C).(\lambda (u3: T).(\lambda (a: A).(arity g d2 +u3 a)))))) H5))))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: +(csuba g c1 c2)).(\lambda (H2: (((eq C c1 (CHead d1 (Bind Abst) u1)) \to (or +(ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abst) u1))) (\lambda (d2: +C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda +(_: A).(eq C c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda -(u3: T).(\lambda (a: A).(arity g d2 u3 a)))))) H5))))))))))) (\lambda (c1: -C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C c1 -(CHead d1 (Bind Abst) u1)) \to (or (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 -(Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda -(d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C c2 (CHead d2 (Bind Abbr) -u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) -(\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g -a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 -a))))))))).(\lambda (t: T).(\lambda (a: A).(\lambda (H3: (arity g c1 t (asucc -g a))).(\lambda (u: T).(\lambda (H4: (arity g c2 u a)).(\lambda (H5: (eq C -(CHead c1 (Bind Abst) t) (CHead d1 (Bind Abst) u1))).(let H6 \def (f_equal C -C (\lambda (e: C).(match e in C return (\lambda (_: C).C) with [(CSort _) -\Rightarrow c1 | (CHead c0 _ _) \Rightarrow c0])) (CHead c1 (Bind Abst) t) -(CHead d1 (Bind Abst) u1) H5) in ((let H7 \def (f_equal C T (\lambda (e: -C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow t | -(CHead _ _ t0) \Rightarrow t0])) (CHead c1 (Bind Abst) t) (CHead d1 (Bind -Abst) u1) H5) in (\lambda (H8: (eq C c1 d1)).(let H9 \def (eq_ind T t -(\lambda (t0: T).(arity g c1 t0 (asucc g a))) H3 u1 H7) in (let H10 \def -(eq_ind C c1 (\lambda (c0: C).(arity g c0 u1 (asucc g a))) H9 d1 H8) in (let -H11 \def (eq_ind C c1 (\lambda (c0: C).((eq C c0 (CHead d1 (Bind Abst) u1)) -\to (or (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abst) u1))) (\lambda -(d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: -T).(\lambda (_: A).(eq C c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: -C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: -C).(\lambda (_: T).(\lambda (a0: A).(arity g d1 u1 (asucc g a0))))) (\lambda -(d2: C).(\lambda (u2: T).(\lambda (a0: A).(arity g d2 u2 a0)))))))) H2 d1 H8) -in (let H12 \def (eq_ind C c1 (\lambda (c0: C).(csuba g c0 c2)) H1 d1 H8) in -(or_intror (ex2 C (\lambda (d2: C).(eq C (CHead c2 (Bind Abbr) u) (CHead d2 -(Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda +(u2: T).(\lambda (a: A).(arity g d2 u2 a))))))))).(\lambda (t: T).(\lambda +(a: A).(\lambda (H3: (arity g c1 t (asucc g a))).(\lambda (u: T).(\lambda +(H4: (arity g c2 u a)).(\lambda (H5: (eq C (CHead c1 (Bind Abst) t) (CHead d1 +(Bind Abst) u1))).(let H6 \def (f_equal C C (\lambda (e: C).(match e with +[(CSort _) \Rightarrow c1 | (CHead c0 _ _) \Rightarrow c0])) (CHead c1 (Bind +Abst) t) (CHead d1 (Bind Abst) u1) H5) in ((let H7 \def (f_equal C T (\lambda +(e: C).(match e with [(CSort _) \Rightarrow t | (CHead _ _ t0) \Rightarrow +t0])) (CHead c1 (Bind Abst) t) (CHead d1 (Bind Abst) u1) H5) in (\lambda (H8: +(eq C c1 d1)).(let H9 \def (eq_ind T t (\lambda (t0: T).(arity g c1 t0 (asucc +g a))) H3 u1 H7) in (let H10 \def (eq_ind C c1 (\lambda (c0: C).(arity g c0 +u1 (asucc g a))) H9 d1 H8) in (let H11 \def (eq_ind C c1 (\lambda (c0: +C).((eq C c0 (CHead d1 (Bind Abst) u1)) \to (or (ex2 C (\lambda (d2: C).(eq C +c2 (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T +A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C c2 (CHead d2 (Bind +Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 +d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(arity g d1 u1 (asucc +g a0))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a0: A).(arity g d2 u2 +a0)))))))) H2 d1 H8) in (let H12 \def (eq_ind C c1 (\lambda (c0: C).(csuba g +c0 c2)) H1 d1 H8) in (or_intror (ex2 C (\lambda (d2: C).(eq C (CHead c2 (Bind +Abbr) u) (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) +(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C (CHead +c2 (Bind Abbr) u) (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: +T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: +T).(\lambda (a0: A).(arity g d1 u1 (asucc g a0))))) (\lambda (d2: C).(\lambda +(u2: T).(\lambda (a0: A).(arity g d2 u2 a0))))) (ex4_3_intro C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C (CHead c2 (Bind Abbr) u) (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(arity g d1 u1 (asucc g a0))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a0: -A).(arity g d2 u2 a0))))) (ex4_3_intro C T A (\lambda (d2: C).(\lambda (u2: -T).(\lambda (_: A).(eq C (CHead c2 (Bind Abbr) u) (CHead d2 (Bind Abbr) -u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) -(\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(arity g d1 u1 (asucc g -a0))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a0: A).(arity g d2 u2 -a0)))) c2 u a (refl_equal C (CHead c2 (Bind Abbr) u)) H12 H10 H4)))))))) -H6)))))))))))) y c H0))) H))))). -(* COMMENTS -Initial nodes: 2550 -END *) +A).(arity g d2 u2 a0)))) c2 u a (refl_equal C (CHead c2 (Bind Abbr) u)) H12 +H10 H4)))))))) H6)))))))))))) y c H0))) H))))). theorem csuba_gen_flat: \forall (g: G).(\forall (d1: C).(\forall (c: C).(\forall (u1: T).(\forall @@ -339,47 +333,45 @@ d1 (Flat f) u1) (\lambda (c0: C).(csuba g c0 c)) (\lambda (_: C).(ex2_2 C T (CHead d1 (Flat f) u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2))))))) (\lambda (n: nat).(\lambda (H1: (eq C (CSort n) (CHead d1 (Flat f) -u1))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee in C return -(\lambda (_: C).Prop) with [(CSort _) \Rightarrow True | (CHead _ _ _) -\Rightarrow False])) I (CHead d1 (Flat f) u1) H1) in (False_ind (ex2_2 C T -(\lambda (d2: C).(\lambda (u2: T).(eq C (CSort n) (CHead d2 (Flat f) u2)))) -(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2)))) H2)))) (\lambda (c1: -C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C c1 -(CHead d1 (Flat f) u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq -C c2 (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d1 -d2))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c1 k u) -(CHead d1 (Flat f) u1))).(let H4 \def (f_equal C C (\lambda (e: C).(match e -in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow c1 | (CHead c0 _ -_) \Rightarrow c0])) (CHead c1 k u) (CHead d1 (Flat f) u1) H3) in ((let H5 -\def (f_equal C K (\lambda (e: C).(match e in C return (\lambda (_: C).K) -with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) (CHead c1 k -u) (CHead d1 (Flat f) u1) H3) in ((let H6 \def (f_equal C T (\lambda (e: -C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u | -(CHead _ _ t) \Rightarrow t])) (CHead c1 k u) (CHead d1 (Flat f) u1) H3) in -(\lambda (H7: (eq K k (Flat f))).(\lambda (H8: (eq C c1 d1)).(eq_ind_r T u1 -(\lambda (t: T).(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C (CHead c2 -k t) (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d1 -d2))))) (eq_ind_r K (Flat f) (\lambda (k0: K).(ex2_2 C T (\lambda (d2: -C).(\lambda (u2: T).(eq C (CHead c2 k0 u1) (CHead d2 (Flat f) u2)))) (\lambda -(d2: C).(\lambda (_: T).(csuba g d1 d2))))) (let H9 \def (eq_ind C c1 -(\lambda (c0: C).((eq C c0 (CHead d1 (Flat f) u1)) \to (ex2_2 C T (\lambda -(d2: C).(\lambda (u2: T).(eq C c2 (CHead d2 (Flat f) u2)))) (\lambda (d2: -C).(\lambda (_: T).(csuba g d1 d2)))))) H2 d1 H8) in (let H10 \def (eq_ind C -c1 (\lambda (c0: C).(csuba g c0 c2)) H1 d1 H8) in (ex2_2_intro C T (\lambda -(d2: C).(\lambda (u2: T).(eq C (CHead c2 (Flat f) u1) (CHead d2 (Flat f) -u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2))) c2 u1 (refl_equal C -(CHead c2 (Flat f) u1)) H10))) k H7) u H6)))) H5)) H4))))))))) (\lambda (c1: -C).(\lambda (c2: C).(\lambda (_: (csuba g c1 c2)).(\lambda (_: (((eq C c1 -(CHead d1 (Flat f) u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq -C c2 (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d1 -d2))))))).(\lambda (b: B).(\lambda (_: (not (eq B b Void))).(\lambda (u0: -T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c1 (Bind Void) u0) (CHead d1 -(Flat f) u1))).(let H5 \def (eq_ind C (CHead c1 (Bind Void) u0) (\lambda (ee: -C).(match ee in C return (\lambda (_: C).Prop) with [(CSort _) \Rightarrow -False | (CHead _ k _) \Rightarrow (match k in K return (\lambda (_: K).Prop) -with [(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I (CHead d1 -(Flat f) u1) H4) in (False_ind (ex2_2 C T (\lambda (d2: C).(\lambda (u3: -T).(eq C (CHead c2 (Bind b) u2) (CHead d2 (Flat f) u3)))) (\lambda (d2: +u1))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee with +[(CSort _) \Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead d1 +(Flat f) u1) H1) in (False_ind (ex2_2 C T (\lambda (d2: C).(\lambda (u2: +T).(eq C (CSort n) (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: +T).(csuba g d1 d2)))) H2)))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: +(csuba g c1 c2)).(\lambda (H2: (((eq C c1 (CHead d1 (Flat f) u1)) \to (ex2_2 +C T (\lambda (d2: C).(\lambda (u2: T).(eq C c2 (CHead d2 (Flat f) u2)))) +(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2))))))).(\lambda (k: +K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c1 k u) (CHead d1 (Flat f) +u1))).(let H4 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) +\Rightarrow c1 | (CHead c0 _ _) \Rightarrow c0])) (CHead c1 k u) (CHead d1 +(Flat f) u1) H3) in ((let H5 \def (f_equal C K (\lambda (e: C).(match e with +[(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) (CHead c1 k u) +(CHead d1 (Flat f) u1) H3) in ((let H6 \def (f_equal C T (\lambda (e: +C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) +(CHead c1 k u) (CHead d1 (Flat f) u1) H3) in (\lambda (H7: (eq K k (Flat +f))).(\lambda (H8: (eq C c1 d1)).(eq_ind_r T u1 (\lambda (t: T).(ex2_2 C T +(\lambda (d2: C).(\lambda (u2: T).(eq C (CHead c2 k t) (CHead d2 (Flat f) +u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2))))) (eq_ind_r K (Flat +f) (\lambda (k0: K).(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C (CHead +c2 k0 u1) (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g +d1 d2))))) (let H9 \def (eq_ind C c1 (\lambda (c0: C).((eq C c0 (CHead d1 +(Flat f) u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c2 +(CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d1 +d2)))))) H2 d1 H8) in (let H10 \def (eq_ind C c1 (\lambda (c0: C).(csuba g c0 +c2)) H1 d1 H8) in (ex2_2_intro C T (\lambda (d2: C).(\lambda (u2: T).(eq C +(CHead c2 (Flat f) u1) (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda +(_: T).(csuba g d1 d2))) c2 u1 (refl_equal C (CHead c2 (Flat f) u1)) H10))) k +H7) u H6)))) H5)) H4))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: +(csuba g c1 c2)).(\lambda (_: (((eq C c1 (CHead d1 (Flat f) u1)) \to (ex2_2 C +T (\lambda (d2: C).(\lambda (u2: T).(eq C c2 (CHead d2 (Flat f) u2)))) +(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2))))))).(\lambda (b: +B).(\lambda (_: (not (eq B b Void))).(\lambda (u0: T).(\lambda (u2: +T).(\lambda (H4: (eq C (CHead c1 (Bind Void) u0) (CHead d1 (Flat f) +u1))).(let H5 \def (eq_ind C (CHead c1 (Bind Void) u0) (\lambda (ee: +C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow +(match k with [(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I +(CHead d1 (Flat f) u1) H4) in (False_ind (ex2_2 C T (\lambda (d2: C).(\lambda +(u3: T).(eq C (CHead c2 (Bind b) u2) (CHead d2 (Flat f) u3)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2)))) H5))))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: (csuba g c1 c2)).(\lambda (_: (((eq C c1 (CHead d1 (Flat f) u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c2 (CHead d2 @@ -387,16 +379,12 @@ f) u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c2 (CHead d2 d2))))))).(\lambda (t: T).(\lambda (a: A).(\lambda (_: (arity g c1 t (asucc g a))).(\lambda (u: T).(\lambda (_: (arity g c2 u a)).(\lambda (H5: (eq C (CHead c1 (Bind Abst) t) (CHead d1 (Flat f) u1))).(let H6 \def (eq_ind C -(CHead c1 (Bind Abst) t) (\lambda (ee: C).(match ee in C return (\lambda (_: -C).Prop) with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match -k in K return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow True | (Flat -_) \Rightarrow False])])) I (CHead d1 (Flat f) u1) H5) in (False_ind (ex2_2 C -T (\lambda (d2: C).(\lambda (u2: T).(eq C (CHead c2 (Bind Abbr) u) (CHead d2 -(Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2)))) -H6)))))))))))) y c H0))) H)))))). -(* COMMENTS -Initial nodes: 1183 -END *) +(CHead c1 (Bind Abst) t) (\lambda (ee: C).(match ee with [(CSort _) +\Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind _) +\Rightarrow True | (Flat _) \Rightarrow False])])) I (CHead d1 (Flat f) u1) +H5) in (False_ind (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C (CHead +c2 (Bind Abbr) u) (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: +T).(csuba g d1 d2)))) H6)))))))))))) y c H0))) H)))))). theorem csuba_gen_bind: \forall (g: G).(\forall (b1: B).(\forall (e1: C).(\forall (c2: C).(\forall @@ -415,102 +403,94 @@ b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c0 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 e2)))))))) (\lambda (n: nat).(\lambda (H1: (eq C (CSort n) (CHead e1 (Bind b1) v1))).(let H2 \def (eq_ind C (CSort n) -(\lambda (ee: C).(match ee in C return (\lambda (_: C).Prop) with [(CSort _) -\Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead e1 (Bind b1) -v1) H1) in (False_ind (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda -(v2: T).(eq C (CSort n) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda -(e2: C).(\lambda (_: T).(csuba g e1 e2))))) H2)))) (\lambda (c1: C).(\lambda -(c3: C).(\lambda (H1: (csuba g c1 c3)).(\lambda (H2: (((eq C c1 (CHead e1 -(Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda -(v2: T).(eq C c3 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: -C).(\lambda (_: T).(csuba g e1 e2)))))))).(\lambda (k: K).(\lambda (u: -T).(\lambda (H3: (eq C (CHead c1 k u) (CHead e1 (Bind b1) v1))).(let H4 \def -(f_equal C C (\lambda (e: C).(match e in C return (\lambda (_: C).C) with -[(CSort _) \Rightarrow c1 | (CHead c _ _) \Rightarrow c])) (CHead c1 k u) -(CHead e1 (Bind b1) v1) H3) in ((let H5 \def (f_equal C K (\lambda (e: -C).(match e in C return (\lambda (_: C).K) with [(CSort _) \Rightarrow k | -(CHead _ k0 _) \Rightarrow k0])) (CHead c1 k u) (CHead e1 (Bind b1) v1) H3) -in ((let H6 \def (f_equal C T (\lambda (e: C).(match e in C return (\lambda -(_: C).T) with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) -(CHead c1 k u) (CHead e1 (Bind b1) v1) H3) in (\lambda (H7: (eq K k (Bind -b1))).(\lambda (H8: (eq C c1 e1)).(eq_ind_r T v1 (\lambda (t: T).(ex2_3 B C T -(\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C (CHead c3 k t) -(CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: -T).(csuba g e1 e2)))))) (eq_ind_r K (Bind b1) (\lambda (k0: K).(ex2_3 B C T -(\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C (CHead c3 k0 v1) -(CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: -T).(csuba g e1 e2)))))) (let H9 \def (eq_ind C c1 (\lambda (c: C).((eq C c -(CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: -C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind b2) v2))))) (\lambda (_: -B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 e2))))))) H2 e1 H8) in (let -H10 \def (eq_ind C c1 (\lambda (c: C).(csuba g c c3)) H1 e1 H8) in -(ex2_3_intro B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C -(CHead c3 (Bind b1) v1) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda -(e2: C).(\lambda (_: T).(csuba g e1 e2)))) b1 c3 v1 (refl_equal C (CHead c3 -(Bind b1) v1)) H10))) k H7) u H6)))) H5)) H4))))))))) (\lambda (c1: +(\lambda (ee: C).(match ee with [(CSort _) \Rightarrow True | (CHead _ _ _) +\Rightarrow False])) I (CHead e1 (Bind b1) v1) H1) in (False_ind (ex2_3 B C T +(\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C (CSort n) (CHead e2 +(Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g +e1 e2))))) H2)))) (\lambda (c1: C).(\lambda (c3: C).(\lambda (H1: (csuba g c1 +c3)).(\lambda (H2: (((eq C c1 (CHead e1 (Bind b1) v1)) \to (ex2_3 B C T +(\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind +b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 +e2)))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c1 k u) +(CHead e1 (Bind b1) v1))).(let H4 \def (f_equal C C (\lambda (e: C).(match e +with [(CSort _) \Rightarrow c1 | (CHead c _ _) \Rightarrow c])) (CHead c1 k +u) (CHead e1 (Bind b1) v1) H3) in ((let H5 \def (f_equal C K (\lambda (e: +C).(match e with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) +(CHead c1 k u) (CHead e1 (Bind b1) v1) H3) in ((let H6 \def (f_equal C T +(\lambda (e: C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) +\Rightarrow t])) (CHead c1 k u) (CHead e1 (Bind b1) v1) H3) in (\lambda (H7: +(eq K k (Bind b1))).(\lambda (H8: (eq C c1 e1)).(eq_ind_r T v1 (\lambda (t: +T).(ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C +(CHead c3 k t) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: +C).(\lambda (_: T).(csuba g e1 e2)))))) (eq_ind_r K (Bind b1) (\lambda (k0: +K).(ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C +(CHead c3 k0 v1) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: +C).(\lambda (_: T).(csuba g e1 e2)))))) (let H9 \def (eq_ind C c1 (\lambda +(c: C).((eq C c (CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: +B).(\lambda (e2: C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind b2) v2))))) +(\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 e2))))))) H2 e1 +H8) in (let H10 \def (eq_ind C c1 (\lambda (c: C).(csuba g c c3)) H1 e1 H8) +in (ex2_3_intro B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq +C (CHead c3 (Bind b1) v1) (CHead e2 (Bind b2) v2))))) (\lambda (_: +B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 e2)))) b1 c3 v1 (refl_equal C +(CHead c3 (Bind b1) v1)) H10))) k H7) u H6)))) H5)) H4))))))))) (\lambda (c1: C).(\lambda (c3: C).(\lambda (H1: (csuba g c1 c3)).(\lambda (H2: (((eq C c1 (CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 e2)))))))).(\lambda (b: B).(\lambda (_: (not (eq B b Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c1 (Bind Void) u1) (CHead e1 (Bind b1) -v1))).(let H5 \def (f_equal C C (\lambda (e: C).(match e in C return (\lambda -(_: C).C) with [(CSort _) \Rightarrow c1 | (CHead c _ _) \Rightarrow c])) -(CHead c1 (Bind Void) u1) (CHead e1 (Bind b1) v1) H4) in ((let H6 \def -(f_equal C B (\lambda (e: C).(match e in C return (\lambda (_: C).B) with -[(CSort _) \Rightarrow Void | (CHead _ k _) \Rightarrow (match k in K return -(\lambda (_: K).B) with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow -Void])])) (CHead c1 (Bind Void) u1) (CHead e1 (Bind b1) v1) H4) in ((let H7 -\def (f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) -with [(CSort _) \Rightarrow u1 | (CHead _ _ t) \Rightarrow t])) (CHead c1 -(Bind Void) u1) (CHead e1 (Bind b1) v1) H4) in (\lambda (H8: (eq B Void -b1)).(\lambda (H9: (eq C c1 e1)).(let H10 \def (eq_ind C c1 (\lambda (c: -C).((eq C c (CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: -B).(\lambda (e2: C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind b2) v2))))) -(\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 e2))))))) H2 e1 -H9) in (let H11 \def (eq_ind C c1 (\lambda (c: C).(csuba g c c3)) H1 e1 H9) -in (let H12 \def (eq_ind_r B b1 (\lambda (b0: B).((eq C e1 (CHead e1 (Bind -b0) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: +v1))).(let H5 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) +\Rightarrow c1 | (CHead c _ _) \Rightarrow c])) (CHead c1 (Bind Void) u1) +(CHead e1 (Bind b1) v1) H4) in ((let H6 \def (f_equal C B (\lambda (e: +C).(match e with [(CSort _) \Rightarrow Void | (CHead _ k _) \Rightarrow +(match k with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow Void])])) +(CHead c1 (Bind Void) u1) (CHead e1 (Bind b1) v1) H4) in ((let H7 \def +(f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u1 | (CHead +_ _ t) \Rightarrow t])) (CHead c1 (Bind Void) u1) (CHead e1 (Bind b1) v1) H4) +in (\lambda (H8: (eq B Void b1)).(\lambda (H9: (eq C c1 e1)).(let H10 \def +(eq_ind C c1 (\lambda (c: C).((eq C c (CHead e1 (Bind b1) v1)) \to (ex2_3 B C +T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind +b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 +e2))))))) H2 e1 H9) in (let H11 \def (eq_ind C c1 (\lambda (c: C).(csuba g c +c3)) H1 e1 H9) in (let H12 \def (eq_ind_r B b1 (\lambda (b0: B).((eq C e1 +(CHead e1 (Bind b0) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: +C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind b2) v2))))) (\lambda (_: +B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 e2))))))) H10 Void H8) in +(ex2_3_intro B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C +(CHead c3 (Bind b) u2) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda +(e2: C).(\lambda (_: T).(csuba g e1 e2)))) b c3 u2 (refl_equal C (CHead c3 +(Bind b) u2)) H11))))))) H6)) H5))))))))))) (\lambda (c1: C).(\lambda (c3: +C).(\lambda (H1: (csuba g c1 c3)).(\lambda (H2: (((eq C c1 (CHead e1 (Bind +b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: -C).(\lambda (_: T).(csuba g e1 e2))))))) H10 Void H8) in (ex2_3_intro B C T -(\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C (CHead c3 (Bind b) -u2) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: -T).(csuba g e1 e2)))) b c3 u2 (refl_equal C (CHead c3 (Bind b) u2)) -H11))))))) H6)) H5))))))))))) (\lambda (c1: C).(\lambda (c3: C).(\lambda (H1: -(csuba g c1 c3)).(\lambda (H2: (((eq C c1 (CHead e1 (Bind b1) v1)) \to (ex2_3 -B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c3 (CHead e2 -(Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g -e1 e2)))))))).(\lambda (t: T).(\lambda (a: A).(\lambda (H3: (arity g c1 t -(asucc g a))).(\lambda (u: T).(\lambda (_: (arity g c3 u a)).(\lambda (H5: -(eq C (CHead c1 (Bind Abst) t) (CHead e1 (Bind b1) v1))).(let H6 \def -(f_equal C C (\lambda (e: C).(match e in C return (\lambda (_: C).C) with +C).(\lambda (_: T).(csuba g e1 e2)))))))).(\lambda (t: T).(\lambda (a: +A).(\lambda (H3: (arity g c1 t (asucc g a))).(\lambda (u: T).(\lambda (_: +(arity g c3 u a)).(\lambda (H5: (eq C (CHead c1 (Bind Abst) t) (CHead e1 +(Bind b1) v1))).(let H6 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow c1 | (CHead c _ _) \Rightarrow c])) (CHead c1 (Bind Abst) t) (CHead e1 (Bind b1) v1) H5) in ((let H7 \def (f_equal C B (\lambda -(e: C).(match e in C return (\lambda (_: C).B) with [(CSort _) \Rightarrow -Abst | (CHead _ k _) \Rightarrow (match k in K return (\lambda (_: K).B) with -[(Bind b) \Rightarrow b | (Flat _) \Rightarrow Abst])])) (CHead c1 (Bind -Abst) t) (CHead e1 (Bind b1) v1) H5) in ((let H8 \def (f_equal C T (\lambda -(e: C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow t -| (CHead _ _ t0) \Rightarrow t0])) (CHead c1 (Bind Abst) t) (CHead e1 (Bind -b1) v1) H5) in (\lambda (H9: (eq B Abst b1)).(\lambda (H10: (eq C c1 -e1)).(let H11 \def (eq_ind T t (\lambda (t0: T).(arity g c1 t0 (asucc g a))) -H3 v1 H8) in (let H12 \def (eq_ind C c1 (\lambda (c: C).(arity g c v1 (asucc -g a))) H11 e1 H10) in (let H13 \def (eq_ind C c1 (\lambda (c: C).((eq C c -(CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: -C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind b2) v2))))) (\lambda (_: -B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 e2))))))) H2 e1 H10) in (let -H14 \def (eq_ind C c1 (\lambda (c: C).(csuba g c c3)) H1 e1 H10) in (let H15 -\def (eq_ind_r B b1 (\lambda (b: B).((eq C e1 (CHead e1 (Bind b) v1)) \to -(ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c3 -(CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: -T).(csuba g e1 e2))))))) H13 Abst H9) in (ex2_3_intro B C T (\lambda (b2: -B).(\lambda (e2: C).(\lambda (v2: T).(eq C (CHead c3 (Bind Abbr) u) (CHead e2 -(Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g -e1 e2)))) Abbr c3 u (refl_equal C (CHead c3 (Bind Abbr) u)) H14))))))))) H7)) +(e: C).(match e with [(CSort _) \Rightarrow Abst | (CHead _ k _) \Rightarrow +(match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow Abst])])) (CHead +c1 (Bind Abst) t) (CHead e1 (Bind b1) v1) H5) in ((let H8 \def (f_equal C T +(\lambda (e: C).(match e with [(CSort _) \Rightarrow t | (CHead _ _ t0) +\Rightarrow t0])) (CHead c1 (Bind Abst) t) (CHead e1 (Bind b1) v1) H5) in +(\lambda (H9: (eq B Abst b1)).(\lambda (H10: (eq C c1 e1)).(let H11 \def +(eq_ind T t (\lambda (t0: T).(arity g c1 t0 (asucc g a))) H3 v1 H8) in (let +H12 \def (eq_ind C c1 (\lambda (c: C).(arity g c v1 (asucc g a))) H11 e1 H10) +in (let H13 \def (eq_ind C c1 (\lambda (c: C).((eq C c (CHead e1 (Bind b1) +v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq +C c3 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda +(_: T).(csuba g e1 e2))))))) H2 e1 H10) in (let H14 \def (eq_ind C c1 +(\lambda (c: C).(csuba g c c3)) H1 e1 H10) in (let H15 \def (eq_ind_r B b1 +(\lambda (b: B).((eq C e1 (CHead e1 (Bind b) v1)) \to (ex2_3 B C T (\lambda +(b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind b2) +v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 +e2))))))) H13 Abst H9) in (ex2_3_intro B C T (\lambda (b2: B).(\lambda (e2: +C).(\lambda (v2: T).(eq C (CHead c3 (Bind Abbr) u) (CHead e2 (Bind b2) +v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 e2)))) +Abbr c3 u (refl_equal C (CHead c3 (Bind Abbr) u)) H14))))))))) H7)) H6)))))))))))) y c2 H0))) H)))))). -(* COMMENTS -Initial nodes: 1889 -END *) theorem csuba_gen_abst_rev: \forall (g: G).(\forall (d1: C).(\forall (c: C).(\forall (u: T).((csuba g c @@ -531,25 +511,23 @@ c0 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c0 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))))))) (\lambda (n: nat).(\lambda (H1: (eq C (CSort n) (CHead d1 (Bind Abst) u))).(let H2 \def -(eq_ind C (CSort n) (\lambda (ee: C).(match ee in C return (\lambda (_: -C).Prop) with [(CSort _) \Rightarrow True | (CHead _ _ _) \Rightarrow -False])) I (CHead d1 (Bind Abst) u) H1) in (False_ind (or (ex2 C (\lambda -(d2: C).(eq C (CSort n) (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g -d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C (CSort n) (CHead -d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) -H2)))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 -c2)).(\lambda (H2: (((eq C c2 (CHead d1 (Bind Abst) u)) \to (or (ex2 C -(\lambda (d2: C).(eq C c1 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba -g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 -(Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 -d1)))))))).(\lambda (k: K).(\lambda (u0: T).(\lambda (H3: (eq C (CHead c2 k -u0) (CHead d1 (Bind Abst) u))).(let H4 \def (f_equal C C (\lambda (e: -C).(match e in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow c2 | -(CHead c0 _ _) \Rightarrow c0])) (CHead c2 k u0) (CHead d1 (Bind Abst) u) H3) -in ((let H5 \def (f_equal C K (\lambda (e: C).(match e in C return (\lambda -(_: C).K) with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) -(CHead c2 k u0) (CHead d1 (Bind Abst) u) H3) in ((let H6 \def (f_equal C T -(\lambda (e: C).(match e in C return (\lambda (_: C).T) with [(CSort _) +(eq_ind C (CSort n) (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow +True | (CHead _ _ _) \Rightarrow False])) I (CHead d1 (Bind Abst) u) H1) in +(False_ind (or (ex2 C (\lambda (d2: C).(eq C (CSort n) (CHead d2 (Bind Abst) +u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda +(u2: T).(eq C (CSort n) (CHead d2 (Bind Void) u2)))) (\lambda (d2: +C).(\lambda (_: T).(csuba g d2 d1))))) H2)))) (\lambda (c1: C).(\lambda (c2: +C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C c2 (CHead d1 (Bind +Abst) u)) \to (or (ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 (Bind Abst) u))) +(\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: +T).(eq C c1 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: +T).(csuba g d2 d1)))))))).(\lambda (k: K).(\lambda (u0: T).(\lambda (H3: (eq +C (CHead c2 k u0) (CHead d1 (Bind Abst) u))).(let H4 \def (f_equal C C +(\lambda (e: C).(match e with [(CSort _) \Rightarrow c2 | (CHead c0 _ _) +\Rightarrow c0])) (CHead c2 k u0) (CHead d1 (Bind Abst) u) H3) in ((let H5 +\def (f_equal C K (\lambda (e: C).(match e with [(CSort _) \Rightarrow k | +(CHead _ k0 _) \Rightarrow k0])) (CHead c2 k u0) (CHead d1 (Bind Abst) u) H3) +in ((let H6 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) (CHead c2 k u0) (CHead d1 (Bind Abst) u) H3) in (\lambda (H7: (eq K k (Bind Abst))).(\lambda (H8: (eq C c2 d1)).(eq_ind_r T u (\lambda (t: T).(or (ex2 C (\lambda (d2: C).(eq C @@ -579,50 +557,44 @@ C).(\lambda (u2: T).(eq C c1 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))))))).(\lambda (b: B).(\lambda (H3: (not (eq B b Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c2 (Bind b) u2) (CHead d1 (Bind Abst) u))).(let H5 \def (f_equal C C (\lambda -(e: C).(match e in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow c2 -| (CHead c0 _ _) \Rightarrow c0])) (CHead c2 (Bind b) u2) (CHead d1 (Bind -Abst) u) H4) in ((let H6 \def (f_equal C B (\lambda (e: C).(match e in C -return (\lambda (_: C).B) with [(CSort _) \Rightarrow b | (CHead _ k _) -\Rightarrow (match k in K return (\lambda (_: K).B) with [(Bind b0) -\Rightarrow b0 | (Flat _) \Rightarrow b])])) (CHead c2 (Bind b) u2) (CHead d1 -(Bind Abst) u) H4) in ((let H7 \def (f_equal C T (\lambda (e: C).(match e in -C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u2 | (CHead _ _ t) -\Rightarrow t])) (CHead c2 (Bind b) u2) (CHead d1 (Bind Abst) u) H4) in -(\lambda (H8: (eq B b Abst)).(\lambda (H9: (eq C c2 d1)).(let H10 \def -(eq_ind B b (\lambda (b0: B).(not (eq B b0 Void))) H3 Abst H8) in (let H11 -\def (eq_ind C c2 (\lambda (c0: C).((eq C c0 (CHead d1 (Bind Abst) u)) \to -(or (ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 (Bind Abst) u))) (\lambda (d2: -C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u3: T).(eq C c1 -(CHead d2 (Bind Void) u3)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 -d1))))))) H2 d1 H9) in (let H12 \def (eq_ind C c2 (\lambda (c0: C).(csuba g -c1 c0)) H1 d1 H9) in (or_intror (ex2 C (\lambda (d2: C).(eq C (CHead c1 (Bind -Void) u1) (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) -(ex2_2 C T (\lambda (d2: C).(\lambda (u3: T).(eq C (CHead c1 (Bind Void) u1) -(CHead d2 (Bind Void) u3)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 -d1)))) (ex2_2_intro C T (\lambda (d2: C).(\lambda (u3: T).(eq C (CHead c1 -(Bind Void) u1) (CHead d2 (Bind Void) u3)))) (\lambda (d2: C).(\lambda (_: -T).(csuba g d2 d1))) c1 u1 (refl_equal C (CHead c1 (Bind Void) u1)) -H12)))))))) H6)) H5))))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: -(csuba g c1 c2)).(\lambda (_: (((eq C c2 (CHead d1 (Bind Abst) u)) \to (or -(ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 (Bind Abst) u))) (\lambda (d2: -C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 -(CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 -d1)))))))).(\lambda (t: T).(\lambda (a: A).(\lambda (_: (arity g c1 t (asucc -g a))).(\lambda (u0: T).(\lambda (_: (arity g c2 u0 a)).(\lambda (H5: (eq C -(CHead c2 (Bind Abbr) u0) (CHead d1 (Bind Abst) u))).(let H6 \def (eq_ind C -(CHead c2 (Bind Abbr) u0) (\lambda (ee: C).(match ee in C return (\lambda (_: -C).Prop) with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match -k in K return (\lambda (_: K).Prop) with [(Bind b) \Rightarrow (match b in B -return (\lambda (_: B).Prop) with [Abbr \Rightarrow True | Abst \Rightarrow -False | Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead -d1 (Bind Abst) u) H5) in (False_ind (or (ex2 C (\lambda (d2: C).(eq C (CHead -c1 (Bind Abst) t) (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 -d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C (CHead c1 (Bind -Abst) t) (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba -g d2 d1))))) H6)))))))))))) c y H0))) H))))). -(* COMMENTS -Initial nodes: 1980 -END *) +(e: C).(match e with [(CSort _) \Rightarrow c2 | (CHead c0 _ _) \Rightarrow +c0])) (CHead c2 (Bind b) u2) (CHead d1 (Bind Abst) u) H4) in ((let H6 \def +(f_equal C B (\lambda (e: C).(match e with [(CSort _) \Rightarrow b | (CHead +_ k _) \Rightarrow (match k with [(Bind b0) \Rightarrow b0 | (Flat _) +\Rightarrow b])])) (CHead c2 (Bind b) u2) (CHead d1 (Bind Abst) u) H4) in +((let H7 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) +\Rightarrow u2 | (CHead _ _ t) \Rightarrow t])) (CHead c2 (Bind b) u2) (CHead +d1 (Bind Abst) u) H4) in (\lambda (H8: (eq B b Abst)).(\lambda (H9: (eq C c2 +d1)).(let H10 \def (eq_ind B b (\lambda (b0: B).(not (eq B b0 Void))) H3 Abst +H8) in (let H11 \def (eq_ind C c2 (\lambda (c0: C).((eq C c0 (CHead d1 (Bind +Abst) u)) \to (or (ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 (Bind Abst) u))) +(\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u3: +T).(eq C c1 (CHead d2 (Bind Void) u3)))) (\lambda (d2: C).(\lambda (_: +T).(csuba g d2 d1))))))) H2 d1 H9) in (let H12 \def (eq_ind C c2 (\lambda +(c0: C).(csuba g c1 c0)) H1 d1 H9) in (or_intror (ex2 C (\lambda (d2: C).(eq +C (CHead c1 (Bind Void) u1) (CHead d2 (Bind Abst) u))) (\lambda (d2: +C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u3: T).(eq C +(CHead c1 (Bind Void) u1) (CHead d2 (Bind Void) u3)))) (\lambda (d2: +C).(\lambda (_: T).(csuba g d2 d1)))) (ex2_2_intro C T (\lambda (d2: +C).(\lambda (u3: T).(eq C (CHead c1 (Bind Void) u1) (CHead d2 (Bind Void) +u3)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))) c1 u1 (refl_equal C +(CHead c1 (Bind Void) u1)) H12)))))))) H6)) H5))))))))))) (\lambda (c1: +C).(\lambda (c2: C).(\lambda (_: (csuba g c1 c2)).(\lambda (_: (((eq C c2 +(CHead d1 (Bind Abst) u)) \to (or (ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 +(Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: +C).(\lambda (u2: T).(eq C c1 (CHead d2 (Bind Void) u2)))) (\lambda (d2: +C).(\lambda (_: T).(csuba g d2 d1)))))))).(\lambda (t: T).(\lambda (a: +A).(\lambda (_: (arity g c1 t (asucc g a))).(\lambda (u0: T).(\lambda (_: +(arity g c2 u0 a)).(\lambda (H5: (eq C (CHead c2 (Bind Abbr) u0) (CHead d1 +(Bind Abst) u))).(let H6 \def (eq_ind C (CHead c2 (Bind Abbr) u0) (\lambda +(ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) +\Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr +\Rightarrow True | Abst \Rightarrow False | Void \Rightarrow False]) | (Flat +_) \Rightarrow False])])) I (CHead d1 (Bind Abst) u) H5) in (False_ind (or +(ex2 C (\lambda (d2: C).(eq C (CHead c1 (Bind Abst) t) (CHead d2 (Bind Abst) +u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda +(u2: T).(eq C (CHead c1 (Bind Abst) t) (CHead d2 (Bind Void) u2)))) (\lambda +(d2: C).(\lambda (_: T).(csuba g d2 d1))))) H6)))))))))))) c y H0))) H))))). theorem csuba_gen_void_rev: \forall (g: G).(\forall (d1: C).(\forall (c: C).(\forall (u: T).((csuba g c @@ -637,73 +609,63 @@ C c (CHead d2 (Bind Void) u))) (\lambda (d2: C).(csuba g d2 d1)))) (\lambda (c1: C).((eq C c1 (CHead d1 (Bind Void) u)) \to (ex2 C (\lambda (d2: C).(eq C c0 (CHead d2 (Bind Void) u))) (\lambda (d2: C).(csuba g d2 d1)))))) (\lambda (n: nat).(\lambda (H1: (eq C (CSort n) (CHead d1 (Bind Void) u))).(let H2 -\def (eq_ind C (CSort n) (\lambda (ee: C).(match ee in C return (\lambda (_: -C).Prop) with [(CSort _) \Rightarrow True | (CHead _ _ _) \Rightarrow -False])) I (CHead d1 (Bind Void) u) H1) in (False_ind (ex2 C (\lambda (d2: -C).(eq C (CSort n) (CHead d2 (Bind Void) u))) (\lambda (d2: C).(csuba g d2 -d1))) H2)))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 -c2)).(\lambda (H2: (((eq C c2 (CHead d1 (Bind Void) u)) \to (ex2 C (\lambda -(d2: C).(eq C c1 (CHead d2 (Bind Void) u))) (\lambda (d2: C).(csuba g d2 -d1)))))).(\lambda (k: K).(\lambda (u0: T).(\lambda (H3: (eq C (CHead c2 k u0) -(CHead d1 (Bind Void) u))).(let H4 \def (f_equal C C (\lambda (e: C).(match e -in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow c2 | (CHead c0 _ -_) \Rightarrow c0])) (CHead c2 k u0) (CHead d1 (Bind Void) u) H3) in ((let H5 -\def (f_equal C K (\lambda (e: C).(match e in C return (\lambda (_: C).K) +\def (eq_ind C (CSort n) (\lambda (ee: C).(match ee with [(CSort _) +\Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead d1 (Bind Void) +u) H1) in (False_ind (ex2 C (\lambda (d2: C).(eq C (CSort n) (CHead d2 (Bind +Void) u))) (\lambda (d2: C).(csuba g d2 d1))) H2)))) (\lambda (c1: +C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C c2 +(CHead d1 (Bind Void) u)) \to (ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 +(Bind Void) u))) (\lambda (d2: C).(csuba g d2 d1)))))).(\lambda (k: +K).(\lambda (u0: T).(\lambda (H3: (eq C (CHead c2 k u0) (CHead d1 (Bind Void) +u))).(let H4 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) +\Rightarrow c2 | (CHead c0 _ _) \Rightarrow c0])) (CHead c2 k u0) (CHead d1 +(Bind Void) u) H3) in ((let H5 \def (f_equal C K (\lambda (e: C).(match e with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) (CHead c2 k u0) (CHead d1 (Bind Void) u) H3) in ((let H6 \def (f_equal C T (\lambda (e: -C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u0 | -(CHead _ _ t) \Rightarrow t])) (CHead c2 k u0) (CHead d1 (Bind Void) u) H3) -in (\lambda (H7: (eq K k (Bind Void))).(\lambda (H8: (eq C c2 d1)).(eq_ind_r -T u (\lambda (t: T).(ex2 C (\lambda (d2: C).(eq C (CHead c1 k t) (CHead d2 -(Bind Void) u))) (\lambda (d2: C).(csuba g d2 d1)))) (eq_ind_r K (Bind Void) -(\lambda (k0: K).(ex2 C (\lambda (d2: C).(eq C (CHead c1 k0 u) (CHead d2 -(Bind Void) u))) (\lambda (d2: C).(csuba g d2 d1)))) (let H9 \def (eq_ind C -c2 (\lambda (c0: C).((eq C c0 (CHead d1 (Bind Void) u)) \to (ex2 C (\lambda -(d2: C).(eq C c1 (CHead d2 (Bind Void) u))) (\lambda (d2: C).(csuba g d2 -d1))))) H2 d1 H8) in (let H10 \def (eq_ind C c2 (\lambda (c0: C).(csuba g c1 -c0)) H1 d1 H8) in (ex_intro2 C (\lambda (d2: C).(eq C (CHead c1 (Bind Void) -u) (CHead d2 (Bind Void) u))) (\lambda (d2: C).(csuba g d2 d1)) c1 -(refl_equal C (CHead c1 (Bind Void) u)) H10))) k H7) u0 H6)))) H5)) -H4))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 -c2)).(\lambda (H2: (((eq C c2 (CHead d1 (Bind Void) u)) \to (ex2 C (\lambda -(d2: C).(eq C c1 (CHead d2 (Bind Void) u))) (\lambda (d2: C).(csuba g d2 -d1)))))).(\lambda (b: B).(\lambda (H3: (not (eq B b Void))).(\lambda (u1: -T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c2 (Bind b) u2) (CHead d1 -(Bind Void) u))).(let H5 \def (f_equal C C (\lambda (e: C).(match e in C -return (\lambda (_: C).C) with [(CSort _) \Rightarrow c2 | (CHead c0 _ _) -\Rightarrow c0])) (CHead c2 (Bind b) u2) (CHead d1 (Bind Void) u) H4) in -((let H6 \def (f_equal C B (\lambda (e: C).(match e in C return (\lambda (_: -C).B) with [(CSort _) \Rightarrow b | (CHead _ k _) \Rightarrow (match k in K -return (\lambda (_: K).B) with [(Bind b0) \Rightarrow b0 | (Flat _) +C).(match e with [(CSort _) \Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) +(CHead c2 k u0) (CHead d1 (Bind Void) u) H3) in (\lambda (H7: (eq K k (Bind +Void))).(\lambda (H8: (eq C c2 d1)).(eq_ind_r T u (\lambda (t: T).(ex2 C +(\lambda (d2: C).(eq C (CHead c1 k t) (CHead d2 (Bind Void) u))) (\lambda +(d2: C).(csuba g d2 d1)))) (eq_ind_r K (Bind Void) (\lambda (k0: K).(ex2 C +(\lambda (d2: C).(eq C (CHead c1 k0 u) (CHead d2 (Bind Void) u))) (\lambda +(d2: C).(csuba g d2 d1)))) (let H9 \def (eq_ind C c2 (\lambda (c0: C).((eq C +c0 (CHead d1 (Bind Void) u)) \to (ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 +(Bind Void) u))) (\lambda (d2: C).(csuba g d2 d1))))) H2 d1 H8) in (let H10 +\def (eq_ind C c2 (\lambda (c0: C).(csuba g c1 c0)) H1 d1 H8) in (ex_intro2 C +(\lambda (d2: C).(eq C (CHead c1 (Bind Void) u) (CHead d2 (Bind Void) u))) +(\lambda (d2: C).(csuba g d2 d1)) c1 (refl_equal C (CHead c1 (Bind Void) u)) +H10))) k H7) u0 H6)))) H5)) H4))))))))) (\lambda (c1: C).(\lambda (c2: +C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C c2 (CHead d1 (Bind +Void) u)) \to (ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 (Bind Void) u))) +(\lambda (d2: C).(csuba g d2 d1)))))).(\lambda (b: B).(\lambda (H3: (not (eq +B b Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c2 +(Bind b) u2) (CHead d1 (Bind Void) u))).(let H5 \def (f_equal C C (\lambda +(e: C).(match e with [(CSort _) \Rightarrow c2 | (CHead c0 _ _) \Rightarrow +c0])) (CHead c2 (Bind b) u2) (CHead d1 (Bind Void) u) H4) in ((let H6 \def +(f_equal C B (\lambda (e: C).(match e with [(CSort _) \Rightarrow b | (CHead +_ k _) \Rightarrow (match k with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow b])])) (CHead c2 (Bind b) u2) (CHead d1 (Bind Void) u) H4) in -((let H7 \def (f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: -C).T) with [(CSort _) \Rightarrow u2 | (CHead _ _ t) \Rightarrow t])) (CHead -c2 (Bind b) u2) (CHead d1 (Bind Void) u) H4) in (\lambda (H8: (eq B b -Void)).(\lambda (H9: (eq C c2 d1)).(let H10 \def (eq_ind B b (\lambda (b0: -B).(not (eq B b0 Void))) H3 Void H8) in (let H11 \def (eq_ind C c2 (\lambda -(c0: C).((eq C c0 (CHead d1 (Bind Void) u)) \to (ex2 C (\lambda (d2: C).(eq C -c1 (CHead d2 (Bind Void) u))) (\lambda (d2: C).(csuba g d2 d1))))) H2 d1 H9) -in (let H12 \def (eq_ind C c2 (\lambda (c0: C).(csuba g c1 c0)) H1 d1 H9) in -(let H13 \def (match (H10 (refl_equal B Void)) in False return (\lambda (_: -False).(ex2 C (\lambda (d2: C).(eq C (CHead c1 (Bind Void) u1) (CHead d2 -(Bind Void) u))) (\lambda (d2: C).(csuba g d2 d1)))) with []) in H13))))))) -H6)) H5))))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: (csuba g c1 -c2)).(\lambda (_: (((eq C c2 (CHead d1 (Bind Void) u)) \to (ex2 C (\lambda -(d2: C).(eq C c1 (CHead d2 (Bind Void) u))) (\lambda (d2: C).(csuba g d2 -d1)))))).(\lambda (t: T).(\lambda (a: A).(\lambda (_: (arity g c1 t (asucc g -a))).(\lambda (u0: T).(\lambda (_: (arity g c2 u0 a)).(\lambda (H5: (eq C -(CHead c2 (Bind Abbr) u0) (CHead d1 (Bind Void) u))).(let H6 \def (eq_ind C -(CHead c2 (Bind Abbr) u0) (\lambda (ee: C).(match ee in C return (\lambda (_: -C).Prop) with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match -k in K return (\lambda (_: K).Prop) with [(Bind b) \Rightarrow (match b in B -return (\lambda (_: B).Prop) with [Abbr \Rightarrow True | Abst \Rightarrow -False | Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead -d1 (Bind Void) u) H5) in (False_ind (ex2 C (\lambda (d2: C).(eq C (CHead c1 -(Bind Abst) t) (CHead d2 (Bind Void) u))) (\lambda (d2: C).(csuba g d2 d1))) -H6)))))))))))) c y H0))) H))))). -(* COMMENTS -Initial nodes: 1326 -END *) +((let H7 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) +\Rightarrow u2 | (CHead _ _ t) \Rightarrow t])) (CHead c2 (Bind b) u2) (CHead +d1 (Bind Void) u) H4) in (\lambda (H8: (eq B b Void)).(\lambda (H9: (eq C c2 +d1)).(let H10 \def (eq_ind B b (\lambda (b0: B).(not (eq B b0 Void))) H3 Void +H8) in (let H11 \def (eq_ind C c2 (\lambda (c0: C).((eq C c0 (CHead d1 (Bind +Void) u)) \to (ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 (Bind Void) u))) +(\lambda (d2: C).(csuba g d2 d1))))) H2 d1 H9) in (let H12 \def (eq_ind C c2 +(\lambda (c0: C).(csuba g c1 c0)) H1 d1 H9) in (let H13 \def (match (H10 +(refl_equal B Void)) in False with []) in H13))))))) H6)) H5))))))))))) +(\lambda (c1: C).(\lambda (c2: C).(\lambda (_: (csuba g c1 c2)).(\lambda (_: +(((eq C c2 (CHead d1 (Bind Void) u)) \to (ex2 C (\lambda (d2: C).(eq C c1 +(CHead d2 (Bind Void) u))) (\lambda (d2: C).(csuba g d2 d1)))))).(\lambda (t: +T).(\lambda (a: A).(\lambda (_: (arity g c1 t (asucc g a))).(\lambda (u0: +T).(\lambda (_: (arity g c2 u0 a)).(\lambda (H5: (eq C (CHead c2 (Bind Abbr) +u0) (CHead d1 (Bind Void) u))).(let H6 \def (eq_ind C (CHead c2 (Bind Abbr) +u0) (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k +_) \Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr +\Rightarrow True | Abst \Rightarrow False | Void \Rightarrow False]) | (Flat +_) \Rightarrow False])])) I (CHead d1 (Bind Void) u) H5) in (False_ind (ex2 C +(\lambda (d2: C).(eq C (CHead c1 (Bind Abst) t) (CHead d2 (Bind Void) u))) +(\lambda (d2: C).(csuba g d2 d1))) H6)))))))))))) c y H0))) H))))). theorem csuba_gen_abbr_rev: \forall (g: G).(\forall (d1: C).(\forall (c: C).(\forall (u1: T).((csuba g c @@ -736,34 +698,32 @@ A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c0 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))))))) (\lambda (n: nat).(\lambda (H1: (eq C (CSort n) (CHead d1 (Bind -Abbr) u1))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee in C -return (\lambda (_: C).Prop) with [(CSort _) \Rightarrow True | (CHead _ _ _) -\Rightarrow False])) I (CHead d1 (Bind Abbr) u1) H1) in (False_ind (or3 (ex2 -C (\lambda (d2: C).(eq C (CSort n) (CHead d2 (Bind Abbr) u1))) (\lambda (d2: -C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda -(_: A).(eq C (CSort n) (CHead d2 (Bind Abst) u2))))) (\lambda (d2: -C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: -C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda -(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 C T -(\lambda (d2: C).(\lambda (u2: T).(eq C (CSort n) (CHead d2 (Bind Void) -u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) H2)))) (\lambda -(c1: C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C -c2 (CHead d1 (Bind Abbr) u1)) \to (or3 (ex2 C (\lambda (d2: C).(eq C c1 -(CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A -(\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C c1 (CHead d2 (Bind -Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 -d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 +Abbr) u1))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee with +[(CSort _) \Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead d1 +(Bind Abbr) u1) H1) in (False_ind (or3 (ex2 C (\lambda (d2: C).(eq C (CSort +n) (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T +A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C (CSort n) (CHead d2 +(Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g +d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 -u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 -(Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 -d1)))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c2 k u) -(CHead d1 (Bind Abbr) u1))).(let H4 \def (f_equal C C (\lambda (e: C).(match -e in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow c2 | (CHead c0 _ -_) \Rightarrow c0])) (CHead c2 k u) (CHead d1 (Bind Abbr) u1) H3) in ((let H5 -\def (f_equal C K (\lambda (e: C).(match e in C return (\lambda (_: C).K) -with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) (CHead c2 k -u) (CHead d1 (Bind Abbr) u1) H3) in ((let H6 \def (f_equal C T (\lambda (e: -C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u | +u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C (CSort n) (CHead +d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) +H2)))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 +c2)).(\lambda (H2: (((eq C c2 (CHead d1 (Bind Abbr) u1)) \to (or3 (ex2 C +(\lambda (d2: C).(eq C c1 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba +g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq +C c1 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda +(_: A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: +A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda +(a: A).(arity g d1 u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq +C c1 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g +d2 d1)))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c2 k +u) (CHead d1 (Bind Abbr) u1))).(let H4 \def (f_equal C C (\lambda (e: +C).(match e with [(CSort _) \Rightarrow c2 | (CHead c0 _ _) \Rightarrow c0])) +(CHead c2 k u) (CHead d1 (Bind Abbr) u1) H3) in ((let H5 \def (f_equal C K +(\lambda (e: C).(match e with [(CSort _) \Rightarrow k | (CHead _ k0 _) +\Rightarrow k0])) (CHead c2 k u) (CHead d1 (Bind Abbr) u1) H3) in ((let H6 +\def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) (CHead c2 k u) (CHead d1 (Bind Abbr) u1) H3) in (\lambda (H7: (eq K k (Bind Abbr))).(\lambda (H8: (eq C c2 d1)).(eq_ind_r T u1 (\lambda (t: T).(or3 (ex2 C (\lambda (d2: C).(eq C (CHead c1 k t) (CHead @@ -815,73 +775,71 @@ a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))))))).(\lambda (b: B).(\lambda (H3: (not (eq B b Void))).(\lambda (u0: T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c2 (Bind b) u2) (CHead d1 (Bind Abbr) -u1))).(let H5 \def (f_equal C C (\lambda (e: C).(match e in C return (\lambda -(_: C).C) with [(CSort _) \Rightarrow c2 | (CHead c0 _ _) \Rightarrow c0])) -(CHead c2 (Bind b) u2) (CHead d1 (Bind Abbr) u1) H4) in ((let H6 \def -(f_equal C B (\lambda (e: C).(match e in C return (\lambda (_: C).B) with -[(CSort _) \Rightarrow b | (CHead _ k _) \Rightarrow (match k in K return -(\lambda (_: K).B) with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow -b])])) (CHead c2 (Bind b) u2) (CHead d1 (Bind Abbr) u1) H4) in ((let H7 \def -(f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) with -[(CSort _) \Rightarrow u2 | (CHead _ _ t) \Rightarrow t])) (CHead c2 (Bind b) -u2) (CHead d1 (Bind Abbr) u1) H4) in (\lambda (H8: (eq B b Abbr)).(\lambda -(H9: (eq C c2 d1)).(let H10 \def (eq_ind B b (\lambda (b0: B).(not (eq B b0 -Void))) H3 Abbr H8) in (let H11 \def (eq_ind C c2 (\lambda (c0: C).((eq C c0 -(CHead d1 (Bind Abbr) u1)) \to (or3 (ex2 C (\lambda (d2: C).(eq C c1 (CHead -d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda -(d2: C).(\lambda (u3: T).(\lambda (_: A).(eq C c1 (CHead d2 (Bind Abst) -u3))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) -(\lambda (d2: C).(\lambda (u3: T).(\lambda (a: A).(arity g d2 u3 (asucc g -a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) -(ex2_2 C T (\lambda (d2: C).(\lambda (u3: T).(eq C c1 (CHead d2 (Bind Void) -u3)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))))) H2 d1 H9) in -(let H12 \def (eq_ind C c2 (\lambda (c0: C).(csuba g c1 c0)) H1 d1 H9) in -(or3_intro2 (ex2 C (\lambda (d2: C).(eq C (CHead c1 (Bind Void) u0) (CHead d2 -(Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda -(d2: C).(\lambda (u3: T).(\lambda (_: A).(eq C (CHead c1 (Bind Void) u0) -(CHead d2 (Bind Abst) u3))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: -A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u3: T).(\lambda (a: -A).(arity g d2 u3 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda -(a: A).(arity g d1 u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u3: T).(eq +u1))).(let H5 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) +\Rightarrow c2 | (CHead c0 _ _) \Rightarrow c0])) (CHead c2 (Bind b) u2) +(CHead d1 (Bind Abbr) u1) H4) in ((let H6 \def (f_equal C B (\lambda (e: +C).(match e with [(CSort _) \Rightarrow b | (CHead _ k _) \Rightarrow (match +k with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow b])])) (CHead c2 +(Bind b) u2) (CHead d1 (Bind Abbr) u1) H4) in ((let H7 \def (f_equal C T +(\lambda (e: C).(match e with [(CSort _) \Rightarrow u2 | (CHead _ _ t) +\Rightarrow t])) (CHead c2 (Bind b) u2) (CHead d1 (Bind Abbr) u1) H4) in +(\lambda (H8: (eq B b Abbr)).(\lambda (H9: (eq C c2 d1)).(let H10 \def +(eq_ind B b (\lambda (b0: B).(not (eq B b0 Void))) H3 Abbr H8) in (let H11 +\def (eq_ind C c2 (\lambda (c0: C).((eq C c0 (CHead d1 (Bind Abbr) u1)) \to +(or3 (ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 (Bind Abbr) u1))) (\lambda +(d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u3: +T).(\lambda (_: A).(eq C c1 (CHead d2 (Bind Abst) u3))))) (\lambda (d2: +C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: +C).(\lambda (u3: T).(\lambda (a: A).(arity g d2 u3 (asucc g a))))) (\lambda +(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 C T +(\lambda (d2: C).(\lambda (u3: T).(eq C c1 (CHead d2 (Bind Void) u3)))) +(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))))) H2 d1 H9) in (let H12 +\def (eq_ind C c2 (\lambda (c0: C).(csuba g c1 c0)) H1 d1 H9) in (or3_intro2 +(ex2 C (\lambda (d2: C).(eq C (CHead c1 (Bind Void) u0) (CHead d2 (Bind Abbr) +u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: +C).(\lambda (u3: T).(\lambda (_: A).(eq C (CHead c1 (Bind Void) u0) (CHead d2 +(Bind Abst) u3))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g +d2 d1)))) (\lambda (d2: C).(\lambda (u3: T).(\lambda (a: A).(arity g d2 u3 +(asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 +u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u3: T).(eq C (CHead c1 (Bind +Void) u0) (CHead d2 (Bind Void) u3)))) (\lambda (d2: C).(\lambda (_: +T).(csuba g d2 d1)))) (ex2_2_intro C T (\lambda (d2: C).(\lambda (u3: T).(eq C (CHead c1 (Bind Void) u0) (CHead d2 (Bind Void) u3)))) (\lambda (d2: -C).(\lambda (_: T).(csuba g d2 d1)))) (ex2_2_intro C T (\lambda (d2: -C).(\lambda (u3: T).(eq C (CHead c1 (Bind Void) u0) (CHead d2 (Bind Void) -u3)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))) c1 u0 (refl_equal C -(CHead c1 (Bind Void) u0)) H12)))))))) H6)) H5))))))))))) (\lambda (c1: -C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C c2 -(CHead d1 (Bind Abbr) u1)) \to (or3 (ex2 C (\lambda (d2: C).(eq C c1 (CHead -d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda -(d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C c1 (CHead d2 (Bind Abst) -u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) -(\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g -a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) -(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 (Bind Void) -u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))))))).(\lambda (t: +C).(\lambda (_: T).(csuba g d2 d1))) c1 u0 (refl_equal C (CHead c1 (Bind +Void) u0)) H12)))))))) H6)) H5))))))))))) (\lambda (c1: C).(\lambda (c2: +C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C c2 (CHead d1 (Bind +Abbr) u1)) \to (or3 (ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 (Bind Abbr) +u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: +C).(\lambda (u2: T).(\lambda (_: A).(eq C c1 (CHead d2 (Bind Abst) u2))))) +(\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda +(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) +(\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 +C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 (Bind Void) u2)))) +(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))))))).(\lambda (t: T).(\lambda (a: A).(\lambda (H3: (arity g c1 t (asucc g a))).(\lambda (u: T).(\lambda (H4: (arity g c2 u a)).(\lambda (H5: (eq C (CHead c2 (Bind Abbr) u) (CHead d1 (Bind Abbr) u1))).(let H6 \def (f_equal C C (\lambda (e: -C).(match e in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow c2 | -(CHead c0 _ _) \Rightarrow c0])) (CHead c2 (Bind Abbr) u) (CHead d1 (Bind -Abbr) u1) H5) in ((let H7 \def (f_equal C T (\lambda (e: C).(match e in C -return (\lambda (_: C).T) with [(CSort _) \Rightarrow u | (CHead _ _ t0) -\Rightarrow t0])) (CHead c2 (Bind Abbr) u) (CHead d1 (Bind Abbr) u1) H5) in -(\lambda (H8: (eq C c2 d1)).(let H9 \def (eq_ind T u (\lambda (t0: T).(arity -g c2 t0 a)) H4 u1 H7) in (let H10 \def (eq_ind C c2 (\lambda (c0: C).(arity g -c0 u1 a)) H9 d1 H8) in (let H11 \def (eq_ind C c2 (\lambda (c0: C).((eq C c0 -(CHead d1 (Bind Abbr) u1)) \to (or3 (ex2 C (\lambda (d2: C).(eq C c1 (CHead -d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda -(d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C c1 (CHead d2 (Bind Abst) -u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) -(\lambda (d2: C).(\lambda (u2: T).(\lambda (a0: A).(arity g d2 u2 (asucc g -a0))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(arity g d1 u1 -a0))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 (Bind -Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))))) H2 d1 H8) -in (let H12 \def (eq_ind C c2 (\lambda (c0: C).(csuba g c1 c0)) H1 d1 H8) in -(or3_intro1 (ex2 C (\lambda (d2: C).(eq C (CHead c1 (Bind Abst) t) (CHead d2 -(Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda -(d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C (CHead c1 (Bind Abst) t) -(CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: -A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a0: +C).(match e with [(CSort _) \Rightarrow c2 | (CHead c0 _ _) \Rightarrow c0])) +(CHead c2 (Bind Abbr) u) (CHead d1 (Bind Abbr) u1) H5) in ((let H7 \def +(f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | (CHead +_ _ t0) \Rightarrow t0])) (CHead c2 (Bind Abbr) u) (CHead d1 (Bind Abbr) u1) +H5) in (\lambda (H8: (eq C c2 d1)).(let H9 \def (eq_ind T u (\lambda (t0: +T).(arity g c2 t0 a)) H4 u1 H7) in (let H10 \def (eq_ind C c2 (\lambda (c0: +C).(arity g c0 u1 a)) H9 d1 H8) in (let H11 \def (eq_ind C c2 (\lambda (c0: +C).((eq C c0 (CHead d1 (Bind Abbr) u1)) \to (or3 (ex2 C (\lambda (d2: C).(eq +C c1 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C +T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C c1 (CHead d2 +(Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g +d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a0: A).(arity g d2 u2 +(asucc g a0))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(arity g d1 +u1 a0))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 +(Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))))) H2 +d1 H8) in (let H12 \def (eq_ind C c2 (\lambda (c0: C).(csuba g c1 c0)) H1 d1 +H8) in (or3_intro1 (ex2 C (\lambda (d2: C).(eq C (CHead c1 (Bind Abst) t) +(CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A +(\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C (CHead c1 (Bind Abst) +t) (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda +(_: A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a0: A).(arity g d2 u2 (asucc g a0))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(arity g d1 u1 a0))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C (CHead c1 (Bind Abst) t) (CHead d2 (Bind Void) u2)))) (\lambda (d2: @@ -892,9 +850,6 @@ d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a0: A).(arity g d2 u2 (asucc g a0))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(arity g d1 u1 a0)))) c1 t a (refl_equal C (CHead c1 (Bind Abst) t)) H12 H3 H10)))))))) H6)))))))))))) c y H0))) H))))). -(* COMMENTS -Initial nodes: 3459 -END *) theorem csuba_gen_flat_rev: \forall (g: G).(\forall (d1: C).(\forall (c: C).(\forall (u1: T).(\forall @@ -911,64 +866,58 @@ d1 (Flat f) u1) (\lambda (c0: C).(csuba g c c0)) (\lambda (_: C).(ex2_2 C T (CHead d1 (Flat f) u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c0 (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))))) (\lambda (n: nat).(\lambda (H1: (eq C (CSort n) (CHead d1 (Flat f) -u1))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee in C return -(\lambda (_: C).Prop) with [(CSort _) \Rightarrow True | (CHead _ _ _) -\Rightarrow False])) I (CHead d1 (Flat f) u1) H1) in (False_ind (ex2_2 C T -(\lambda (d2: C).(\lambda (u2: T).(eq C (CSort n) (CHead d2 (Flat f) u2)))) -(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))) H2)))) (\lambda (c1: -C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C c2 -(CHead d1 (Flat f) u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq -C c1 (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 -d1))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c2 k u) -(CHead d1 (Flat f) u1))).(let H4 \def (f_equal C C (\lambda (e: C).(match e -in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow c2 | (CHead c0 _ -_) \Rightarrow c0])) (CHead c2 k u) (CHead d1 (Flat f) u1) H3) in ((let H5 -\def (f_equal C K (\lambda (e: C).(match e in C return (\lambda (_: C).K) -with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) (CHead c2 k -u) (CHead d1 (Flat f) u1) H3) in ((let H6 \def (f_equal C T (\lambda (e: -C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u | -(CHead _ _ t) \Rightarrow t])) (CHead c2 k u) (CHead d1 (Flat f) u1) H3) in -(\lambda (H7: (eq K k (Flat f))).(\lambda (H8: (eq C c2 d1)).(eq_ind_r T u1 -(\lambda (t: T).(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C (CHead c1 -k t) (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 -d1))))) (eq_ind_r K (Flat f) (\lambda (k0: K).(ex2_2 C T (\lambda (d2: -C).(\lambda (u2: T).(eq C (CHead c1 k0 u1) (CHead d2 (Flat f) u2)))) (\lambda -(d2: C).(\lambda (_: T).(csuba g d2 d1))))) (let H9 \def (eq_ind C c2 -(\lambda (c0: C).((eq C c0 (CHead d1 (Flat f) u1)) \to (ex2_2 C T (\lambda -(d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 (Flat f) u2)))) (\lambda (d2: -C).(\lambda (_: T).(csuba g d2 d1)))))) H2 d1 H8) in (let H10 \def (eq_ind C -c2 (\lambda (c0: C).(csuba g c1 c0)) H1 d1 H8) in (ex2_2_intro C T (\lambda -(d2: C).(\lambda (u2: T).(eq C (CHead c1 (Flat f) u1) (CHead d2 (Flat f) -u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))) c1 u1 (refl_equal C -(CHead c1 (Flat f) u1)) H10))) k H7) u H6)))) H5)) H4))))))))) (\lambda (c1: -C).(\lambda (c2: C).(\lambda (_: (csuba g c1 c2)).(\lambda (_: (((eq C c2 -(CHead d1 (Flat f) u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq -C c1 (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 -d1))))))).(\lambda (b: B).(\lambda (_: (not (eq B b Void))).(\lambda (u0: -T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c2 (Bind b) u2) (CHead d1 -(Flat f) u1))).(let H5 \def (eq_ind C (CHead c2 (Bind b) u2) (\lambda (ee: -C).(match ee in C return (\lambda (_: C).Prop) with [(CSort _) \Rightarrow -False | (CHead _ k _) \Rightarrow (match k in K return (\lambda (_: K).Prop) -with [(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I (CHead d1 -(Flat f) u1) H4) in (False_ind (ex2_2 C T (\lambda (d2: C).(\lambda (u3: -T).(eq C (CHead c1 (Bind Void) u0) (CHead d2 (Flat f) u3)))) (\lambda (d2: -C).(\lambda (_: T).(csuba g d2 d1)))) H5))))))))))) (\lambda (c1: C).(\lambda -(c2: C).(\lambda (_: (csuba g c1 c2)).(\lambda (_: (((eq C c2 (CHead d1 (Flat -f) u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 +u1))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee with +[(CSort _) \Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead d1 +(Flat f) u1) H1) in (False_ind (ex2_2 C T (\lambda (d2: C).(\lambda (u2: +T).(eq C (CSort n) (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: +T).(csuba g d2 d1)))) H2)))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: +(csuba g c1 c2)).(\lambda (H2: (((eq C c2 (CHead d1 (Flat f) u1)) \to (ex2_2 +C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 (Flat f) u2)))) +(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))))).(\lambda (k: +K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c2 k u) (CHead d1 (Flat f) +u1))).(let H4 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) +\Rightarrow c2 | (CHead c0 _ _) \Rightarrow c0])) (CHead c2 k u) (CHead d1 +(Flat f) u1) H3) in ((let H5 \def (f_equal C K (\lambda (e: C).(match e with +[(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) (CHead c2 k u) +(CHead d1 (Flat f) u1) H3) in ((let H6 \def (f_equal C T (\lambda (e: +C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) +(CHead c2 k u) (CHead d1 (Flat f) u1) H3) in (\lambda (H7: (eq K k (Flat +f))).(\lambda (H8: (eq C c2 d1)).(eq_ind_r T u1 (\lambda (t: T).(ex2_2 C T +(\lambda (d2: C).(\lambda (u2: T).(eq C (CHead c1 k t) (CHead d2 (Flat f) +u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (eq_ind_r K (Flat +f) (\lambda (k0: K).(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C (CHead +c1 k0 u1) (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g +d2 d1))))) (let H9 \def (eq_ind C c2 (\lambda (c0: C).((eq C c0 (CHead d1 +(Flat f) u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 +(CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 +d1)))))) H2 d1 H8) in (let H10 \def (eq_ind C c2 (\lambda (c0: C).(csuba g c1 +c0)) H1 d1 H8) in (ex2_2_intro C T (\lambda (d2: C).(\lambda (u2: T).(eq C +(CHead c1 (Flat f) u1) (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda +(_: T).(csuba g d2 d1))) c1 u1 (refl_equal C (CHead c1 (Flat f) u1)) H10))) k +H7) u H6)))) H5)) H4))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: +(csuba g c1 c2)).(\lambda (_: (((eq C c2 (CHead d1 (Flat f) u1)) \to (ex2_2 C +T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 (Flat f) u2)))) +(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))))).(\lambda (b: +B).(\lambda (_: (not (eq B b Void))).(\lambda (u0: T).(\lambda (u2: +T).(\lambda (H4: (eq C (CHead c2 (Bind b) u2) (CHead d1 (Flat f) u1))).(let +H5 \def (eq_ind C (CHead c2 (Bind b) u2) (\lambda (ee: C).(match ee with +[(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind +_) \Rightarrow True | (Flat _) \Rightarrow False])])) I (CHead d1 (Flat f) +u1) H4) in (False_ind (ex2_2 C T (\lambda (d2: C).(\lambda (u3: T).(eq C +(CHead c1 (Bind Void) u0) (CHead d2 (Flat f) u3)))) (\lambda (d2: C).(\lambda +(_: T).(csuba g d2 d1)))) H5))))))))))) (\lambda (c1: C).(\lambda (c2: +C).(\lambda (_: (csuba g c1 c2)).(\lambda (_: (((eq C c2 (CHead d1 (Flat f) +u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))))).(\lambda (t: T).(\lambda (a: A).(\lambda (_: (arity g c1 t (asucc g a))).(\lambda (u: T).(\lambda (_: (arity g c2 u a)).(\lambda (H5: (eq C (CHead c2 (Bind Abbr) u) (CHead d1 (Flat f) u1))).(let H6 \def (eq_ind C -(CHead c2 (Bind Abbr) u) (\lambda (ee: C).(match ee in C return (\lambda (_: -C).Prop) with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match -k in K return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow True | (Flat -_) \Rightarrow False])])) I (CHead d1 (Flat f) u1) H5) in (False_ind (ex2_2 C -T (\lambda (d2: C).(\lambda (u2: T).(eq C (CHead c1 (Bind Abst) t) (CHead d2 -(Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))) -H6)))))))))))) c y H0))) H)))))). -(* COMMENTS -Initial nodes: 1183 -END *) +(CHead c2 (Bind Abbr) u) (\lambda (ee: C).(match ee with [(CSort _) +\Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind _) +\Rightarrow True | (Flat _) \Rightarrow False])])) I (CHead d1 (Flat f) u1) +H5) in (False_ind (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C (CHead +c1 (Bind Abst) t) (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: +T).(csuba g d2 d1)))) H6)))))))))))) c y H0))) H)))))). theorem csuba_gen_bind_rev: \forall (g: G).(\forall (b1: B).(\forall (e1: C).(\forall (c2: C).(\forall @@ -987,97 +936,89 @@ b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 e1)))))))) (\lambda (n: nat).(\lambda (H1: (eq C (CSort n) (CHead e1 (Bind b1) v1))).(let H2 \def (eq_ind C (CSort n) -(\lambda (ee: C).(match ee in C return (\lambda (_: C).Prop) with [(CSort _) -\Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead e1 (Bind b1) -v1) H1) in (False_ind (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda -(v2: T).(eq C (CSort n) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda -(e2: C).(\lambda (_: T).(csuba g e2 e1))))) H2)))) (\lambda (c1: C).(\lambda -(c3: C).(\lambda (H1: (csuba g c1 c3)).(\lambda (H2: (((eq C c3 (CHead e1 -(Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda -(v2: T).(eq C c1 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: -C).(\lambda (_: T).(csuba g e2 e1)))))))).(\lambda (k: K).(\lambda (u: -T).(\lambda (H3: (eq C (CHead c3 k u) (CHead e1 (Bind b1) v1))).(let H4 \def -(f_equal C C (\lambda (e: C).(match e in C return (\lambda (_: C).C) with -[(CSort _) \Rightarrow c3 | (CHead c _ _) \Rightarrow c])) (CHead c3 k u) -(CHead e1 (Bind b1) v1) H3) in ((let H5 \def (f_equal C K (\lambda (e: -C).(match e in C return (\lambda (_: C).K) with [(CSort _) \Rightarrow k | -(CHead _ k0 _) \Rightarrow k0])) (CHead c3 k u) (CHead e1 (Bind b1) v1) H3) -in ((let H6 \def (f_equal C T (\lambda (e: C).(match e in C return (\lambda -(_: C).T) with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) -(CHead c3 k u) (CHead e1 (Bind b1) v1) H3) in (\lambda (H7: (eq K k (Bind -b1))).(\lambda (H8: (eq C c3 e1)).(eq_ind_r T v1 (\lambda (t: T).(ex2_3 B C T -(\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C (CHead c1 k t) -(CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: -T).(csuba g e2 e1)))))) (eq_ind_r K (Bind b1) (\lambda (k0: K).(ex2_3 B C T -(\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C (CHead c1 k0 v1) -(CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: -T).(csuba g e2 e1)))))) (let H9 \def (eq_ind C c3 (\lambda (c: C).((eq C c -(CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: -C).(\lambda (v2: T).(eq C c1 (CHead e2 (Bind b2) v2))))) (\lambda (_: -B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 e1))))))) H2 e1 H8) in (let -H10 \def (eq_ind C c3 (\lambda (c: C).(csuba g c1 c)) H1 e1 H8) in -(ex2_3_intro B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C -(CHead c1 (Bind b1) v1) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda -(e2: C).(\lambda (_: T).(csuba g e2 e1)))) b1 c1 v1 (refl_equal C (CHead c1 -(Bind b1) v1)) H10))) k H7) u H6)))) H5)) H4))))))))) (\lambda (c1: +(\lambda (ee: C).(match ee with [(CSort _) \Rightarrow True | (CHead _ _ _) +\Rightarrow False])) I (CHead e1 (Bind b1) v1) H1) in (False_ind (ex2_3 B C T +(\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C (CSort n) (CHead e2 +(Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g +e2 e1))))) H2)))) (\lambda (c1: C).(\lambda (c3: C).(\lambda (H1: (csuba g c1 +c3)).(\lambda (H2: (((eq C c3 (CHead e1 (Bind b1) v1)) \to (ex2_3 B C T +(\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c1 (CHead e2 (Bind +b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 +e1)))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c3 k u) +(CHead e1 (Bind b1) v1))).(let H4 \def (f_equal C C (\lambda (e: C).(match e +with [(CSort _) \Rightarrow c3 | (CHead c _ _) \Rightarrow c])) (CHead c3 k +u) (CHead e1 (Bind b1) v1) H3) in ((let H5 \def (f_equal C K (\lambda (e: +C).(match e with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) +(CHead c3 k u) (CHead e1 (Bind b1) v1) H3) in ((let H6 \def (f_equal C T +(\lambda (e: C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) +\Rightarrow t])) (CHead c3 k u) (CHead e1 (Bind b1) v1) H3) in (\lambda (H7: +(eq K k (Bind b1))).(\lambda (H8: (eq C c3 e1)).(eq_ind_r T v1 (\lambda (t: +T).(ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C +(CHead c1 k t) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: +C).(\lambda (_: T).(csuba g e2 e1)))))) (eq_ind_r K (Bind b1) (\lambda (k0: +K).(ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C +(CHead c1 k0 v1) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: +C).(\lambda (_: T).(csuba g e2 e1)))))) (let H9 \def (eq_ind C c3 (\lambda +(c: C).((eq C c (CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: +B).(\lambda (e2: C).(\lambda (v2: T).(eq C c1 (CHead e2 (Bind b2) v2))))) +(\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 e1))))))) H2 e1 +H8) in (let H10 \def (eq_ind C c3 (\lambda (c: C).(csuba g c1 c)) H1 e1 H8) +in (ex2_3_intro B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq +C (CHead c1 (Bind b1) v1) (CHead e2 (Bind b2) v2))))) (\lambda (_: +B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 e1)))) b1 c1 v1 (refl_equal C +(CHead c1 (Bind b1) v1)) H10))) k H7) u H6)))) H5)) H4))))))))) (\lambda (c1: C).(\lambda (c3: C).(\lambda (H1: (csuba g c1 c3)).(\lambda (H2: (((eq C c3 (CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c1 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 e1)))))))).(\lambda (b: B).(\lambda (H3: (not (eq B b Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c3 (Bind b) u2) (CHead e1 (Bind b1) v1))).(let -H5 \def (f_equal C C (\lambda (e: C).(match e in C return (\lambda (_: C).C) -with [(CSort _) \Rightarrow c3 | (CHead c _ _) \Rightarrow c])) (CHead c3 -(Bind b) u2) (CHead e1 (Bind b1) v1) H4) in ((let H6 \def (f_equal C B -(\lambda (e: C).(match e in C return (\lambda (_: C).B) with [(CSort _) -\Rightarrow b | (CHead _ k _) \Rightarrow (match k in K return (\lambda (_: -K).B) with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow b])])) (CHead c3 -(Bind b) u2) (CHead e1 (Bind b1) v1) H4) in ((let H7 \def (f_equal C T -(\lambda (e: C).(match e in C return (\lambda (_: C).T) with [(CSort _) -\Rightarrow u2 | (CHead _ _ t) \Rightarrow t])) (CHead c3 (Bind b) u2) (CHead -e1 (Bind b1) v1) H4) in (\lambda (H8: (eq B b b1)).(\lambda (H9: (eq C c3 -e1)).(let H10 \def (eq_ind B b (\lambda (b0: B).(not (eq B b0 Void))) H3 b1 -H8) in (let H11 \def (eq_ind C c3 (\lambda (c: C).((eq C c (CHead e1 (Bind -b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: -T).(eq C c1 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: -C).(\lambda (_: T).(csuba g e2 e1))))))) H2 e1 H9) in (let H12 \def (eq_ind C -c3 (\lambda (c: C).(csuba g c1 c)) H1 e1 H9) in (ex2_3_intro B C T (\lambda -(b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C (CHead c1 (Bind Void) u1) +H5 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow c3 +| (CHead c _ _) \Rightarrow c])) (CHead c3 (Bind b) u2) (CHead e1 (Bind b1) +v1) H4) in ((let H6 \def (f_equal C B (\lambda (e: C).(match e with [(CSort +_) \Rightarrow b | (CHead _ k _) \Rightarrow (match k with [(Bind b0) +\Rightarrow b0 | (Flat _) \Rightarrow b])])) (CHead c3 (Bind b) u2) (CHead e1 +(Bind b1) v1) H4) in ((let H7 \def (f_equal C T (\lambda (e: C).(match e with +[(CSort _) \Rightarrow u2 | (CHead _ _ t) \Rightarrow t])) (CHead c3 (Bind b) +u2) (CHead e1 (Bind b1) v1) H4) in (\lambda (H8: (eq B b b1)).(\lambda (H9: +(eq C c3 e1)).(let H10 \def (eq_ind B b (\lambda (b0: B).(not (eq B b0 +Void))) H3 b1 H8) in (let H11 \def (eq_ind C c3 (\lambda (c: C).((eq C c +(CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: +C).(\lambda (v2: T).(eq C c1 (CHead e2 (Bind b2) v2))))) (\lambda (_: +B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 e1))))))) H2 e1 H9) in (let +H12 \def (eq_ind C c3 (\lambda (c: C).(csuba g c1 c)) H1 e1 H9) in +(ex2_3_intro B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C +(CHead c1 (Bind Void) u1) (CHead e2 (Bind b2) v2))))) (\lambda (_: +B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 e1)))) Void c1 u1 (refl_equal +C (CHead c1 (Bind Void) u1)) H12))))))) H6)) H5))))))))))) (\lambda (c1: +C).(\lambda (c3: C).(\lambda (H1: (csuba g c1 c3)).(\lambda (H2: (((eq C c3 +(CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: +C).(\lambda (v2: T).(eq C c1 (CHead e2 (Bind b2) v2))))) (\lambda (_: +B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 e1)))))))).(\lambda (t: +T).(\lambda (a: A).(\lambda (_: (arity g c1 t (asucc g a))).(\lambda (u: +T).(\lambda (H4: (arity g c3 u a)).(\lambda (H5: (eq C (CHead c3 (Bind Abbr) +u) (CHead e1 (Bind b1) v1))).(let H6 \def (f_equal C C (\lambda (e: C).(match +e with [(CSort _) \Rightarrow c3 | (CHead c _ _) \Rightarrow c])) (CHead c3 +(Bind Abbr) u) (CHead e1 (Bind b1) v1) H5) in ((let H7 \def (f_equal C B +(\lambda (e: C).(match e with [(CSort _) \Rightarrow Abbr | (CHead _ k _) +\Rightarrow (match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow +Abbr])])) (CHead c3 (Bind Abbr) u) (CHead e1 (Bind b1) v1) H5) in ((let H8 +\def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | +(CHead _ _ t0) \Rightarrow t0])) (CHead c3 (Bind Abbr) u) (CHead e1 (Bind b1) +v1) H5) in (\lambda (H9: (eq B Abbr b1)).(\lambda (H10: (eq C c3 e1)).(let +H11 \def (eq_ind T u (\lambda (t0: T).(arity g c3 t0 a)) H4 v1 H8) in (let +H12 \def (eq_ind C c3 (\lambda (c: C).(arity g c v1 a)) H11 e1 H10) in (let +H13 \def (eq_ind C c3 (\lambda (c: C).((eq C c (CHead e1 (Bind b1) v1)) \to +(ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c1 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: -T).(csuba g e2 e1)))) Void c1 u1 (refl_equal C (CHead c1 (Bind Void) u1)) -H12))))))) H6)) H5))))))))))) (\lambda (c1: C).(\lambda (c3: C).(\lambda (H1: -(csuba g c1 c3)).(\lambda (H2: (((eq C c3 (CHead e1 (Bind b1) v1)) \to (ex2_3 -B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c1 (CHead e2 -(Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g -e2 e1)))))))).(\lambda (t: T).(\lambda (a: A).(\lambda (_: (arity g c1 t -(asucc g a))).(\lambda (u: T).(\lambda (H4: (arity g c3 u a)).(\lambda (H5: -(eq C (CHead c3 (Bind Abbr) u) (CHead e1 (Bind b1) v1))).(let H6 \def -(f_equal C C (\lambda (e: C).(match e in C return (\lambda (_: C).C) with -[(CSort _) \Rightarrow c3 | (CHead c _ _) \Rightarrow c])) (CHead c3 (Bind -Abbr) u) (CHead e1 (Bind b1) v1) H5) in ((let H7 \def (f_equal C B (\lambda -(e: C).(match e in C return (\lambda (_: C).B) with [(CSort _) \Rightarrow -Abbr | (CHead _ k _) \Rightarrow (match k in K return (\lambda (_: K).B) with -[(Bind b) \Rightarrow b | (Flat _) \Rightarrow Abbr])])) (CHead c3 (Bind -Abbr) u) (CHead e1 (Bind b1) v1) H5) in ((let H8 \def (f_equal C T (\lambda -(e: C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u -| (CHead _ _ t0) \Rightarrow t0])) (CHead c3 (Bind Abbr) u) (CHead e1 (Bind -b1) v1) H5) in (\lambda (H9: (eq B Abbr b1)).(\lambda (H10: (eq C c3 -e1)).(let H11 \def (eq_ind T u (\lambda (t0: T).(arity g c3 t0 a)) H4 v1 H8) -in (let H12 \def (eq_ind C c3 (\lambda (c: C).(arity g c v1 a)) H11 e1 H10) -in (let H13 \def (eq_ind C c3 (\lambda (c: C).((eq C c (CHead e1 (Bind b1) -v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq -C c1 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda -(_: T).(csuba g e2 e1))))))) H2 e1 H10) in (let H14 \def (eq_ind C c3 -(\lambda (c: C).(csuba g c1 c)) H1 e1 H10) in (let H15 \def (eq_ind_r B b1 -(\lambda (b: B).((eq C e1 (CHead e1 (Bind b) v1)) \to (ex2_3 B C T (\lambda -(b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c1 (CHead e2 (Bind b2) -v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 -e1))))))) H13 Abbr H9) in (ex2_3_intro B C T (\lambda (b2: B).(\lambda (e2: -C).(\lambda (v2: T).(eq C (CHead c1 (Bind Abst) t) (CHead e2 (Bind b2) -v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 e1)))) -Abst c1 t (refl_equal C (CHead c1 (Bind Abst) t)) H14))))))))) H7)) -H6)))))))))))) c2 y H0))) H)))))). -(* COMMENTS -Initial nodes: 1831 -END *) +T).(csuba g e2 e1))))))) H2 e1 H10) in (let H14 \def (eq_ind C c3 (\lambda +(c: C).(csuba g c1 c)) H1 e1 H10) in (let H15 \def (eq_ind_r B b1 (\lambda +(b: B).((eq C e1 (CHead e1 (Bind b) v1)) \to (ex2_3 B C T (\lambda (b2: +B).(\lambda (e2: C).(\lambda (v2: T).(eq C c1 (CHead e2 (Bind b2) v2))))) +(\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 e1))))))) H13 +Abbr H9) in (ex2_3_intro B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda +(v2: T).(eq C (CHead c1 (Bind Abst) t) (CHead e2 (Bind b2) v2))))) (\lambda +(_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 e1)))) Abst c1 t +(refl_equal C (CHead c1 (Bind Abst) t)) H14))))))))) H7)) H6)))))))))))) c2 y +H0))) H)))))). diff --git a/matita/matita/contribs/lambdadelta/basic_1/csuba/getl.ma b/matita/matita/contribs/lambdadelta/basic_1/csuba/getl.ma index b49d9b7c2..3299f3091 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/csuba/getl.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/csuba/getl.ma @@ -14,11 +14,11 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/csuba/drop.ma". +include "basic_1/csuba/drop.ma". -include "Basic-1/csuba/clear.ma". +include "basic_1/csuba/clear.ma". -include "Basic-1/getl/clear.ma". +include "basic_1/getl/clear.ma". theorem csuba_getl_abbr: \forall (g: G).(\forall (c1: C).(\forall (d1: C).(\forall (u: T).(\forall @@ -51,26 +51,24 @@ C).((csuba g c1 c2) \to (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))))))) (\lambda (b: B).(\lambda (H5: (drop i O c1 (CHead x0 (Bind b) t))).(\lambda (H6: (clear (CHead x0 (Bind b) t) (CHead d1 (Bind Abbr) u))).(let H7 \def (f_equal C C (\lambda (e: -C).(match e in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow d1 | -(CHead c _ _) \Rightarrow c])) (CHead d1 (Bind Abbr) u) (CHead x0 (Bind b) t) -(clear_gen_bind b x0 (CHead d1 (Bind Abbr) u) t H6)) in ((let H8 \def -(f_equal C B (\lambda (e: C).(match e in C return (\lambda (_: C).B) with -[(CSort _) \Rightarrow Abbr | (CHead _ k0 _) \Rightarrow (match k0 in K -return (\lambda (_: K).B) with [(Bind b0) \Rightarrow b0 | (Flat _) -\Rightarrow Abbr])])) (CHead d1 (Bind Abbr) u) (CHead x0 (Bind b) t) -(clear_gen_bind b x0 (CHead d1 (Bind Abbr) u) t H6)) in ((let H9 \def -(f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) with -[(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) (CHead d1 (Bind +C).(match e with [(CSort _) \Rightarrow d1 | (CHead c _ _) \Rightarrow c])) +(CHead d1 (Bind Abbr) u) (CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 +(Bind Abbr) u) t H6)) in ((let H8 \def (f_equal C B (\lambda (e: C).(match e +with [(CSort _) \Rightarrow Abbr | (CHead _ k0 _) \Rightarrow (match k0 with +[(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow Abbr])])) (CHead d1 (Bind Abbr) u) (CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abbr) u) -t H6)) in (\lambda (H10: (eq B Abbr b)).(\lambda (H11: (eq C d1 x0)).(\lambda -(c2: C).(\lambda (H12: (csuba g c1 c2)).(let H13 \def (eq_ind_r T t (\lambda -(t0: T).(drop i O c1 (CHead x0 (Bind b) t0))) H5 u H9) in (let H14 \def -(eq_ind_r B b (\lambda (b0: B).(drop i O c1 (CHead x0 (Bind b0) u))) H13 Abbr -H10) in (let H15 \def (eq_ind_r C x0 (\lambda (c: C).(drop i O c1 (CHead c -(Bind Abbr) u))) H14 d1 H11) in (let H16 \def (csuba_drop_abbr i c1 d1 u H15 -g c2 H12) in (ex2_ind C (\lambda (d2: C).(drop i O c2 (CHead d2 (Bind Abbr) -u))) (\lambda (d2: C).(csuba g d1 d2)) (ex2 C (\lambda (d2: C).(getl i c2 -(CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2))) (\lambda (x1: +t H6)) in ((let H9 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) +\Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) (CHead d1 (Bind Abbr) u) +(CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abbr) u) t H6)) in +(\lambda (H10: (eq B Abbr b)).(\lambda (H11: (eq C d1 x0)).(\lambda (c2: +C).(\lambda (H12: (csuba g c1 c2)).(let H13 \def (eq_ind_r T t (\lambda (t0: +T).(drop i O c1 (CHead x0 (Bind b) t0))) H5 u H9) in (let H14 \def (eq_ind_r +B b (\lambda (b0: B).(drop i O c1 (CHead x0 (Bind b0) u))) H13 Abbr H10) in +(let H15 \def (eq_ind_r C x0 (\lambda (c: C).(drop i O c1 (CHead c (Bind +Abbr) u))) H14 d1 H11) in (let H16 \def (csuba_drop_abbr i c1 d1 u H15 g c2 +H12) in (ex2_ind C (\lambda (d2: C).(drop i O c2 (CHead d2 (Bind Abbr) u))) +(\lambda (d2: C).(csuba g d1 d2)) (ex2 C (\lambda (d2: C).(getl i c2 (CHead +d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2))) (\lambda (x1: C).(\lambda (H17: (drop i O c2 (CHead x1 (Bind Abbr) u))).(\lambda (H18: (csuba g d1 x1)).(ex_intro2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)) x1 (getl_intro i c2 (CHead x1 @@ -135,9 +133,6 @@ x9)).(ex_intro2 C (\lambda (d2: C).(getl (S n) c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)) x9 (getl_clear_bind x6 c2 x7 x8 H20 (CHead x9 (Bind Abbr) u) n H22) H23)))) H21)))))))) H17)))))) H14))))))) H11)))))))) i) H7))))) k H3 H4))))))) x H1 H2)))) H0))))))). -(* COMMENTS -Initial nodes: 2319 -END *) theorem csuba_getl_abst: \forall (g: G).(\forall (c1: C).(\forall (d1: C).(\forall (u1: T).(\forall @@ -196,84 +191,83 @@ d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a))))))))))) (\lambda (b: B).(\lambda (H5: (drop i O c1 (CHead x0 (Bind b) t))).(\lambda (H6: (clear (CHead x0 (Bind b) t) (CHead d1 (Bind Abst) -u1))).(let H7 \def (f_equal C C (\lambda (e: C).(match e in C return (\lambda -(_: C).C) with [(CSort _) \Rightarrow d1 | (CHead c _ _) \Rightarrow c])) -(CHead d1 (Bind Abst) u1) (CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead -d1 (Bind Abst) u1) t H6)) in ((let H8 \def (f_equal C B (\lambda (e: -C).(match e in C return (\lambda (_: C).B) with [(CSort _) \Rightarrow Abst | -(CHead _ k0 _) \Rightarrow (match k0 in K return (\lambda (_: K).B) with -[(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow Abst])])) (CHead d1 (Bind -Abst) u1) (CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abst) -u1) t H6)) in ((let H9 \def (f_equal C T (\lambda (e: C).(match e in C return -(\lambda (_: C).T) with [(CSort _) \Rightarrow u1 | (CHead _ _ t0) -\Rightarrow t0])) (CHead d1 (Bind Abst) u1) (CHead x0 (Bind b) t) -(clear_gen_bind b x0 (CHead d1 (Bind Abst) u1) t H6)) in (\lambda (H10: (eq B -Abst b)).(\lambda (H11: (eq C d1 x0)).(\lambda (c2: C).(\lambda (H12: (csuba -g c1 c2)).(let H13 \def (eq_ind_r T t (\lambda (t0: T).(drop i O c1 (CHead x0 -(Bind b) t0))) H5 u1 H9) in (let H14 \def (eq_ind_r B b (\lambda (b0: -B).(drop i O c1 (CHead x0 (Bind b0) u1))) H13 Abst H10) in (let H15 \def -(eq_ind_r C x0 (\lambda (c: C).(drop i O c1 (CHead c (Bind Abst) u1))) H14 d1 -H11) in (let H16 \def (csuba_drop_abst i c1 d1 u1 H15 g c2 H12) in (or_ind -(ex2 C (\lambda (d2: C).(drop i O c2 (CHead d2 (Bind Abst) u1))) (\lambda -(d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: -T).(\lambda (_: A).(drop i O c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: -C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: +u1))).(let H7 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) +\Rightarrow d1 | (CHead c _ _) \Rightarrow c])) (CHead d1 (Bind Abst) u1) +(CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abst) u1) t H6)) +in ((let H8 \def (f_equal C B (\lambda (e: C).(match e with [(CSort _) +\Rightarrow Abst | (CHead _ k0 _) \Rightarrow (match k0 with [(Bind b0) +\Rightarrow b0 | (Flat _) \Rightarrow Abst])])) (CHead d1 (Bind Abst) u1) +(CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abst) u1) t H6)) +in ((let H9 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) +\Rightarrow u1 | (CHead _ _ t0) \Rightarrow t0])) (CHead d1 (Bind Abst) u1) +(CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abst) u1) t H6)) +in (\lambda (H10: (eq B Abst b)).(\lambda (H11: (eq C d1 x0)).(\lambda (c2: +C).(\lambda (H12: (csuba g c1 c2)).(let H13 \def (eq_ind_r T t (\lambda (t0: +T).(drop i O c1 (CHead x0 (Bind b) t0))) H5 u1 H9) in (let H14 \def (eq_ind_r +B b (\lambda (b0: B).(drop i O c1 (CHead x0 (Bind b0) u1))) H13 Abst H10) in +(let H15 \def (eq_ind_r C x0 (\lambda (c: C).(drop i O c1 (CHead c (Bind +Abst) u1))) H14 d1 H11) in (let H16 \def (csuba_drop_abst i c1 d1 u1 H15 g c2 +H12) in (or_ind (ex2 C (\lambda (d2: C).(drop i O c2 (CHead d2 (Bind Abst) +u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: +C).(\lambda (u2: T).(\lambda (_: A).(drop i O c2 (CHead d2 (Bind Abbr) +u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) +(\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g +a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 +a))))) (or (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u1))) +(\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda +(u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abbr) u2))))) (\lambda +(d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda -(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a))))) (or (ex2 C +(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))))) (\lambda +(H17: (ex2 C (\lambda (d2: C).(drop i O c2 (CHead d2 (Bind Abst) u1))) +(\lambda (d2: C).(csuba g d1 d2)))).(ex2_ind C (\lambda (d2: C).(drop i O c2 +(CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2)) (or (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda -(u2: T).(\lambda (a: A).(arity g d2 u2 a)))))) (\lambda (H17: (ex2 C (\lambda -(d2: C).(drop i O c2 (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 -d2)))).(ex2_ind C (\lambda (d2: C).(drop i O c2 (CHead d2 (Bind Abst) u1))) -(\lambda (d2: C).(csuba g d1 d2)) (or (ex2 C (\lambda (d2: C).(getl i c2 -(CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A -(\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind -Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 -d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc -g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 -a)))))) (\lambda (x1: C).(\lambda (H18: (drop i O c2 (CHead x1 (Bind Abst) -u1))).(\lambda (H19: (csuba g d1 x1)).(or_introl (ex2 C (\lambda (d2: -C).(getl i c2 (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) -(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 +(u2: T).(\lambda (a: A).(arity g d2 u2 a)))))) (\lambda (x1: C).(\lambda +(H18: (drop i O c2 (CHead x1 (Bind Abst) u1))).(\lambda (H19: (csuba g d1 +x1)).(or_introl (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) +u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: +C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abbr) u2))))) +(\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda +(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) +(\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a))))) +(ex_intro2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u1))) (\lambda +(d2: C).(csuba g d1 d2)) x1 (getl_intro i c2 (CHead x1 (Bind Abst) u1) (CHead +x1 (Bind Abst) u1) H18 (clear_bind Abst x1 u1)) H19))))) H17)) (\lambda (H17: +(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(drop i O c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: -A).(arity g d2 u2 a))))) (ex_intro2 C (\lambda (d2: C).(getl i c2 (CHead d2 -(Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2)) x1 (getl_intro i c2 -(CHead x1 (Bind Abst) u1) (CHead x1 (Bind Abst) u1) H18 (clear_bind Abst x1 -u1)) H19))))) H17)) (\lambda (H17: (ex4_3 C T A (\lambda (d2: C).(\lambda -(u2: T).(\lambda (_: A).(drop i O c2 (CHead d2 (Bind Abbr) u2))))) (\lambda -(d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: -C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda -(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))))).(ex4_3_ind C -T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(drop i O c2 (CHead d2 -(Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g -d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 -(asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 -u2 a)))) (or (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u1))) -(\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda -(u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abbr) u2))))) (\lambda -(d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: +A).(arity g d2 u2 a)))))).(ex4_3_ind C T A (\lambda (d2: C).(\lambda (u2: +T).(\lambda (_: A).(drop i O c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: +C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda -(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))))) (\lambda (x1: -C).(\lambda (x2: T).(\lambda (x3: A).(\lambda (H18: (drop i O c2 (CHead x1 -(Bind Abbr) x2))).(\lambda (H19: (csuba g d1 x1)).(\lambda (H20: (arity g d1 -u1 (asucc g x3))).(\lambda (H21: (arity g x1 x2 x3)).(or_intror (ex2 C +(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))) (or (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda -(u2: T).(\lambda (a: A).(arity g d2 u2 a))))) (ex4_3_intro C T A (\lambda -(d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abbr) -u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) -(\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g -a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))) -x1 x2 x3 (getl_intro i c2 (CHead x1 (Bind Abbr) x2) (CHead x1 (Bind Abbr) x2) -H18 (clear_bind Abbr x1 x2)) H19 H20 H21))))))))) H17)) H16)))))))))) H8)) +(u2: T).(\lambda (a: A).(arity g d2 u2 a)))))) (\lambda (x1: C).(\lambda (x2: +T).(\lambda (x3: A).(\lambda (H18: (drop i O c2 (CHead x1 (Bind Abbr) +x2))).(\lambda (H19: (csuba g d1 x1)).(\lambda (H20: (arity g d1 u1 (asucc g +x3))).(\lambda (H21: (arity g x1 x2 x3)).(or_intror (ex2 C (\lambda (d2: +C).(getl i c2 (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) +(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 +(CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: +A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity +g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: +A).(arity g d2 u2 a))))) (ex4_3_intro C T A (\lambda (d2: C).(\lambda (u2: +T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: +C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: +C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda +(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))) x1 x2 x3 +(getl_intro i c2 (CHead x1 (Bind Abbr) x2) (CHead x1 (Bind Abbr) x2) H18 +(clear_bind Abbr x1 x2)) H19 H20 H21))))))))) H17)) H16)))))))))) H8)) H7))))) (\lambda (f: F).(\lambda (H5: (drop i O c1 (CHead x0 (Flat f) t))).(\lambda (H6: (clear (CHead x0 (Flat f) t) (CHead d1 (Bind Abst) u1))).(let H7 \def H5 in (unintro C c1 (\lambda (c: C).((drop i O c (CHead x0 @@ -473,9 +467,6 @@ T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda c2 x7 x8 H20 (CHead x9 (Bind Abbr) x10) n H23) H24 H25 H26))))))))) H22)) H21)))))))) H17)))))) H14))))))) H11)))))))) i) H7))))) k H3 H4))))))) x H1 H2)))) H0))))))). -(* COMMENTS -Initial nodes: 6437 -END *) theorem csuba_getl_abst_rev: \forall (g: G).(\forall (c1: C).(\forall (d1: C).(\forall (u: T).(\forall @@ -519,194 +510,189 @@ C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))))))))) (\lambda (b: B).(\lambda (H5: (drop i O c1 (CHead x0 (Bind b) t))).(\lambda (H6: (clear (CHead x0 (Bind b) t) (CHead d1 (Bind Abst) u))).(let H7 \def (f_equal C C -(\lambda (e: C).(match e in C return (\lambda (_: C).C) with [(CSort _) -\Rightarrow d1 | (CHead c _ _) \Rightarrow c])) (CHead d1 (Bind Abst) u) -(CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abst) u) t H6)) in -((let H8 \def (f_equal C B (\lambda (e: C).(match e in C return (\lambda (_: -C).B) with [(CSort _) \Rightarrow Abst | (CHead _ k0 _) \Rightarrow (match k0 -in K return (\lambda (_: K).B) with [(Bind b0) \Rightarrow b0 | (Flat _) -\Rightarrow Abst])])) (CHead d1 (Bind Abst) u) (CHead x0 (Bind b) t) +(\lambda (e: C).(match e with [(CSort _) \Rightarrow d1 | (CHead c _ _) +\Rightarrow c])) (CHead d1 (Bind Abst) u) (CHead x0 (Bind b) t) +(clear_gen_bind b x0 (CHead d1 (Bind Abst) u) t H6)) in ((let H8 \def +(f_equal C B (\lambda (e: C).(match e with [(CSort _) \Rightarrow Abst | +(CHead _ k0 _) \Rightarrow (match k0 with [(Bind b0) \Rightarrow b0 | (Flat +_) \Rightarrow Abst])])) (CHead d1 (Bind Abst) u) (CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abst) u) t H6)) in ((let H9 \def -(f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) with -[(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) (CHead d1 (Bind -Abst) u) (CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abst) u) -t H6)) in (\lambda (H10: (eq B Abst b)).(\lambda (H11: (eq C d1 x0)).(\lambda -(c2: C).(\lambda (H12: (csuba g c2 c1)).(let H13 \def (eq_ind_r T t (\lambda -(t0: T).(drop i O c1 (CHead x0 (Bind b) t0))) H5 u H9) in (let H14 \def -(eq_ind_r B b (\lambda (b0: B).(drop i O c1 (CHead x0 (Bind b0) u))) H13 Abst -H10) in (let H15 \def (eq_ind_r C x0 (\lambda (c: C).(drop i O c1 (CHead c -(Bind Abst) u))) H14 d1 H11) in (let H16 \def (csuba_drop_abst_rev i c1 d1 u -H15 g c2 H12) in (or_ind (ex2 C (\lambda (d2: C).(drop i O c2 (CHead d2 (Bind -Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: -C).(\lambda (u2: T).(drop i O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: -C).(\lambda (_: T).(csuba g d2 d1)))) (or (ex2 C (\lambda (d2: C).(getl i c2 -(CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T -(\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) -(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (H17: (ex2 C +(f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | (CHead +_ _ t0) \Rightarrow t0])) (CHead d1 (Bind Abst) u) (CHead x0 (Bind b) t) +(clear_gen_bind b x0 (CHead d1 (Bind Abst) u) t H6)) in (\lambda (H10: (eq B +Abst b)).(\lambda (H11: (eq C d1 x0)).(\lambda (c2: C).(\lambda (H12: (csuba +g c2 c1)).(let H13 \def (eq_ind_r T t (\lambda (t0: T).(drop i O c1 (CHead x0 +(Bind b) t0))) H5 u H9) in (let H14 \def (eq_ind_r B b (\lambda (b0: B).(drop +i O c1 (CHead x0 (Bind b0) u))) H13 Abst H10) in (let H15 \def (eq_ind_r C x0 +(\lambda (c: C).(drop i O c1 (CHead c (Bind Abst) u))) H14 d1 H11) in (let +H16 \def (csuba_drop_abst_rev i c1 d1 u H15 g c2 H12) in (or_ind (ex2 C (\lambda (d2: C).(drop i O c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: -C).(csuba g d2 d1)))).(ex2_ind C (\lambda (d2: C).(drop i O c2 (CHead d2 -(Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1)) (or (ex2 C (\lambda (d2: -C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) -(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) -u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x1: -C).(\lambda (H18: (drop i O c2 (CHead x1 (Bind Abst) u))).(\lambda (H19: -(csuba g x1 d1)).(or_introl (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 -(Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: -C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: -C).(\lambda (_: T).(csuba g d2 d1)))) (ex_intro2 C (\lambda (d2: C).(getl i -c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1)) x1 -(getl_intro i c2 (CHead x1 (Bind Abst) u) (CHead x1 (Bind Abst) u) H18 -(clear_bind Abst x1 u)) H19))))) H17)) (\lambda (H17: (ex2_2 C T (\lambda -(d2: C).(\lambda (u2: T).(drop i O c2 (CHead d2 (Bind Void) u2)))) (\lambda -(d2: C).(\lambda (_: T).(csuba g d2 d1))))).(ex2_2_ind C T (\lambda (d2: -C).(\lambda (u2: T).(drop i O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: -C).(\lambda (_: T).(csuba g d2 d1))) (or (ex2 C (\lambda (d2: C).(getl i c2 -(CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T -(\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) -(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x1: -C).(\lambda (x2: T).(\lambda (H18: (drop i O c2 (CHead x1 (Bind Void) -x2))).(\lambda (H19: (csuba g x1 d1)).(or_intror (ex2 C (\lambda (d2: -C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) -(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) -u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))) (ex2_2_intro C T -(\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) -(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))) x1 x2 (getl_intro i c2 -(CHead x1 (Bind Void) x2) (CHead x1 (Bind Void) x2) H18 (clear_bind Void x1 -x2)) H19)))))) H17)) H16)))))))))) H8)) H7))))) (\lambda (f: F).(\lambda (H5: -(drop i O c1 (CHead x0 (Flat f) t))).(\lambda (H6: (clear (CHead x0 (Flat f) -t) (CHead d1 (Bind Abst) u))).(let H7 \def H5 in (unintro C c1 (\lambda (c: -C).((drop i O c (CHead x0 (Flat f) t)) \to (\forall (c2: C).((csuba g c2 c) -\to (or (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) +C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(drop i O +c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 +d1)))) (or (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: -T).(csuba g d2 d1))))))))) (nat_ind (\lambda (n: nat).(\forall (x1: C).((drop -n O x1 (CHead x0 (Flat f) t)) \to (\forall (c2: C).((csuba g c2 x1) \to (or -(ex2 C (\lambda (d2: C).(getl n c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: -C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl n c2 +T).(csuba g d2 d1))))) (\lambda (H17: (ex2 C (\lambda (d2: C).(drop i O c2 +(CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1)))).(ex2_ind C +(\lambda (d2: C).(drop i O c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: +C).(csuba g d2 d1)) (or (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind +Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: +C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: +C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x1: C).(\lambda (H18: (drop +i O c2 (CHead x1 (Bind Abst) u))).(\lambda (H19: (csuba g x1 d1)).(or_introl +(ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: +C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 -d1)))))))))) (\lambda (x1: C).(\lambda (H8: (drop O O x1 (CHead x0 (Flat f) -t))).(\lambda (c2: C).(\lambda (H9: (csuba g c2 x1)).(let H10 \def (eq_ind C -x1 (\lambda (c: C).(csuba g c2 c)) H9 (CHead x0 (Flat f) t) (drop_gen_refl x1 -(CHead x0 (Flat f) t) H8)) in (let H_y \def (clear_flat x0 (CHead d1 (Bind -Abst) u) (clear_gen_flat f x0 (CHead d1 (Bind Abst) u) t H6) f t) in (let H11 -\def (csuba_clear_trans g (CHead x0 (Flat f) t) c2 H10 (CHead d1 (Bind Abst) -u) H_y) in (ex2_ind C (\lambda (e2: C).(csuba g e2 (CHead d1 (Bind Abst) u))) -(\lambda (e2: C).(clear c2 e2)) (or (ex2 C (\lambda (d2: C).(getl O c2 (CHead -d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda -(d2: C).(\lambda (u2: T).(getl O c2 (CHead d2 (Bind Void) u2)))) (\lambda -(d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x2: C).(\lambda (H12: -(csuba g x2 (CHead d1 (Bind Abst) u))).(\lambda (H13: (clear c2 x2)).(let H_x -\def (csuba_gen_abst_rev g d1 x2 u H12) in (let H14 \def H_x in (or_ind (ex2 -C (\lambda (d2: C).(eq C x2 (CHead d2 (Bind Abst) u))) (\lambda (d2: -C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C x2 +d1)))) (ex_intro2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) +(\lambda (d2: C).(csuba g d2 d1)) x1 (getl_intro i c2 (CHead x1 (Bind Abst) +u) (CHead x1 (Bind Abst) u) H18 (clear_bind Abst x1 u)) H19))))) H17)) +(\lambda (H17: (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(drop i O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 -d1)))) (or (ex2 C (\lambda (d2: C).(getl O c2 (CHead d2 (Bind Abst) u))) -(\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: -T).(getl O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: -T).(csuba g d2 d1))))) (\lambda (H15: (ex2 C (\lambda (d2: C).(eq C x2 (CHead -d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1)))).(ex2_ind C (\lambda -(d2: C).(eq C x2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1)) -(or (ex2 C (\lambda (d2: C).(getl O c2 (CHead d2 (Bind Abst) u))) (\lambda -(d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl -O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g -d2 d1))))) (\lambda (x3: C).(\lambda (H16: (eq C x2 (CHead x3 (Bind Abst) -u))).(\lambda (H17: (csuba g x3 d1)).(let H18 \def (eq_ind C x2 (\lambda (c: -C).(clear c2 c)) H13 (CHead x3 (Bind Abst) u) H16) in (or_introl (ex2 C -(\lambda (d2: C).(getl O c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: -C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl O c2 +d1))))).(ex2_2_ind C T (\lambda (d2: C).(\lambda (u2: T).(drop i O c2 (CHead +d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))) (or +(ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: +C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 -d1)))) (ex_intro2 C (\lambda (d2: C).(getl O c2 (CHead d2 (Bind Abst) u))) -(\lambda (d2: C).(csuba g d2 d1)) x3 (getl_intro O c2 (CHead x3 (Bind Abst) -u) c2 (drop_refl c2) H18) H17)))))) H15)) (\lambda (H15: (ex2_2 C T (\lambda -(d2: C).(\lambda (u2: T).(eq C x2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: -C).(\lambda (_: T).(csuba g d2 d1))))).(ex2_2_ind C T (\lambda (d2: -C).(\lambda (u2: T).(eq C x2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: -C).(\lambda (_: T).(csuba g d2 d1))) (or (ex2 C (\lambda (d2: C).(getl O c2 +d1))))) (\lambda (x1: C).(\lambda (x2: T).(\lambda (H18: (drop i O c2 (CHead +x1 (Bind Void) x2))).(\lambda (H19: (csuba g x1 d1)).(or_intror (ex2 C +(\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: +C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 +(CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 +d1)))) (ex2_2_intro C T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead +d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))) x1 +x2 (getl_intro i c2 (CHead x1 (Bind Void) x2) (CHead x1 (Bind Void) x2) H18 +(clear_bind Void x1 x2)) H19)))))) H17)) H16)))))))))) H8)) H7))))) (\lambda +(f: F).(\lambda (H5: (drop i O c1 (CHead x0 (Flat f) t))).(\lambda (H6: +(clear (CHead x0 (Flat f) t) (CHead d1 (Bind Abst) u))).(let H7 \def H5 in +(unintro C c1 (\lambda (c: C).((drop i O c (CHead x0 (Flat f) t)) \to +(\forall (c2: C).((csuba g c2 c) \to (or (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T -(\lambda (d2: C).(\lambda (u2: T).(getl O c2 (CHead d2 (Bind Void) u2)))) -(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x3: -C).(\lambda (x4: T).(\lambda (H16: (eq C x2 (CHead x3 (Bind Void) -x4))).(\lambda (H17: (csuba g x3 d1)).(let H18 \def (eq_ind C x2 (\lambda (c: -C).(clear c2 c)) H13 (CHead x3 (Bind Void) x4) H16) in (or_intror (ex2 C +(\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) +(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))))))) (nat_ind (\lambda +(n: nat).(\forall (x1: C).((drop n O x1 (CHead x0 (Flat f) t)) \to (\forall +(c2: C).((csuba g c2 x1) \to (or (ex2 C (\lambda (d2: C).(getl n c2 (CHead d2 +(Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: +C).(\lambda (u2: T).(getl n c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: +C).(\lambda (_: T).(csuba g d2 d1)))))))))) (\lambda (x1: C).(\lambda (H8: +(drop O O x1 (CHead x0 (Flat f) t))).(\lambda (c2: C).(\lambda (H9: (csuba g +c2 x1)).(let H10 \def (eq_ind C x1 (\lambda (c: C).(csuba g c2 c)) H9 (CHead +x0 (Flat f) t) (drop_gen_refl x1 (CHead x0 (Flat f) t) H8)) in (let H_y \def +(clear_flat x0 (CHead d1 (Bind Abst) u) (clear_gen_flat f x0 (CHead d1 (Bind +Abst) u) t H6) f t) in (let H11 \def (csuba_clear_trans g (CHead x0 (Flat f) +t) c2 H10 (CHead d1 (Bind Abst) u) H_y) in (ex2_ind C (\lambda (e2: C).(csuba +g e2 (CHead d1 (Bind Abst) u))) (\lambda (e2: C).(clear c2 e2)) (or (ex2 C (\lambda (d2: C).(getl O c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 -d1)))) (ex2_2_intro C T (\lambda (d2: C).(\lambda (u2: T).(getl O c2 (CHead -d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))) x3 -x4 (getl_intro O c2 (CHead x3 (Bind Void) x4) c2 (drop_refl c2) H18) -H17))))))) H15)) H14)))))) H11)))))))) (\lambda (n: nat).(\lambda (H8: -((\forall (x1: C).((drop n O x1 (CHead x0 (Flat f) t)) \to (\forall (c2: -C).((csuba g c2 x1) \to (or (ex2 C (\lambda (d2: C).(getl n c2 (CHead d2 -(Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: -C).(\lambda (u2: T).(getl n c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: -C).(\lambda (_: T).(csuba g d2 d1))))))))))).(\lambda (x1: C).(\lambda (H9: -(drop (S n) O x1 (CHead x0 (Flat f) t))).(\lambda (c2: C).(\lambda (H10: -(csuba g c2 x1)).(let H11 \def (drop_clear x1 (CHead x0 (Flat f) t) n H9) in -(ex2_3_ind B C T (\lambda (b: B).(\lambda (e: C).(\lambda (v: T).(clear x1 -(CHead e (Bind b) v))))) (\lambda (_: B).(\lambda (e: C).(\lambda (_: -T).(drop n O e (CHead x0 (Flat f) t))))) (or (ex2 C (\lambda (d2: C).(getl (S -n) c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C -T (\lambda (d2: C).(\lambda (u2: T).(getl (S n) c2 (CHead d2 (Bind Void) -u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x2: -B).(\lambda (x3: C).(\lambda (x4: T).(\lambda (H12: (clear x1 (CHead x3 (Bind -x2) x4))).(\lambda (H13: (drop n O x3 (CHead x0 (Flat f) t))).(let H14 \def -(csuba_clear_trans g x1 c2 H10 (CHead x3 (Bind x2) x4) H12) in (ex2_ind C -(\lambda (e2: C).(csuba g e2 (CHead x3 (Bind x2) x4))) (\lambda (e2: -C).(clear c2 e2)) (or (ex2 C (\lambda (d2: C).(getl (S n) c2 (CHead d2 (Bind -Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: -C).(\lambda (u2: T).(getl (S n) c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: -C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x5: C).(\lambda (H15: (csuba -g x5 (CHead x3 (Bind x2) x4))).(\lambda (H16: (clear c2 x5)).(let H_x \def -(csuba_gen_bind_rev g x2 x3 x5 x4 H15) in (let H17 \def H_x in (ex2_3_ind B C -T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C x5 (CHead e2 (Bind -b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 -x3)))) (or (ex2 C (\lambda (d2: C).(getl (S n) c2 (CHead d2 (Bind Abst) u))) +d1))))) (\lambda (x2: C).(\lambda (H12: (csuba g x2 (CHead d1 (Bind Abst) +u))).(\lambda (H13: (clear c2 x2)).(let H_x \def (csuba_gen_abst_rev g d1 x2 +u H12) in (let H14 \def H_x in (or_ind (ex2 C (\lambda (d2: C).(eq C x2 +(CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T +(\lambda (d2: C).(\lambda (u2: T).(eq C x2 (CHead d2 (Bind Void) u2)))) +(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))) (or (ex2 C (\lambda (d2: +C).(getl O c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) +(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl O c2 (CHead d2 (Bind Void) +u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (H15: +(ex2 C (\lambda (d2: C).(eq C x2 (CHead d2 (Bind Abst) u))) (\lambda (d2: +C).(csuba g d2 d1)))).(ex2_ind C (\lambda (d2: C).(eq C x2 (CHead d2 (Bind +Abst) u))) (\lambda (d2: C).(csuba g d2 d1)) (or (ex2 C (\lambda (d2: +C).(getl O c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) +(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl O c2 (CHead d2 (Bind Void) +u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x3: +C).(\lambda (H16: (eq C x2 (CHead x3 (Bind Abst) u))).(\lambda (H17: (csuba g +x3 d1)).(let H18 \def (eq_ind C x2 (\lambda (c: C).(clear c2 c)) H13 (CHead +x3 (Bind Abst) u) H16) in (or_introl (ex2 C (\lambda (d2: C).(getl O c2 +(CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T +(\lambda (d2: C).(\lambda (u2: T).(getl O c2 (CHead d2 (Bind Void) u2)))) +(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))) (ex_intro2 C (\lambda +(d2: C).(getl O c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 +d1)) x3 (getl_intro O c2 (CHead x3 (Bind Abst) u) c2 (drop_refl c2) H18) +H17)))))) H15)) (\lambda (H15: (ex2_2 C T (\lambda (d2: C).(\lambda (u2: +T).(eq C x2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: +T).(csuba g d2 d1))))).(ex2_2_ind C T (\lambda (d2: C).(\lambda (u2: T).(eq C +x2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 +d1))) (or (ex2 C (\lambda (d2: C).(getl O c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: -T).(getl (S n) c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: -T).(csuba g d2 d1))))) (\lambda (x6: B).(\lambda (x7: C).(\lambda (x8: -T).(\lambda (H18: (eq C x5 (CHead x7 (Bind x6) x8))).(\lambda (H19: (csuba g -x7 x3)).(let H20 \def (eq_ind C x5 (\lambda (c: C).(clear c2 c)) H16 (CHead -x7 (Bind x6) x8) H18) in (let H21 \def (H8 x3 H13 x7 H19) in (or_ind (ex2 C -(\lambda (d2: C).(getl n x7 (CHead d2 (Bind Abst) u))) (\lambda (d2: -C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl n x7 -(CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 -d1)))) (or (ex2 C (\lambda (d2: C).(getl (S n) c2 (CHead d2 (Bind Abst) u))) +T).(getl O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: +T).(csuba g d2 d1))))) (\lambda (x3: C).(\lambda (x4: T).(\lambda (H16: (eq C +x2 (CHead x3 (Bind Void) x4))).(\lambda (H17: (csuba g x3 d1)).(let H18 \def +(eq_ind C x2 (\lambda (c: C).(clear c2 c)) H13 (CHead x3 (Bind Void) x4) H16) +in (or_intror (ex2 C (\lambda (d2: C).(getl O c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: -T).(getl (S n) c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: -T).(csuba g d2 d1))))) (\lambda (H22: (ex2 C (\lambda (d2: C).(getl n x7 -(CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1)))).(ex2_ind C -(\lambda (d2: C).(getl n x7 (CHead d2 (Bind Abst) u))) (\lambda (d2: -C).(csuba g d2 d1)) (or (ex2 C (\lambda (d2: C).(getl (S n) c2 (CHead d2 -(Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: -C).(\lambda (u2: T).(getl (S n) c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: -C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x9: C).(\lambda (H23: (getl -n x7 (CHead x9 (Bind Abst) u))).(\lambda (H24: (csuba g x9 d1)).(or_introl +T).(getl O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: +T).(csuba g d2 d1)))) (ex2_2_intro C T (\lambda (d2: C).(\lambda (u2: +T).(getl O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: +T).(csuba g d2 d1))) x3 x4 (getl_intro O c2 (CHead x3 (Bind Void) x4) c2 +(drop_refl c2) H18) H17))))))) H15)) H14)))))) H11)))))))) (\lambda (n: +nat).(\lambda (H8: ((\forall (x1: C).((drop n O x1 (CHead x0 (Flat f) t)) \to +(\forall (c2: C).((csuba g c2 x1) \to (or (ex2 C (\lambda (d2: C).(getl n c2 +(CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T +(\lambda (d2: C).(\lambda (u2: T).(getl n c2 (CHead d2 (Bind Void) u2)))) +(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))))))))).(\lambda (x1: +C).(\lambda (H9: (drop (S n) O x1 (CHead x0 (Flat f) t))).(\lambda (c2: +C).(\lambda (H10: (csuba g c2 x1)).(let H11 \def (drop_clear x1 (CHead x0 +(Flat f) t) n H9) in (ex2_3_ind B C T (\lambda (b: B).(\lambda (e: +C).(\lambda (v: T).(clear x1 (CHead e (Bind b) v))))) (\lambda (_: +B).(\lambda (e: C).(\lambda (_: T).(drop n O e (CHead x0 (Flat f) t))))) (or (ex2 C (\lambda (d2: C).(getl (S n) c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl (S n) c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba -g d2 d1)))) (ex_intro2 C (\lambda (d2: C).(getl (S n) c2 (CHead d2 (Bind -Abst) u))) (\lambda (d2: C).(csuba g d2 d1)) x9 (getl_clear_bind x6 c2 x7 x8 -H20 (CHead x9 (Bind Abst) u) n H23) H24))))) H22)) (\lambda (H22: (ex2_2 C T -(\lambda (d2: C).(\lambda (u2: T).(getl n x7 (CHead d2 (Bind Void) u2)))) -(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))).(ex2_2_ind C T (\lambda -(d2: C).(\lambda (u2: T).(getl n x7 (CHead d2 (Bind Void) u2)))) (\lambda -(d2: C).(\lambda (_: T).(csuba g d2 d1))) (or (ex2 C (\lambda (d2: C).(getl -(S n) c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 -C T (\lambda (d2: C).(\lambda (u2: T).(getl (S n) c2 (CHead d2 (Bind Void) -u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x9: -C).(\lambda (x10: T).(\lambda (H23: (getl n x7 (CHead x9 (Bind Void) -x10))).(\lambda (H24: (csuba g x9 d1)).(or_intror (ex2 C (\lambda (d2: +g d2 d1))))) (\lambda (x2: B).(\lambda (x3: C).(\lambda (x4: T).(\lambda +(H12: (clear x1 (CHead x3 (Bind x2) x4))).(\lambda (H13: (drop n O x3 (CHead +x0 (Flat f) t))).(let H14 \def (csuba_clear_trans g x1 c2 H10 (CHead x3 (Bind +x2) x4) H12) in (ex2_ind C (\lambda (e2: C).(csuba g e2 (CHead x3 (Bind x2) +x4))) (\lambda (e2: C).(clear c2 e2)) (or (ex2 C (\lambda (d2: C).(getl (S n) +c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T +(\lambda (d2: C).(\lambda (u2: T).(getl (S n) c2 (CHead d2 (Bind Void) u2)))) +(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x5: +C).(\lambda (H15: (csuba g x5 (CHead x3 (Bind x2) x4))).(\lambda (H16: (clear +c2 x5)).(let H_x \def (csuba_gen_bind_rev g x2 x3 x5 x4 H15) in (let H17 \def +H_x in (ex2_3_ind B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: +T).(eq C x5 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: +C).(\lambda (_: T).(csuba g e2 x3)))) (or (ex2 C (\lambda (d2: C).(getl (S n) +c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T +(\lambda (d2: C).(\lambda (u2: T).(getl (S n) c2 (CHead d2 (Bind Void) u2)))) +(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x6: +B).(\lambda (x7: C).(\lambda (x8: T).(\lambda (H18: (eq C x5 (CHead x7 (Bind +x6) x8))).(\lambda (H19: (csuba g x7 x3)).(let H20 \def (eq_ind C x5 (\lambda +(c: C).(clear c2 c)) H16 (CHead x7 (Bind x6) x8) H18) in (let H21 \def (H8 x3 +H13 x7 H19) in (or_ind (ex2 C (\lambda (d2: C).(getl n x7 (CHead d2 (Bind +Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: +C).(\lambda (u2: T).(getl n x7 (CHead d2 (Bind Void) u2)))) (\lambda (d2: +C).(\lambda (_: T).(csuba g d2 d1)))) (or (ex2 C (\lambda (d2: C).(getl (S n) +c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T +(\lambda (d2: C).(\lambda (u2: T).(getl (S n) c2 (CHead d2 (Bind Void) u2)))) +(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (H22: (ex2 C +(\lambda (d2: C).(getl n x7 (CHead d2 (Bind Abst) u))) (\lambda (d2: +C).(csuba g d2 d1)))).(ex2_ind C (\lambda (d2: C).(getl n x7 (CHead d2 (Bind +Abst) u))) (\lambda (d2: C).(csuba g d2 d1)) (or (ex2 C (\lambda (d2: C).(getl (S n) c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl (S n) c2 (CHead d2 -(Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))) -(ex2_2_intro C T (\lambda (d2: C).(\lambda (u2: T).(getl (S n) c2 (CHead d2 -(Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))) x9 x10 -(getl_clear_bind x6 c2 x7 x8 H20 (CHead x9 (Bind Void) x10) n H23) H24)))))) -H22)) H21)))))))) H17)))))) H14))))))) H11)))))))) i) H7))))) k H3 H4))))))) -x H1 H2)))) H0))))))). -(* COMMENTS -Initial nodes: 4703 -END *) +(Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) +(\lambda (x9: C).(\lambda (H23: (getl n x7 (CHead x9 (Bind Abst) +u))).(\lambda (H24: (csuba g x9 d1)).(or_introl (ex2 C (\lambda (d2: C).(getl +(S n) c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 +C T (\lambda (d2: C).(\lambda (u2: T).(getl (S n) c2 (CHead d2 (Bind Void) +u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))) (ex_intro2 C +(\lambda (d2: C).(getl (S n) c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: +C).(csuba g d2 d1)) x9 (getl_clear_bind x6 c2 x7 x8 H20 (CHead x9 (Bind Abst) +u) n H23) H24))))) H22)) (\lambda (H22: (ex2_2 C T (\lambda (d2: C).(\lambda +(u2: T).(getl n x7 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: +T).(csuba g d2 d1))))).(ex2_2_ind C T (\lambda (d2: C).(\lambda (u2: T).(getl +n x7 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g +d2 d1))) (or (ex2 C (\lambda (d2: C).(getl (S n) c2 (CHead d2 (Bind Abst) +u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda +(u2: T).(getl (S n) c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda +(_: T).(csuba g d2 d1))))) (\lambda (x9: C).(\lambda (x10: T).(\lambda (H23: +(getl n x7 (CHead x9 (Bind Void) x10))).(\lambda (H24: (csuba g x9 +d1)).(or_intror (ex2 C (\lambda (d2: C).(getl (S n) c2 (CHead d2 (Bind Abst) +u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda +(u2: T).(getl (S n) c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda +(_: T).(csuba g d2 d1)))) (ex2_2_intro C T (\lambda (d2: C).(\lambda (u2: +T).(getl (S n) c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: +T).(csuba g d2 d1))) x9 x10 (getl_clear_bind x6 c2 x7 x8 H20 (CHead x9 (Bind +Void) x10) n H23) H24)))))) H22)) H21)))))))) H17)))))) H14))))))) +H11)))))))) i) H7))))) k H3 H4))))))) x H1 H2)))) H0))))))). theorem csuba_getl_abbr_rev: \forall (g: G).(\forall (c1: C).(\forall (d1: C).(\forall (u1: T).(\forall @@ -776,81 +762,69 @@ C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))))))))) (\lambda (b: B).(\lambda (H5: (drop i O c1 (CHead x0 (Bind b) t))).(\lambda (H6: (clear (CHead x0 (Bind b) t) (CHead d1 (Bind Abbr) u1))).(let H7 \def (f_equal C C -(\lambda (e: C).(match e in C return (\lambda (_: C).C) with [(CSort _) -\Rightarrow d1 | (CHead c _ _) \Rightarrow c])) (CHead d1 (Bind Abbr) u1) -(CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abbr) u1) t H6)) -in ((let H8 \def (f_equal C B (\lambda (e: C).(match e in C return (\lambda -(_: C).B) with [(CSort _) \Rightarrow Abbr | (CHead _ k0 _) \Rightarrow -(match k0 in K return (\lambda (_: K).B) with [(Bind b0) \Rightarrow b0 | -(Flat _) \Rightarrow Abbr])])) (CHead d1 (Bind Abbr) u1) (CHead x0 (Bind b) -t) (clear_gen_bind b x0 (CHead d1 (Bind Abbr) u1) t H6)) in ((let H9 \def -(f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) with -[(CSort _) \Rightarrow u1 | (CHead _ _ t0) \Rightarrow t0])) (CHead d1 (Bind -Abbr) u1) (CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abbr) -u1) t H6)) in (\lambda (H10: (eq B Abbr b)).(\lambda (H11: (eq C d1 -x0)).(\lambda (c2: C).(\lambda (H12: (csuba g c2 c1)).(let H13 \def (eq_ind_r -T t (\lambda (t0: T).(drop i O c1 (CHead x0 (Bind b) t0))) H5 u1 H9) in (let -H14 \def (eq_ind_r B b (\lambda (b0: B).(drop i O c1 (CHead x0 (Bind b0) -u1))) H13 Abbr H10) in (let H15 \def (eq_ind_r C x0 (\lambda (c: C).(drop i O -c1 (CHead c (Bind Abbr) u1))) H14 d1 H11) in (let H16 \def -(csuba_drop_abbr_rev i c1 d1 u1 H15 g c2 H12) in (or3_ind (ex2 C (\lambda -(d2: C).(drop i O c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 -d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(drop i -O c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda -(_: A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: +(\lambda (e: C).(match e with [(CSort _) \Rightarrow d1 | (CHead c _ _) +\Rightarrow c])) (CHead d1 (Bind Abbr) u1) (CHead x0 (Bind b) t) +(clear_gen_bind b x0 (CHead d1 (Bind Abbr) u1) t H6)) in ((let H8 \def +(f_equal C B (\lambda (e: C).(match e with [(CSort _) \Rightarrow Abbr | +(CHead _ k0 _) \Rightarrow (match k0 with [(Bind b0) \Rightarrow b0 | (Flat +_) \Rightarrow Abbr])])) (CHead d1 (Bind Abbr) u1) (CHead x0 (Bind b) t) +(clear_gen_bind b x0 (CHead d1 (Bind Abbr) u1) t H6)) in ((let H9 \def +(f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u1 | (CHead +_ _ t0) \Rightarrow t0])) (CHead d1 (Bind Abbr) u1) (CHead x0 (Bind b) t) +(clear_gen_bind b x0 (CHead d1 (Bind Abbr) u1) t H6)) in (\lambda (H10: (eq B +Abbr b)).(\lambda (H11: (eq C d1 x0)).(\lambda (c2: C).(\lambda (H12: (csuba +g c2 c1)).(let H13 \def (eq_ind_r T t (\lambda (t0: T).(drop i O c1 (CHead x0 +(Bind b) t0))) H5 u1 H9) in (let H14 \def (eq_ind_r B b (\lambda (b0: +B).(drop i O c1 (CHead x0 (Bind b0) u1))) H13 Abbr H10) in (let H15 \def +(eq_ind_r C x0 (\lambda (c: C).(drop i O c1 (CHead c (Bind Abbr) u1))) H14 d1 +H11) in (let H16 \def (csuba_drop_abbr_rev i c1 d1 u1 H15 g c2 H12) in +(or3_ind (ex2 C (\lambda (d2: C).(drop i O c2 (CHead d2 (Bind Abbr) u1))) +(\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda +(u2: T).(\lambda (_: A).(drop i O c2 (CHead d2 (Bind Abst) u2))))) (\lambda +(d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: +C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda +(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 C T +(\lambda (d2: C).(\lambda (u2: T).(drop i O c2 (CHead d2 (Bind Void) u2)))) +(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))) (or3 (ex2 C (\lambda (d2: +C).(getl i c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) +(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 +(CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: +A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: -T).(drop i O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: -T).(csuba g d2 d1)))) (or3 (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind +T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: +T).(csuba g d2 d1))))) (\lambda (H17: (ex2 C (\lambda (d2: C).(drop i O c2 +(CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1)))).(ex2_ind C +(\lambda (d2: C).(drop i O c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: +C).(csuba g d2 d1)) (or3 (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) -(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (H17: (ex2 C -(\lambda (d2: C).(drop i O c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: -C).(csuba g d2 d1)))).(ex2_ind C (\lambda (d2: C).(drop i O c2 (CHead d2 -(Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1)) (or3 (ex2 C (\lambda (d2: -C).(getl i c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) -(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 +(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x1: +C).(\lambda (H18: (drop i O c2 (CHead x1 (Bind Abbr) u1))).(\lambda (H19: +(csuba g x1 d1)).(or3_intro0 (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 +(Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda +(d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abst) +u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) +(\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g +a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) +(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) +u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))) (ex_intro2 C +(\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: +C).(csuba g d2 d1)) x1 (getl_intro i c2 (CHead x1 (Bind Abbr) u1) (CHead x1 +(Bind Abbr) u1) H18 (clear_bind Abbr x1 u1)) H19))))) H17)) (\lambda (H17: +(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(drop i O c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda -(a: A).(arity g d1 u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: -T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: -T).(csuba g d2 d1))))) (\lambda (x1: C).(\lambda (H18: (drop i O c2 (CHead x1 -(Bind Abbr) u1))).(\lambda (H19: (csuba g x1 d1)).(or3_intro0 (ex2 C (\lambda -(d2: C).(getl i c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 -d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i -c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda -(_: A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: -A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda -(a: A).(arity g d1 u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: -T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: -T).(csuba g d2 d1)))) (ex_intro2 C (\lambda (d2: C).(getl i c2 (CHead d2 -(Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1)) x1 (getl_intro i c2 -(CHead x1 (Bind Abbr) u1) (CHead x1 (Bind Abbr) u1) H18 (clear_bind Abbr x1 -u1)) H19))))) H17)) (\lambda (H17: (ex4_3 C T A (\lambda (d2: C).(\lambda -(u2: T).(\lambda (_: A).(drop i O c2 (CHead d2 (Bind Abst) u2))))) (\lambda -(d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: -C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda -(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a)))))).(ex4_3_ind C T -A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(drop i O c2 (CHead d2 -(Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g -d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 -(asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 -u1 a)))) (or3 (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abbr) u1))) -(\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda -(u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abst) u2))))) (\lambda -(d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: +(a: A).(arity g d1 u1 a)))))).(ex4_3_ind C T A (\lambda (d2: C).(\lambda (u2: +T).(\lambda (_: A).(drop i O c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: +C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda -(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 C T -(\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) -(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x1: -C).(\lambda (x2: T).(\lambda (x3: A).(\lambda (H18: (drop i O c2 (CHead x1 -(Bind Abst) x2))).(\lambda (H19: (csuba g x1 d1)).(\lambda (H20: (arity g x1 -x2 (asucc g x3))).(\lambda (H21: (arity g d1 u1 x3)).(or3_intro1 (ex2 C +(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a)))) (or3 (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: @@ -858,11 +832,22 @@ T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: -C).(\lambda (_: T).(csuba g d2 d1)))) (ex4_3_intro C T A (\lambda (d2: -C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abst) u2))))) -(\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda -(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) -(\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a)))) x1 x2 x3 +C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x1: C).(\lambda (x2: +T).(\lambda (x3: A).(\lambda (H18: (drop i O c2 (CHead x1 (Bind Abst) +x2))).(\lambda (H19: (csuba g x1 d1)).(\lambda (H20: (arity g x1 x2 (asucc g +x3))).(\lambda (H21: (arity g d1 u1 x3)).(or3_intro1 (ex2 C (\lambda (d2: +C).(getl i c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) +(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 +(CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: +A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: +A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda +(a: A).(arity g d1 u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: +T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: +T).(csuba g d2 d1)))) (ex4_3_intro C T A (\lambda (d2: C).(\lambda (u2: +T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: +C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: +C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda +(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a)))) x1 x2 x3 (getl_intro i c2 (CHead x1 (Bind Abst) x2) (CHead x1 (Bind Abst) x2) H18 (clear_bind Abst x1 x2)) H19 H20 H21))))))))) H17)) (\lambda (H17: (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(drop i O c2 (CHead d2 (Bind Void) u2)))) @@ -1172,7 +1157,4 @@ u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))) x9 x10 (getl_clear_bind x6 c2 x7 x8 H20 (CHead x9 (Bind Void) x10) n H23) H24)))))) H22)) H21)))))))) H17)))))) H14))))))) H11)))))))) i) H7))))) k H3 H4))))))) x H1 H2)))) H0))))))). -(* COMMENTS -Initial nodes: 9091 -END *) diff --git a/matita/matita/contribs/lambdadelta/basic_1/csuba/props.ma b/matita/matita/contribs/lambdadelta/basic_1/csuba/props.ma index 823e88825..5dab712a8 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/csuba/props.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/csuba/props.ma @@ -14,15 +14,15 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/csuba/defs.ma". +include "basic_1/csuba/defs.ma". + +include "basic_1/C/fwd.ma". theorem csuba_refl: \forall (g: G).(\forall (c: C).(csuba g c c)) \def - \lambda (g: G).(\lambda (c: C).(C_ind (\lambda (c0: C).(csuba g c0 c0)) -(\lambda (n: nat).(csuba_sort g n)) (\lambda (c0: C).(\lambda (H: (csuba g c0 -c0)).(\lambda (k: K).(\lambda (t: T).(csuba_head g c0 c0 H k t))))) c)). -(* COMMENTS -Initial nodes: 53 -END *) + \lambda (g: G).(\lambda (c: C).(let TMP_1 \def (\lambda (c0: C).(csuba g c0 +c0)) in (let TMP_2 \def (\lambda (n: nat).(csuba_sort g n)) in (let TMP_3 +\def (\lambda (c0: C).(\lambda (H: (csuba g c0 c0)).(\lambda (k: K).(\lambda +(t: T).(csuba_head g c0 c0 H k t))))) in (C_ind TMP_1 TMP_2 TMP_3 c))))). -- 2.39.2