部分组合代数

部分组合代数是对单一类型 演算的推广, 它允许函数应用仅对部分情况定义. 这也可以看作一种代数化的组合子逻辑.

1定义

为从 的部分函数的集合. 这可以看作 的函数集.

定义 1.1 (部分应用结构). 对于集合 , 其上的部分应用结构为对部分输入有定义的二元运算符并且一般 在有定义的情况下 (即 ) 会记作 或者 .

定义 1.2 (同态). 对于集合 及其各自的部分应用结构, 其上的同态定义为满足如下条件的函数 : 这个公式隐含了对于有定义的 , 必定存在有定义的 . 注意 必须是全函数, 也就是说它对全部输入都有定义.

定义 1.3 (部分组合代数). 在满足如下条件时, 集合 及其上的部分应用结构 是一个部分组合代数:

存在 使得对于任意 都有:

有定义, 且

存在 使得对于任意 都有:

有定义, 且

对于任意 , 有定义当且仅当 有定义, 且两者相等.

部分组合代数之间的同态就是它们之上的部分应用结构的同态.

定义 1.4. 部分组合代数中, 若其上的部分应用结构 是全函数, 那么这是一个完全组合代数.

2例子

Kleene 第一代数是定义在自然数集上的部分组合代数. 考虑所有一般递归函数组成的集合 . 它的 Gödel 编码给出一个单射 , 使得求值映射 的一般递归函数. 令求值映射给出部分应用结构, 则由 Gödel 编码的定义容易验证这构成部分组合代数.

3性质

引理 3.1. 任意部分组合代数 都存在恒同映射, 即存在 使得对于任意 都有

证明..

引理 3.2. 任意部分组合代数 都存在不动点组合子, 即存在 使得对于任意 都有

证明..

术语翻译

部分组合代数英文 partial combinatory algebra