X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=matita%2Fmatita%2Fcontribs%2Flambda%2Fparallel_reduction.ma;h=91fe30e1c91595025ccae0b573c56cf3c3db4254;hb=178820be7648a60af17837727e51fd1f3f2791db;hp=f5285bad13ff25ae4b440742cbcf2b92f2f48e75;hpb=30961a10d1cdfd74c4a662082419b717b85d63a6;p=helm.git diff --git a/matita/matita/contribs/lambda/parallel_reduction.ma b/matita/matita/contribs/lambda/parallel_reduction.ma index f5285bad1..91fe30e1c 100644 --- a/matita/matita/contribs/lambda/parallel_reduction.ma +++ b/matita/matita/contribs/lambda/parallel_reduction.ma @@ -22,9 +22,9 @@ include "labelled_sequential_reduction.ma". *) inductive pred: relation term ≝ | pred_vref: ∀i. pred (#i) (#i) -| pred_abst: ∀A,C. pred A C → pred (𝛌.A) (𝛌.C) -| pred_appl: ∀B,D,A,C. pred B D → pred A C → pred (@B.A) (@D.C) -| pred_beta: ∀B,D,A,C. pred B D → pred A C → pred (@B.𝛌.A) ([⬐D]C) +| pred_abst: ∀A1,A2. pred A1 A2 → pred (𝛌.A1) (𝛌.A2) +| pred_appl: ∀B1,B2,A1,A2. pred B1 B2 → pred A1 A2 → pred (@B1.A1) (@B2.A2) +| pred_beta: ∀B1,B2,A1,A2. pred B1 B2 → pred A1 A2 → pred (@B1.𝛌.A1) ([⬐B2]A2) . interpretation "parallel reduction" @@ -40,9 +40,9 @@ qed. lemma pred_inv_vref: ∀M,N. M ⥤ N → ∀i. #i = M → #i = N. #M #N * -M -N // -[ #A #C #_ #i #H destruct -| #B #D #A #C #_ #_ #i #H destruct -| #B #D #A #C #_ #_ #i #H destruct +[ #A1 #A2 #_ #i #H destruct +| #B1 #B2 #A1 #A2 #_ #_ #i #H destruct +| #B1 #B2 #A1 #A2 #_ #_ #i #H destruct ] qed-. @@ -50,9 +50,9 @@ lemma pred_inv_abst: ∀M,N. M ⥤ N → ∀A. 𝛌.A = M → ∃∃C. A ⥤ C & 𝛌.C = N. #M #N * -M -N [ #i #A0 #H destruct -| #A #C #HAC #A0 #H destruct /2 width=3/ -| #B #D #A #C #_ #_ #A0 #H destruct -| #B #D #A #C #_ #_ #A0 #H destruct +| #A1 #A2 #HA12 #A0 #H destruct /2 width=3/ +| #B1 #B2 #A1 #A2 #_ #_ #A0 #H destruct +| #B1 #B2 #A1 #A2 #_ #_ #A0 #H destruct ] qed-. @@ -61,15 +61,15 @@ lemma pred_inv_appl: ∀M,N. M ⥤ N → ∀B,A. @B.A = M → ∃∃A0,D,C0. B ⥤ D & A0 ⥤ C0 & 𝛌.A0 = A & [⬐D]C0 = N. #M #N * -M -N [ #i #B0 #A0 #H destruct -| #A #C #_ #B0 #A0 #H destruct -| #B #D #A #C #HBD #HAC #B0 #A0 #H destruct /3 width=5/ -| #B #D #A #C #HBD #HAC #B0 #A0 #H destruct /3 width=7/ +| #A1 #A2 #_ #B0 #A0 #H destruct +| #B1 #B2 #A1 #A2 #HB12 #HA12 #B0 #A0 #H destruct /3 width=5/ +| #B1 #B2 #A1 #A2 #HB12 #HA12 #B0 #A0 #H destruct /3 width=7/ ] qed-. lemma pred_lift: liftable pred. #h #M1 #M2 #H elim H -M1 -M2 normalize // /2 width=1/ -#D #D #A #C #_ #_ #IHBD #IHAC #d dsubst_dsubst_ge // /2 width=1/ ] qed.