我期待在自动化软件验证的要求,即一个程序,它的代码(用C和Java语言程序的普通代码),生成一串定理说的,每个回路必须最终停止,没有断言将被违反,永远不会有一个空指针的解除引用等,然后将其传递给定理证明器,以证明它们实际上是真实的(否则找到一个指示代码中的错误的反例)。逻辑的软件验证
问题是使用什么样的逻辑。两个主要的位置似乎是:
一阶逻辑就好了。
一阶逻辑是不足够的表现力,需要高阶逻辑。
问题是,似乎有很多支持这两个职位。那么哪一个是对的?如果它是第二个,那么您是否有任何可用的事例要做,基于一阶逻辑的验证器是否有问题?