X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=matita%2Fmatita%2Fcontribs%2Flambda%2Fterm.ma;h=2e6a6e0ec16eaf566cf0a5ef3012837560a8d58d;hb=8730061377260fd9d86f77b46635038e3c1411cc;hp=80a1de667f84555a2cbcb0af16eb860d7e1b2a72;hpb=e58a16408ecab0cdea0be912b9691ae03acdcc3b;p=helm.git diff --git a/matita/matita/contribs/lambda/term.ma b/matita/matita/contribs/lambda/term.ma index 80a1de667..2e6a6e0ec 100644 --- a/matita/matita/contribs/lambda/term.ma +++ b/matita/matita/contribs/lambda/term.ma @@ -12,37 +12,42 @@ (* *) (**************************************************************************) -include "arithmetics/nat.ma". +(* Initial invocation: - Patience on us to gain peace and perfection! - *) -(* Policy: term metavariables: A, B, C, D - de Bruijn indexes : i, j, h, k +include "preamble.ma". + +(* TERM STRUCTURE ***********************************************************) + +(* Policy: term metavariables: A, B, C, D, M, N + de Bruijn indexes : i, j *) inductive term: Type[0] ≝ -| VRef: nat → term (* variable reference by index, starts at zero *) -| Abst: term → term (* function formation *) -| Appl: term → term → term (* function application, argument comes first *) +| VRef: nat → term (* variable reference by index *) +| Abst: term → term (* function formation *) +| Appl: term → term → term (* function application *) . -notation "hvbox( # term 90 i )" - non associative with precedence 55 - for @{ 'VariableReferenceByIndex $i }. - interpretation "term construction (variable reference by index)" 'VariableReferenceByIndex i = (VRef i). -notation "hvbox( 𝛌 term 55 A )" - non associative with precedence 55 - for @{ 'Abstraction $A }. - interpretation "term construction (abstraction)" 'Abstraction A = (Abst A). -notation "hvbox( @ term 55 C . break term 55 A )" - non associative with precedence 55 - for @{ 'Application $C $A }. - interpretation "term construction (application)" 'Application C A = (Appl C A). -lemma prova_notazione: ∀A,i. @A.𝛌#i = @A.𝛌#i. -// qed-. +notation "hvbox( # term 90 i )" + non associative with precedence 90 + for @{ 'VariableReferenceByIndex $i }. + +notation "hvbox( 𝛌 . term 46 A )" + non associative with precedence 46 + for @{ 'Abstraction $A }. + +notation > "hvbox( 𝛌 term 46 A )" + non associative with precedence 46 + for @{ 'Abstraction $A }. + +notation "hvbox( @ term 46 C . break term 46 A )" + non associative with precedence 46 + for @{ 'Application $C $A }.