在COQ中使用nat比较的基于案例的证明

时间:2014-11-28 20:59:28

标签: coq

我目前正试图证明这样的事情:

1 subgoals
a : nat
IHa : {x : nat | something_with a x}
______________________________________(1/1)
{x : nat | something_with (S a) x}

问题是,为了提供x变量的值并证明该集不为空,我需要比较xS a并相应地提供值如果x大于或等于a,那么适用于S ax的{​​{1}}可能会有所不同。

有关如何实现这一目标的任何线索?

1 个答案:

答案 0 :(得分:2)

使用案例策略创建两个子目标怎么样,给定S a< = x而另一个给定x<是吗?

case IHa.
intro x.
intro H.
case (le_lt_dec (S a) x).

或者你可以做到

destruct IHa.
case (le_lt_dec (S a) x).

destruct自动应用引入策略。