如何将标准应用于伊莎贝尔的所有子目标?

How to apply standard to all subgoals in Isabelle?

要证明等式 "A = B" 可以证明两个包含 "A ⊆ B" 和 "B ⊆ A"。现在,我正在使用方法 "standard" 将此目标转换为目标 "fix x in A and show x is in B"。但是,我不知道如何在所有子目标上执行此操作。

我如何在 Isabelle 中执行此操作?

我决定将 peq 的评论添加到我的回答中

if you import HOL-Eisbach.Eisbach you can use apply(all‹standard›)


如果由于应用一种方法而从一个目标中出现多个目标,则可以使用分号;(结构组成:参见 Isar-ref 中的第 6.4 节)来应用下一个方法所有新出现的子目标,即

lemma "(A::'a set) = B ∧ (C::'a set) = D"
  apply (intro conjI; standard; standard)
  oops
  

附带一提,我不认为standard的重复应用被认为是一种很好的风格。例如,对于您的用例,通常我使用

lemma "(A::'a set) = B"
  apply(intro subset_antisym subsetI)
  oops

希望您能够轻松了解如何同时将此方法应用于多个子目标。


伊莎贝尔版本:伊莎贝尔2020