簡體   English   中英

當我期望看到荒謬的模式時,如何使用agda2模式生成模式?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM