X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_1%2Fcsubv%2Ffwd.ma;h=23883b41203a8d572591bafc20695d790d90010d;hb=57ae1762497a5f3ea75740e2908e04adb8642cc2;hp=70f6c8135a1675bb1459f6d096b810a61b98b723;hpb=3cfed03c2025e778a5e62d9549b674dbfc6453bd;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_1/csubv/fwd.ma b/matita/matita/contribs/lambdadelta/basic_1/csubv/fwd.ma index 70f6c8135..23883b412 100644 --- a/matita/matita/contribs/lambdadelta/basic_1/csubv/fwd.ma +++ b/matita/matita/contribs/lambdadelta/basic_1/csubv/fwd.ma @@ -16,20 +16,20 @@ include "basic_1/csubv/defs.ma". -let rec csubv_ind (P: (C \to (C \to Prop))) (f: (\forall (n: nat).(P (CSort -n) (CSort n)))) (f0: (\forall (c1: C).(\forall (c2: C).((csubv c1 c2) \to ((P -c1 c2) \to (\forall (v1: T).(\forall (v2: T).(P (CHead c1 (Bind Void) v1) -(CHead c2 (Bind Void) v2))))))))) (f1: (\forall (c1: C).(\forall (c2: -C).((csubv c1 c2) \to ((P c1 c2) \to (\forall (b1: B).((not (eq B b1 Void)) -\to (\forall (b2: B).(\forall (v1: T).(\forall (v2: T).(P (CHead c1 (Bind b1) -v1) (CHead c2 (Bind b2) v2)))))))))))) (f2: (\forall (c1: C).(\forall (c2: -C).((csubv c1 c2) \to ((P c1 c2) \to (\forall (f2: F).(\forall (f3: -F).(\forall (v1: T).(\forall (v2: T).(P (CHead c1 (Flat f2) v1) (CHead c2 -(Flat f3) v2))))))))))) (c: C) (c0: C) (c1: csubv c c0) on c1: P c c0 \def -match c1 with [(csubv_sort n) \Rightarrow (f n) | (csubv_void c2 c3 c4 v1 v2) -\Rightarrow (let TMP_3 \def ((csubv_ind P f f0 f1 f2) c2 c3 c4) in (f0 c2 c3 -c4 TMP_3 v1 v2)) | (csubv_bind c2 c3 c4 b1 n b2 v1 v2) \Rightarrow (let TMP_2 -\def ((csubv_ind P f f0 f1 f2) c2 c3 c4) in (f1 c2 c3 c4 TMP_2 b1 n b2 v1 -v2)) | (csubv_flat c2 c3 c4 f3 f4 v1 v2) \Rightarrow (let TMP_1 \def -((csubv_ind P f f0 f1 f2) c2 c3 c4) in (f2 c2 c3 c4 TMP_1 f3 f4 v1 v2))]. +implied rec lemma csubv_ind (P: (C \to (C \to Prop))) (f: (\forall (n: +nat).(P (CSort n) (CSort n)))) (f0: (\forall (c1: C).(\forall (c2: C).((csubv +c1 c2) \to ((P c1 c2) \to (\forall (v1: T).(\forall (v2: T).(P (CHead c1 +(Bind Void) v1) (CHead c2 (Bind Void) v2))))))))) (f1: (\forall (c1: +C).(\forall (c2: C).((csubv c1 c2) \to ((P c1 c2) \to (\forall (b1: B).((not +(eq B b1 Void)) \to (\forall (b2: B).(\forall (v1: T).(\forall (v2: T).(P +(CHead c1 (Bind b1) v1) (CHead c2 (Bind b2) v2)))))))))))) (f2: (\forall (c1: +C).(\forall (c2: C).((csubv c1 c2) \to ((P c1 c2) \to (\forall (f2: +F).(\forall (f3: F).(\forall (v1: T).(\forall (v2: T).(P (CHead c1 (Flat f2) +v1) (CHead c2 (Flat f3) v2))))))))))) (c: C) (c0: C) (c1: csubv c c0) on c1: +P c c0 \def match c1 with [(csubv_sort n) \Rightarrow (f n) | (csubv_void c2 +c3 c4 v1 v2) \Rightarrow (f0 c2 c3 c4 ((csubv_ind P f f0 f1 f2) c2 c3 c4) v1 +v2) | (csubv_bind c2 c3 c4 b1 n b2 v1 v2) \Rightarrow (f1 c2 c3 c4 +((csubv_ind P f f0 f1 f2) c2 c3 c4) b1 n b2 v1 v2) | (csubv_flat c2 c3 c4 f3 +f4 v1 v2) \Rightarrow (f2 c2 c3 c4 ((csubv_ind P f f0 f1 f2) c2 c3 c4) f3 f4 +v1 v2)].