我正在尝试 TLA+ 的定理证明工具来证明算法的安全性。但我发现 TLAPS 无法计算出非常“简单”的数学事实。
我的第一个问题是:
EXTENDS Naturals
CONSTANTS x,y
ASSUME x \in Nat /\ y \in Nat
LEMMA x=y+1 => y<x
OBVIOUS
TLAPS 不能单独使用任何后端证明者来完成。我还尝试使用特定的后端证明者和其他策略:
LEMMA x=y+1 => y<x
BY IsaM("blast")
但也失败了。类似地,不能检查其他类型的简单事实,例如:
LEMMA x<y => x<y+0
我过去使用过一些后端定理证明器,例如 Z Solver 或 Isabelle,据我所知,它们非常强大。我想我在这里遗漏了一些东西......或者我不理解 TLAPS 证明组织者,或者我仍然需要加载一些带有公理的其他模块?