如何在Isabelle证明助手中证明“ 3是素数”?

时间:2018-12-17 17:40:18

标签: isabelle

要证明我正在伊莎贝尔(Isabelle)工作的事实,我需要3和5是质数的事实。建立这个最简单的方法是什么?

1 个答案:

答案 0 :(得分:1)

有一些简化规则可以使简化程序自动执行此操作:

lemma "prime (5 :: nat)"
  by simp

对于较大的数字(例如137),这将需要几秒钟,而对于较大的数字,则完全无法使用。

您也可以使用eval而不是simp,它会通过Isabelle的评估预言来评估Standard ML中的语句,然后将结果重新解释为Isabelle中的一个定理。根据您询问的对象,这可能不如simp可信。

最后,形式证明的存档Pratt Certificates上的条目还提供了称为pratt的证明方法,该方法可以使用Pratt自动证明数字的素数证书。这比使用simp的效率略高,但对于真正大的数字仍然不是很好。

在任何情况下,对于5和7这样的小数字,by simp都是解决之道。

请注意,您必须输入类型,即prime (5 :: nat)prime (7 :: int)。如果仅写prime 5,则推断为5的类型太笼统。例如,prime (5 :: real) not true,因为字段不包含质数。