X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_1%2Fsubst%2Fprops.ma;h=3ba9fc8e6ccbe24e20841cff90670ce3e4eb0a11;hb=57ae1762497a5f3ea75740e2908e04adb8642cc2;hp=3bad044e3198e9cb33d31e6bd5b1c4f489e7cbee;hpb=88a68a9c334646bc17314d5327cd3b790202acd6;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_1/subst/props.ma b/matita/matita/contribs/lambdadelta/basic_1/subst/props.ma index 3bad044e3..3ba9fc8e6 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/subst/props.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/subst/props.ma @@ -14,13 +14,57 @@ (* This file was automatically generated: do not edit *********************) -include "Basic-1/subst/fwd.ma". +include "basic_1/subst/defs.ma". -include "Basic-1/subst0/defs.ma". +include "basic_1/subst0/fwd.ma". -include "Basic-1/lift/props.ma". +lemma subst_sort: + \forall (v: T).(\forall (d: nat).(\forall (k: nat).(eq T (subst d v (TSort +k)) (TSort k)))) +\def + \lambda (_: T).(\lambda (_: nat).(\lambda (k: nat).(refl_equal T (TSort +k)))). + +lemma subst_lref_lt: + \forall (v: T).(\forall (d: nat).(\forall (i: nat).((lt i d) \to (eq T +(subst d v (TLRef i)) (TLRef i))))) +\def + \lambda (v: T).(\lambda (d: nat).(\lambda (i: nat).(\lambda (H: (lt i +d)).(eq_ind_r bool true (\lambda (b: bool).(eq T (match b with [true +\Rightarrow (TLRef i) | false \Rightarrow (match (blt d i) with [true +\Rightarrow (TLRef (pred i)) | false \Rightarrow (lift d O v)])]) (TLRef i))) +(refl_equal T (TLRef i)) (blt i d) (lt_blt d i H))))). + +lemma subst_lref_eq: + \forall (v: T).(\forall (i: nat).(eq T (subst i v (TLRef i)) (lift i O v))) +\def + \lambda (v: T).(\lambda (i: nat).(eq_ind_r bool false (\lambda (b: bool).(eq +T (match b with [true \Rightarrow (TLRef i) | false \Rightarrow (match b with +[true \Rightarrow (TLRef (pred i)) | false \Rightarrow (lift i O v)])]) (lift +i O v))) (refl_equal T (lift i O v)) (blt i i) (le_bge i i (le_n i)))). + +lemma subst_lref_gt: + \forall (v: T).(\forall (d: nat).(\forall (i: nat).((lt d i) \to (eq T +(subst d v (TLRef i)) (TLRef (pred i)))))) +\def + \lambda (v: T).(\lambda (d: nat).(\lambda (i: nat).(\lambda (H: (lt d +i)).(eq_ind_r bool false (\lambda (b: bool).(eq T (match b with [true +\Rightarrow (TLRef i) | false \Rightarrow (match (blt d i) with [true +\Rightarrow (TLRef (pred i)) | false \Rightarrow (lift d O v)])]) (TLRef +(pred i)))) (eq_ind_r bool true (\lambda (b: bool).(eq T (match b with [true +\Rightarrow (TLRef (pred i)) | false \Rightarrow (lift d O v)]) (TLRef (pred +i)))) (refl_equal T (TLRef (pred i))) (blt d i) (lt_blt i d H)) (blt i d) +(le_bge d i (lt_le_weak d i H)))))). + +lemma subst_head: + \forall (k: K).(\forall (w: T).(\forall (u: T).(\forall (t: T).(\forall (d: +nat).(eq T (subst d w (THead k u t)) (THead k (subst d w u) (subst (s k d) w +t))))))) +\def + \lambda (k: K).(\lambda (w: T).(\lambda (u: T).(\lambda (t: T).(\lambda (d: +nat).(refl_equal T (THead k (subst d w u) (subst (s k d) w t))))))). -theorem subst_lift_SO: +lemma subst_lift_SO: \forall (v: T).(\forall (t: T).(\forall (d: nat).(eq T (subst d v (lift (S O) d t)) t))) \def @@ -49,17 +93,17 @@ t0)))).(\lambda (t1: T).(\lambda (H0: ((\forall (d: nat).(eq T (subst d v (lift (S O) d t1)) t1)))).(\lambda (d: nat).(eq_ind_r T (THead k (lift (S O) d t0) (lift (S O) (s k d) t1)) (\lambda (t2: T).(eq T (subst d v t2) (THead k t0 t1))) (eq_ind_r T (THead k (subst d v (lift (S O) d t0)) (subst (s k d) v -(lift (S O) (s k d) t1))) (\lambda (t2: T).(eq T t2 (THead k t0 t1))) -(f_equal3 K T T T THead k k (subst d v (lift (S O) d t0)) t0 (subst (s k d) v -(lift (S O) (s k d) t1)) t1 (refl_equal K k) (H d) (H0 (s k d))) (subst d v -(THead k (lift (S O) d t0) (lift (S O) (s k d) t1))) (subst_head k v (lift (S -O) d t0) (lift (S O) (s k d) t1) d)) (lift (S O) d (THead k t0 t1)) -(lift_head k t0 t1 (S O) d)))))))) t)). -(* COMMENTS -Initial nodes: 879 -END *) +(lift (S O) (s k d) t1))) (\lambda (t2: T).(eq T t2 (THead k t0 t1))) (sym_eq +T (THead k t0 t1) (THead k (subst d v (lift (S O) d t0)) (subst (s k d) v +(lift (S O) (s k d) t1))) (sym_eq T (THead k (subst d v (lift (S O) d t0)) +(subst (s k d) v (lift (S O) (s k d) t1))) (THead k t0 t1) (f_equal3 K T T T +THead k k (subst d v (lift (S O) d t0)) t0 (subst (s k d) v (lift (S O) (s k +d) t1)) t1 (refl_equal K k) (H d) (H0 (s k d))))) (subst d v (THead k (lift +(S O) d t0) (lift (S O) (s k d) t1))) (subst_head k v (lift (S O) d t0) (lift +(S O) (s k d) t1) d)) (lift (S O) d (THead k t0 t1)) (lift_head k t0 t1 (S O) +d)))))))) t)). -theorem subst_subst0: +lemma subst_subst0: \forall (v: T).(\forall (t1: T).(\forall (t2: T).(\forall (d: nat).((subst0 d v t1 t2) \to (eq T (subst d v t1) (subst d v t2)))))) \def @@ -110,7 +154,4 @@ i) v0 t4)))) (refl_equal T (THead k (subst i v0 u2) (subst (s k i) v0 t4))) (subst (s k i) v0 t3) H3) (subst i v0 u1) H1) (subst i v0 (THead k u2 t4)) (subst_head k v0 u2 t4 i)) (subst i v0 (THead k u1 t3)) (subst_head k v0 u1 t3 i))))))))))))) d v t1 t2 H))))). -(* COMMENTS -Initial nodes: 1363 -END *)