让我们说我已经Hypothesis
关于价值的存在。如何在环境中命名该变量?
示例:
Require Import ZArith.
Open Scope Z.
Hint Resolve Zred_factor0 Zmult_assoc_reverse Z.mul_comm Z.mul_add_distr_l
Z.mul_1_l Z.mul_0_r Z.mul_0_l Z.abs_nonneg.
Definition divides d n := exists c, d*c = n.
Section divisor.
Variables (d n a:Z).
Hypothesis H: divides d n.
现在我想介绍一下c
以及d*c = n
进入环境的事实,所以我不必每次都通过破坏H
开始我的证明,就像这样:
Lemma div4: divides (a*d) (a*n).
destruct H as [c H']. (*** Here I would like to already have c and H' *)
subst; exists c; auto.
Qed.
End divisor.
答案 0 :(得分:1)
据我所知,没有办法做你想做的事。我认为由于Prop
消除的限制,实施起来会有点复杂。
在这种特殊情况下,你可以做的一件事就是在你的上下文中将n / d
命名为c
,然后使用你的假设证明一个辅助引理,说n = c * d
。那么你仍然会在你的引理声明中得到你的假设,但不会一直破坏它。