将新获得的Q重写为P,该替换规则由Q的上下文中的蕴涵(P<$Q)来证明。因此,我们有(3)(PQ)(QR)(PP)核心简化为真实。这个小例子说明了CORE的关键特性:通过在子公式的上下文中从断言生成替换规则,可以在断言级别进行推理。此外,证明问题总是以其整体来表示和维护,而不是像自然演绎式演算那样分解为更小的部分。2.1技术说明CORE演算的关键技术是将公式视为树,并使用证明理论信息注释每个子树。证明理论信息是Smullyan [19]引入的极性和统一类型:直观地说,如果公式是目标,则公式的极性是正的,即。在某些序列式演算中,它出现在一个连续的连续项中,而在其他情况下,它是负的。结果,我们得到了有符号的公式。类型可以分配给有符号公式,α代表析取公式,β代表合取公式,γ代表泛量化公式,δ代表具有特征变量条件的存在量化公式。例如,用上标表示极性,用下标表示统一类型,(注: P(x)<$Q(x)<$Qy。 Q(y)<$R(y))<$<$z. P(z)R(z)M. Hübner等人理论计算机科学电子笔记103(2004)161165γ−⇒++αα⟨⟩α γα是规范注释如下:(((你好 (P(x)+<$Q(x)−)−β)−γ <$(<$y. (Q(y)+<$R(y)−)−β)−δ)α−(四)((P(z)−<$R(z)+把这个公式看作一棵树,我们得到:+α∧−α你好+的你好−γ⇒−β很好−δ⇒β+αP(z)− R(z)+P(x)+ Q(x)−Q(y)+ R(y)−我们将此表示表示为索引公式树(IFT),并观察到它表示矩阵演算中的证明状态[21]。因此,我们可以重用这些演算中的规则来构造矩阵证明。特别是,它为我们提供了一个有效的表示变量依赖。为了启用断言级推理风格,我们首先从这样的(初始)IFT导出自由变量表示,我们用自由变量索引公式树(FVIFT)表示以获得:⇒−β∧−α⇒α⇒−βP(Z)— ⇒αR(Z)+P(X)+ Q(X)− Q(y)+ R(y)−因此,如果变量在IFT中的γ型位置上被约束,则我们用大写字母引入变量,而对于来自δ型位置的变量,则用小写字母引入变量。断言风格的推理是通过利用保留的极性和统一类型来实现的,如下所示:• 首先,统一类型允许静态地确定任何子公式的逻辑上下文对此的充分判据是包含两个子公式的最小子树是一致类型α,即它们是α-相关的。你比如说有符号子公式(P(Z)−<$R(Z)+)+和R(y)−是α相关的,顶级连接词+。• 对于逻辑上下文中的每个子公式,可以通过(1)固定规则的左侧以及(2)通过收集所有β相关子公式来确定子目标来导出使该公式的可能应用可操作的所有规则。 例如,将R(y)−固定为规则的左侧,β相关公式形成单例列表Q(y)+,我们将其表示为R(y)− −→ <$Q(y)+<$⇒166M. Hübner等人理论计算机科学电子笔记103(2004)161联系我们−→ ⟨⟩注意,我们同意将至少有一个β相关子树的事件表示为依赖事件。上述所谓的替换规则编码了这样一个事实,即我们可以用Q(y)+替换R(y)−的归结伙伴的出现。 这允许例如通过应用替换{y/Z}来将该规则应用于出现R(Z)+,以将整个FVIFT重写为+α⇒−β∧−α⇒−β+αP(y)Q(y)P(X)+ Q(X)− Q(y)+ R(y)−注意,我们使用原始的IFT,以便使用为此目的而开发的矩阵演算技术来检查替换的可接受性。形式上,替换规则的这种解析样式概念定义如下5:定义2.1(可接受的归结替换规则)设R0,R是某个F vift中的节点。 然后R0R1,... ,Rn是R的可容许归结替换规则,当且仅当(i)R0和R具有相反的极性并且通过节点cα相关,(ii) 和(R1,..,Rn)是与R0相关的低于c和β的子树. Q简而言之,CORE演算依赖于证明状态,该证明状态由表示量化器和替换依赖关系的IFT和FVIFT组成,F VIFT是一种由替换规则应用程序主动操纵的工作副本。阳离子。演算由12个规则组成,包括一个切割规则,将证明状态转换为一个派生的证明状态。一个证明状态被证明,如果FVIFT是一个命题平凡有效的公式,例如,真的。 该计算器是一个完整的计算器,可用于各种逻辑。到目前为止,CORE提供的框架是证明的完整状态总是表示为单个公式,这是设计目标之一。该系统可以将推理过程集中在任意子公式上,而无需实际执行分解的公式,即FVIFT。为此,我们增加了在任意子公式上引入窗口的可能性,这些子公式是显式表示的焦点。例如,在上面的示例中,没有窗口,完整的公式是可见的,即。推理过程的重点是整个[5]替换规则的一般概念包括对原始相等和等价的处理,从而产生所谓的重写替换规则。 但对于本文的目的是解决风格替换规则是足够的。欲了解更多细节,请感兴趣的读者参阅[2]。⇒M. Hübner等人理论计算机科学电子笔记103(2004)161167⇒⇒−β+αP(Z)−⇒−β⇒+ββαα式(P(X)+<$Q(X)−)−<$(Q(y)+<$R(y)−)−α<$(P(Z)−<$R(Z)+为了支持集中推理过程,我们对FVIFT的节点进行了注释。例如,在Windows−βP(X)+ Q(X)−∧−αQ(y)++αR(y)−窗口的内容是包含在以窗口所表示的节点为根的子树中的(有符号的)子公式例如,窗口是R(Z)+,并且是(P(X)+<$Q(X)−)−β。请注意,我们允许窗口出现在其他窗口下面。下面没有更多窗口的窗口称为活动窗口。聚焦的直觉是,活动窗口的内容是那些可以由规则应用程序操纵。为此,将纯CORE演算扩展到具有窗口的FVIFT,以获得类似于窗口推理的推理机制[16]。2.2使用CORE进行交互式定理证明在CORE中,用户当前使用窗口推断机制。这意味着当他在交互模式下调用CORE时,目标G与公理Ax1,.,Ax n,它为公式(Ax1,... Axn并为它创建一个FVIFT以及G上的初始窗口,呈现给用户。然后,可以通过应用CORE演算规则的窗口版本来更改此窗口的内容。通常,这将是替换规则的应用因此,CORE中的证明搜索是主要有两种选择:(i) 焦点选择:在活动窗口中选择用户希望将证明搜索集中(ii) 规则选择:选择替换规则。由于CORE在断言应用中的优势,它非常适合于交互式证明构造。然而,对焦点和规则选择的最佳支持仍然具有挑战性。一个挑战与规则选择有关,因为公式的上下文目前仅作为通常较长且非结构化的替换规则列表可用。更糟糕的是,即使是相当微不足道的问题,也已经有几十个替换规则。具体而言,可以从子树R(ZR(Z⇒168M. Hübner等人理论计算机科学电子笔记103(2004)161在树中的节点数是指数的。 虽然这是CORE在自动和半自动检验构造过程中必须控制这种可伸缩性。自动证明搜索的另一个困难是焦点的选择。因为证明的焦点可以任意改变,所以很难以系统的和目标导向的方式搜索证明。在下面的部分中,我们将描述支持用户构建证明的任务层。3任务- 组织证明搜索FVIFTs在Sec. 2同时表示证明状态的然而,虽然可以使用窗口推理机制突出显示各个子目标此外,在证明过程中,FVIFT可以显著增长,这使得证明状态的呈现变得困难。因此,将证明状态作为一组子目标(任务)呈现给用户,同时保持由证明状态被表示为单个公式的事实所产生的优点这就是我们的任务层所解决的问题。在这一层,我们使用窗口结构来引用并行在一个FVIFT中的子目标。这些子目标(任务)在任务层构建证明,其中提供了额外的规则来操作这些子目标。将任务级的推理步骤映射到CORE系统中的推理步骤,从而自动保证合理性。为了描述任务层,我们继续如下。首先,我们给出了任务数据结构的形式化定义。然后,我们提供了一组实现的任务操作规则。由这些规则实现的推理包括复合公式的简单分解、复合步骤(如断言的应用)和面向人的步骤(如引理引入)。3.1任务直观地说,一个任务表示一个子目标以及所有可以用来导出这个子目标的公式(断言)(所有与子目标α因此,任务被定义为所有在同一上下文中出现的窗口的列表。然而,在我们使这种直觉形式化之前,我们将依赖发生的概念转移到窗口。定义3.1(条件窗口)设w是子公式F上的窗口在FVIFTR.我们说窗口w在Ri中是有条件的,M. Hübner等人理论计算机科学电子笔记103(2004)161169►+∈联系我们F依赖于R。 否则我们称w在 R中是无条件的。定 义 3.2 ( 任 务 ) 设 R 为 当 前 证 明 状 态 的 FVIFT 。任 务 T 是 一 组 窗 口T=w1,. ..,w n.此外,我们还要求以下条件成立:如果RJ是R中包含T中所有窗口的最小子树:(i) 由W 1表示的子树,.,w n彼此α相关,(ii) T的所有支持窗口在RJ中是无条件的。我们区分目标和支持窗口,以明确表示任务中的注意力焦点。然而,从技术上讲,支持窗口和目标窗口之间没有区别。特别地,由于在CORE中明确地保存了关于每个公式的极性的信息,因此可以自由地交换任务的窗口。因此,任务操作(见第二节中的转移规则)。3.2)可以交换一个任务的目标窗口。 这是 一个显着的差异,以微积分,其中公式出现的左和右的不能自由交换,必须区别对待。特别地,任务a,apDaq不一定对应于微积分中的初始a,因为aJs可能具有相同的极性(i.e.p=q)。在任务中禁止条件支持窗口的决定也是由我们设想的交互式推理驱动的。支持获胜的内容将作为可用于在任务的目标窗口中导出公式如果支持窗口的内容与位于相应窗口之外的子树β相关,则这些树将自动成为从该窗口生成的任何替换规则的条件(与定义2.1相比)。也就是说,与β相关的子树将代表隐含的“知识”,这将以新的证明义务的形式引入。 我们假设, 不太适合于交互式证明构造,因为它将导致其起源对于用户来说不是直接明显的因为任务基本上是子目标的表示,我们接下来定义任务何时关闭。定义3.3(Closed task)如果存在一个w,则任务G是关闭的ΣG其中,w表示一个给定的子树;也就是说,w是True+或假−。从公理Ax1导出目标G的初始问题,. ,Ax n在系统中表示为符号公式(Ax1∈. AxnG)。相应的初始任务由G的目标窗口和每个公理的支持窗口组成:170M. Hübner等人理论计算机科学电子笔记103(2004)161定义3.4(初始任务)设G是一个公式,Ax1,.,Ax n公式,表示G应该从中导出的公理。设R是F VIFT,对于(Ax1,…n ∈Ax n∈αG)+,w i是Ax i上的窗口,g是G上的窗口,则w1,.,w nDg是G的初始任务。但是,当呈现任务时,我们不会区分任务中的窗口和它包含的公式。例如,如果不是W1,...在上面的定义中,我们将写Ax1,.,Ax nDG.63.2任务操作规则任务描述了在证明过程中必须实现的目标。当前任务存储在所谓的议程中。证明过程从只包含初始任务的议程开始。我们可以通过应用任务操作规则将议程上的任务细化为更简单的任务。当议程中的所有任务都被关闭时,证明过程终止任务操作规则可以从执行简单逻辑操作的低级基本规则到复杂规则和推测规则而变化在下文中,我们将给出三种不同类型的任务操作规则及其在CORE中的实现的示例:(1)将连接目标的任务拆分为子任务或分解分离目标的简单规则(第二节)。3.2.1)。(2)通过替换规则和规则应用断言的复杂规则,其提供类似于通过指向方法证明的功能(第3.2.2)。(3)推测性规则,如引理引入(Cut),可用于更紧密地模拟人类推理步骤(Sec. 3.2.3)。事实上,这些规则是由Benzmülleretal的数据来确定的。[4]对本科生如何进行朴素集合论领域的证明进行了研究。虽然这些数据到目前为止只分析了语言现象,新兴的证明模式的初步分析表明,学生经常应用引理,没有明确表示的上下文中,但可以在几个步骤中从现有的假设。3.2.1分解规则图3.2.1显示了使用复合目标公式进行任务分解的规则。这些规则类似于ND和SK演算的通常规则然而,通过利用公式的α-和β-注释,我们可以以紧凑的方式表示规则。为了区分SK规则和任务操作规则,我们以自顶向下的方式给出规则。 也就是说,[6]然而,我们可以遇到形式为A,Ap,ApDG的任务。虽然两个Ap在语法上是相同的公式,但它们是不同的实体,因为它们出现在不同的窗口中。M. Hübner等人理论计算机科学电子笔记103(2004)161171⇒ΔDα(ApA,BpB)p,BpBDApAαLΔDα(ApA,BpB)pApADBpBαRDα(A−p)pA−pα¬βDβ(ApA,BpB)pDApAA−DB+优惠D议事规则如下:议程项目线以下的任务取代议程项目线以上的任务。图二. 任务的基本分解规则我们区分了具有合取目标窗口(β型)的任务和具有析取目标窗口(α型)的任务。α-分解析取目标窗口可以用规则αR、αL和α<$分解,其中规则αR对应于ND演算中的E重要的是(至少对于α规则)任务级的分解在CORE中通过改变相应的FVIFT的窗口结构来模拟。更准确地说,在CORE中通过在ApA和BpB上打开新的子窗口来模拟公式α(ApA,BpB)的分解。 在αR规则的情况下,ApA上的新窗口被添加到相应任务的支持窗口中,而BpB替换目标窗口。另相应地实现了α-分解规则。这样做的好处是可以很容易地撤消分解步骤(参见FocusClose规则)。β-分解β-分解规则将具有合取目标公式β(ApA,BpB)的任务分别约简为目标ApA和BpB的新子任务。然而,将β-分解规则的应用映射到CORE系统中需要比α-分解的情况多一点的扩展原因是根据定义3.2,任务中必须没有条件支持获胜。因此,如果β-规则将被映射到类似于α-分解规则的CORE-系统中,则由该规则引入的任务的目标窗口将是有条件的,因此,将不允许将Shift-规则应用于这些任务以改变目标窗口。为了避免这些限制,当应用β规则时,β(ApA,BpB)中的公式ApA和BpB这可以通过分割目标公式β(G1,G2)来完成,同时保留其周围的上下文我们可以通过应用以下形式的规则来实现这一点172M. Hübner等人理论计算机科学电子笔记103(2004)161⇔ ⇒⇒[ApA]1D A pA ,D.G. nFocusDG GJ=P arent(G)DGJ子窗口(GJ)=焦点关闭A,GDFDG移位当r∈{True+,False−}时,∅DiIDv1. IDvn应用(i→< v,.,v>)1n图三.断言应用和聚焦规则。[18]和[2]中描述的β(β(A,B))→β(β(A),β(B))。Autexier[2]证明了这种Schütte规则在CORE演算中是可接受的。正等价扩展最后,我们引入了一个规则惠来扩展等价A的定义成B和B对于目标窗口包含正等价公式3.2.2断言的应用与指针与上一节介绍的规则相反,我们接下来将介绍操作规则,这些规则将任务层的推理扩展到ND和SK演算的通常范围之外。图3显示了五条规则,这些规则带焦点的规则Focus结合了Sec中的分解规则。第3.2.1条。通过应用焦点,用户可以直接关注目标窗口G内的特定子公式Ap。在FVIFT中,出现在所选子公式Ap和的根G[Ap]之间的路径上的节点的统一类型。目标窗口唯一地定义了一系列分解步骤,为了在单个步骤中获得作为目标窗口的所选公式,需要应用这些分解步骤。 焦点规则执行这些分解步骤,跟踪子目标101 D G1,. ,n ∈D G n,当β-进行分解。 从本质上讲,这是一个指向的想法,M. Hübner等人理论计算机科学电子笔记103(2004)161173联系我们它通过Focus规则集成到任务层中。 我们称之为焦点规则是宏规则,因为它应用一系列基本分解规则。焦点关闭FocusClose规则是由α,β和Focus规则描述的分解的逆规则它关闭了目标公式上的窗口,同时关闭了G的父项之下的所有其他焦点。因此,分解步骤可以一个接一个地撤消。使用Apply为了在任务层应用替换规则,我们引入了Apply-rule。这个想法是为了应用一个断言(即支持窗口中的公式),用户只需要在用户界面上点击一个断言来选择它。然后,系统创建一个由该断言证明的所有替换规则的列表。如果只有一个唯一的适用规则,它将通过Apply-rule自动应用。在更可能的情况下,存在多于一个适用的规则,用户必须选择描述断言的适当应用方向的替换规则。在这一点上,系统将用于缩小用户的选择范围Hübner[10]描述了如何通过基于代理的建议机制来支持一个基于代理的建议规则的选择,该建议机制到目前为止仅与大型[17]定理证明系统结合使用。7使用Close如果任务已关闭,则会将其从议程中删除。这是通过关闭规则完成的,其中从议程中删除了一个如True+,False−的任何标签。使用Shift移动任务的目标Shift规则改变任务的目标窗口.这一点特别重要,因为其他操作规则仅适用于任务的目标窗口例如,考虑一个具有公式Ap的窗口和一个具有(A惠B)− 的窗口是目标G的支持窗口;也就是说,A p,(A惠B)−,ApDG。[7]请注意,在这里定义Apply规则的方式中,它只能应用于目标窗口中最上面的出现i,而不能应用于i的子公式。 然而,这没有问题,因为我们总是可以使用规则Focusfirst来关注子公式。174M. Hübner等人理论计算机科学电子笔记103(2004)161DHGpD.GA−DGA+LemF W公司简介A−DG,A+DG见图4。断言应用和聚焦规则。注意,我们用Schütte规则实现了β-D坐标。因此,我们可以确保目标窗口总是无条件的,这是上述移位规则定义的先决条件。3.2.3推测性证明步骤引入新的引理或情况分裂是推测性的证明步骤,通常对完成证明至关重要。毫不奇怪,这些步骤在自动化和交互式的定理证明中也起着重要的作用。在自动化定理证明中,推理步骤的应用很难控制,它们打开了潘多拉的盒子(可能的引理和情况分裂是先验的,不受限制)。Bundy和Ireland [12]以及Meier [14]描述了在自动证明过程中利用失败来指导引理和案例分割的引入为了能够在任务级对这种推理进行建模,我们通过图中所示的规则LemFW、LemBW和Case来增强推理规则。四、LemFW规则对应于引理的前向应用,并将目标公式G替换为另一公式H。然后,这导致生成一个额外的任务,该任务编码了表明替换所描述的证明步骤实际上是有效的义务。相关的LemBW规则允许将新的引理A插入到任务的支持中,然后可以通过Apply规则应用该任务。Case规则将目标为G的任务简化为两个目标为G的新任务。其中一个新任务具有新的支持窗口A-,而另一个新任务具有支持窗口A+。3.2.4任务和演示文稿到目前为止,我们已经描述了可以在任务层执行的推理。这些推理使CORE在CORE之上发明任务层的另一个动机是证明表示。通过任务提供的证明实际上,使用M. Hübner等人理论计算机科学电子笔记103(2004)161175¬∨任务,我们可以在框线表示中显示子目标,这在ND演算的介绍中是众所周知的(例如,参见[11]),Piroi和Buchberger [15]也建议将其作为交互式证明的适当可视化。在框线表示法中,目标公式在可用断言的下方呈现4).我们在用户界面中实现这种呈现风格,在目标窗口之上呈现任务这有助于断言的应用,可以通过使用Apply规则以统一的方式应用断言。Box-Line表示使用户能够通过单击相应的支持窗口来应用断言。然后,可以在Apply规则的帮助下应用与断言的适当应用方向相对应的替换规则。4任务-工作示例在本节中,我们将在任务层证明图1这使我们能够说明用户和系统之间的通信,以及比较我们的方法Bornat和Bertot8。 我们使用一个语法上不同,但逻辑上等价的公式来指出我们的方法的优点。我们证明问题的初始任务是:“#(一)+((P<$Q)<$(<$Q<$R)<$(P<$R))应用焦点来提取最右边的R会导致以下情况:(二)264(P<$Q)−(<$Q<$R)−P−375R+然后,我们可以通过应用断言(Q R)来反向推理,将规则应用于目标窗口。在内部,Apply通过将替换规则(R+→)应用于目标来执行此证明步骤。类似地,我们可以通过应用断言(PQ)-(即,替换规则(P−→
下载后可阅读完整内容,剩余1页未读,立即下载
- 粉丝: 5
- 资源: 2万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展