我想知道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
我的问题是
这是"倒置"建设者的声音?
如果逻辑是合理的,Coq中是否有策略可以做到?
答案 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.