#计算器 #命题 #真值表 #AST #逻辑 #表达式

logic_tracer

识别逻辑命题并跟踪其真值,同时生成真值表(仍在开发中)

10 个版本

0.0.10 2024 年 5 月 29 日
0.0.9 2024 年 4 月 25 日
0.0.8 2024 年 3 月 25 日
0.0.7 2024 年 1 月 1 日
0.0.6 2023 年 12 月 31 日

#249数学

Download history · Rust 包仓库 13/week @ 2024-04-27 · Rust 包仓库 1/week @ 2024-05-04 · Rust 包仓库 4/week @ 2024-05-18 · Rust 包仓库 116/week @ 2024-05-25 · Rust 包仓库 15/week @ 2024-06-01 · Rust 包仓库 6/week @ 2024-06-08 · Rust 包仓库 2/week @ 2024-06-15 · Rust 包仓库 35/week @ 2024-06-29 · Rust 包仓库 52/week @ 2024-07-27 · Rust 包仓库

52 每月下载量

MIT 许可证

51KB
523 代码行

Algorithm
逻辑跟踪器

github crates.io docs.rs

逻辑跟踪器是一个简单的 crate,它读取逻辑命题并将其解释为 构建命题的真值表和 AST

使用正则表达式验证输入并对命题进行标记化。
还实现了 Shunting Yard 算法(尚未)来构建 AST。

示例

查看 示例 目录,了解如何使用该 crate。

cargo run --example <example name>

路线图

  • 读取逻辑命题
  • 标记化命题
  • 验证输入标记(仅有效标记)
    • 变量(仅字母)
    • 逻辑运算符(与、或、非、蕴含、当且仅当)
    • 数学运算符(加、减、乘、除、幂)
    • 复合表达式(仅数字、变量、带下标的变量)
  • 解析命题(确保有效)
  • 构建 AST(Shunting Yard 算法)(使用后缀表示法)
  • 为 AST 添加表示法(前缀、中缀、后缀)
  • 解决命题(评估 AST)
  • 添加真值表、AST、函数等美观的输出
  • 将命题简化为其最简形式(布尔代数)
    • 重新组合复合表达式(布尔代数)
    • 应用德摩根定律(布尔代数)
    • 应用分配律、结合律和交换律(布尔代数)
  • 添加更多示例
  • 添加更多测试
  • 改进文档
  • 改进 crate 的导入/导出(以提高其作为库的可用性)

考虑事项

  • 添加一些并行计算(以提高性能)

未来

  • 添加复杂数学迭代(和、积等)(以便能够解决更复杂的命题)
    • 测试复杂数学迭代的命题
  • 添加组合逻辑(多路复用器、解码器等)
  • 添加时序逻辑(触发器、寄存器等)
  • 添加一些几何证明(以便能够解决几何问题)
    • \sum_{i=1}^{n} i = \frac{n(n+1)}{2} 或类似的内容

我希望使这个 crate 完全独立于任何其他 crate. 所以 我将亲自实现解析器... 但我还会检查 pest crate 看看它是如何工作的,以及我是否可以在其他项目中使用它...(也许在将来)


许可证

本项目采用 MIT 许可证 进行许可

依赖关系

~0.3–0.8MB
~11K SLoC