簡體   English   中英

如何用`replace`完成可交換性的證明?

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

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