*)
-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
@{ '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".
ndefinition hint_declaration_Type0 ≝ λA:Type[0] .λa,b:A.Prop.
ndefinition hint_declaration_Type1 ≝ λA:Type[1].λa,b:A.Prop.
-ndefinition hint_declaration_Type2 ≝ λa,b:Type[1].Prop.
+ndefinition hint_declaration_Type2 ≝ λa,b:Type[2].Prop.
ndefinition hint_declaration_CProp0 ≝ λA:CProp[0].λa,b:A.Prop.
ndefinition hint_declaration_CProp1 ≝ λA:CProp[1].λa,b:A.Prop.
-ndefinition hint_declaration_CProp2 ≝ λa,b:CProp[1].Prop.
+ndefinition hint_declaration_CProp2 ≝ λa,b:CProp[2].Prop.
interpretation "hint_decl_Type2" 'hint_decl a b = (hint_declaration_Type2 a b).
interpretation "hint_decl_CProp2" 'hint_decl a b = (hint_declaration_CProp2 a b).
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.
*)