1 个不稳定版本
0.1.0 | 2023年2月25日 |
---|
#1697 在 算法
130KB
3K SLoC
Rust 一阶逻辑
一阶逻辑语法的 Rust 实现,以及一个逻辑 'harness',用于在论域上做出自洽的逻辑断言。
目标:
- 使用一阶逻辑的语法构造和操作逻辑语句。
- 定义和断言谓词和函数,并进行自洽的逻辑检查
- 提供一个接口,用于集成实现(独立于本包)高级数学概念(如集合论)的包,并通过 FOL 语言与之交互。
非目标:
- 实现任何集合论的形式,或展示集合的概念。
- 自动定理证明
- 提供一个基础,可以在其上实现高级数学包。
特性
特性 | 描述 | 状态 |
---|---|---|
逻辑语法 | ||
FOL 语法 | FOL 的类型语法 | ✅ |
前束范式 | PNF 的类型和从其他形式转换 | ✅ |
Skolem 正则形式 | SNF 的类型和从其他形式转换 | ✅ |
合取范式 | CNF 的类型和从其他形式转换 | ✅ |
逻辑语义 | ||
谓词 | 支持断言逻辑谓词的图 | 进行中 |
函数 | 支持定义逻辑函数的图 | 进行中 |
绑定变量 | 支持创建命名绑定变量的图 | 进行中 |
逻辑句子集成 | 能够直接将语法语句应用于 FOL 图 | 未来 |
包结构
语法
定义了一阶逻辑的强类型语法,包括一系列强类型范式和它们之间的转换方法。
语义
定义了一个内存中的图结构,用于跟踪逻辑语句并允许进行自洽的逻辑检查。
该图很少直接操作,而是由许多默认谓词和函数创建的公共接口管理。
依赖项
~0.7–1.2MB
~25K SLoC