类型系统
LCF 是一种类型化的逻辑系统。
一个 LCF 系统包含基本类型集合 ,其中至少包含一个类型 。在此基础上,递归地定义 LCF 的类型系统 :
- 基本类型 是 LCF 的类型;
- 函数类型 是 LCF 的类型,其中 与 均为 LCF 的类型。
λ-基本集
LCF 的 λ-基本集(basis)是如下的三元组:
- 基本类型集合 ;
- 自由变量(variable)集合 。自由变量是名称和类型的二元组。类型 的自由变量集合记作 ,假定对于每个类型 , 中可用的变量有无限多。
- 符号(function symbol)集合 。符号也是名称与类型的二元组。 至少包含:
- 与 ,其类型为 ,分别表示 true 和 false;
- ,对每个类型 ,其类型为 ,表示该类型的未定义值。当不至于混淆时,可记作 。
- ,对每个类型 ,其类型为 ,表示条件判断。同上记作 。
- ,对每个类型 ,其类型为 ,表示不动点算子。同上记作 。
以上记作 。
语法
如下递归地定义 LCF 项(term)的语法:
- 类型为 的自由变量或符号是类型为 的项;
- 如果 分别是 类型的项, 是 类型的项,那么 是 类型的项;
- 如果 是 类型的不同自由变量, 是类型 的项,那么 是类型 的项。
形如 的式子,其中 为 LCF 项,称为 LCF 原子公式(atomic formula)。一列原子公式,形如 ,称为 LCF 公式(formula)。空公式也是允许的。若 与 是 LCF 公式,那么 是一个 LCF 语句(sentence)。
为了简化语法,记:
- 表示项 ;
- 表示项 ;
- 表示公式 。
语义
一个 LCF 的解释包含如下要件:
- ,一个完全偏序集(complete partial order, or “cpo”)。每个 LCF 的类型 可对应到一个域 。须满足:
- 类型 对应的域为 ,其中 为 的最小元。
- 函数类型 对应的域为 。
- 一个函数 将类型为 的符号 映射到域 的元素,需满足:
- ,;
- ,其中 为 的最小元;
- ,其中 满足 ,,;
- ,其中 是 的不动点算子,即对于任意 ,有 。
一个指派(assignment) 是从自由变量 到其对应类型的域 中的元素映射。指派的偏序关系 定义为:对所有自由变量 ,满足 。所有指派组成的集合记作 。
由 LCF 的一个解释可以确定 LCF 的语义。规定语义函数 将类型 的项映射到函数 (注意 与 的区别),有:
- ,若自由变量 ;
- ,若符号 ;
- ;
- 。
可以扩展语义函数的定义,使之除项以外,还可定义于公式与语句上:
- 若 ,那么 ,否则 ;
- 若 对 均成立,那么 ,否则 ;
- 若 蕴含 ,那么 ,否则 。
如果对任意指派 , 均成立,则称 是一个逻辑有效的语句,如果此时 为空,则称 是一个逻辑有效的公式。