this 설명서에는 증명을 완료하는 데 replace
을 사용할 수있는 방법이 나와 있지만 rewrite
으로 끝나며 이는 replace
이라고 쓰는 구문 설탕처럼 보입니다. 나는 그것을 명시 적으로 사용하는 방법을 이해하는데 관심이있다.`replace`를 통해 이러한 commutativity의 증명을 완성하는 방법은 무엇입니까?
정확하게 이해하면 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
으로 인스턴스화하면 S k = S (plus k 0)
이라는 증명이 필요합니다. 이는 우리가 처음부터 입증하고자했던 것입니다. 간단히 말해서, 정확히 P
이 무엇인지 잘 모르겠습니다.
대체가 정당화되는 방식은 나에게 미스테리입니다 (예, 정의를 보았습니다). – MaiaVictor
'sym'는 실제로 여기에 필요하지 않습니다 :'replace {P = \ x => S k = S x} (plusCommZ k) Refl' (이것은 본질적으로'cong (plusCommZ k)'입니다) –