a : nat
fvs : list nat
H : a = max (maxNum fvs) a + 1
H1 : max (maxNum fvs) a >= a
执行rewrite H in H1.
,替换a
,而我只想重写RHS上的a。可以吗?我想从上述两个假设中证明是假的。
答案 0 :(得分:1)
一种选择是使用rewrite ... at <position>.
,如下所示:
rewrite H in H1 at 2.
您想要的也可以稍微不同的方式完成。注意max (maxNum fvs) a
在这里是无关紧要的 - 你可以使用任何自然数而不是那个表达式,你的定理仍然可以。这意味着您可以使用generalize
策略。
Require Import Coq.Arith.Arith.
Section foo.
Variable a : nat.
Variable fvs : list nat.
Variable maxNum : list nat -> nat.
Hypothesis H : a = max (maxNum fvs) a + 1.
Hypothesis H1 : max (maxNum fvs) a >= a.
Goal False.
revert H H1; generalize (max (maxNum fvs) a) as n.
intros n ->; rewrite Nat.add_1_r.
apply Nat.nle_succ_diag_l.
Qed.
End foo.