[英]How to complete this proof of commutativity with `replace`?
在本文檔中,提到了如何使用replace
來完成證明,但最終使用rewrite
,這似乎是為您編寫replace
的語法糖。 我有興趣了解如何顯式使用它。
如果我理解正確,它可以用來將S k = S (plus k 0)
重寫為S (plus k 0) = S (plus k 0)
,並證明k = plus k 0
,那么這是可證明的通過反射。 但是,如果我們將其replace {P = \\x => S x = S (plus k 0)} {x = k} {y = plus k 0} rec
為replace {P = \\x => S x = S (plus k 0)} {x = k} {y = plus k 0} rec
,我們現在需要S k = S (plus k 0)
的證明S k = S (plus k 0)
,這就是我們想證明的開始。 簡而言之,我不確定P
應該是什么。
嗯,回想起來很明顯。 如果我們讓:
P = \x => S x = S (plus k 0)
然后,我們可以證明x = (plus k 0)
(通過自反)。 現在,如果讓y = k
,那么通過使用replace
,我們得到了S k = S (plus k 0)
的證明。 或者,換句話說:
plusCommZ : (m : Nat) -> m = plus m 0
plusCommZ Z = Refl
plusCommZ (S k) = replace
{P = \x => S x = S (plus k 0)}
{x = plus k 0}
{y = k}
(sym (plusCommZ k))
Refl
完成證明。 我們可以用P = \\x => S x = S k
來進行另一種方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.