From 143c97a8fe657eb7b041dec2747b0e67b5899762 Mon Sep 17 00:00:00 2001 From: Ferruccio Guidi Date: Wed, 5 Jun 2013 21:54:08 +0000 Subject: [PATCH] some work on extended reduction ... --- .../contribs/lambdadelta/basic_2/names.txt | 6 +- .../contribs/lambdadelta/basic_2/notation.ma | 12 ++++ .../basic_2/reduction/{xpr.ma => cpx.ma} | 37 ++++------- .../basic_2/reduction/cpx_ldrop.ma | 64 +++++++++++++++++++ .../lambdadelta/basic_2/relocation/fsupq.ma | 32 ++++++++++ matita/matita/lib/basics/relations.ma | 6 ++ matita/matita/lib/basics/star.ma | 2 +- matita/matita/predefined_virtuals.ml | 1 + 8 files changed, 132 insertions(+), 28 deletions(-) rename matita/matita/contribs/lambdadelta/basic_2/reduction/{xpr.ma => cpx.ma} (60%) create mode 100644 matita/matita/contribs/lambdadelta/basic_2/reduction/cpx_ldrop.ma create mode 100644 matita/matita/contribs/lambdadelta/basic_2/relocation/fsupq.ma diff --git a/matita/matita/contribs/lambdadelta/basic_2/names.txt b/matita/matita/contribs/lambdadelta/basic_2/names.txt index 1e1fc78cc..003b33747 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/names.txt +++ b/matita/matita/contribs/lambdadelta/basic_2/names.txt @@ -51,9 +51,10 @@ NAMING CONVENTIONS FOR TRANSFORMATIONS - first letter +c: contex-sensitive for terms f: context-freee for closures -l: sn contex-sensitive for terms -r: dx contex-sensitive for terms +l: sn contex-sensitive for local environments +r: dx contex-sensitive for local environments t: context-free for terms -second letter @@ -73,4 +74,5 @@ x: extended reduction - forth letter (if present) p: non-reflexive transitive closure +q: reflexive closure s: reflexive transitive closure diff --git a/matita/matita/contribs/lambdadelta/basic_2/notation.ma b/matita/matita/contribs/lambdadelta/basic_2/notation.ma index d53b103c8..b956f9049 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/notation.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/notation.ma @@ -150,6 +150,10 @@ notation "hvbox( ⦃ term 46 L1, break term 46 T1 ⦄ ⊃ break ⦃ term 46 L2 , non associative with precedence 45 for @{ 'SupTerm $L1 $T1 $L2 $T2 }. +notation "hvbox( ⦃ term 46 L1, break term 46 T1 ⦄ ⊃⸮ break ⦃ term 46 L2 , break term 46 T2 ⦄ )" + non associative with precedence 45 + for @{ 'SupTermOpt $L1 $T1 $L2 $T2 }. + notation "hvbox( L ⊢ break ⌘ ⦃ term 46 T ⦄ ≡ break term 46 k )" non associative with precedence 45 for @{ 'ICM $L $T $k }. @@ -254,6 +258,14 @@ notation "hvbox( L1 ⊢ ➡ break term 46 L2 )" non associative with precedence 45 for @{ 'PRedSn $L1 $L2 }. +notation "hvbox( ⦃ term 46 h, break term 46 L ⦄ ⊢ break term 46 T1 ➡ break [ term 46 g ] break term 46 T2 )" + non associative with precedence 45 + for @{ 'PRed $h $g $L $T1 $T2 }. + +notation "hvbox( ⦃ term 46 h, break term 46 L ⦄ ⊢ break term 46 T1 ➡ ➡ break [ term 46 g ] break term 46 T2 )" + non associative with precedence 45 + for @{ 'PRedAlt $h $g $L $T1 $T2 }. + (* Computation **************************************************************) notation "hvbox( L ⊢ break term 46 T1 ➡ * break term 46 T2 )" diff --git a/matita/matita/contribs/lambdadelta/basic_2/reduction/xpr.ma b/matita/matita/contribs/lambdadelta/basic_2/reduction/cpx.ma similarity index 60% rename from matita/matita/contribs/lambdadelta/basic_2/reduction/xpr.ma rename to matita/matita/contribs/lambdadelta/basic_2/reduction/cpx.ma index 8cec0b050..0c6d10fa1 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/reduction/xpr.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/reduction/cpx.ma @@ -15,41 +15,33 @@ include "basic_2/static/ssta.ma". include "basic_2/reduction/cpr.ma". -lemma arith1: ∀x,y,z,w. z < y → x + (y + w) - z = x + y - z + w. -#x #y #z #w #H