指称语义学

第1章 引论

第2章 指称语义学

第3章 二进制数码

第4章 第一级函数

第5章 λ演算

第5.1节 λ演算

第5.2节 递归定义

第6章 格与域

前一章最后的讨论已经指出如果我们想要成功地找到一个λ演算的语义理论, 那么我们就必须找出一种限制我们能够考虑的函数类的方法. 否则的话, 就太多了而不能找到任何具有同构函数空间的非平凡的空间.

逻辑学家的通常解决方案是压根不与函数打交道, 换而与函数的表示打交道. 简而言之, 他们用哥德尔配数. 他们通常处理整数上的函数, 在这种情况下哥德尔配数操作将可用有限长度的算法表达的函数 (构成了一个可数集) 映射至整数. 当他们想要考虑以函数B作为参数的函数A时, 他们可以形式化地给A提供B的哥德尔配数.

第6.1节 近似序

不使用算法的哥德尔配数, 那么我们将采用另一种方式, 这种方式更加关注于函数或者说映射本身. 让我们通过观察我们的问题的另一方面来获得一点直觉, 即多重不动点的麻烦. 考虑递归函数:f=λx.if x=0 then 1else if x=1 then f(3)else f(x2).我们知道我们在寻找λf.λx.if x=0 then 1else if x=1 then f(3)else f(x2).的不动点. 我们对于递归函数的实际经验或许会将我们引向解f(x)={1(x even)undefined(x odd)但是f1(x)=1或者更一般的fa(x)={1(x even)a(x odd)也是解, 其中a是任意的常数. 那么为什么f是实践中的计算机实现会提供的函数呢?

答案在于其他的解都包含了我们不希望实现去决定的任意的信息 (a的值). 另一方面, f仅包含递归定义实际传达的信息. 它是我们所需要的最小的解, 即包含最少信息量的解. 让我们现在来形式化这个根据信息量对于值进行排序的想法.

为了看明白这个序是如何运作的, 让我们先来看看一个比函数更简单的值的集合. 考虑一种对于实数进行近似的可能方式, 即闭区间, 记作[x_,x]其中x_x是实数, 并且x_x. 想法在于绝对精确的值介于这两值之间.

x=[x_,x]y=[y_,y]. 如果y_x_xy, 那么xy一致, 但是更加精确. 我们或许可以将其记作yx, 意思在于xy更精确 (或者说至少不更不精确), xy包含更多 (或者相等) 的信息, 但是x中没有任何会与y相冲突的信息.zyx+我们看到在以上图片中, 有xzyz, 但是xy是不可比较的. 实际上, z是将yz的所有信息合并了: 我们称zxy的最小上界, 记作z=yz.

存在一些特殊的情形. 一种是区间[,], 整个实轴. (?或许应该称为扩展实轴) 这压根就没有给出任何信息, 它比任何其他可能给出的信息都要弱, 我们称其为. 另一种特别的情况是包含不一致的信息, 例如[0,1][2,3], 我们称其为. 因此, 代表信息的缺失, 而代表信息太多, 以至于产生了矛盾的地步. 其他某些值集可能更容易根据信息进行排序. 例如, 两个真值之间是无法比较的, 于是如果我们添加以代表欠定和过定的真值, 那么我们就得到了下图所呈现的内容.falsetrue

第6.2节 偏序集

定义. 一个集合P是在下的偏序集, 如果对于每个x,y,zP, 以下性质成立:
  1. (自反性) xx.
  2. (反对称) xyyx可以推出x=y.
  3. (传递性) xyyz可以推出xz.

下图呈现了一些例子.0123123(1)3456210(2)1326412(3){a,b,c}{}{a}{c}{b}{b,c}{a,c}{a,b}(4)

  1. 整数集, 序为.
  2. 非负整数集, 序为.
  3. 12的因子集, 以整除性排序.
  4. 三元素集的幂集, 序为.

定义. 对于偏序集P而言, 称其为链, 如果对于任意的x,yP, xy或者yx.
推论. 链的每个子集都是链.
定理. 每个非空的有限链P都可以写成{p1,p2,,pn}的形式, 其中当ij时有pipj.
记号.
定理. 对于任意的XP, 至多存在一个aP使得对于每个pP, ap当且仅当Xp. a若存在, 其被称为X的最小上界.

第6.3节 完全格

第6.4节 格上的函数

第6.5节 一个不动点算子

第7章 自反域

第8章 λ演算的形式语义