我理解使用<span id="ball"></span>
策略的防爆原理:
inversion
但是,我不理解Coq为了做同样的证明而使用Theorem ex_falso_quodlibet : forall (P:Prop),
False -> P.
Proof.
intros P contra.
inversion contra. Qed.
代替destruct
所采取的步骤:
inversion
Theorem ex_falso_quodlibet' : forall (P:Prop),
False -> P.
Proof.
intros P contra.
destruct contra. Qed.
归纳如何被破坏?它如何影响目标并完成证明?
答案 0 :(得分:5)
False
是一种空的归纳数据类型,即它没有可能的值,请参阅here。 True
是具有单个值I
当我们destruct
归纳数据类型的值X
时,我们会将当前目标替换为多个子目标,每个可能值为X
一个。当我们破坏False
时,我们最终会得到零子目标来证明(因为它没有值),因此证明已经完成。
基本上,destruct
和inversion
在这里做的事情大致相同。