1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 (* This file was automatically generated: do not edit *********************)
17 set "baseuri" "cic:/matita/LAMBDA-TYPES/Level-1/LambdaDelta/getl/props".
19 include "getl/fwd.ma".
21 include "drop/props.ma".
23 include "clear/props.ma".
26 \forall (b: B).(\forall (c: C).(\forall (u: T).(getl O (CHead c (Bind b) u)
27 (CHead c (Bind b) u))))
29 \lambda (b: B).(\lambda (c: C).(\lambda (u: T).(getl_intro O (CHead c (Bind
30 b) u) (CHead c (Bind b) u) (CHead c (Bind b) u) (drop_refl (CHead c (Bind b)
31 u)) (clear_bind b c u)))).
34 \forall (k: K).(\forall (h: nat).(\forall (c: C).(\forall (e: C).((getl (r k
35 h) c e) \to (\forall (u: T).(getl (S h) (CHead c k u) e))))))
37 \lambda (k: K).(\lambda (h: nat).(\lambda (c: C).(\lambda (e: C).(\lambda
38 (H: (getl (r k h) c e)).(\lambda (u: T).(let H0 \def (getl_gen_all c e (r k
39 h) H) in (ex2_ind C (\lambda (e0: C).(drop (r k h) O c e0)) (\lambda (e0:
40 C).(clear e0 e)) (getl (S h) (CHead c k u) e) (\lambda (x: C).(\lambda (H1:
41 (drop (r k h) O c x)).(\lambda (H2: (clear x e)).(getl_intro (S h) (CHead c k
42 u) e x (drop_drop k h c x H1 u) H2)))) H0))))))).
45 \forall (c: C).(\forall (e: C).(\forall (h: nat).((getl h c e) \to (\forall
46 (f: F).(\forall (u: T).(getl h (CHead c (Flat f) u) e))))))
48 \lambda (c: C).(\lambda (e: C).(\lambda (h: nat).(\lambda (H: (getl h c
49 e)).(\lambda (f: F).(\lambda (u: T).(let H0 \def (getl_gen_all c e h H) in
50 (ex2_ind C (\lambda (e0: C).(drop h O c e0)) (\lambda (e0: C).(clear e0 e))
51 (getl h (CHead c (Flat f) u) e) (\lambda (x: C).(\lambda (H1: (drop h O c
52 x)).(\lambda (H2: (clear x e)).((match h in nat return (\lambda (n:
53 nat).((drop n O c x) \to (getl n (CHead c (Flat f) u) e))) with [O
54 \Rightarrow (\lambda (H3: (drop O O c x)).(let H4 \def (eq_ind_r C x (\lambda
55 (c: C).(clear c e)) H2 c (drop_gen_refl c x H3)) in (getl_intro O (CHead c
56 (Flat f) u) e (CHead c (Flat f) u) (drop_refl (CHead c (Flat f) u))
57 (clear_flat c e H4 f u)))) | (S n) \Rightarrow (\lambda (H3: (drop (S n) O c
58 x)).(getl_intro (S n) (CHead c (Flat f) u) e x (drop_drop (Flat f) n c x H3
59 u) H2))]) H1)))) H0))))))).
62 \forall (b: B).(\forall (c: C).(\forall (d: C).(\forall (u: T).(\forall (i:
63 nat).((getl i c (CHead d (Bind b) u)) \to (\forall (k: K).(\forall (v:
64 T).(getl i (CTail k v c) (CHead (CTail k v d) (Bind b) u)))))))))
66 \lambda (b: B).(\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i:
67 nat).(\lambda (H: (getl i c (CHead d (Bind b) u))).(\lambda (k: K).(\lambda
68 (v: T).(let H0 \def (getl_gen_all c (CHead d (Bind b) u) i H) in (ex2_ind C
69 (\lambda (e: C).(drop i O c e)) (\lambda (e: C).(clear e (CHead d (Bind b)
70 u))) (getl i (CTail k v c) (CHead (CTail k v d) (Bind b) u)) (\lambda (x:
71 C).(\lambda (H1: (drop i O c x)).(\lambda (H2: (clear x (CHead d (Bind b)
72 u))).(getl_intro i (CTail k v c) (CHead (CTail k v d) (Bind b) u) (CTail k v
73 x) (drop_ctail c x O i H1 k v) (clear_ctail b x d u H2 k v))))) H0))))))))).
76 \forall (c: C).(\forall (x1: C).(\forall (h: nat).((getl h c x1) \to
77 (\forall (x2: C).((getl h c x2) \to (eq C x1 x2))))))
79 \lambda (c: C).(\lambda (x1: C).(\lambda (h: nat).(\lambda (H: (getl h c
80 x1)).(\lambda (x2: C).(\lambda (H0: (getl h c x2)).(let H1 \def (getl_gen_all
81 c x2 h H0) in (ex2_ind C (\lambda (e: C).(drop h O c e)) (\lambda (e:
82 C).(clear e x2)) (eq C x1 x2) (\lambda (x: C).(\lambda (H2: (drop h O c
83 x)).(\lambda (H3: (clear x x2)).(let H4 \def (getl_gen_all c x1 h H) in
84 (ex2_ind C (\lambda (e: C).(drop h O c e)) (\lambda (e: C).(clear e x1)) (eq
85 C x1 x2) (\lambda (x0: C).(\lambda (H5: (drop h O c x0)).(\lambda (H6: (clear
86 x0 x1)).(let H7 \def (eq_ind C x (\lambda (c0: C).(drop h O c c0)) H2 x0
87 (drop_mono c x O h H2 x0 H5)) in (let H8 \def (eq_ind_r C x0 (\lambda (c0:
88 C).(drop h O c c0)) H7 x (drop_mono c x O h H2 x0 H5)) in (let H9 \def
89 (eq_ind_r C x0 (\lambda (c: C).(clear c x1)) H6 x (drop_mono c x O h H2 x0
90 H5)) in (clear_mono x x1 H9 x2 H3))))))) H4))))) H1))))))).