如何获取案例拆分使用的语法声明

时间:2016-01-04 00:25:34

标签: emacs agda

我想使用声明的语法自动判断参数 除了作为类型构造函数给出的那个。例如,

postulate P : ℕ → ℕ → Set

data Silly : Set where
  goo : (n : ℕ) → Fin n → (m : ℕ) → Fin m → P n m → Silly

在这里,我希望在P n mn参数之间出现证明m,但这不可能因为两者都需要声明它是表达。因此,我们使用语法声明:

syntax goo n i m j pf = i ⟵[ n , pf , m ]⟶ j

现在,我们可以手写了

want-to-use-syntax-in-pattern-matching : Silly → Set
want-to-use-syntax-in-pattern-matching (i ⟵[ n , pf , m ]⟶ j) = ℕ

这样可以正常使用,但是当我通过C-c C-c进行大意分割时,它会使用goo而不是我的语法。有没有办法让case拆分使用我声明的语法?

( 顺便说一句,使用

syntax goo n i m j pf = i ─[ n , pf , m ]⟶ j

失败,

生成\---

1 个答案:

答案 0 :(得分:1)

如今,如果Agda不在范围内,则左侧的Agda重塑模式 这样就可以了。