让我们说我要证明P : A -> (B /\ C)
。在intros. split.
之后,Coq生成两个子目标,我分别证明B
和C
,并以A
为前提。假设我已经证明了第一个子目标并且进入了第二个子目标。有没有办法介绍以前证明的子目标,以便我在上下文中有B
?
一种显而易见的方法是将原始定理重构为P1 : A -> B
和P2 : A -> C
,但如果我可以跳过这一点,特别是对于制作紧凑的自动校样,那将是很好的。
答案 0 :(得分:3)
您可以在assert B.
之前split.
进行证明,然后split
并使用该假设证明B
,并继续使用{C
来证明B
{1}}可用。
或者,您可以构建一个:
Theorem and_intro_2 :
forall A B C : Prop,
(A -> B) ->
(A -> B -> C) ->
A -> B /\ C.
Proof. firstorder. Qed.
并在开始时立即应用它。