对目标有效的 Coq 反转策略?
Coq inversion tactic that works on the goal?
我想知道 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
我的问题是
这个"inversion"构造函数好听吗?
如果逻辑合理,Coq 中是否有相应的策略?
几天前回答了同样的问题。没有 "inversion" 涉及你想做的事情,简单的平等就可以了:
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.
我想知道 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
我的问题是
这个"inversion"构造函数好听吗?
如果逻辑合理,Coq 中是否有相应的策略?
几天前回答了同样的问题。没有 "inversion" 涉及你想做的事情,简单的平等就可以了:
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.