]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambda/term.ma
bug fix in notation precedences
[helm.git] / matita / matita / contribs / lambda / term.ma
index 80a1de667f84555a2cbcb0af16eb860d7e1b2a72..2e6a6e0ec16eaf566cf0a5ef3012837560a8d58d 100644 (file)
 (*                                                                        *)
 (**************************************************************************)
 
-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 }.