类型系统

LCF 是一种类型化的逻辑系统。

一个 LCF 系统包含基本类型集合 ,其中至少包含一个类型 。在此基础上,递归地定义 LCF 的类型系统

  1. 基本类型 是 LCF 的类型;
  2. 函数类型 是 LCF 的类型,其中 均为 LCF 的类型。

λ-基本集

LCF 的 λ-基本集(basis)是如下的三元组:

  1. 基本类型集合
  2. 自由变量(variable)集合 。自由变量是名称和类型的二元组。类型 的自由变量集合记作 ,假定对于每个类型 中可用的变量有无限多。
  3. 符号(function symbol)集合 。符号也是名称与类型的二元组。 至少包含:
    1. ,其类型为 ,分别表示 true 和 false;
    2. ,对每个类型 ,其类型为 ,表示该类型的未定义值。当不至于混淆时,可记作
    3. ,对每个类型 ,其类型为 ,表示条件判断。同上记作
    4. ,对每个类型 ,其类型为 ,表示不动点算子。同上记作

以上记作

语法

如下递归地定义 LCF 项(term)的语法:

  1. 类型为 的自由变量或符号是类型为 的项;
  2. 如果 分别是 类型的项, 类型的项,那么 类型的项;
  3. 如果 类型的不同自由变量, 是类型 的项,那么 是类型 的项。

形如 的式子,其中 为 LCF 项,称为 LCF 原子公式(atomic formula)。一列原子公式,形如 ,称为 LCF 公式(formula)。空公式也是允许的。若 是 LCF 公式,那么 是一个 LCF 语句(sentence)。

为了简化语法,记:

  1. 表示项
  2. 表示项
  3. 表示公式

语义

一个 LCF 的解释包含如下要件:

  1. ,一个完全偏序集(complete partial order, or “cpo”)。每个 LCF 的类型 可对应到一个域 。须满足:
    1. 类型 对应的域为 ,其中 的最小元。
    2. 函数类型 对应的域为
  2. 一个函数 将类型为 的符号 映射到域 的元素,需满足:
    1. ,其中 的最小元;
    2. ,其中 满足
    3. ,其中 的不动点算子,即对于任意 ,有

一个指派(assignment) 是从自由变量 到其对应类型的域 中的元素映射。指派的偏序关系 定义为:对所有自由变量 ,满足 。所有指派组成的集合记作

由 LCF 的一个解释可以确定 LCF 的语义。规定语义函数 将类型 的项映射到函数 (注意 的区别),有:

  1. ,若自由变量
  2. ,若符号

可以扩展语义函数的定义,使之除项以外,还可定义于公式与语句上:

  1. ,那么 ,否则
  2. 均成立,那么 ,否则
  3. 蕴含 ,那么 ,否则

如果对任意指派 均成立,则称 是一个逻辑有效的语句,如果此时 为空,则称 是一个逻辑有效的公式。