我想使用除了作为类型构造函数给出的语法之外声明的语法自动判断参数.例如,
postulate P : ? ? ? ? Set
data Silly : Set where
goo : (n : ?) ? Fin n ? (m : ?) ? Fin m ? P n m ? Silly
Run Code Online (Sandbox Code Playgroud)
在这里,我想P n m在n和m参数之间进行证明,但这不可能是因为两者都需要声明才能表达.因此,我们使用语法声明:
syntax goo n i m j pf = i ?[ n , pf , m ]? j
Run Code Online (Sandbox Code Playgroud)
现在,我们可以手工编写
want-to-use-syntax-in-pattern-matching : Silly ? Set
want-to-use-syntax-in-pattern-matching (i ?[ n , pf , m ]? j) = ?
Run Code Online (Sandbox Code Playgroud)
这工作正常,但是当我通过case分割时C-c C-c,它使用goo而不是我的语法.有没有办法让case拆分使用我声明的语法?
(顺便说一句,使用
syntax goo n i m j pf = i ?[ n , pf , m ]? j
Run Code Online (Sandbox Code Playgroud)
失败,?产生于何处\---
)