可以通过在开放时选择某些增加的集合来在D上定义拓扑。更确切地说,如果我是理想的,而C是锥体,则如果c \ cap i \ ne \ emptyset,则C是打开的,前提是c in C中的\ bigVee i \,也就(例如,主要理想的补充是开放的。这激发了这些功能的较早标记是连续的。值得注意的是,所有连续功能都是单调的。
为了在CL中进行建模功能,有趣的功能是D的功能。但是,这些功能本身不足以获得自我应用的建模,因为它们都没有作为其域名 - 因为d不被认为是一个函数空间。该解决方案首先定义功能空间的层次结构d_0,d_1,d_2,\ ldots,以便每个函数空间d_n是一个完整的晶格,可以在其上定义连续函数(创建函数d_ {n+1})。选择连续函数的重要性在于,新兴功能空间具有与基础集相同的基数,这使我们能够在层次结构内定义函数空间之间的嵌入。
所有函数空间D_N的层次结构都可以累积在一起。模型理论中的标准结构是形成结构的不相交。 (始终可以通过索引结构的载体集来确保脱节。)Scott将D_ \ Infty定义为函数空间d_n的脱节结合,除非极端元素“粘合在一起”。 (更正式地,函数空间的顶部元素和底部元素彼此识别。)d_ \ infty是一个完整的晶格,并且由tarski的固定点定理,这是一个连续的函数,可将d_ \ infty映射到d_ \ infty具有一个固定点,这意味着d _ \ infty对d_ \ infty \ rightarrow d_ \ infty是同构的。
上述结构也可以从字符串和笛卡尔产品方面进行概念化。来回移动一个和多个变量的函数(函数的“脱节”和“咖喱”)的函数在杂物上对应于残留的两个方向。例如,函数f \ colon a \ times b \ rightarrow c可以由函数f^\ prime \ colon a \ rightarrow b \ rightarrow c表示,反之亦然。因此,在不失去一般性的情况下,考虑一元素的功能就足够了。如果a是函数空间d_ \ infty的固定元素,则x =(a,x)在x是a的固定点时保持。在元组方面,可以将解决方案视为无限元组(a,(a,(a,\ ldots)。
4.2关系语义
我们简要概述的另一个模型属于非古典逻辑的固定理论语义范式,这是由于J. Michael Dunn和Robert K. Meyer(见Dunn and Meyer(1997))。 Cl和\ lambda-calculus固有地连接到直觉,相关性和其他非古典逻辑。特别是,\ text {cl} _ \ triangleright和\ text {cl} _ = calculuses本身是非经典逻辑。设定理论语义,其中从关系集合中从关系中建模的强化连接剂是自1960年代初以来对非古典逻辑的首选解释。这些语义有时被称为“ kripke语义”(因为Kripke在1959年引入了某些正常模态逻辑的可能世界语义)或“ Gaggle语义”(在缩写'GGL的发音之后,它代表了“广义galois逻辑”的作用。由Dunn(1991)引入)。
\ text {cl} _ \ triangleright的模型可以定义如下。令(W,\ le,r,s,k,v)包含一个(非空)部分订购的集合(w,\ le),W。对于任何\ alpha,\ beta,\ gamma,\ delta \ in w中,条件(s)和(k)都是正确的。
((()
\存在\ zeta_1,\ zeta_2,\ zeta_3 \ inw。\,rs \ alpha \ alpha \ zeta_1 \ land r \ zeta_1 \ zeta \ beta \ zeta \ zeta \ zeta_2 \ zeta_2 \ land r \ zeta_2
\ cemists \ zeta_1,\ zeta_2,\ zeta_3 \ inw。\,r \ alpha \ alpha \ gamma \ gamma \ zeta \ zeta_1 \ land r \ beta \ beta \ beta \ zeta \ zeta \ zeta \ zeta \ zeta_1
(k)
\存在\ zeta_1 \ inw。\,rk \ alpha \ zeta_1 \ land r \ zeta_1 \ beta \ beta \ gamma \ quad \ quad insim \ quad \ quad \ alpha \ alpha \ le \ le \ gamma。
三元关系在其前两个参数位置中被规定为抗酮,在第三个参数中是单调的。这些组件定义了\ text {cl} _ \ triangleright的帧。估值函数v映射变量x,y,z,\ ldots在W上的(非空)锥,并将两个原始组合剂\ textsf {s}和\ textsf {k}映射到由s和k产生的锥体中的\ textsf {k} 。回想一下,CL HIDS应用程序中的标准符号是允许形成复合项的二进制操作。下一个子句将V扩展到复合项,并使此操作再次明确。
v(mn)= \ {\ beta \ colon \ enperists \ alpha,\ gamma。
如果在\ text {cl} _ \ triangleright上的所有估值下,v(m)\ subseteq v(n)在所有估值下,一个不默认的m \ triangleright n是有效的。 (也就是说,每当V变量集变化时,两个术语的解释之间的关系是不变的。)
在非正式的情况下,基础集W是一组情况,R是连接情况的可访问性关系。所有术语都被解释为一组情况,功能应用程序是从R中得出的存在图像操作,与以前的模型的差异是,将术语应用于术语的结果不是由解释的对象本身确定这两个术语 - rather该应用程序操作由R定义。
该语义概括了正常模态逻辑的可能世界语义。因此,重要的是要注意,情况并不是最大一致的理论,而是具有具有属性的理论。同等地,在\ text {cl} _ \ triangleright的Lindenbaum代数上,情况可能被视为双重理想。这些情况通常是一致的,因为它们除了一种情况之外不包含所有术语。 (当然,无法为\ text {cl} _ \ triangleright或\ text {cl} _ =。)定义否定一致性的概念。
可以为\ text {cl} _ =沿类似行定义关系语义。然后,声音和完整性(即以下定理)。
定理。
(1)当\ text {cl} _ \ triangleright中的任何模型中的v(m)\ subseteq v(n)中,\ text {cl} _ \ triangleright在\ text {cl} _ \ triangleright中均可证明一个不一致的m \ triangleright n。
(2)在\ text {cl} _ = i时,方程m = n可以证明,仅在\ text {cl} _ =的任何模型中的v(m)= v(n)中。
Bimbó(2004)可以找到包括双重和对称组合器在内的CL系统的关系和操作语义。
5。可计算功能和算术
CL的一个了不起的特征是,尽管它看起来很简单,但它还是一种强大的形式主义。当然,如果没有发现组合术语之间的某些关系,或者没有说明可计算函数是可以定义的,则无法理解CL的强度。
数学形式化的一个重要开始步骤是算术的形式化,这是Dedekind -Peano Axiomatization最初实现的。 CL中有多种形式化算术的方法。在本节中描述了两个数字的表示以及上面的一些功能。
数字可能被认为是某种形式的对象(或抽象对象)。 (以数字为单位,我们的意思是自然数,即0和正整数。)例如,数字可以通过它们作为集合所具有的结构来表征。该结构支持诸如0 \ ne1之类的属性,并且N和M的总和与M和N的总和相同。自然数的另一个众所周知的特性是,例如,无限的质数的存在。
数字可以按CL用语表示,一种方法是选择术语\ textsf {ki},\ textsf {i},\ textsf {sbi},\ textsf {sb}(\ textsf {sbi}),\ ldots,\ ldot对于0、1、2、3等。代表算术操作的术语会有所不同,具体取决于代表数字的术语。请注意,与算术的Dedekind – Peano形式化不同,CL并没有使句法区别与单个常数和函数符号之间的差异平行 - 在Cl中,唯一的对象是术语。上面的术语列表已经显示了连续函数,即\ textsf {sb}。 (\ textsf {sb}(\ textsf {ki})强烈等同于\ textsf {i},也就是说,1是0。
添加是\ textsf {bs}(\ textsf {bb})的术语,乘法是术语\ textsf {b}。基于加法的乘法的通常递归定义可能表明,添加应该比乘法更简单。但是,在CL中,数字本身是函数,因此它们具有允许\ textsf {b}(一个更简单的术语)的属性,可以选择该功能,通常被认为比添加更复杂。 (可以使用原始递归来定义加法操作,这将产生一个更复杂的术语。)作为一个经典的示例,我们可以考虑一词\ textsf {bii},这非常等于\ textsf {i},也就是说1 \ times1 = 1-正如预期。我们在这里没有进一步追求这种数值表示。我们只注意到这些数字的形状与\ lambda-calculus中教堂的数字密切相关,每个数字都是二进制函数(而在这里,每个数字都是一个单位函数)。
在CL中表示数字的另一种方法是从数字的术语选择不同。以前,\ textsf {i}代表1,现在我们将\ textsf {i}为0。一个数n的后继者是\ textsf {v}(\ textsf {ki}),其中第二个出现n指示一个数字,即代表n的组合器。 (n的数字通常是通过被划定或以其他方式的n表示的。但是,在有限上下文中n的双重用法不应引起任何混乱。)换句话说,后继函数是\ textsf {v v {v v {v }(\ textsf {ki})。请注意,本代表中的数字是比以前的情况更受限制的组合基础的术语。例如,从\ {\ textsf {i},\ textsf {k},\ textsf {v} \}可以定义任何具有重复效果的组合器。
一些简单的递归函数可以定义如下。对于所有大于或等于1的数字,数字上的前任函数P是“ -1”(即减去一个),并且0的前身设置为0。下一个术语定义了由P缩写的前任函数。
p = \ textsf {c}(\ textsf {w}(\ textsf {bb}(\ textsf {c}(\ textsf {tk})\ textsf {tk})\ textsf {i})))(
如果n是数字,则pn将还原为n \ textsf {ki}(n(\ textsf {ki})),这表明对于正数,P可以定义为p textsf {t}术语\ textsf {t}(\ textsf {ki}),因为\ textsf {t}(\ textsf {ki})n每当n是n是表格\ textsf {v}的术语(\ textsf {ki})(n-1) 。
一些计算模型(例如寄存器机器)和某些编程语言包括对零作为原始结构的测试。找到一个函数z的Cl-期限很有用,使得Znxy如果n为零,则将znxy还原为x,而当n为正时,znxy会减少到y。 znxy可以被认为是条件指令“如果n = 0,则x else y,x和y本身就是函数。 (当然,在伪代码中,应该假设n是整数类型,并且不能采用负值,可以通过变量声明和附加条件语句来保证。)以下定义可用于零分支。
z = \ textsf {tk}
\ textsf {tk} nxy = n \ textsf {k} xy,如果n为零,也就是说,n = \ textsf {i},然后由另一个步骤\ textsf {k} xy xy,然后x results;而如果n是正的,则在减少几次后,就会得到\ textsf {ki} xy,也就是说。两个术语,\ textsf {k} xy和\ textsf {ki} xy,暗示\ textsf {k}和\ textsf {ki}的解释为真理和虚假,或者可以将它们视为可以选择的术语,可以选择,分别是第一个或第二个论点。这些思想可以进一步发展为真实功能的定义和元组的表示。
添加可以由递归方程 +mn = zmn(\ textsf {v}(\ textsf {ki})( +(pm)n)),其中m和n是数字,p和z是已经定义的函数。(使用缩写来增强术语的可读性 - 可以用定义组合者在任何地方替换它们。)要插入单词,如果m为0,则总和为n,否则m+n是(m -1)+n。当然,此定义紧密模拟了递归理论的添加定义,其中添加通常由两个方程式 +(0,n)= n and +(s(m),n)= s( +(m,n))定义。 )(s表示后继函数)。 Cl可以以这种形式表达添加的事实再次显示了Cl的多功能性。
组合完整性可以保证 +(即Zmn(\ textsf {v}术语(\ textsf {ki})( +(pm)n))的定义方程右侧的术语(即+是第一个的术语,m和n分别是第二和第三参数。然后可以将 +明确定义为组合器的固定点
\ textsf {b}(\ textsf {bw})(\ textsf {bw}(\ textsf {b}(\ textsf {b}(\ textsf {c}) textsf {tk})))))(\ textsf {b}(\ textsf {b}(\ textsf {b}(\ textsf {v}(\ textsf {\ textsf {ki})))( \ textsf {t}(\ textsf {ki})))))。
当然,为了透明,我们可以缩写为透明度所获得的术语,就像我们以前的p和z用作更长的组合术语一样。
乘法通常用\,\ cdot \,。递归方程\,\ cdot \,mn = zm \ textsf {i}(+n(+n(\,\ cdot \,(pm)n))定义了乘法,并且可以将其解密,并且如“如果m为0,则结果为0 0,其他n添加到(M-1)\ cdot n的结果中。”定义中的下一步将右侧术语带到了\ textsf {x} \ cdot mn的形式,其中\ textsf {x}不包含\,\ cdot \,m或n的出现。然后以\ textsf {x}的固定点为设置\,\ cdot \,为\ textsf {yx}结束了乘法函数的定义。例如,抽象可以产生组合器
\ textsf {bw}(\ textsf {b}(\ textsf {b}(\ textsf {c}(\ textsf {bb}(\ textsf {c}(c})(\ textsf {\ textsf {tk}) )(\ textsf {b}(\ textsf {bw})(\ textsf {b}(\ textsf {b}(\ textsf {b}(\ textsf {\ textsf {c}+)))( textsf {t}(\ textsf {ki}))))。
阶乘函数可以从前任函数加上乘法中定义,并且在组合术中很有用。方程\,!\,m = zm(\ textsf {v}(\ textsf {ki})\ textsf {i}) \,!\ \,(pm)),可以读为“如果是0,那么\,!\,m = 1,否则\,!\,m等于m ”。
当然,没有必要通过模拟其递归定义来定义各种数值函数。正如我们在第一个数字表示的情况下所看到的那样,我们可能恰好具有正确的术语,例如\ textsf {bs}(\ textsf {bb})和\ textsf {b},它的行为会作为目标函数做数字。也就是说,定义算术函数的一种同样好方法是简单地列出一些术语,然后证明它们的行为如预期。但是,一旦证明了基本的原始递归功能以及递归和最小化可以在CL中模仿,我们不仅以组合器的形式获得了一个不错的算术功能,还可以使用组合的证据,还可以证明该算术功能的证明逻辑足以表达形式化所有部分递归功能。确实,这种证明的其余步骤可以在CL中执行,尽管细节超出了本条目的范围。
数学联邦政治世界观提示您:看后求收藏(笔尖小说网http://www.bjxsw.cc),接着再看更方便。