对目标有效的Coq反演策略?

时间:2016-07-06 00:48:17

标签: coq coq-tactic

我想知道Coq中是否存在类似反转的策略,而不是基于其中一个假设?也就是说,如果有一些策略可以在目标上以相同的方式反转相同的构造函数。

对于一个愚蠢的例子,

Goal forall x :nat, 2 + x + 3 = x + 5.
 intros. simpl.

,它给出了

S ( S (x + 3) ) = S ( S ( S ( ... x)...)

我想反转前两个S,所以剩下要证明的是

  x + 3 = 3 + x

我的问题是

  1. 这是"倒置"建设者的声音?

  2. 如果逻辑是合理的,Coq中是否有策略可以做到?

1 个答案:

答案 0 :(得分:1)

几天前回答了同样的问题。没有"倒置"参与你想做的事情,简单的平等会做:

Goal forall x :nat, 2 + x + 3 = 5 + x.
Proof.
intros; simpl.
assert (x + 3 = 3 + x). admit.
now rewrite H.

为了简化这种模式,Coq提供了一个简单的目标一致性策略,尝试:

intros; simpl; repeat f_equal.