19元序量纲系统形式化

元序 WorldScript 量纲系统形式化

完整定义元序的量纲系统:量纲代数、跨量纲运算规则、量纲融合语义、量纲偏差的形式化。
本文档将《04元序规则》v1.1 中引入的「带量纲的连续量」从语法描述推进为完整的形式化理论。
前置阅读:《04元序规则》3.4.1 节、《14形式化语义》第二章。


一、为什么需要量纲系统

1.1 问题:无类型的代价

元序 v1.0 宣称「无类型,全域只有连续状态场」。但这导致一个问题:

When 环境.温度 + 用户.满意度 > 0.8:   // 温度加满意度,物理上无意义
    涌现 异常

温度和满意度都是 [0,1] 的连续值,运算在数学上合法,但在语义上无意义。完全无类型会让这种错误静默通过,系统继续「容错存续」,最终输出不可信的结果。

元宝评审指出:「所谓连续状态场,本质就是 float 归一化到 [0,1],再加一层模糊逻辑。写 温度 + 满意度,有类型的语言会报错,元序会安静地算出一个无意义的数字。」

1.2 方案:带量纲的连续量

元序 v1.1 的方案不是回到 int/float/str 的传统类型系统,而是引入量纲(Dimension)作为轻量级语义标注:

  • 运行时值仍然是归一化到 [0,1] 的连续标量
  • 每个状态字段携带量纲标注(如 温度:摄氏度车速:km/h
  • 同量纲可自由运算,跨量纲需显式声明融合关系
  • 未声明的跨量纲运算产生「量纲偏差」,不崩溃但可观测

这平衡了「状态连续」的哲学和「语义可检查」的工程需求。


二、量纲的数学结构

2.1 量纲的定义

定义 2.1(量纲):量纲是一个语义标签,表示状态维度所度量的物理/社会/抽象量的种类。

Dimension = Identifier

量纲是原子标识符,如 摄氏度km/h概率无量纲满意度

定义 2.2(量纲集):元序程序中所有量纲构成有限集:

Δ = {δ₁, δ₂, ..., δₙ}

其中 无量纲 是特殊量纲,表示纯数值(如权重、比例、概率)。

2.2 量纲的偏序关系

定义 2.3(量纲兼容性):定义量纲间的兼容性偏序 ≤_δ

  • δ ≤_δ δ(自反性):任何量纲与自身兼容
  • 无量纲 ≤_δ δ(通用性):无量纲可与任何量纲运算
  • δ₁ ≤_δ δ₂δ₂ ≤_δ δ₁ 当且仅当 δ₁ = δ₂(反对称性)

兼容性是偏序而非全序:温度满意度 不可比较,默认不兼容。

定义 2.4(量纲等价):两个量纲等价当且仅当它们在兼容性偏序下相等:

δ₁ ≡ δ₂ ⟺ δ₁ ≤_δ δ₂ 且 δ₂ ≤_δ δ₁

2.3 量纲的代数结构

量纲支持组合运算,形成量纲代数:

定义 2.5(量纲乘法):两个量纲的乘积表示复合量纲:

δ₁ × δ₂ = 复合量纲(δ₁, δ₂)

示例:km × h⁻¹ = km/h人 × km = 人公里

定义 2.6(量纲幂):量纲的整数次幂:

δⁿ = δ × δ × ... × δ (n次)
δ⁻ⁿ = 1/δⁿ

定义 2.7(量纲向量):任何量纲可表示为基本量纲的向量:

δ = (e₁, e₂, ..., eₖ)  其中 eᵢ 是基本量纲 i 的指数

基本量纲集由领域定义。物理领域的基本量纲包括长度、时间、质量、温度等;社会领域可能包括人口、货币、信息等。


三、量纲标注的语法与语义

3.1 State 字段的量纲标注

State 环境 [
    温度:摄氏度 = 0.3,
    目标温度:摄氏度 = 0.7,
    湿度:百分比 = 0.6,
    权重:无量纲 = 0.5
]

语义:每个字段 字段名:量纲=初值,量纲是该字段的语义标签。

3.2 量纲的推导

量纲可从表达式推导:

表达式 结果量纲
X + Y 要求 δ(X) ≡ δ(Y),结果量纲 = δ(X)
X - Y 要求 δ(X) ≡ δ(Y),结果量纲 = δ(X)
X × Y 结果量纲 = δ(X) × δ(Y)
X / Y 结果量纲 = δ(X) × δ(Y)⁻¹
X × k (k 是无量纲常数) 结果量纲 = δ(X)
归一化(X, a, b) 结果量纲 = 无量纲
连续融合(X↑, Y↓) 结果量纲 = 融合声明中指定的量纲

3.3 量纲检查规则

规则 1(同量纲可加减)

δ(X) ≡ δ(Y)  ⟹  X ± Y 合法

规则 2(无量纲通用)

δ(X) = 无量纲 或 δ(Y) = 无量纲  ⟹  X ± Y 合法

规则 3(跨量纲需融合声明)

δ(X) ≠ δ(Y) 且 δ(X) ≠ 无量纲 且 δ(Y) ≠ 无量纲
⟹ X ± Y 需要显式融合声明,否则产量纲偏差

规则 4(乘除自由)

X × Y 和 X / Y 始终合法,结果量纲自动推导

乘除不产生量纲偏差,因为复合量纲有明确语义(如 km/h)。


四、跨量纲融合的形式化

4.1 融合声明

跨量纲运算必须通过 连续融合() 显式声明:

State 综合舒适度 = 连续融合(温度↑, 湿度↓) → 舒适度

定义 4.1(融合函数):融合是一个从多个量纲到目标量纲的映射:

fuse: (δ₁, δ₂, ..., δₖ) → δ_target

融合函数携带方向标注(↑ 正向、↓ 反向),表示源量纲对目标量纲的影响方向。

4.2 融合的语义

定义 4.2(连续融合的指称)

⟦连续融合(X₁^{d₁}, X₂^{d₂}, ..., Xₖ^{dₖ}) → Y⟧(σ) =
    normalize(Σᵢ wᵢ · dᵢ · σ(Xᵢ))

其中:

  • dᵢ ∈ {+1, -1} 是方向标注(↑=+1, ↓=-1)
  • wᵢ 是融合权重(默认平均分配,可 Evolve 调整)
  • normalize 将结果归一化到 [0,1]
  • 结果量纲为 Y 的量纲

4.3 融合的量纲安全性

融合声明是跨量纲运算的唯一合法通道。融合函数本身必须声明目标量纲,确保结果有量纲。

示例

// 合法:温度和湿度融合为舒适度
State 舒适度 = 连续融合(温度↑, 湿度↓) → 舒适度:无量纲

// 非法:未声明融合,直接相加
When 环境.温度 + 环境.湿度 > 0.8:   // 量纲偏差
    ...

4.4 融合的种类

融合种类 语法 语义
加权平均 连续融合(X↑, Y↓) 带方向的加权平均
映射 映射(X) → Y 单变量到新量纲的映射
聚合 聚合(X₁, X₂, ...) → Y 多源到单目标的聚合
约束 约束(X) → Y X 约束 Y 的允许范围

五、量纲偏差的形式化

5.1 量纲偏差的定义

定义 5.1(量纲偏差):当程序执行未声明融合关系的跨量纲运算时,产生量纲偏差:

DimensionalDeviation = ⟨
    operation: string,        // 违规运算,如 "温度 + 满意度"
    left_dim: Dimension,      // 左操作数量纲
    right_dim: Dimension,     // 右操作数量纲
    tick: int,                // 发生的 Tick
    resolution: Strategy      // 解决策略
⟩

5.2 量纲偏差的解决策略

量纲偏差不中断程序(符合 A1 容错存续公理),但按以下策略处理:

策略 行为 适用场景
默认策略 取左操作数的量纲作为结果量纲,记录偏差 正常运行模式
严格模式 升级为错误,中断程序 --strict 模式,调试用
融合策略 自动创建临时融合声明,结果量纲为 混合(δ₁,δ₂) 探索模式
无量纲化 两个操作数先归一化为无量纲,再运算 统计分析场景

5.3 量纲偏差与其他偏差的关系

量纲偏差是偏差流的一种,与因果偏差、收敛偏差等统一管理:

偏差流
├── 量纲偏差(跨量纲运算)
├── 因果偏差(规则冲突/对抗)
├── 收敛偏差(偏差持续不收敛)
├── 演化偏差(演化震荡)
└── 层级偏差(聚合-约束不一致)

所有偏差统一由偏差收敛引擎处理,量纲偏差的默认收敛策略是「观察+记录」,因为量纲偏差通常是程序编写错误,不需要自动修复。


六、量纲检查的算法

6.1 静态量纲检查

元序解释器在解析阶段执行静态量纲检查:

输入:AST
输出:量纲偏差警告列表

算法:
1. 为每个 State 字段标注量纲
2. 遍历每个 When 规则的条件和动作
3. 对每个二元运算,检查操作数量纲
4. 若跨量纲且无融合声明,记录量纲偏差警告
5. 输出警告列表(不中断解析)

6.2 动态量纲检查

运行时,状态场的量纲可能因 Evolve 调整而变化(如融合权重变化不改变量纲,但新增融合可能引入新量纲)。动态检查确保运行时不出现量纲不一致。

6.3 量纲推导的复杂度

静态量纲检查的时间复杂度为 O(AST 节点数),因为每个节点只需检查一次量纲。这与类型检查的复杂度相同。


七、量纲系统与连续状态场的关系

7.1 量纲不改变运行时值

量纲是编译期/静态标注,不影响运行时的值表示。运行时所有值仍然是 [0,1] 的连续标量。量纲只影响:

  • 静态检查(哪些运算合法)
  • 偏差记录(哪些运算产生量纲偏差)
  • 可解释性(输出中携带量纲信息)

7.2 归一化与量纲

原始值(如 25℃)通过 归一化() 转换为 [0,1] 的连续值,同时量纲变为 无量纲

归一化(温度:摄氏度, -20, 50) → 无量纲值 ∈ [0,1]

这承认了原始值有量纲、有范围,与「连续状态场是归一化值」的设计一致。

7.3 量纲与不确定性

在 VVUQ 框架中,量纲与不确定性结合:

环境.温度 = 0.68 [0.62, 0.74] (95% CI, 量纲=摄氏度)

量纲确保不确定性标注在正确的语义维度上。


八、量纲系统的设计哲学

8.1 与传统类型系统的区别

维度 传统类型系统 (int/float/str) 元序量纲系统
运行时表示 不同类型有不同表示 所有值都是 [0,1] 连续标量
检查时机 编译期/运行时 静态检查 + 运行时偏差
违规处理 类型错误,中断 量纲偏差,可观测不中断
跨类型运算 禁止或隐式转换 需融合声明
类型数量 固定(int/float/bool/str...) 开放(用户可定义量纲)
哲学 离散值的分类 连续值的语义标注

8.2 量纲是「弱类型」而非「无类型」

Trae 建议「弱类型语义状态 + 强语义维度标注」。元序的量纲系统正是这一建议的实现:

  • 弱类型:运行时值统一为连续标量,不强制类型
  • 强语义标注:量纲提供语义检查,防止无意义运算

8.3 量纲与领域知识

量纲是领域知识的载体。交通领域有量纲 车速:km/h密度:辆/km,生态领域有量纲 种群密度:个体/公顷。量纲系统让领域专家的知识在语言层面可表达、可检查。


九、未解决问题与研究方向

  1. 量纲的自动推导:复杂表达式中量纲的完整推导算法(含条件分支、循环)
  2. 量纲的演化:Evolve 是否可以调整量纲?(当前设计不允许,量纲是静态的)
  3. 量纲的本体论:不同领域的量纲如何统一和映射(如「温度」在物理和气象中的不同含义)
  4. 量纲偏差的自动修复:能否根据上下文自动推断融合声明,修复量纲偏差?
  5. 量纲与因果图的结合:因果图中边的量纲一致性检查

十、总结

元序的量纲系统是「状态连续」哲学与「语义可检查」工程需求的平衡:

  • 运行时:所有值是 [0,1] 连续标量,量纲不影响计算
  • 静态时:量纲标注提供语义检查,跨量纲运算需融合声明
  • 违规时:产生量纲偏差而非崩溃,符合容错存续公理
  • 融合时连续融合() 是跨量纲运算的唯一合法通道

量纲系统不是对「无类型」的倒退,而是对「无类型」的深化——连续值不需要离散类型,但需要语义标注来防止无意义的混合。


文档版本: WorldScript Dimension System v1.0
创建日期: 2026-09-03
关联文档: 《04元序规则》3.4.1节、《14形式化语义》、《16验证与确认体系》
实现状态: 理论定义完成,M2 阶段实现静态量纲检查
哲学基础: 弱类型 + 强语义标注,连续值的语义维度

posted @ 2026-09-03 16:32  新哲  阅读(5)  评论(0)    收藏  举报