我正在尝试使用apply方法在Isabelle中使用一组有限的规则来证明一个引理。这组规则包含(P --> Q) = (\<not> P \/ Q)的disj_not1。这里是我使用我的规则disj_not1的地方’。但不幸的是,disj_not1是一个'if and only if‘规则,而不是'if’规则,并且<
Isabelle需要很多时间来证明(在我看来)相当简单的数据类型转换函数的正确性。作为示例,我创建了数据类型来表示数学表达式和布尔表达式,并创建了一个函数来简化这样的表达式。(Or True b) = True" |by pat_completeness auto
termination by lexicographic_order 在我的笔记本上,Isabelle花了相当多的时间来证明
我只想用命题逻辑(如notI、notE、impI、impE)中的基本自然演绎规则(ND)将这一证明转化为ab练习(供我学习)。等)。我可以很容易地在应用脚本中做到这一点: apply (rule impI) (* A ⟹ A ∨ B *) apply (rule disjI1) (* A ⟹ A *)但我试图证明Isar失败了:
我如何在Isabelle中证明简单的lemma cd : "card {m∈ℕ. m <4} = 4"语句?auto对我没有帮助,奇怪的是sledgehammer超时了(即使我在右边使用了不同的值,比如3或5,以确保我没有忽略一些技术上的Isabelle细节,这些细节实际上可能会使基数计算为这些数字之一)。我的印象是,我必须使用一些引理(或从Set_Interval.thy中获得灵感),因为这些类型的集合被广
我最近开始学习Isabelle,但我找不到一个非常重要的问题的答案:人们如何才能一步一步地推理Isabelle找到的“证明”?当然,我了解了Isar的“证明”,但1.这样的Isar证明并不总是能被Sledgehammer找到,2.即使Isar证明也不总是给出一步一步的推理。例如,我的一个定理的Isar证明是由Sledgehammer生成的,如下所示: have "... here is my formula ...."现
在证明语句时,Isabelle是否支持自定义大小写区分?假设我想证明一个关于所有自然数n的声明,但证明完全不同,这取决于n是偶数还是奇数。是否可以在证明中进行大小写区分,例如 assume "n mod 2 = 0" next assume "n mod 2 = 1"<proof>到目前为止,我将引理/