Isabelle 如何证明这一点;3是素数;在伊莎贝尔的证明助理里?
为了证明我在伊莎贝尔身上的研究,我需要3和5是素数的事实。建立这一点的最简单方法是什么?有一些simp规则允许简化程序自动完成此操作:Isabelle 如何证明这一点;3是素数;在伊莎贝尔的证明助理里?,isabelle,Isabelle,为了证明我在伊莎贝尔身上的研究,我需要3和5是素数的事实。建立这一点的最简单方法是什么?有一些simp规则允许简化程序自动完成此操作: lemma "prime (5 :: nat)" by simp 对于较大的数字(例如,137),这需要几秒钟的时间,而对于较大的数字,则完全无法使用 您还可以使用eval代替simp,后者通过Isabelle的求值oracle对标准ML中的语句求值,然后在Isabelle中将结果重新解释为定理。根据您询问的对象,这可能被视为比simp稍不可信 最后,正式
lemma "prime (5 :: nat)"
by simp
对于较大的数字(例如,137
),这需要几秒钟的时间,而对于较大的数字,则完全无法使用
您还可以使用eval
代替simp
,后者通过Isabelle的求值oracle对标准ML中的语句求值,然后在Isabelle中将结果重新解释为定理。根据您询问的对象,这可能被视为比simp
稍不可信
最后,正式证明档案中的条目还提供了一种称为pratt
的证明方法,可以使用pratt证书自动证明数字的素性。这比使用simp
稍微有效一些,但对于真正大的数字来说仍然不是很好
在任何情况下,对于像5和7这样的小数字,simp的是一个不错的选择
但是请注意,您必须给出一个类型,即prime(5::nat)
或prime(7::int)
。如果您只编写prime 5
,则为5推断的类型太一般。例如,prime(5::real)
不是真的,因为字段不包含素数