[英]How can I use agda2-mode to generate patterns when I expect to see an absurd pattern?
例如,我们证明2 + 2 != 5
:
data _+_≡_ : ℕ → ℕ → ℕ → Set where
znn : ∀ {n} → zero + n ≡ n
sns : ∀ {m n k} → m + n ≡ k → suc m + n ≡ suc k
我可以手动证明这一点:
2+2≠5 : 2 + 2 ≡ 5 → ⊥
2+2≠5 (sns (sns ()))
但是我希望生成图案(sns (sns ()))
(就像填充孔一样)。 有什么方法可以实现?
我正在使用带有agda2模式的Emacs 25。
好的,让我们说您从此配置开始:
2+2≠5 : 2 + 2 ≡ 5 → ⊥
2+2≠5 h = {!!}
在这种情况下,您可以使用emacs的键盘宏,因为通过匹配h
生成的子项也将被命名为h
。 因此使用:
<f3>
(开始记录宏) Cc Cf
(移至孔) Cc Cc h RET
(与h
匹配) <f4>
(记录宏) 您已经记录了“将与h的匹配移到第一个目标”的操作。 现在,您可以一直按<f4>
直到出现荒谬的情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.