证明 p 或 q 当且仅当 q 或 p 在精益中

prove p or q iff q or p in Lean

尝试完成精益文档中的第 3 exercises 章,但很难理解所有术语,因为我对编写证明的了解几乎为 0。我想了解更多,但需要一些帮助。

我一直在尝试解决这个例子:

example : p ∨ q ↔ q ∨ p := sorry

不知道从哪里开始。是否有我缺少解释的答案?

如果TPIL中的解释没有帮助,那么自然数游戏的命题世界可能会更好https://wwwf.imperial.ac.uk/~buzzard/xena/natural_number_game/。我已经给出了一个解决方案,但如果 TPIL 中的解释不是很有帮助,我不确定它是否会有帮助。

这是一个解决方案

example : p ∨ q ↔ q ∨ p := 
iff.intro
  (assume hpq : p ∨ q, or.elim hpq 
    (assume hp : p, or.inr hp)
    (assume hq : q, or.inl hq))
  (assume hqp : q ∨ p, or.elim hqp
    (assume hq : q, or.inr hq)
    (assume hp : p, or.inl hp))

iff.intro 是你必须用来证明 iff 的东西。它要求两个参数,一个左蕴涵的证明和一个右蕴涵的证明。

要证明一个蕴涵 p -> q,您通常必须写成 assume hp : p,,然后在假设 p

的情况下证明 q

如果你有 p q 的证明,那么你可以使用 or.elim 拆分为 p 为真和 q 为真的情况。这两个参数是 p -> [your goal]q -> [your goal].

or.inlor.inr 是通过证明左侧或右侧来证明 or 陈述的工具。