仅用四条公理奠基计算与本体论 — Rei 语言的设计哲学(0 -shiki)

发布: (2026年2月16日 GMT+8 10:31)
8 分钟阅读
原文: Dev.to

抱歉,我需要您提供要翻译的正文内容(除代码块和 URL 之外的文本),才能为您完成简体中文翻译。请把文章的文字粘贴在这里,我会保持原有的 Markdown 格式并只翻译正文部分。

数字不是点——它们是场

在传统编程中,数字是单一点(标量值)。当你写 x = 5 时,一个叫 5 的点被存入变量。

Rei 推翻了这一假设。每个值都是一个拥有“中心”和“外围”的场。

import { mdnum, compute } from 'rei-lang';

// 多维数字:center = 5, periphery = [1, 2, 3, 4]
const md = mdnum(5, [1, 2, 3, 4]);
const result = compute(md);
console.log(result.value); // 7.5(中心 + 外围的加权平均)

// center = 0, 没有外围 → 退化为标量
const scalar = mdnum(0, []);
console.log(compute(scalar).value); // 0(与普通数字相同)

这根本不同于“用数组进行计算”。在 Rei 中,数字本身的结构遵循中心‑外围模式,而标量只是外围为空的退化情形。

四条不可约公理

符号含义
M = (c, N, μ, w)一个值
c ∈ V中心
N = (n₁,…,nₖ)外围
μ ∈ Modes计算模式
w : N → ℝ⁺权重函数

退化:当 k = 0 时,compute(c, ∅, μ, w) = c。传统编程可以视为只处理这种退化情形。

每个值都可以沿 深度轴 扩展约简

  • ⊕ : V × S → V (扩展:添加下标)
  • ⊖ : V → V   (约简:移除下标)
链:   v₀ →⊕ v₀ₒ →⊕ v₀ₒₒ → …
逆: ⊖(⊕(v, s)) = v
import { subscript, extnum, extend, reduce, toNotation } from 'rei-lang';

// 创建 0₀ₒₒ(零的三重扩展)
const sub = subscript(0, ['o', 'o', 'o']);
const en  = extnum(sub);

// 扩展与约简操作
const extended = extend(en, 'x'); // 0ooo → 0ooox (⊕)
const reduced  = reduce(extended); // 0ooox → 0ooo (⊖)

// 四层记号等价
const notation = toNotation(sub);
console.log(notation.sensory);    // "0ooo"     (感官层)
console.log(notation.dialogue);   // "0_o3"     (对话层)
console.log(notation.structural);// "0(o,3)"   (结构层)
console.log(notation.semantic);  // JSON       (语义层)

对“零之前是什么?”的回答
通常,0 被视为不可约的原子,但在 Rei 中,无限结构0 内展开。每一次变换都会留下痕迹;一个值保留自己的历史。

V̂ = V × Σ          // value = 原始值 + 元数据
Σ = (H, τ, n)
  H – 变换历史(记忆)
  τ – 趋势(变化方向)
  n – 变换计数

每一次函数调用都会自动记录,所以一个值始终知道 它现在是什么 以及 它来自何处

import { lang } from 'rei-lang';

// compress = 函数定义(压缩的哲学)
lang.run('compress double(x) -> x * 2');
lang.run('compress inc(x)    -> x + 1');

// 用管道运算符串联变换
lang.run('5 |> double |> inc |> double'); // → 22
// 在此过程中,变换历史 [5, 10, 11] 会自动累积在 σ 中

分阶段存在

存在从虚无中产生,分为 个阶段;任何阶段都不能跳过。

P = { void, ・, 0₀, 0, ℕ }

void → ・   // 某物可以存在
 ・  → 0₀   // 值与结构分离
0₀  → 0    // 值固化并可计算
 0  → ℕ    // 自然数系统出现
import { genesis } from 'rei-lang';
const { runFullGenesis, verifyTheoremS0, verifyTheoremS1 } = genesis;

// 运行完整的起源过程:void → ・ → 0₀ → 0 → ℕ
const state = runFullGenesis();
console.log(state.phase); // 'number'

// 验证唯一性定理
const s0 = verifyTheoremS0(state); // ・→0₀ 转换唯一
const s1 = verifyTheoremS1(state); // 0₀→0 转换唯一
console.log(s0.valid, s1.valid); // true true

阻断规则 – 不能直接从 void 跳到 0。转换必须一步一步进行:void → ・ → 0₀ → 0

Source:

. 这是一条原则:“通往存在没有捷径。”

四条公理(独立轴)

公理所回答的问题
A1空间(结构)“一个值的形状是什么?”
A2深度(嵌套)“你可以在一个值内部深入到多深?”
A3时间(历史)“一个值是如何变化的?”
A4起源(生成)“一个值来自何处?”

为什么每条公理都不能被其他公理取代

公理不可或缺的原因
A1A2、A3、A4 并未定义 值的结构
A2A1、A3、A4 并未包含 深度 的概念
A3A1、A2、A4 并未暗示保留 历史
A4A1、A2、A3 并未涉及 存在的起源

比较概览

系统# 公理范围
λ‑calculus3计算
Peano5自然数
ZFC9集合
Rei4计算 + 本体论

Rei的语法映射其四条公理

import { lang } from 'rei-lang';

// A1: 多维数字字面量 [center; periphery...]
lang.run('[5; 1, 2, 3, 4]');

// A2: 扩展 ⊕ / 缩减 ⊖
lang.run('0oo ⊕ x'); // 0oo → 0oox
lang.run('0oox ⊖'); // 0oox → 0oo

// A3: 管道(函数组合并伴随 σ‑累积)
lang.run('compress inc(x) -> x + 1');
lang.run('41 |> inc'); // 42

// A4: 绑定(值固定 = 存在的固化)
lang.run('bind x = 42');

语法 – 公理映射

语法公理设计意图
[c; n₁, n₂, …]A1直接表达多维数字
/ A2将扩展 / 缩减作为一等运算符
`>` (管道)A3
bindA4值固定 = 存在的固化

所有代码片段均假设已安装最新版本的 rei-lang

Source:

Rei‑lang 精选

> (pipe)          →  A3
bind               →  A4  
*Irreversibly fix the existence of a value*

compress           →  A1+A3  
*Compress computation into a reusable form*

中心‑外围模式 的真实世界性能优势

任务与传统相比描述
图像卷积核操作降低 4 倍卷积代码量
多维数据聚合提升 3.7 倍聚合流水线的冗长程度
图结构转换提升 3.7 倍网络结构的操作
平均代码缩减74 %整体表达力

第 7 阶段 (v0.5.5+) 功能

  • σ‑属性交互 (7a)
  • 自我修复 (7b)
  • 自我生成 (7c)
  • 涌现 (7d)
  • 微‑宏双界限元桥 (7e)

该语言现已覆盖 七大领域——自然科学、信息工程、人文、艺术、音乐、经济学和语言学——并通过 36‑方向桥 相互连接。通过 compress/expand 函子 实现 五套备选公理系统 之间的相互转换。

资源

  • GitHub:
  • npm:
  • Zenodo DOI:
  • SSRN:

欢迎反馈、提出问题和点赞!

0 浏览
Back to Blog

相关文章

阅读更多 »

C++26:Std:Is_within_lifetime

当我在寻找下一篇文章的主题时,我的目光停在了 std::is_within_lifetime 上。处理生命周期问题是常见的 bug 源头,在…