来自逻辑基础的 Rel 章节。我得到了我试图理解的 excersize 的解决方案:
Definition antisymmetric {X: Type} (R: relation X) :=
forall a b : X, (R a b) -> (R b a) -> a = b.
Theorem le_antisymmetric :
antisymmetric le.
Proof.
unfold antisymmetric. intros a b [| b' H1] H2.
- reflexivity.
- absurd (S b' <= b').
+ apply le_Sn_n.
+ etransitivity ; eassumption.
我不明白,介绍模式如何[| b' H1]
工作?介绍后显示:
2 subgoals (ID 43)
a, b : nat
H2 : a <= a
============================
a = a
subgoal 2 (ID 46) is:
a = S b'
第二个子目标:
a, b, b' : nat
H1 : a <= b'
H2 : S b' <= a
============================
a = S b'
我知道它相当于破坏,但是什么样的破坏呢?这绝对不是一个简单的destruct b
.
我也试图理解使用absurd (S b' <= b')
战术背后的逻辑。这是否意味着,如果我们a = S b'
在这种情况下证明这一点,就意味着我们在 H1 中重写后,我们得到:a
,这是一个普遍错误的陈述(荒谬)?S b'
S b' <= b'