如何将引理应用于 2 假设
How to apply a lemma to 2 hypothesis
Theorem ev_plus_plus : forall n m p,
even (n+m) -> even (n+p) -> even (m+p).
Proof.
intros n m p Hnm Hnp.
我们得到这个:
1 subgoal (ID 189)
n, m, p : nat
Hnm : even (n + m)
Hnp : even (n + p)
============================
even (m + p)
我们还有一个先前证明的定理:
ev_sum
: forall n m : nat, even n -> even m -> even (n + m)
我们知道(n+m)
是偶数,(n+p)
是偶数。
如何通过将 ev_sum 应用于 Hnm 和 Hnp 在上下文中创建新假设:
Hsum: even((n+m) + (n+p))
?
对此您有多种选择。
您可以像这样使用 pose proof
:
pose proof (ev_sum _ _ Hnm Hnp) as Hsum.
它会如您所愿。
它允许您给出一个术语并将其添加为假设。
另一种选择是使用 eapply ... in
。
例如你可以做
eapply ev_sum in Hnm.
然后你必须在其中一个子目标中给出 Hnp
。
Theorem ev_plus_plus : forall n m p,
even (n+m) -> even (n+p) -> even (m+p).
Proof.
intros n m p Hnm Hnp.
我们得到这个:
1 subgoal (ID 189)
n, m, p : nat
Hnm : even (n + m)
Hnp : even (n + p)
============================
even (m + p)
我们还有一个先前证明的定理:
ev_sum
: forall n m : nat, even n -> even m -> even (n + m)
我们知道(n+m)
是偶数,(n+p)
是偶数。
如何通过将 ev_sum 应用于 Hnm 和 Hnp 在上下文中创建新假设:
Hsum: even((n+m) + (n+p))
?
对此您有多种选择。
您可以像这样使用 pose proof
:
pose proof (ev_sum _ _ Hnm Hnp) as Hsum.
它会如您所愿。 它允许您给出一个术语并将其添加为假设。
另一种选择是使用 eapply ... in
。
例如你可以做
eapply ev_sum in Hnm.
然后你必须在其中一个子目标中给出 Hnp
。