如何一步一步地将一个定理分解为所有三个分离式?

时间:2018-12-23 19:00:52

标签: coq coq-tactic

我已经证明了以下引理:

Lemma ord_semiconnex_bool : forall (alpha beta : ord),
  ord_ltb alpha beta = true \/ ord_ltb beta alpha = true \/ ord_eqb alpha beta = true.

我想对它证明的另一个定理进行案例分析,并且试图将其应用于对象:

gamma1 alpha1 : ord

但是,如果我说:

destruct (ord_semiconnex_bool gamma1 alpha1).

这给了我两个分支,而不是三个。在第一个分支中,我得到:

H0 : ord_ltb gamma1 alpha1 = true

在第二个分支中,我得到:

H0 : ord_ltb alpha1 gamma1 = true \/ ord_eqb gamma1 alpha1 = true

因此,当我在第二个分支中时,我一直被称为“销毁H0”,这给了我所需的另外两个子分支。但这太不雅致了,结果我的证明看起来很丑。

有没有一种方法可以一次将我的定理分解为三个定理?

1 个答案:

答案 0 :(得分:3)

destruct (...) as [ H1 | [ H2 | H3 ] ]