Isabelle 如何向关键字证明提交参数?
我想了解关键字Isabelle 如何向关键字证明提交参数?,isabelle,Isabelle,我想了解关键字证明在Isar证明中是如何工作的。我商量了一下 总结一下我学到的知识,有三种方法可以通过关键字proof开始证明: 在没有任何争论的情况下,Isabelle找到了一个合适的引理引入规则,并将其应用于正向模式 如果连字符:-作为参数提供,则证明对目标没有任何作用,避免在可能导致死路一条时应用任何自动规则 如果提供了特定的规则,如规则名称、展开真实定义、澄清或导入n,则它将以正向模式应用于目标 第三种情况类似于在提供参数的情况下使用apply,对吗 系统如何选择第一种情况下的自动引
证明
在Isar证明中是如何工作的。我商量了一下
总结一下我学到的知识,有三种方法可以通过关键字proof
开始证明:
- 在没有任何争论的情况下,Isabelle找到了一个合适的引理引入规则,并将其应用于正向模式
- 如果连字符:
作为参数提供,则-
对目标没有任何作用,避免在可能导致死路一条时应用任何自动规则证明
- 如果提供了特定的规则,如
、规则名称
、展开真实定义
或澄清
,则它将以正向模式应用于目标导入n
apply
,对吗
系统如何选择第一种情况下的自动引入规则
而且,上面是否充分描述了
proof
的用法?没有方法规范的命令proof
将应用方法默认值。方法default
几乎类似于rule
,但是如果rule
失败,那么它会尝试下一步intro\u classes
,然后unlow\u locales
。方法rule
在没有给出定理列表的情况下尝试向经典推理器声明的所有规则(intro
、elim
、和dest
)。如果没有链接任何事实,则只考虑intro
规则。否则,将尝试所有类型的规则。所有与事实有关的东西都必须与规则相统一dest
规则在应用之前会转换为elim
规则
您可以使用print\u rules
打印所有声明的规则。安全规则(intro!
,elim!
,…)优先于普通规则(intro
,elim
,…),额外规则(intro?
,elim?
)排在最后
您也可以使用规则
,而不给出任何规则。然后,它的行为类似于default
,但没有回退intro\u类
和unfold\u区域设置
,Andreas很好地描述了没有方法参数的证明
是如何工作的;我只谈问题的其他部分
首先,proof(method)
类似于apply(method)
,除了一件事:当apply
让您处于“prove”模式时,您可以继续使用更多apply
语句,proof
转换到“state”模式,必须使用have
或show
语句继续验证。否则,对目标状态的影响是相同的
我还想指出案例2(证明-
)实际上是案例3的一个实例,因为-
实际上是一种普通的证明方法,就像规则名称
或导入
(例如,您也可以编写应用-
)。连字符-
证明方法除了在当前目标中插入链接事实(如果给定任何链接事实)之外,什么都不做。什么是链接事实?