]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/nlibrary/hints_declaration.ma
...
[helm.git] / helm / software / matita / nlibrary / hints_declaration.ma
index b826d2e767dda6a0d3adae1b551da9e84c9ae301..dac148e4fe9f80f99fbd3fef5dc3e733c101d335 100644 (file)
@@ -36,7 +36,8 @@ With unidoce and some ASCII art it looks like the following:
 
 *)
    
-notation > "≔ (list0 ( ident x : T ) sep ,) opt (; (list1 (ident U ≟ term 90 V ) sep ,)) ⊢ term 19 Px ≡ term 19 Py"
+(* it seems unbelivable, but it works! *)
+notation > "≔ (list0 ( (list1 (ident x) sep , ) opt (: T) ) sep ,) opt (; (list1 (ident U ≟ term 90 V ) sep ,)) ⊢ term 19 Px ≡ term 19 Py"
   with precedence 90
   for @{ ${ fold right 
                @{ ${ default 
@@ -46,7 +47,11 @@ notation > "≔ (list0 ( ident x : T ) sep ,) opt (; (list1 (ident U ≟ term 90
                     @{ 'hint_decl $Px $Py } 
                  }
                } 
-               rec acc @{ ∀${ident x}:$T.$acc } } }.
+               rec acc @{ 
+                 ${ fold right @{ $acc } rec acc2 
+                      @{ ∀${ident x}:${ default @{ $T } @{ ? } }.$acc2 } } 
+               }
+       }}.
 
 include "logic/pts.ma".
 
@@ -64,12 +69,11 @@ interpretation "hint_decl_CProp1" 'hint_decl a b = (hint_declaration_CProp1 ? a
 interpretation "hint_decl_CProp0" 'hint_decl a b = (hint_declaration_CProp0 ? a b).
 interpretation "hint_decl_Type0"  'hint_decl a b = (hint_declaration_Type0 ? a b).
 
-(* little test 
+(* little test
 naxiom A : Type[0].
 naxiom C : A → A → Type[0].
 ndefinition D ≝ C.               
 alias symbol "hint_decl" = "hint_decl_Type1".
 unification hint 0 ≔ 
-  X : A, Y : A ;  Z ≟ X, W ≟ Y ⊢ C X Y ≡ D Z W.
-  
+  X, R : A, Y ;  Z ≟ X, W ≟ Y ⊢ C X Y ≡ D Z W.
 *)