如何将标准应用于Isabelle中的所有子目标?
为了证明等式“A=B”,可以证明两个包含项“A”⊆ “B”和“B”⊆ A”。现在,我使用“标准”方法将此目标转换为“在A中固定x并显示x在B中”的目标。然而,我不知道如何在所有子目标上做到这一点 我怎样才能在伊莎贝尔身上做到这一点呢?我决定在我的回答中添加她的评论 如果导入如何将标准应用于Isabelle中的所有子目标?,isabelle,Isabelle,为了证明等式“A=B”,可以证明两个包含项“A”⊆ “B”和“B”⊆ A”。现在,我使用“标准”方法将此目标转换为“在A中固定x并显示x在B中”的目标。然而,我不知道如何在所有子目标上做到这一点 我怎样才能在伊莎贝尔身上做到这一点呢?我决定在我的回答中添加她的评论 如果导入HOL-Eisbach.Eisbach,则可以使用apply(所有è标准›) 如果一个方法的应用导致一个目标产生多个目标,那么可以使用分号(结构组成:见Isar ref第6.4节)将下一种方法应用于所有新兴子目标,即 lem
HOL-Eisbach.Eisbach
,则可以使用apply(所有è标准›)
如果一个方法的应用导致一个目标产生多个目标,那么可以使用分号
代码>(结构组成:见Isar ref第6.4节)将下一种方法应用于所有新兴子目标,即
lemma "(A::'a set) = B ∧ (C::'a set) = D"
apply (intro conjI; standard; standard)
oops
顺便说一句,我不认为重复使用标准被认为是一种很好的风格。例如,对于您的用例,通常我使用
lemma "(A::'a set) = B"
apply(intro subset_antisym subsetI)
oops
希望您能够很容易地看到如何将此方法同时应用于多个子目标
伊莎贝尔版本:伊莎贝尔2020
我不明白你所有的问题。您是否熟悉证明方法表达式()或寻找更奇特的东西?如果你只是想把最初的目标分解成通常的子目标,我建议你从proof-safe
开始@谢谢你的评论,请不要删除它。这是一个很好的参考!另一方面,;正如下面所解释的那样,这项工作(也在您的参考资料中进行了解释。另一个选项:如果您导入HOL-Eisbach.Eisbach
,您可以使用apply(allèstandard›)
@peq,我在我的答案中添加了您的评论:我希望您不介意。如果您将其作为明确的答案发布,我将尝试对其进行投票(如果我没有忘记)。