伊莎贝尔语中的“arith”和“presburger”有什么区别?

2023-12-31

到目前为止,我在伊莎贝尔遇到的每一个目标都可以通过使用来解决arith也可以通过以下方式解决presburger反之亦然,例如

lemma "odd (n::nat) ⟹ Suc (2 * (n div 2)) = n"
by presburger (* or arith *)

这两个求解器有什么区别?一个可以解决但另一个不能解决的目标的例子就很好了。


Edit:我设法想出了一个引理,证明了arith that presburger无法处理。这似乎与实数有关:

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 -- ✘

我刚刚问过托拜厄斯·尼普科夫(Tobias Nipkow),他是这么告​​诉我的:

  • presburger是一个决策程序普雷斯堡算术 http://en.wikipedia.org/wiki/Presburger_arithmetic,即自然数和整数的线性算术,加上一些预处理,这就是为什么你的陈述real也可以被证明(因为它归结为整数问题)。它可以处理量词。其背后的算法称为库珀算法。
  • linarith施行傅里叶-莫茨金消除法 http://en.wikipedia.org/wiki/Fourier%E2%80%93Motzkin_elimination解决实数线性算术问题。它还可以在自然数和整数上证明这些性质,但前提是它们也适用于所有实数。它无法处理量词。
  • arith可以概括为以下组合presburger and linarith.

为了完整起见,我想补充一点,对于有趣的陈述类别有更专门的证明方法:

  • algebra使用 Gröbner 基来解决可以通过重新排列代数结构(如群和环)中的项来证明的目标
  • approximate使用区间算术计算具体项的包围
  • sos可以证明多元多项式不等式(x :: real) ≥ 2 ⟹ y ≥ 2 ⟹ x + y ≤ x * y使用平方和证书
  • sturm,这是我写的,可以计算给定区间内的实根数,并证明某些单变量实多项式不等式。
  • regexp可以证明有关关系的陈述,例如(r ∪ s⁺)* = (r ∪ s)*使用正则表达式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

伊莎贝尔语中的“arith”和“presburger”有什么区别? 的相关文章

  • Building ceres-solver fail with eigen3 "error: no type named ‘Literal’ in ‘struct Eigen::NumTraits"

    以前编译ceres solver没有出现过问题 xff0c 最近在编译时报出一个问题 xff1a 75 Building CXX object internal ceres CMakeFiles jet test dir jet test
  • ubuntu16.04下编译ceres-solver

    一 编译环境 ubuntu16 04 二 准备工作之安装必要的库 2 1安装cmake sudo apt get install cmake 2 2 安装google glog 43 gflags sudo apt get install
  • 当证明已经完成但给出“无法完善任何待定目标”错误时,为什么我不能在 Isabelle 中明确说明我的情况?

    我正在阅读具体语义的第五章 我在处理这个玩具示例证明时遇到了一些错误 lemma shows ev Suc 0 我知道这超出了需要 因为by cases 神奇地解 决了所有问题并给出了完整的证明 但我想明确说明这些情况 我试过这个 lemm
  • 量词中的非零向量

    我想验证以下形式的公式 Exists p ForAll x 0 f x p gt 0 一个实现 不起作用 如下 def f0 x0 x1 x y return x1 2 y x0 2 x s Solver x0 x1 Reals x0 x1
  • 除了 Simple Solver 之外,还有什么软件可以求解给定输入/输出的数字电路?

    All 我在这里找到了一个名为 简单求解器 的东西 http home roadrunner com ssolver syn html 你可以在这里下载 http www softpedia com progDownload Simple
  • Isabelle/HOL 中的对象级含义

    我发现 Isabelle HOL 中的许多定理更喜欢元级蕴涵 gt 代替 gt 对象逻辑级别 即高阶逻辑含义 伊莎贝尔维基说粗略地说 应该使用元级别含义将规则语句中的假设与结论分开 除此之外 关于对象和元级别含义的使用我应该了解什么 我发现
  • JS 中的数独求解器

    我正在尝试编写一种可以解决数独的算法 目前 我的代码可以正常工作 直到 SupplyGrid 的数量耗尽为止 当这种情况发生时 它应该返回并尝试另一个号码 对吧 老实说 我不知道如何实现这一目标 var grid 0 0 0 0 0 0 0
  • 在 Z3-Python 中,执行模型搜索时出现“builtin_function_or_method' object is not iterable”

    我正在探索在 Z3 Python 中执行 SAT 求解的快速方法 为此 我尝试模仿第 5 1 章的结果https theory stanford edu nikolaj programmingz3 html sec blocking eva
  • 在MATLAB中求未知矩阵的所有元素?

    我给定了一个 4x4 矩阵 我必须求解这个 lyapunov 方程并找到满足以下方程的未知矩阵 a 0 1 0 0 0 0 1 0 0 0 0 1 0 0 5 0 f 1 1 0 0 1 1 0 0 0 0 1 5 0 5 0 0 0 5
  • 伊莎贝尔语中的“arith”和“presburger”有什么区别?

    到目前为止 我在伊莎贝尔遇到的每一个目标都可以通过使用来解决arith也可以通过以下方式解决presburger反之亦然 例如 lemma odd n nat Suc 2 n div 2 n by presburger or arith 这
  • Python 中的多元求根

    使用 Excel 求解器 很容易找到该方程的解 x 和 y 的最佳值 x 14 80461 y 4 9233 10 0 4803 0 但是 我不知道如何在 Python 中执行此操作 现有的 scipy 优化库函数 如 fsolve 或 l
  • 河内塔 - 用 Python 解决中途算法

    河内塔有可能中途解决吗 我已经做了广泛的研究来寻找可以半途解决用户配置的代码 但我还没有找到 这是一项作业 我需要代码从用户停止解决的地方接管并继续为用户解决它 而不将谜题重置为一 我知道有现成的递归算法 但这不是我正在寻找的 我正在寻找可
  • 使用 prolog 显示布尔逻辑失败的原因

    假设我有以下布尔逻辑 Z A or B and A or C 是否可以使用序言 可能与某些库一起 来找出 Z 为假的原因并以以下格式返回答案 Z 为假 因为 A 或 b 和 c 为假 如果我替代some已知值 或全部 例如 c true 它
  • 如何让 typedef 类型从类型类的母类型继承运算符

    发布答案后续问题 Brian 提供了答案 并建议使用提升和转移的解决方案 然而 我找不到足够的关于举重和转移的教程信息 无法知道如何调整他的答案来完成我需要做的事情 在这里 我在黑暗中工作 并使用给出的答案作为即插即用模板来提出这个后续问题
  • 如何学习阿格达

    我正在努力学习agda 但是 我遇到了一个问题 我在 agda wiki 上找到的所有教程对我来说都太复杂了 并且涵盖了编程的不同方面 在并行阅读了 3 个关于 agda 的教程后 我能够编写简单的证明 但我仍然没有足够的知识来使用它来实现
  • 使用 Solver、EXCEL 时保存目标函数值

    我在 Excel 中设置了一个优化问题 当我优化 使用 GUI 时 我得到目标函数的最终 最佳 值 我可以看到 Excel 计算了很多点的目标函数值并确定了最佳点 有没有办法将所有目标函数值保存到 Excel 工作表中的某个范围 如果我可以
  • 从字符串解方程得到 C 的结果

    我想知道是否有人有关于如何做一些听起来很简单但在尝试编程时看起来并不像的事情的信息或经验 这个想法是 给出一个包含方程的字符串 例如 2 x 10 这很简单 但它可能会变得非常复杂 例如 sqrt 54 35 x 2 等等on 程序将返回
  • 应该如何理解“引理”函数的一般类型?

    也许这是一个愚蠢的问题 这是引用自the 哈索主义 paper https personal cis strath ac uk conor mcbride pub hasochism pdf 解决这个问题的一种方法是对引理进行编码 由下式给
  • Subst refl 关闭重复的子目标。这是怎么回事?

    In this https stackoverflow com questions 15608399 how do i remove duplicate subgoals in isabelle线程马蒂厄证明了subst refl关闭重复的
  • Java 的 QP 求解器 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • 如何在ARKit中使用环境贴图?

    ARKit 2 0 添加了一个名为 AREnvironmentProbeAnchor 的新类 阅读它的说明 似乎 ARKit 可以自动收集环境纹理 立方体贴图 我相信我们现在可以创建一些反映真实环境的虚拟对象 但我仍然不清楚这是如何工作的
  • Swift 包管理器有本地缓存​​吗?

    每次我加载新包时 Xcode 都会从 Github 重新下载所有依赖项 而不是重用我已经为其他项目加载的一些依赖项 例如 我希望当我引用时 package name SwiftyJSON url https github com Swift
  • 如何查找表的当前大小(在内存中)?

    我有一个使用 engine MEMORY 指定的内存表 我可以运行什么命令来了解它当前占用了多少空间 最大尺寸怎么样 SHOW TABLE STATUS LIKE tablename G 其中 tablename 是您要检查的表的名称
  • 如何使用 python 库找到骨架图像中的循环?

    我有很多这样的骨架图像 我如何检测骨架中的循环 是否有 特殊 函数可以执行此操作 或者我应该将其实现为图表 如果只有图形选项 python图形库NetworkX可以帮助我吗 您可以利用骨架的拓扑结构 循环不会有洞 所以我们可以使用scipy
  • Keras ImageDataGenerator:随机变换

    我有兴趣通过随机图像转换来增强我的数据集 我正在使用 Keras图像数据生成器 https keras io preprocessing image imagedatagenerator 并且我在尝试申请时收到以下错误random tran
  • 俄罗斯方块棋子旋转算法

    表示和旋转俄罗斯方块游戏棋子的最佳算法 和解释 是什么 我总是发现片段轮换和表示方案令人困惑 大多数俄罗斯方块游戏似乎在每次旋转时都使用天真的 重新制作块数组 http www codeplex com Project ProjectDir
  • 使用 WPF 更改与窗口大小相关的字体大小?

    是否有可能 如果缩小窗口 FontSize 会变小 如果放大窗口 FontSize 会变大 将您的文本包裹在Viewbox
  • 视图内变量的范围是什么?

    如果我在 ASP NET MVC 视图中有如下代码 然后在页面下方 我在另一个代码渲染块中创建另一个脚本 我可以重复使用吗admin变量 它会记住页面上层的状态 还是范围就在 blocks 以下是我注意到的有关 MVC 范围的内容 内容控件
  • 如何测试 angularjs 指令来监视函数调用?

    下面的代码执行但抱怨 element popover 没有被调用 我似乎无法弄清楚问题是什么 提前感谢您的帮助 指示 angular module directives directive popOver function http ret
  • DCOM 出了什么问题?

    人们似乎对 DCOM 有很多敌意 我很想知道为什么 对于仍在使用 C 编写 Win32 SKD 的公司来说 是否有真正的理由在当前或未来的开发中不使用 DCOM 未来的某些 Windows 版本是否将不支持它 是否太脆弱 经常无法工作 与其
  • 关闭 iPhone 键盘

    我正在尝试重新创建类似于 safari 中使用的弹出键盘的东西 我可以通过在视图和相应按钮上放置一个工具栏来直观地重现它 但是一旦用户触摸完成按钮 我就无法找到任何方法来关闭键盘 您需要记住几件事 开发人员忘记设置的第一个部分是delega
  • 在 Objective-C 中使用枚举作为外部文件中的参数?

    我在文件 foo h 中有一个名为 RandomEnum 的枚举 foo h typedef enum RandomEnum ran 1 0 ran 2 RandomEnum 在另一个文件 bar h 中 我尝试使用 RandomEnum
  • ShareMem/ 与 Delphi DLL 进行字符串交换

    我希望快点 我正要深入研究一个 Delphi 5 遗留应用程序 它调用 DLL 也是用 D5 编写的 传递一个 DLL 可以根据需要修改的字符串 我有 DLL 和应用程序的代码 粘贴在 DLL 源代码顶部的是关于使用 ShareMem 的注
  • Jquery输入数组形式ajax

    我如何获取输入数组usernamejQuery 变量中的值users
  • Log4net:按 utc 日期而不是服务器日期滚动文件

    有没有办法让 log4net 在 utc 时间而不是服务器时间上滚动文件 现在我的文件以 utc 时间存储日志 但它会滚动 即在服务器时间每天创建一个新文件 服务器采用太平洋时间 因此昨天的文件包含今天文件的前 8 小时日志 例如 10 月
  • 调车场算法能解析POSIX正则表达式吗?

    乍一看 调车场算法 http en wikipedia org wiki Shunting yard algorithm似乎适用于 POSIX 正则表达式解析 但由于我在编写解析器方面没有太多经验 或理论背景 所以我想在跳入并编写一些东西只
  • 向谷歌地图添加许多圆圈

    我试图在谷歌地图上绘制许多圆圈 大约 1000 个 在不同的位置和大小 然后将点击事件绑定到它们 但这么多的电话new google maps Circle parameters 使页面加载缓慢 有时它会永远挂起 所以我想弄清楚是否有更好
  • 在 Android Studio 中将现有项目转换为库项目

    如何在 Android Studio 中将现有 Android 项目转换为 Android 库项目 在 Eclipse 中 这是可能的 https stackoverflow com questions 2959820 convert ex
  • 从电子邮件正文中删除包含 CRLF 字符的字符串

    我正在尝试从选定的传入 MS Outlook 2016 电子邮件中删除字符串 该字符串是德语的两个句子 我用代替 功能 这主要是有效的 请参阅下面的完整过程 两个句子有时由 CRLF 回车 换行 字符分隔 并且它们并不总是在同一位置 这似乎
  • 伊莎贝尔语中的“arith”和“presburger”有什么区别?

    到目前为止 我在伊莎贝尔遇到的每一个目标都可以通过使用来解决arith也可以通过以下方式解决presburger反之亦然 例如 lemma odd n nat Suc 2 n div 2 n by presburger or arith 这