Coq:从目标两侧移除构造函数
考虑以下部分证据:Coq:从目标两侧移除构造函数,coq,coq-tactic,Coq,Coq Tactic,考虑以下部分证据: Theorem test : forall (n m : nat), n = m -> S n = S m. Proof. intros n m H. 执行到这一点,我会得到以下结果: 1 subgoal n, m : nat H : n = m ______________________________________(1/1) S n = S m 我想从目标中删除SS,获得目标n=m。有一种策略可以做到这一点吗?你在寻找f_equal策略。你在寻找f_
Theorem test : forall (n m : nat),
n = m -> S n = S m.
Proof.
intros n m H.
执行到这一点,我会得到以下结果:
1 subgoal
n, m : nat
H : n = m
______________________________________(1/1)
S n = S m
我想从目标中删除
S
S,获得目标n=m
。有一种策略可以做到这一点吗?你在寻找f_equal
策略。你在寻找f_equal
策略。当前的问题似乎是问题和的重复。最终你可能会发现有趣的是,这本质上只是一个匹配
语句,但是一种高级形式,它使用return
注释让Coq的类型系统将类型sn=sn
转换为sn=sm
。尝试使用eq\u refl=>eq\u refl endapply(匹配H in(=n2)return(S\us n2))。
当前问题似乎与问题和重复。最后,您可能会发现有趣的是,这本质上只是一个match
语句,但是一种高级形式,它使用return
注释让Coq的类型系统将类型sn=sn
转换为sn=sm
。尝试apply(将(u=n2)返回中的H与eq\u refl=>eq\u refl end匹配).
如果我们想移除假设两侧的构造函数呢?那将是注入
您正在寻找的,如果我们想移除假设两侧的构造函数呢?那将是注入
您正在寻找的