在应用样式中将目标放在目标中

时间:2013-03-09 14:45:40

标签: isabelle

让我们假设我想要显示以下引理

lemma "⟦ A; B; C ⟧ ⟹ D"

我得到了目标

1. A ⟹ B ⟹ C ⟹ D

但是,我不需要B。如何将目标转移到类似

的目标
1. A ⟹ C ⟹ D

我不想改变原始lemma语句,只是改变应用样式的当前目标。

2 个答案:

答案 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