X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambda-delta%2FBasic-2%2Fnotation.ma;h=a84fa8ff8cc25dd3138aa0e1eb1ecfe468a9f9fb;hb=b4240d93f7fd4c3e60d3495dc558edfc0e0f48e7;hp=375d06abc776e6af2eb9c444c7619bbd50053caf;hpb=fefe8d334012230f8e8b9d90976d9411a58d4ba8;p=helm.git diff --git a/matita/matita/contribs/lambda-delta/Basic-2/notation.ma b/matita/matita/contribs/lambda-delta/Basic-2/notation.ma index 375d06abc..a84fa8ff8 100644 --- a/matita/matita/contribs/lambda-delta/Basic-2/notation.ma +++ b/matita/matita/contribs/lambda-delta/Basic-2/notation.ma @@ -1,17 +1,20 @@ -(* - ||M|| This file is part of HELM, an Hypertextual, Electronic - ||A|| Library of Mathematics, developed at the Computer Science - ||T|| Department of the University of Bologna, Italy. - ||I|| - ||T|| - ||A|| This file is distributed under the terms of the - \ / GNU General Public License Version 2 - \ / - V_______________________________________________________________ *) +(**************************************************************************) +(* ___ *) +(* ||M|| *) +(* ||A|| A project by Andrea Asperti *) +(* ||T|| *) +(* ||I|| Developers: *) +(* ||T|| The HELM team. *) +(* ||A|| http://helm.cs.unibo.it *) +(* \ / *) +(* \ / This file is distributed under the terms of the *) +(* v GNU General Public License Version 2 *) +(* *) +(**************************************************************************) (* NOTATION FOR THE FORMAL SYSTEM λδ ****************************************) -(* Syntax *******************************************************************) +(* Grammar ******************************************************************) notation "hvbox( ⋆ )" non associative with precedence 90 @@ -21,27 +24,35 @@ notation "hvbox( ⋆ term 90 k )" non associative with precedence 90 for @{ 'Star $k }. -notation "hvbox( 𝕚 { I } break (term 90 T1) . break (term 90 T) )" +notation "hvbox( # term 90 k )" + non associative with precedence 90 + for @{ 'LRef $k }. + +notation "hvbox( 𝕒 { I } )" + non associative with precedence 90 + for @{ 'SItem $I }. + +notation "hvbox( 𝕔 { I } break term 90 T1 . break term 90 T )" non associative with precedence 90 for @{ 'SItem $I $T1 $T }. -notation "hvbox( 𝕓 { I } break (term 90 T1) . break (term 90 T) )" +notation "hvbox( 𝕓 { I } break term 90 T1 . break term 90 T )" non associative with precedence 90 for @{ 'SBind $I $T1 $T }. -notation "hvbox( 𝕗 { I } break (term 90 T1) . break (term 90 T) )" +notation "hvbox( 𝕗 { I } break term 90 T1 . break term 90 T )" non associative with precedence 90 for @{ 'SFlat $I $T1 $T }. -notation "hvbox( T . break 𝕓 { I } break (term 90 T1) )" +notation "hvbox( T . break 𝕓 { I } break term 90 T1 )" non associative with precedence 89 for @{ 'DBind $T $I $T1 }. (* -notation "hvbox( | L | )" - non associative with precedence 70 - for @{ 'Length $L }. -*) -notation "hvbox( # term 90 x )" +notation > "hvbox( T . break 𝕔 { I } break term 90 T1 )" + non associative with precedence 89 + for @{ 'DBind $T $I $T1 }. +*) (**) (* this breaks all parsing *) +notation "hvbox( # [ x ] )" non associative with precedence 90 for @{ 'Weight $x }. @@ -49,30 +60,66 @@ notation "hvbox( # [ x , break y ] )" non associative with precedence 90 for @{ 'Weight $x $y }. -(* Substitution *************************************************************) +notation "hvbox( 𝕊 [ T ] )" + non associative with precedence 45 + for @{ 'Simple $T }. notation "hvbox( T1 break [ d , break e ] ≈ break T2 )" non associative with precedence 45 for @{ 'Eq $T1 $d $e $T2 }. +(* Substitution *************************************************************) + notation "hvbox( ↑ [ d , break e ] break T1 ≡ break T2 )" non associative with precedence 45 - for @{ 'RLift $T1 $d $e $T2 }. + for @{ 'RLift $d $e $T1 $T2 }. notation "hvbox( ↓ [ d , break e ] break L1 ≡ break L2 )" non associative with precedence 45 - for @{ 'RDrop $L1 $d $e $L2 }. + for @{ 'RDrop $d $e $L1 $L2 }. + +notation "hvbox( T1 break [ d , break e ] ≫ break T2 )" + non associative with precedence 45 + for @{ 'PSubst $T1 $d $e $T2 }. notation "hvbox( L ⊢ break term 90 T1 break [ d , break e ] ≫ break T2 )" non associative with precedence 45 for @{ 'PSubst $L $T1 $d $e $T2 }. +(* Unfold *******************************************************************) + +notation "hvbox( T1 break [ d , break e ] ≫* break T2 )" + non associative with precedence 45 + for @{ 'PSubstStar $T1 $d $e $T2 }. + +notation "hvbox( L ⊢ break term 90 T1 break [ d , break e ] ≫* break T2 )" + non associative with precedence 45 + for @{ 'PSubstStar $L $T1 $d $e $T2 }. + (* Reduction ****************************************************************) notation "hvbox( T1 ⇒ break T2 )" non associative with precedence 45 for @{ 'PRed $T1 $T2 }. -notation "hvbox( L ⊢ break (term 90 T1) ⇒ break T2 )" +notation "hvbox( L ⊢ break term 90 T1 ⇒ break T2 )" non associative with precedence 45 for @{ 'PRed $L $T1 $T2 }. + +notation "hvbox( L1 ⊢ ⇒ break L2 )" + non associative with precedence 45 + for @{ 'CPRed $L1 $L2 }. + +(* Computation **************************************************************) + +notation "hvbox( T1 ⇒* break T2 )" + non associative with precedence 45 + for @{ 'PRedStar $T1 $T2 }. + +notation "hvbox( L ⊢ break term 90 T1 ⇒* break T2 )" + non associative with precedence 45 + for @{ 'PRedStar $L $T1 $T2 }. + +notation "hvbox( L1 ⊢ ⇒* break L2 )" + non associative with precedence 45 + for @{ 'CPRedStar $L1 $L2 }.