Coq假设中的分裂合取(\ /)

时间:2019-03-24 06:38:32

标签: coq

我正在尝试证明Coq中的简单引理,其中假设是一个析取项。我知道在目标中发生split析取时, 但是当它们出现在假设中时,就无法对其进行拆分。这是我的示例:

Theorem splitting_disjunctions_in_hypotheses : forall (n : nat),
  ((n < 5) \/ (n > 8)) -> ((n > 7) \/ (n < 6)).
Proof.
  intros n H1.
  split H1. (** this doesn't work ... *)

这是Coq所说的:

1 subgoal
n : nat
H1 : n < 5 \/ n > 8
______________________________________(1/1)
n > 7 \/ n < 6

有错误:

Error: Illegal tactic application.

我显然缺少简单的东西。 非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:2)

您想要的策略是destruct

destruct H1 as [name1 | name2].

如果您想命名得出的假设,可以进行while(inf){ string ML,MSV; inf>>ML>>MSV; ListOfStudent.push_back(Student(ML,MSV)); }