Skip to content

命题算子与软蕴含

Derivation chain position: Layer 2 — Scientific Ontology MaxEnt Grounding → [this document] → Reasoning Strategies → ...

本文档定义 Gaia 知识表示所使用的命题算子。 依赖 01-plausible-reasoning.md(Cox 定理、三条规则) 和 02-maxent-grounding.md(MaxEnt/Min-KL、乘积分解)。

本文档不定义因子图或 BP — 这些属于 Layer 3(计算方法)。 §4 中关于 (p₁,p₂) 的 cross-layer 提醒只用于避免把局部接口参数误读成全局条件概率;因子图和 BP 的正式定义见 06-factor-graphs.md07-belief-propagation.md

Status: Target design

1. 最小原料:{¬, ∧, π}

Jaynes 框架处理二值命题上的联合分布。要完整指定这样的分布,需要且仅需要三种原料:

原料 类别 来源 作用
¬(否定) 命题运算 加法规则:P(¬A|I) = 1 − P(A|I) 构造互补命题
∧(合取) 命题运算 乘法规则:P(A∧B|I) = P(A|I)·P(B|A,I) 构造联合命题
π ∈ [0,1] 数值赋值 先验概率 命题的初始置信度

说明:

  • ¬ 和 ∧ 是逻辑运算,作用于命题,产生新的命题。¬A 是"A 不成立",A∧B 是"A 和 B 同时成立"。
  • π 是数值参数,赋给命题,表示在当前背景信息下的初始置信度。
  • 这三种原料的地位不同:¬ 和 ∧ 是构造手段,π 是量化手段。它们不是同一种东西,但缺一不可。

为什么这三种就够了?

  1. ¬ 给出互补:由加法规则,知道 P(A|I) 就自动知道 P(¬A|I)。
  2. ∧ 给出联合:由乘法规则,P(A∧B|I) = P(A|I)·P(B|A,I),联合概率可逐步构造。
  3. π 给出起点:每个原子命题需要一个先验 P(Aᵢ|I) = πᵢ。

n 个二值命题的联合分布 P(x₁,...,xₙ|I) 可以通过链式规则展开为条件概率的连乘积。每个条件概率涉及的都是由 ¬ 和 ∧ 构造的命题,而数值则由 π 和条件概率参数提供。

2. 派生算子

以下所有算子都不是新原语 — 它们是 {¬, ∧} 的组合,加上"某些联合概率为零"的约束(即 π = 0 用于特定复合命题)。

2.1 严格蕴含 →

定义: A→B 意味着 A 为真时 B 必然为真。

还原:

A→B  ≡  P(A ∧ ¬B | I) = 0

即:复合命题 A∧¬B 的先验概率为零 — 这个世界状态被排除。

验证四种赋值下的含义:

A B A∧¬B P(A∧¬B|I) 是否被允许
1 1 0 允许
1 0 1 = 0(约束) 禁止
0 1 0 允许
0 0 0 允许

A→B 不是新的逻辑运算。它是对 {¬, ∧} 构造的复合命题赋予 π = 0 的约束。

2.2 析取 ∨

定义: A∨B 意味着 A 或 B 至少一个成立。

还原(De Morgan 定律):

A∨B  ≡  ¬(¬A ∧ ¬B)

即:¬A 和 ¬B 不能同时成立。等价地:

P(¬A ∧ ¬B | I) = 0

验证:

A B ¬A∧¬B P(¬A∧¬B|I) 是否被允许
1 1 0 允许
1 0 0 允许
0 1 0 允许
0 0 1 = 0(约束) 禁止

2.3 等价 ↔

定义: A↔B 意味着 A 和 B 始终同真同假。

还原:

A↔B  ≡  (A→B) ∧ (B→A)
      ≡  P(A ∧ ¬B | I) = 0  且  P(¬A ∧ B | I) = 0

两个约束联合作用:A∧¬B 和 ¬A∧B 都被排除。

验证:

A B A∧¬B ¬A∧B 是否被允许
1 1 0 0 允许(两约束均满足)
1 0 1 0 禁止(第一约束违反)
0 1 0 1 禁止(第二约束违反)
0 0 0 0 允许(两约束均满足)

2.4 矛盾 ⊗

定义: A⊗B 意味着 A 和 B 不能同时为真。

还原:

A⊗B  ≡  P(A ∧ B | I) = 0

等价于 A→¬B(若 A 为真则 B 必然为假):

A→¬B  ≡  P(A ∧ ¬(¬B) | I) = 0  ≡  P(A ∧ B | I) = 0

验证:

A B A∧B P(A∧B|I) 是否被允许
1 1 1 = 0(约束) 禁止
1 0 0 允许
0 1 0 允许
0 0 0 允许

注意矛盾允许两者都为假 — 它只排除同真。

2.5 互补 ⊕

定义: A⊕B 意味着 A 和 B 是真值互补 — 恰好一个为真,一个为假。

还原:

A⊕B  ≡  A↔¬B
      ≡  P(A ∧ B | I) = 0  且  P(¬A ∧ ¬B | I) = 0

即同时要求矛盾(不能同真)和析取(不能同假)。

验证:

A B A∧B ¬A∧¬B 是否被允许
1 1 1 0 禁止(第一约束违反)
1 0 0 0 允许
0 1 0 0 允许
0 0 0 1 禁止(第二约束违反)

2.6 还原总结

所有派生算子都还原为 {¬, ∧} 加上 π = 0 约束:

算子 表达式 零概率约束
A→B(蕴含) P(A∧¬B) = 0 1 条约束
A∨B(析取) P(¬A∧¬B) = 0 1 条约束
A↔B(等价) P(A∧¬B) = 0, P(¬A∧B) = 0 2 条约束
A⊗B(矛盾) P(A∧B) = 0 1 条约束
A⊕B(互补) P(A∧B) = 0, P(¬A∧¬B) = 0 2 条约束

每一条约束都是"某个由 ¬ 和 ∧ 构造的复合命题,概率为零"。系统中唯一的自由参数仍然是节点先验 π。

3. 关系类型

上述派生算子中,有三种描述的是两个命题之间的结构性关系。它们是知识网络中的基本关系类型。

3.1 等价关系(Equivalence, ↔)

定义: A 和 B 始终同真同假。

算子表达: A↔B ≡ P(A∧¬B) = 0 且 P(¬A∧B) = 0

示例: "水在标准大气压下的沸点是 100°C" ↔ "水在 101.325 kPa 下的沸点是 373.15 K"。 同一物理事实的两种等价表述,两者必然同真同假。

3.2 矛盾关系(Contradiction, ⊗)

定义: A 和 B 不能同时为真(但可以都为假)。

算子表达: A⊗B ≡ P(A∧B) = 0

示例: "光是纯粒子" ⊗ "光是纯波"。 在经典物理中这两个假说不能同时成立(实际上量子力学说两者都不完全正确 — 两者都为假也是允许的)。

3.3 否定关系(Negation, ⊕)

定义: A 和 B 是真值互补 — 恰好一个为真。

算子表达: A⊕B ≡ P(A∧B) = 0 且 P(¬A∧¬B) = 0

示例: "该化合物是手性的" ⊕ "该化合物是非手性的"。 恰好一个为真,不可能两者同时成立或同时不成立。

三种关系的比较:

关系 允许 (1,1) 允许 (1,0) 允许 (0,1) 允许 (0,0) 约束数
等价 ↔ 2
矛盾 ⊗ 1
否定 ⊕ 2

否定是矛盾加析取的合取 — 既不能同真,也不能同假。

4. 软蕴含 ↝

前面定义的所有算子都是确定性的 — 它们通过 P(...) = 0 排除某些世界状态,不含连续参数。但科学推理中,我们经常需要表达"A 大致蕴含 B,但推理过程未完全形式化"。软蕴含 ↝ 就是为此而设的算子。

本节仍然完全处于 精确的 Jaynes 概率语义 中:根对象始终是联合分布及其导出的条件概率。这里引入因子图、势函数或任何计算表示。↝ 在本层只是一个粗粒度摘要算子

4.1 定义

A ↝ B 带两个参数 (p₁, p₂)。它的精确含义不是"存在一条带权边",而是:

存在一个更细的、完全精确的 Jaynes 模型,其中引入了一组中间命题 H₁, ..., Hₖ 和严格关系;把这些中间命题边缘化后,在接口 (A,B) 上呈现出如下有效条件统计

A B P_eff(B|A)
1 1 p₁
1 0 1 − p₁
0 0 p₂
0 1 1 − p₂

也就是说:

p₁ = P_eff(B=1 | A=1)
p₂ = P_eff(B=0 | A=0)

其中:

  • p₁ = 近似充分性 / 正向可靠性:在这个未展开子结构的接口上,当 A 为真时,B 为真的有效条件概率。p₁ 越大,A 越可靠地把 B 推起来。
  • p₂ = 近似必要性 / 缺席判别度:在这个未展开子结构的接口上,当 A 为假时,B 为假的有效条件概率。p₂ 越大,A 的缺席越会把 B 压下去。

约束:

p₁ ∈ (0,1],   p₂ ∈ [0,1],   p₁ + p₂ > 1

参数计数: 二值接口 B 关于二值接口 A 的有效条件通道 P_eff(B|A) 恰好有 2 个自由参数(P_eff(B=1|A=1)P_eff(B=1|A=0)),对应 (p₁, 1−p₂)。因此 ↝ 的两参数形式是对这个二值有效通道的完整参数化 — 没有多余,没有遗漏。

特别注意:这里的 P_eff(B|A)被压缩后的接口级统计量。它在孤立极限下与普通条件概率完全一致,但当 A ↝ B 再被嵌入一个更大的粗网络、与其他支撑路径共同作用时,最终全局的 P(B|A) 会由整个联合分布共同决定,而不再机械等于这两个局部参数。

换句话说,(p₁,p₂) 不是对整张网络的全局条件概率查询结果。它们是这条压缩关系在 (A,B) 接口上的局部参数;在后续因子图表示中会表现为局部因子/势函数的行权重。只有在这个二端口关系被单独隔离、且没有其他先验或因子作用时,才可以把它们直接读作普通条件概率。

早期提醒(避免常见误读)

P_eff(B|A) 这个记号在外形上像条件概率,但在 Gaia 的下层(06-factor-graphs.md §3.7、07-belief-propagation.md §2.2)(p₁, p₂) 实际上作为局部因子的行权重 / potential weights 进入消息传递。简单来说:

  • 局部接口参数,非全局条件概率P_eff(B|A) 仅在该软蕴含被孤立看待时与全局 P(B|A) 数值相等;嵌入更大网络后,最终的全局 P(B|A) 由整个联合分布共同决定。
  • 退化情形 p₂ = 0.5 不是"P(B|A=0) = 0.5"的全局断言(详见 §4.5、§4.6)。它表示这条因子在 A=0 那一行是 uniform / flat 的——这条关系在 A=0沉默B 的 belief 完全由它自己的先验 π(B) 与其他因子共同决定。
  • 不要把 p₂ 设为 π(B) 来"传递先验":那会把 B 的先验当作局部因子的行权重再乘一次,造成 double counting。保持 p₂ = 0.5(flat)才是"这条关系沉默"的正确 MaxEnt 表达(详见 §4.5)。

这条提醒在 §4.5–§4.8 会以 BP 语义再次详谈;这里先在引入处把这层"接口参数 vs 全局条件概率"的区别说清,避免读者把 (p₁, p₂) 误读成普通的 conditional probability table。

4.2 为什么需要 p₁ + p₂ > 1

由定义:

P_eff(B=1|A=1) = p₁
P_eff(B=1|A=0) = 1 - p₂

因此:

p₁ + p₂ > 1
⇔ p₁ > 1 - p₂
⇔ P_eff(B=1|A=1) > P_eff(B=1|A=0)

这条约束的精确含义是:

A 的出现会提高 B 的概率。

也就是说,↝ 不是任意二元相关关系,而是支持型关系。

这很重要,因为如果不加这条约束,↝ 的两参数形式虽然仍然是一个合法的条件概率表,但它未必配得上"蕴含/支持"这个名字:

  • p₁ + p₂ > 1:A 对 B 是正支持,适合用 ↝ 表示
  • p₁ + p₂ = 1:A 对 B 没有净影响,只是无信息通道
  • p₁ + p₂ < 1:A 的出现反而降低 B 的概率,这不是"蕴含型支持"

最后一种情况如果确实需要表达,通常不应写成 A ↝ B,而应写成:

A ↝ ¬B

或在展开后使用 contradiction / negation 等严格结构表示。

4.3 充分性、必要性的确切意义

在软蕴含中:

  • p₁ 表示 A 对 B 的近似充分性
  • p₂ 表示 A 对 B 的近似必要性

但这里的"必要"必须严格理解成局部的、相对于这条推理链的必要性,而不是全局形而上学意义上的必要条件。

更具体地说:

  • p₁ 高,表示:当这条链的前提 A 成立时,结论 B 往往也随之成立。
  • p₂ 高,表示:当这条链的前提 A 不成立时,这条链通常不再能支撑 B,B 因而倾向于为假。

因此:

  • p₁ 高而 p₂ ≈ 0.5:A 是 B 的强支持,但不是必要条件
  • p₁ 高而 p₂ 也高:A 既像充分条件,也像必要条件
  • p₁ = 1, p₂ = 1:A 与 B 同真同假,退化为等价

必要性的局部含义: 当我们说"A 对 B 是近似必要的",不是说在整个知识网络中只要 A 假,B 就必然假;而是说:

沿着这条 A ↝ B 链看,A 的缺席会显著削弱 B。

如果 B 还有其他独立支撑路径,B 仍然可能整体上保持较高 belief。
因此 p₂ 描述的是这条边的局部支撑负载,而不是 B 的全局唯一成因。

这也是为什么 p₂ 很适合编码:

  • bridge premise 的承重程度
  • 适用条件对结论的必要性
  • 一个解释性假说缺席时结论会塌掉多少

而不应被理解成"世界上没有 A,B 就绝对不可能为真"。

4.4 理论地位

软蕴含在 Jaynes 框架中有独特的理论地位:

理论上可还原。 ↝ 可以分解为一个由 {¬, ∧, π} 构造的网络,其中包含辅助命题,这些辅助命题承载不确定的先验。分解后 (p₁, p₂) 消失 — 所有不确定性转移到中间命题的先验 π 中。

具体地说:A ↝ B 意味着"存在一组中间命题 H₁,...,Hₖ 和严格逻辑关系(蕴含、合取等),使得在给定这些中间命题的先验后,A 和 B 之间的有效条件统计恰好是 P_eff(B=1|A=1)=p₁P_eff(B=0|A=0)=p₂"。↝ 是这个微观结构的宏观视图。

因此,在完全展开的细网络中,↝ 应当消失:作者不再手工指定 (p₁, p₂),而是由微观结构、先验和边缘化自然导出对应的有效统计量。

实践上不可或缺。 形式化总是从不完整开始。当作者知道"A 大致蕴含 B"但尚未(或无法)展开中间推理步骤时,↝ 是唯一的表达工具。强制使用严格蕴含 → 会导致过度承诺(p₁ = 1);放弃不写又丢失了推理结构。

唯一性。 在本文档定义的全部算子中,↝ 是唯一携带条件概率参数的算子。所有其他算子(→、∨、↔、⊗、⊕)都是确定性的(只使用 π = 0 约束)。因此:

  • 确定性约束由 {¬, ∧, π=0} 承载
  • 不确定性推理由 ↝ 的 (p₁, p₂) 承载
  • 初始置信度由节点先验 π 承载

三类信息,三种载体,互不混淆。

4.5 与严格蕴含 的关系

严格蕴含和软蕴含不是两个互相竞争的原语,而是同一语义谱系中的两个层次:

  • 严格蕴含 A → B:只编码硬约束 P(A ∧ ¬B)=0
  • 软蕴含 A ↝ B:编码完整的二值有效条件通道 P_eff(B|A)

因此,严格蕴含实际上只固定了软蕴含的一半信息:

A → B   ==>   P_eff(B=1|A=1) = 1

但它并不规定:

P_eff(B=1|A=0)

若要把 嵌入软蕴含的两参数形式,就必须对 A=0 这一支做 completion。
最小假设的 Jaynes / MaxEnt completion 是:这个未约束支路对 B=0B=1 给出相同的局部权重。

local row for A=0:  [B=0, B=1] = [0.5, 0.5]

也就是:

p₁ = 1, p₂ = 0.5

这正是"严格蕴含 + 前提缺席时无额外信息"。

这里的 0.5 不应读成整张网络上的断言 P(B=1|A=0)=0.5。它表示这条局部关系在 A=0 行是 flat / uniform 的:当因子图消息相乘时,这个因子不给 B 的真假任何偏好,B 的 belief 由它自己的先验和其他支撑路径决定。若把这一行改成 π(B),反而会把 B 的先验又作为局部因子乘入一次,造成 double counting;保持 flat 才是“这条关系沉默”的 MaxEnt 表达。

从充分/必要性的角度看:

  • 只表达纯充分性
  • 在此基础上还能表达局部必要性

因此软蕴含不是"严格蕴含加噪声",而是:

在保留正向支持的同时,把 A 缺席时对 B 的影响也显式参数化。

4.6 退化情况

↝ 的参数取极端值时,退化为确定性算子:

条件 退化结果 含义
p₁ = 1, p₂ = 1 等价 A↔B A 真则 B 真,A 假则 B 假 — 同真同假
p₁ = 1, p₂ = 0.5 严格蕴含 A→B A 真则 B 必真;A 假时对 B 无信息(MaxEnt 无约束)
p₁ = 1, p₂ ∈ (0.5,1) 强软蕴含 正向确定(A 真→B 必真),同时 A 在这条链上对 B 具有部分必要性
p₁ ∈ (0,1), p₂ = 0.5 正向不确定,反向无信息 A 为假时这条局部关系对 B 无影响(flat row / MaxEnt 无信息值)

特别注意 p₂ = 0.5 的含义:在二值接口上,A=0 这一行对 B=0B=1 给出相同权重,是最大熵状态 — 意味着 A 为假时,本推理链对 B 不提供任何信息。这不是全局地声明 B 的后验必须等于 0.5;在完整网络中,B 会回到自己的先验和其他因子共同决定的 belief。这是"最小假设"选择。

p₁ = 1, p₂ = 0 这样的组合,虽然仍然定义了一个合法的二值条件概率表,但它不满足 p₁ + p₂ > 1,因此不再属于本文定义的支持型软蕴含。这类情况应理解为一般条件通道或退回到更细的展开,而不应继续称为 A ↝ B

4.7 与现有粗推理算子的关系

此前的粗推理算子(历史文件位于 docs/archive/foundations-v3/theory/03-coarse-reasoning.md,不作为站点页面发布)使用单参数 p,其条件概率表为:

M C 行为
1 1 偏好(强度与 p 相关)
1 0 抑制(强度与 p 相关)
0 1 无意见
0 0 无意见

"前提为假时无意见"(ψ(0,*) = 1)意味着 P(C|M=0) 不受此推理链约束 — 结论回退到先验。这恰好对应:

p₂ = 0.5(局部 flat row / 最大熵无信息值)

而单参数 p 控制的是 p₁(推理可靠性)。因此:

现有的单参数粗推理算子是 ↝ 在 p₂ = 0.5 时的特例。

推广到两参数的意义:p₂ ≠ 0.5 表示"A 为假时,B 为假的程度不是无信息的"。例如:

  • p₂ = 0.9 意味着 A 为假时 B 几乎确定为假(A 在这条链上具有很强的局部必要性)
  • p₂ > 0.5 意味着 A 缺席时 B 会被压低;p₂ 越接近 1,A 在这条链上的承重性越强
  • 若形式化结果表明 A 的出现会降低 B 的概率,则这已不再是支持型 ↝,应改写为 A ↝ ¬B

单参数形式够用于大多数简单推理模式;当需要更精确的建模时,可使用完整的两参数形式。

4.8 Jaynes 理论中的起源

Jaynes 的概率论框架中没有基本的"软链接"概念。所有命题间的逻辑关系都是严格的 — 蕴含就是 P(A∧¬B) = 0,矛盾就是 P(A∧B) = 0,没有"大概蕴含"这种中间状态。

那么不确定性从何而来?来自中间命题的先验

考虑一个完全展开的推理链:

A → H₁ → H₂ → ... → Hₖ → B

其中每个 → 都是严格蕴含(P = 0 约束),但中间命题 H₁,...,Hₖ 的先验是不确定的(πᵢ < 1)。从宏观看,A 和 B 之间的有效条件概率不是 0 或 1,而是某个取决于中间命题先验的连续值。

↝ 就是这个微观结构的宏观简写:

↝ 是对一个未展开的严格约束子网络的摘要。 "A ↝ B (p₁, p₂)" 等价于声明"存在一组严格约束和中间命题,使得从 A 到 B 的有效条件概率为 P(B=1|A=1) = p₁, P(B=0|A=0) = p₂"。

(p₁, p₂) 不是"噪声参数"或"边的权重" — 它们是未展开子结构的有效统计量。随着形式化的深入(展开中间步骤),↝ 被替换为严格算子加上新的中间命题节点,(p₁, p₂) 消失,不确定性转移到新命题的先验中。

5. 多前提推理中的 ∧ + ↝

实际推理中,结论通常依赖多个前提。多前提推理自然分解为两个独立步骤:

5.1 分解

多前提推理"A₁, A₂, ..., Aₖ 共同支持 C"分解为:

第一步:严格合取。 引入中间命题 M,定义:

M ≡ A₁ ∧ A₂ ∧ ... ∧ Aₖ

M 当且仅当所有前提同时为真时为真。这是纯逻辑操作,没有自由参数。

第二步:软蕴含。 从 M 到结论 C 使用 ↝:

M ↝ C  (p₁, p₂)

(p₁, p₂) 编码推理的不确定性。

A₁ ─┐
A₂ ─┤  ∧(确定性)
 ⋮  ├───→ M ───↝──→ C(参数 p₁, p₂)
Aₖ ─┘

5.2 分离的意义

这个分解清晰地分离了两种不同的关注:

步骤 关注 性质
∧ 合取 前提如何组合 确定性,无参数
↝ 软蕴含 前提整体如何支持结论 参数化,(p₁, p₂)

这避免了将"前提组合"和"推理强度"混为一个概念。在之前的文档中,这个组合模式被称为"noisy-AND"——但这个名称模糊了本质:

  • "noisy" 来自 ↝ 的 p₁ < 1(推理不确定性)
  • "AND" 来自 ∧(前提合取)
  • 两者是独立的机制,不是一个整体

5.3 为什么合取是默认组合器

∧ + ↝ 是最小的不可再分解的多前提模式:所有前提同时成立才能推出结论。这是科学推理中最常见的结构(例如"假说 H + 条件 S + 方法 M → 预期结果 R")。

看似非合取的多前提组合,通常可以分解为中间命题加已有算子:

  • 析取前提("证据 A 或证据 B 都能支持 C"):不需要显式的 ∨ 组合器——这是两条独立的单前提链 A ↝ C 和 B ↝ C,BP 消息乘积自动处理汇聚。
  • 混合组合("高温 + (催化剂 A 或催化剂 B) → 反应"):引入中间命题 M("存在合适催化剂"),用 A → M 和 B → M 承载析取语义,再用 T ∧ M → C 回到合取模式。
  • 阈值组合("n 个证据中至少 k 个成立"):通过中间命题和布尔函数构造(§6.1 的功能完备性保证可行)。

因此 ∧ 不是"唯一允许的组合方式",而是"最基本的不可分解的组合方式"。非合取组合通过中间命题还原为 ∧、→ 和 ↝ 的网络。

6. 完备性

6.1 确定性完备性

命题: {¬, ∧} 对布尔函数是功能完备的。

这是经典结果。任何布尔函数 f: {0,1}ⁿ → {0,1} 都可以用 ¬ 和 ∧ 的组合表达。证明思路:

  1. 任何布尔函数可以写成析取范式(DNF)
  2. 析取 ∨ 可由 ¬ 和 ∧ 表达:A∨B = ¬(¬A ∧ ¬B)
  3. 因此 {¬, ∧} 足以表达所有布尔函数

6.2 概率完备性

命题: {¬, ∧, π, ↝} 加上辅助变量,可以表示任意二值变量上的联合概率分布。

证明思路:

任意联合分布 P(X₁,...,Xₙ) 可由链式规则分解为条件概率的乘积:

P(X₁,...,Xₙ) = P(X₁) · P(X₂|X₁) · P(X₃|X₁,X₂) · ... · P(Xₙ|X₁,...,Xₙ₋₁)

因此只需证明:任意条件概率 P(C|A₁,...,Aₖ) 可以用 {¬, ∧, π, ↝} 表示。

这里要注意:§4 中对 ↝ 加了 p₁ + p₂ > 1 的支持性约束。这不会削弱表达能力,因为任何"对 C 的负向影响"都可以等价地改写为"对 ¬C 的正向支持":

A lowers belief in C
⇔ A raises belief in ¬C

而 ¬C 可由基础算子 ¬ 构造。因此,限制 ↝ 只表示正支持关系,并不影响总体完备性。

P(C=1|A₁,...,Aₖ) 是一个从 {0,1}ᵏ 到 [0,1] 的函数,有 2ᵏ 个自由参数(每种输入组合一个)。构造如下:

步骤 1 — 构造模式检测器。 对每种输入组合 i ∈ {0,1}ᵏ,构造命题 Dᵢ:

Dᵢ ≡ L₁ ∧ L₂ ∧ ... ∧ Lₖ

其中 Lⱼ = Aⱼ(若组合 i 中第 j 位为 1)或 Lⱼ = ¬Aⱼ(若第 j 位为 0)。这只使用 {¬, ∧}。

关键性质: 2ᵏ 个检测器 Dᵢ 互斥且穷举 — 对于任何输入 (A₁,...,Aₖ) 的赋值,恰好有一个 Dᵢ 为真。这保证了后续构造的正确性。

步骤 2 — 每个检测器连接一个中介。 对每个 Dᵢ,引入辅助命题 Eᵢ,建立:

Dᵢ ↝ Eᵢ  (p₁ = pᵢ, p₂ = 1)

其中 pᵢ = P(C=1|输入组合 i)。参数 p₂ = 1 意味着:当 Dᵢ = 0 时(即输入不是组合 i),Eᵢ 确定为假。由于 p₂ = 1,该构造自动满足 p₁ + p₂ > 1(只要 pᵢ > 0)。若某个组合上 pᵢ = 0,则可等价地改用 Dᵢ → ¬EᵢDᵢ ↝ ¬Eᵢ 的形式编码。

步骤 3 — 析取汇聚。 定义:

C ≡ E₁ ∨ E₂ ∨ ... ∨ E_{2ᵏ}

由于恰好一个 Dᵢ = 1(互斥穷举),恰好一个 Eᵢ 可能为真(其余确定为假,因为 p₂ = 1)。析取正确地选出活跃的 Eᵢ,其为真的概率恰好是 pᵢ。

步骤 4 — 联合分布。 链式规则中的每个条件概率都用步骤 1-3 处理,整体联合分布由此构造完成。

复杂度: 每个条件概率引入 O(2ᵏ) 个辅助变量。最坏情况下总辅助变量数指数增长。但这是理论上界 — 实际科学推理模式(见 §6.3)需要的辅助变量远少于此。

6.3 实际模式

科学推理中常见的条件概率结构远比任意函数简单:

  • 演绎(A₁ ∧ ... ∧ Aₖ → C):单个 ∧ + 单个 →,0 个辅助变量
  • 软演绎(A₁ ∧ ... ∧ Aₖ ↝ C):单个 ∧ + 单个 ↝,1 个辅助变量(M)
  • 归纳(E₁,...,Eₙ 支持 G):条件独立假设将 2ⁿ 参数压缩为 2 个
  • 溯因(观测 → 假说):与演绎方向相反,但结构相同

指数级最坏情况是理论保证,不是实际负担。科学推理的规律性和条件独立结构使得实际所需的辅助变量数量可控。

7. 交叉引用

  • 上游:
  • 01-plausible-reasoning.md — Cox 定理证明概率是唯一一致的似然推理系统;弱三段论给出蕴含关系的推理能力。
  • 02-maxent-grounding.md — MaxEnt/Min-KL 从约束到 posterior 的落地;乘积分解的来源。
  • 下游:
  • 04-reasoning-strategies.md — 具体推理策略(演绎、归纳、溯因等)如何使用本文档定义的算子。
  • 04-reasoning-strategies.md — 推理策略和知识类型定义。
  • 计算层:
  • 07-belief-propagation.md — 本文档定义的算子在计算层映射为可执行的数值形式,用于求解边缘后验。本文档只定义概率语义,不涉及计算方法。

参考文献

  • Jaynes, E.T. Probability Theory: The Logic of Science (2003)
  • Cox, R.T. "Probability, Frequency and Reasonable Expectation" (1946)