在证明期间,我遇到了一个假设H
。我有lemmas:H -> A
和H -> B
。
如何复制H
以推断出两个假设A
和B
?
编辑: 更确切地说,我有:
lemma l1: X -> A.
lemma l2: X -> B.
1 subgoals, subgoal 1 (ID: 42)
H: X
=========
Y
但是,我想得到:
1 subgoals, subgoal 1 (ID: 42)
H1: A
H2: B
=========
Y
答案 0 :(得分:6)
如果您绝对需要按照建议多次使用假设,则可以使用assert
这样的前向推理策略,而不必从上下文中清除它,例如
assert (HA := l1 H).
assert (HB := l2 H).
您也可以执行assert (H' := H).
之类的操作,将H
明确复制到H'
,尽管您通常可以采用更直接的方式来获取所需内容。
答案 1 :(得分:1)
为什么你认为你需要复制这个假设?如果您在证明中使用它,它将无法使用。见这个例子:
Parameter A B H : Type.
Parameter lemma1 : H -> A.
Parameter lemma2 : H -> B.
Goal H -> A * B.
intro; split; [apply lemma1 | apply lemma2]; assumption.
Qed.