[英]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.