部分组合代数
部分组合代数是对单一类型 演算的推广, 它允许函数应用仅对部分情况定义. 这也可以看作一种代数化的组合子逻辑.
1定义
记 为从 到 的部分函数的集合. 这可以看作 的函数集.
定义 1.1 (部分应用结构). 对于集合 , 其上的部分应用结构为对部分输入有定义的二元运算符并且一般 在有定义的情况下 (即 ) 会记作 或者 .
定义 1.2 (同态). 对于集合 及其各自的部分应用结构, 其上的同态定义为满足如下条件的函数 : 这个公式隐含了对于有定义的 , 必定存在有定义的 . 注意 必须是全函数, 也就是说它对全部输入都有定义.
定义 1.3 (部分组合代数). 在满足如下条件时, 集合 及其上的部分应用结构 是一个部分组合代数:
• | 存在 使得对于任意 都有:
|
• | 存在 使得对于任意 都有:
|
部分组合代数之间的同态就是它们之上的部分应用结构的同态.
定义 1.4. 部分组合代数中, 若其上的部分应用结构 是全函数, 那么这是一个完全组合代数.
2例子
• | Kleene 第一代数是定义在自然数集上的部分组合代数. 考虑所有一般递归函数组成的集合 . 它的 Gödel 编码给出一个单射 , 使得求值映射是 的一般递归函数. 令求值映射给出部分应用结构, 则由 Gödel 编码的定义容易验证这构成部分组合代数. |
3性质
引理 3.1. 任意部分组合代数 都存在恒同映射, 即存在 使得对于任意 都有
引理 3.2. 任意部分组合代数 都存在不动点组合子, 即存在 使得对于任意 都有
术语翻译
部分组合代数 • 英文 partial combinatory algebra