X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2Fnlibrary%2Fhints_declaration.ma;h=dac148e4fe9f80f99fbd3fef5dc3e733c101d335;hb=533389aa3b960f04c04ab1982d6ae47cf2d265e9;hp=b826d2e767dda6a0d3adae1b551da9e84c9ae301;hpb=f4d8fe802ca50904dafdf680a199253d65a4a84c;p=helm.git diff --git a/helm/software/matita/nlibrary/hints_declaration.ma b/helm/software/matita/nlibrary/hints_declaration.ma index b826d2e76..dac148e4f 100644 --- a/helm/software/matita/nlibrary/hints_declaration.ma +++ b/helm/software/matita/nlibrary/hints_declaration.ma @@ -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. *)