小编cur*_*leo的帖子

Isabelle 求解器:“自动”还是“fastforce”?(求解器强度比较)

在 Isabelle,我经常发现我可以使用不同的求解器成功地证明一个目标。

通常,我更愿意使用可以证明目标最弱求解器。根据我目前与 Isabelle 的经验,我目前的理解是,按照强度增加速度降低的顺序,常见的逻辑求解器排名如下(即何时rulesimp两者都起作用,rule应该使用等):

rule < simp < auto < fastforce < force
Run Code Online (Sandbox Code Playgroud)

这样对吗?这里blast适合放哪里?

我检查编程和伊莎贝尔/ HOL(PDF)证明与伊莎贝尔/ HOL具体语义,但无法找到答案。

solver theorem-proving isabelle

5
推荐指数
1
解决办法
481
查看次数

Isabelle中的“ arith”和“ presburger”有什么区别?

到目前为止,我在伊莎贝尔(Isabelle)遇到的每一个可以解决的目标arith都可以通过解决,presburger反之亦然,例如

lemma "odd (n::nat) ? Suc (2 * (n div 2)) = n"
by presburger (* or arith *)
Run Code Online (Sandbox Code Playgroud)

两个求解器有什么区别?一个目标可以解决而另一个却无法解决的目标示例。


编辑:我设法想出通过证明引理arithpresburger无法处理。似乎这与实数有关:

lemma "max i (i + 1) > (i::nat)" by arith       -- ?
lemma "max i (i + 1) > (i::nat)" by presburger  -- ?

lemma "max i (i + 1) > (i::real)" by arith      -- ?
lemma "max i (i + 1) > (i::real)" by presburger -- ?
Run Code Online (Sandbox Code Playgroud)

solver theorem-proving isabelle

5
推荐指数
1
解决办法
346
查看次数

构建者是否在Agda中脱节?(或如何反驳inj 1 x≡inj₂y)

我需要一个更多的引理来证明这inj? x ? inj? y是荒谬的,作为关于?Agda中不相交联合类型()的更大定理的一部分.

这个结果将直接来自两个构造函数?,即inj?inj?不相交.那是阿格达的情况吗?我该如何证明?

这是完整的引理:

open import Relation.Nullary
open import Relation.Binary.PropositionalEquality
open import Data.Sum


lemma : ? {a b} {A : Set a} {B : Set b} {x : A} {y : B} ? ¬ inj? x ? inj? y
lemma eq = ?
Run Code Online (Sandbox Code Playgroud)

constructor theorem-proving disjoint-union agda

4
推荐指数
1
解决办法
158
查看次数