让我们假设我想要显示以下引理
lemma "⟦ A; B; C ⟧ ⟹ D"
我得到了目标
1. A ⟹ B ⟹ C ⟹ D
但是,我不需要B
。如何将目标转移到类似
1. A ⟹ C ⟹ D
我不想改变原始lemma
语句,只是改变应用样式的当前目标。
答案 0 :(得分:6)
你想要的是apply (thin_tac B)
。然而,上次我这样做时,彼得拉姆米奇喊道:“天啊,你为什么要这样做!”厌恶并重写我的证据,以摆脱thin_tac。所以使用这种策略似乎不再受到鼓励了。
答案 1 :(得分:5)
通常最好避免在目标状态下出现不需要的东西,而不是在以后删除它。您制定证明问题的方式会影响您解决问题的方式。
这对于结构化校样尤为重要:您可以将积极地上诉到那些应该参与下一步证明的事实,而不是压制其中一些否定。
E.g。像这样:
from `A` and `C` have D ...
告知哪些事实与证据相关已经是可读性的开始。
遵循该风格,您的初始问题将如下所示:
lemma
assumes A and B and C
shows D
proof -
from `A` and `C` show D sorry
qed
如果A B C D是大的命题,那么或者像这样减少详细程度:
lemma
assumes a: A and b: B and c: C
shows D
proof -
from a c show ?thesis sorry
qed