Prover9/Mace4 的形式化语言简介(二)

语法示例

下面是一个简单的例子,尝试证明群论中的一条性质(左单位元也是右单位元)。注意,此性质不一定成立,取决于具体的公理定义,这里仅作语法演示:

formulas(assumptions). % 公理/假设部分

all x (x * e = x). % e 是左单位元

all x (e * x = x). % e 也是右单位元? (这是我们想证明的目标,但这里作为假设列出仅用于演示语法,实际证明中它应放在goal部分)

all x all y all z ((x * y) * z = x * (y * z)). % 结合律

end_of_list.

formulas(goals). % 目标部分

all x (x * e = x) -> all x (e * x = x). % 如果左单位元存在,则它也是右单位元 (这个蕴含关系不一定成立!)

end_of_list.

说明:

  • all x (...) 表示 \\forall x (...)。
  • * 是一个二元函数(群运算)。
  • e 是一个常量(单位元)。
  • -> 表示逻辑蕴含。
  • formulas(assumptions). 和 formulas(goals). 分别标记假设和目标块的开始,end_of_list. 标记结束。

Mace4 的输入

Mace4 的输入语法与 Prover9 非常相似。用户同样提供一组公式(公理)。Mace4 的任务是寻找一个有限的数学结构(模型),使得这些公理在该结构中同时为真。如果公理集存在矛盾,Mace4 会报告找不到模型。如果猜想可能不成立,用户可以将猜想(或其否定)加入公理集,让 Mace4 寻找反例模型。

输出

  • Prover9:如果证明成功,它会输出一个详细的、人类(经过训练)可读的证明过程。
  • Mace4 :如果找到模型,它会输出模型的详细描述,包括:
    • 论域(Domain)的大小和元素(通常是整数 0, 1, 2, ..., n-1)。
    • 常量的解释(映射到哪个域元素)。
    • 函数的解释(对每个可能的输入组合,给出输出值)。
    • 谓词的解释(列出所有满足该谓词的元素组合)。

总结

Prover9 和 Mace4 的形式化语言提供了一种相对简洁的方式来描述一阶逻辑(特别是涉及等式)中的数学问题。用户通过声明公理和目标,即可利用强大的自动化工具进行定理证明或反例查找。虽然学习这套语言需要一定的逻辑基础,但它为研究逻辑性质、验证猜想提供了非常实用的自动化手段。

相关推荐
YSL0701246 分钟前
一文通关-----栈和队列
开发语言·数据结构
维克兜率天16 分钟前
【维克】统计套利建模:从因子到信号的完整流程
android·开发语言·python·算法·kotlin
Pin_Qing21 分钟前
同一天,谷歌半价卖旗舰,阶跃翻倍收缓存
大数据·开发语言·人工智能·程序人生·缓存
2501_9307077827 分钟前
使用C#代码在 Word 文档中添加、插入或删除页面
开发语言·c#·word
没有梦想的咸鱼185-1037-166330 分钟前
从通量数据到SCI论文——AI-R语言生态系统碳水热通量及其机制分析与论文
开发语言·人工智能·数据分析·r语言
weixin_4617694036 分钟前
conda create 创建容器 Failed to resolve ‘repo.anaconda.com‘问题
开发语言·python·conda·repo·网络问题·无法创建
Want59538 分钟前
Python生日蛋糕
开发语言·python
C语言小火车43 分钟前
C++ 为什么越来越依赖标准库?
java·开发语言·c++
郝学胜-神的一滴1 小时前
金融数据分析实战:从数据清洗到策略回测,Python全链路落地
开发语言·python·程序人生·金融·数据挖掘·数据分析
冒险的豆子1 小时前
JS 原型链 通俗易懂 解释说明(类比 关系)
开发语言·javascript·原型模式