]> matita.cs.unibo.it Git - helm.git/blob - matita/contribs/LAMBDA-TYPES/LambdaDelta-1/pc3/wcpr0.ma
contribs should now compile
[helm.git] / matita / contribs / LAMBDA-TYPES / LambdaDelta-1 / pc3 / wcpr0.ma
1 (**************************************************************************)
2 (*       ___                                                              *)
3 (*      ||M||                                                             *)
4 (*      ||A||       A project by Andrea Asperti                           *)
5 (*      ||T||                                                             *)
6 (*      ||I||       Developers:                                           *)
7 (*      ||T||         The HELM team.                                      *)
8 (*      ||A||         http://helm.cs.unibo.it                             *)
9 (*      \   /                                                             *)
10 (*       \ /        This file is distributed under the terms of the       *)
11 (*        v         GNU General Public License Version 2                  *)
12 (*                                                                        *)
13 (**************************************************************************)
14
15 (* This file was automatically generated: do not edit *********************)
16
17
18
19 include "pc3/props.ma".
20
21 include "wcpr0/getl.ma".
22
23 theorem pc3_wcpr0__pc3_wcpr0_t_aux:
24  \forall (c1: C).(\forall (c2: C).((wcpr0 c1 c2) \to (\forall (k: K).(\forall 
25 (u: T).(\forall (t1: T).(\forall (t2: T).((pr3 (CHead c1 k u) t1 t2) \to (pc3 
26 (CHead c2 k u) t1 t2))))))))
27 \def
28  \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (wcpr0 c1 c2)).(\lambda (k: 
29 K).(\lambda (u: T).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H0: (pr3 
30 (CHead c1 k u) t1 t2)).(pr3_ind (CHead c1 k u) (\lambda (t: T).(\lambda (t0: 
31 T).(pc3 (CHead c2 k u) t t0))) (\lambda (t: T).(pc3_refl (CHead c2 k u) t)) 
32 (\lambda (t0: T).(\lambda (t3: T).(\lambda (H1: (pr2 (CHead c1 k u) t3 
33 t0)).(\lambda (t4: T).(\lambda (_: (pr3 (CHead c1 k u) t0 t4)).(\lambda (H3: 
34 (pc3 (CHead c2 k u) t0 t4)).(pc3_t t0 (CHead c2 k u) t3 (let H4 \def (match 
35 H1 in pr2 return (\lambda (c: C).(\lambda (t: T).(\lambda (t5: T).(\lambda 
36 (_: (pr2 c t t5)).((eq C c (CHead c1 k u)) \to ((eq T t t3) \to ((eq T t5 t0) 
37 \to (pc3 (CHead c2 k u) t3 t0)))))))) with [(pr2_free c t5 t6 H4) \Rightarrow 
38 (\lambda (H5: (eq C c (CHead c1 k u))).(\lambda (H6: (eq T t5 t3)).(\lambda 
39 (H7: (eq T t6 t0)).(eq_ind C (CHead c1 k u) (\lambda (_: C).((eq T t5 t3) \to 
40 ((eq T t6 t0) \to ((pr0 t5 t6) \to (pc3 (CHead c2 k u) t3 t0))))) (\lambda 
41 (H8: (eq T t5 t3)).(eq_ind T t3 (\lambda (t: T).((eq T t6 t0) \to ((pr0 t t6) 
42 \to (pc3 (CHead c2 k u) t3 t0)))) (\lambda (H9: (eq T t6 t0)).(eq_ind T t0 
43 (\lambda (t: T).((pr0 t3 t) \to (pc3 (CHead c2 k u) t3 t0))) (\lambda (H10: 
44 (pr0 t3 t0)).(pc3_pr2_r (CHead c2 k u) t3 t0 (pr2_free (CHead c2 k u) t3 t0 
45 H10))) t6 (sym_eq T t6 t0 H9))) t5 (sym_eq T t5 t3 H8))) c (sym_eq C c (CHead 
46 c1 k u) H5) H6 H7 H4)))) | (pr2_delta c d u0 i H4 t5 t6 H5 t H6) \Rightarrow 
47 (\lambda (H7: (eq C c (CHead c1 k u))).(\lambda (H8: (eq T t5 t3)).(\lambda 
48 (H9: (eq T t t0)).(eq_ind C (CHead c1 k u) (\lambda (c0: C).((eq T t5 t3) \to 
49 ((eq T t t0) \to ((getl i c0 (CHead d (Bind Abbr) u0)) \to ((pr0 t5 t6) \to 
50 ((subst0 i u0 t6 t) \to (pc3 (CHead c2 k u) t3 t0))))))) (\lambda (H10: (eq T 
51 t5 t3)).(eq_ind T t3 (\lambda (t7: T).((eq T t t0) \to ((getl i (CHead c1 k 
52 u) (CHead d (Bind Abbr) u0)) \to ((pr0 t7 t6) \to ((subst0 i u0 t6 t) \to 
53 (pc3 (CHead c2 k u) t3 t0)))))) (\lambda (H11: (eq T t t0)).(eq_ind T t0 
54 (\lambda (t7: T).((getl i (CHead c1 k u) (CHead d (Bind Abbr) u0)) \to ((pr0 
55 t3 t6) \to ((subst0 i u0 t6 t7) \to (pc3 (CHead c2 k u) t3 t0))))) (\lambda 
56 (H12: (getl i (CHead c1 k u) (CHead d (Bind Abbr) u0))).(\lambda (H13: (pr0 
57 t3 t6)).(\lambda (H14: (subst0 i u0 t6 t0)).(ex3_2_ind C T (\lambda (e2: 
58 C).(\lambda (u2: T).(getl i (CHead c2 k u) (CHead e2 (Bind Abbr) u2)))) 
59 (\lambda (e2: C).(\lambda (_: T).(wcpr0 d e2))) (\lambda (_: C).(\lambda (u2: 
60 T).(pr0 u0 u2))) (pc3 (CHead c2 k u) t3 t0) (\lambda (x0: C).(\lambda (x1: 
61 T).(\lambda (H15: (getl i (CHead c2 k u) (CHead x0 (Bind Abbr) x1))).(\lambda 
62 (_: (wcpr0 d x0)).(\lambda (H17: (pr0 u0 x1)).(ex2_ind T (\lambda (t7: 
63 T).(subst0 i x1 t6 t7)) (\lambda (t7: T).(pr0 t0 t7)) (pc3 (CHead c2 k u) t3 
64 t0) (\lambda (x: T).(\lambda (H18: (subst0 i x1 t6 x)).(\lambda (H19: (pr0 t0 
65 x)).(pc3_pr2_u (CHead c2 k u) x t3 (pr2_delta (CHead c2 k u) x0 x1 i H15 t3 
66 t6 H13 x H18) t0 (pc3_pr2_x (CHead c2 k u) x t0 (pr2_free (CHead c2 k u) t0 x 
67 H19)))))) (pr0_subst0_fwd u0 t6 t0 i H14 x1 H17))))))) (wcpr0_getl (CHead c1 
68 k u) (CHead c2 k u) (wcpr0_comp c1 c2 H u u (pr0_refl u) k) i d u0 (Bind 
69 Abbr) H12))))) t (sym_eq T t t0 H11))) t5 (sym_eq T t5 t3 H10))) c (sym_eq C 
70 c (CHead c1 k u) H7) H8 H9 H4 H5 H6))))]) in (H4 (refl_equal C (CHead c1 k 
71 u)) (refl_equal T t3) (refl_equal T t0))) t4 H3))))))) t1 t2 H0)))))))).
72
73 theorem pc3_wcpr0_t:
74  \forall (c1: C).(\forall (c2: C).((wcpr0 c1 c2) \to (\forall (t1: 
75 T).(\forall (t2: T).((pr3 c1 t1 t2) \to (pc3 c2 t1 t2))))))
76 \def
77  \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (wcpr0 c1 c2)).(wcpr0_ind 
78 (\lambda (c: C).(\lambda (c0: C).(\forall (t1: T).(\forall (t2: T).((pr3 c t1 
79 t2) \to (pc3 c0 t1 t2)))))) (\lambda (c: C).(\lambda (t1: T).(\lambda (t2: 
80 T).(\lambda (H0: (pr3 c t1 t2)).(pc3_pr3_r c t1 t2 H0))))) (\lambda (c0: 
81 C).(\lambda (c3: C).(\lambda (H0: (wcpr0 c0 c3)).(\lambda (_: ((\forall (t1: 
82 T).(\forall (t2: T).((pr3 c0 t1 t2) \to (pc3 c3 t1 t2)))))).(\lambda (u1: 
83 T).(\lambda (u2: T).(\lambda (H2: (pr0 u1 u2)).(\lambda (k: K).(\lambda (t1: 
84 T).(\lambda (t2: T).(\lambda (H3: (pr3 (CHead c0 k u1) t1 t2)).(let H4 \def 
85 (pc3_pr2_pr3_t c0 u1 t1 t2 k H3 u2 (pr2_free c0 u1 u2 H2)) in (ex2_ind T 
86 (\lambda (t: T).(pr3 (CHead c0 k u2) t1 t)) (\lambda (t: T).(pr3 (CHead c0 k 
87 u2) t2 t)) (pc3 (CHead c3 k u2) t1 t2) (\lambda (x: T).(\lambda (H5: (pr3 
88 (CHead c0 k u2) t1 x)).(\lambda (H6: (pr3 (CHead c0 k u2) t2 x)).(pc3_t x 
89 (CHead c3 k u2) t1 (pc3_wcpr0__pc3_wcpr0_t_aux c0 c3 H0 k u2 t1 x H5) t2 
90 (pc3_s (CHead c3 k u2) x t2 (pc3_wcpr0__pc3_wcpr0_t_aux c0 c3 H0 k u2 t2 x 
91 H6)))))) H4))))))))))))) c1 c2 H))).
92
93 theorem pc3_wcpr0:
94  \forall (c1: C).(\forall (c2: C).((wcpr0 c1 c2) \to (\forall (t1: 
95 T).(\forall (t2: T).((pc3 c1 t1 t2) \to (pc3 c2 t1 t2))))))
96 \def
97  \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (wcpr0 c1 c2)).(\lambda (t1: 
98 T).(\lambda (t2: T).(\lambda (H0: (pc3 c1 t1 t2)).(let H1 \def H0 in (ex2_ind 
99 T (\lambda (t: T).(pr3 c1 t1 t)) (\lambda (t: T).(pr3 c1 t2 t)) (pc3 c2 t1 
100 t2) (\lambda (x: T).(\lambda (H2: (pr3 c1 t1 x)).(\lambda (H3: (pr3 c1 t2 
101 x)).(pc3_t x c2 t1 (pc3_wcpr0_t c1 c2 H t1 x H2) t2 (pc3_s c2 x t2 
102 (pc3_wcpr0_t c1 c2 H t2 x H3)))))) H1))))))).
103