Z3中的parthood定义

2023-12-24

我试图在 Z3 中定义集合对(使用数组定义)之间的部分关系(在下面的代码中称为 C)。 我写了 3 个断言来定义自反性、传递性和反对称性,但 Z3 返回“未知”,我不明白为什么。

(define-sort Set () (Array Int Bool))
(declare-rel C (Set Set))

; reflexivity
(assert (forall ((X Set)) (C X X)))

; transitive
(assert (forall ((X Set)(Y Set)(Z Set)) 
    (=> 
        (and (C X Y) (C Y Z)) 
        (C X Z)
    )
))

; antisymmetric
(assert (forall ((X Set)(Y Set)) 
    (=> 
        (and (C X Y) (C Y X))
        (= X Y)
    )
))

(check-sat)

我注意到,仅当与其他 2 个断言之一考虑反对称性时,才会返回未知数。如果我只考虑反对称性质 Z3 不会返回未知。如果我考虑无反对称性的自反性和传递性,情况也是如此。


量词本质上是不完整的。因此,Z3(或任何其他 SMT 求解器)回归也就不足为奇了unknown当他们在场时。求解器使用一些启发式方法来处理量词,例如电子匹配;但这些仅在您有基本术语时才适用。你的公式只有量化的公理,不太可能从中受益。

对于一般量词的推理,SMT 求解器根本不是最佳选择;为此使用定理证明器(Isabelle、Lean、Coq 等)。

这是 Leonardo 制作的关于在 SMT 求解中使用量词的精彩幻灯片:https://leodemoura.github.io/files/qsmt.pdf https://leodemoura.github.io/files/qsmt.pdf。它可以帮助您进一步了解相关技术和困难。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Z3中的parthood定义 的相关文章

  • 查找列表中不常见的元素

    我正在尝试编写一段可以自动分解表达式的代码 例如 如果我有两个列表 1 2 3 4 和 2 3 5 代码应该能够找到两个列表 2 3 中的公共元素 并组合其余的元素元素一起组成一个新列表 即 1 4 5 从这篇文章 如何找到列表交集 htt
  • 如何在不更改 equals 和 hashcode 的情况下插入集合

    我正在寻找建议 我有一个Person具有字符串firstName和字符串lastName的类 当我试图插入具有相同字符串的列表值时 例如 set add new Person firstName lastName set add new P
  • 使用 for..of 迭代时删除 Set 中的元素是否安全?

    是否指定可以删除实例中的任意元素Set迭代时使用for of然后 你不会在一个元素上迭代多次 除了删除的元素之外 您不会错过迭代开始时集合中的任何其他元素 Yes 在迭代集合时添加元素和删除元素是完全可以的 JavaScript 2015
  • 获取 3 个列表之间的差异

    我正在研究列表的差异 gt gt a 1 2 3 gt gt b 2 4 5 gt gt c 3 2 6 两组之间的对称差异可以使用以下方法完成 gt gt z set a symmetric difference set b gt gt
  • set 中的哈希表在 python 中如何工作?

    据我所知 set在python中通过哈希表来实现O 1 查找复杂度 虽然它是哈希表 但其中的每个条目set必须是可散列的 或不可变的 所以这种和平的代码引发了异常 gt gt gt dict Traceback most recent ca
  • set()是如何实现的?

    我见过有人这么说setpython 中的对象具有 O 1 成员资格检查 他们如何在内部实施以实现这一点 它使用什么类型的数据结构 该实施还有哪些其他影响 这里的每个答案都非常有启发性 但我只能接受一个 所以我将选择最接近我原来问题的答案 谢
  • 集合推导式在 Pydev (Python) 上不起作用

    x for x in range 10 在 IDLE 上完美运行 但是当我在 eclipse 中尝试 使用 Pydev 插件 时 出现语法错误 未定义的变量 x 是因为 Pydev 不支持集合理解什么的吗 我该怎么做才能使这项工作成功 这只
  • php PDO 可以获取两个结果集吗?如果是,1 个结果集和 1 个以上结果集哪个更好?

    如果可能的话 如何获取两个结果集 sth dbh gt prepare SELECT FROM tb1 WHERE cond1 SELECT from tb2 Where cond2 sth gt execute row sth gt fe
  • Z3统计中内存使用量的单位是什么?

    z3 统计中测量内存使用情况的单位是什么 是MB还是KB 记忆到底意味着什么 是执行期间的最大内存使用量还是所有分配的总和 它是执行期间最大堆大小的近似值 并通过 cmd context cpp 中的以下函数将其添加到统计对象中 void
  • 使用 std::set 时重载运算符<

    这是我第一次使用 std set 容器 并且我对操作符 std less 遇到了问题 我声明该集合 std set
  • dict_values 视图什么时候可以像设置一样(以及为什么)?

    文档说值视图不被视为类似集合 https docs python org 3 library stdtypes html dictionary view objects 但有时它们是 gt gt gt d 1 1 gt gt gt d va
  • Python 和 Numpy 是 nan 和 set

    我在使用 Python 的 Numpy set 和 NaN 非数字 时遇到了不可预测的行为 gt gt gt set np float64 nan np float64 nan set nan nan gt gt gt set np flo
  • 以下代码使用 std::set “合法”吗?

    我有这个代码 set
  • 如何使用 python 有效地找到两个大文件的交集?

    我有两个大文件 它们的内容如下所示 134430513125296589151963957125296589 该文件包含未排序的 id 列表 某些 id 可能会在单个文件中出现多次 现在我想找到路口两个文件的一部分 这就是两个文件中都出现的
  • Z3 python对待x**2与x*x不同?

    看来Z3 Python接口不喜欢 运算符 它可以处理x x但不能处理x 2 如下例所示 gt gt gt x y x y Reals x y gt gt gt z3 prove Implies x 6 0 x 2 36 0 failed t
  • z3 中的列表串联

    有没有办法在 z3 中连接两个列表 类似于 ML 中的 运算符 我正在考虑自己定义它 但我不认为 z3 支持递归函数定义 即 define fun concat List l1 List l2 List ite isNil l1 l2 co
  • Z3 的简化

    declare datatypes SE BROKEN ON OFF declare const s SE declare const a Int simplify or s ON s OFF s BROKEN simplify and g
  • 如何判断枚举属性是否已设置? C#

    我有一个具有枚举属性的类 如下所示 public class Foo public Color ColorType get set public enum Color Red Green 现在这个类可以像这样初始化 var foo new
  • 对相当大的整数的大集合的操作的快速实现

    描述 我实现了以下类 LabSetInt64 参见下面的代码 这里的目标是尽可能快地操作大量大整数 最多 10M 的值 我的主要要求集中在 至关重要 尽快获取集合的大小 基数 重要 能够非常快速地迭代一组集合 所以 从下面的实现开始 我还有
  • 从 R 中的向量中选择所有可能的元组

    我正在尝试用 R 编写一个程序 当给定一个向量时 将返回所有可能的tuples http en wikipedia org wiki Tuples该向量中的元素 例如 元组 c a b c c a b c 出租车 c a c c b c c

随机推荐

  • Postgres递归查询在遍历parent_id时更新字段的值

    这是表 user id parent id lft 1 0 2 1 0 3 1 0 4 2 0 下面是一个查询 从节点 1 开始执行 CTE 遍历 user id 1 的所有子节点 直到到达叶子节点 并将遍历的子节点 lft 字段的值更新为
  • 页面加载动画

    我想在页面加载时显示加载动画 并在加载完成后明显隐藏它 我正在使用 Masterpages 在 ASP NET 中工作 只是想知道有一种使用 JQuery 执行此操作的简单方法吗 任何指示将不胜感激 Thanks 只需将带有 gif 动画的
  • 如何针对 firebase 验证身份验证令牌?

    我的意思不是使用 firebase 进行自定义身份验证 我需要的与在应用程序服务器中生成令牌并允许在 firebase 中访问的自定义身份验证略有不同 实际上 例如 我正在尝试使用电子邮件和密码在 firebase 中进行身份验证 并且通过
  • Django 1.7 google oauth2 令牌验证失败

    我正在尝试完成验证 Google 令牌的过程 以便在 Django 应用程序中访问用户的日历 尽管我遵循了网上找到的一些指示 但我的回调函数仍然收到 400 错误代码响应 错误请求 views py coding utf 8 import
  • 通过嵌入插入的组件的 Angular 2+ 调用函数(ng-content)

    我有一个模态窗口组件 并且我正在通过嵌入插入模态内容组件
  • PrimeFaces 2,如何将ajax与h:selectOneBooleanCheckbox一起使用?

    我有一个 JSF PrimeFaces 2 x UI 带有一个复选框 h selectOneBooleanCheckbox 其值会影响其他小部件 就像是 X checkbox1 V combobox1 X checkbox2 当 check
  • AWS Glue DPU 配置

    我看到 DPU 由 4 个 vCPU 和 16 GB 内存组成 是否可以更改 vCPU 内存的设置 以便我不会用完 DPU 或超出 DPU 限制 我认为一个开发端点最多有 5 个 DPU 一个帐户最多有 2 个 DEV 端点 Regards
  • 在 HTTP/2 中使用图像精灵有意义吗?

    JS 和 CSS 文件的捆绑在 HTTP 2 中不需要 https stackoverflow com questions 30861591 why bundle optimizations are no longer a concern
  • 将时间字符串转换为日期格式 iOS

    我有一个字符串 21 57 我想在 NSDate 中以相同的 HH mm 格式保存它 我尝试使用以下方法转换它 NSDateFormatter dateFormatter NSDateFormatter alloc init dateFor
  • log4j2 双美元 $$ 符号在配置中的含义

    我正在阅读Log4j2的配置部分 http logging apache org log4j 2 x manual configuration html http logging apache org log4j 2 x manual co
  • 根据另一列过滤一列中的数据值,然后将值插入到同一个 SQL 表中的不同列中

    这是我试图使用 SSIS 和条件分割转换来解决的一个难题 我有一个 csv 文件 其中一行中包含每个唯一用户的属性数据 另一列中包含每个属性的值 IE Attribute Attribute Type ID 0000000001 Birth
  • 在不使用数组控制器的情况下,Ember 模型中如何实现排序?

    每个谷歌结果都是关于 ArrayController 排序的 需要一个排序机制而不使用ArrayController 有一个模型 其中有排序参数 就像说 sortOrder 作为模型中的属性之一 这将来自后端 将使用 each 渲染此模型
  • 如何删除www. ASP.NET MVC 中的前缀

    如何删除 www 来自传入的请求 我需要设置 301 重定向还是只需重写路径 不管怎样 最好的方法是什么 Thanks 我相信使用 IIS 的 URL 重写模块来做到这一点会更合适 如果您有权访问 IIS 的管理工具 则可以在站点设置的 I
  • 如何在MATLAB中为随机数生成器设置统一种子?

    我正在编写代码并使用 MATLAB 中的现有函数 如果这些函数使用随机数生成器怎么办 有没有办法可以修复这些函数的种子而无需更改它们的代码 MATLAB 中有执行此操作的命令吗 通常代码会使用 Matlab 的内置随机数生成器 您可以使用以
  • Sublime2 和 SublimeREPL

    使用 Windows 7 Python 3 2 和 Sublime Text 2 我完成了安装 SublimeREPL 的所有说明 当我转到Tools gt SublimeREPL gt Python gt Python我收到错误 Wind
  • 使用 jest.mock 传递超出范围的变量[重复]

    这个问题在这里已经有答案了 我有一个用于模拟的模拟对象react native const MyMock MockA methodA jest genMockFn MockB ObjectB methodA jest genMockFn m
  • 拍摄/选择图片并将其显示在 ImageView 中而不先保存(使用 MvvmCross)

    我想从库中选择一张图片或用相机拍照并将结果显示到视图 ImageView 但根据一些帖子 包括this one https stackoverflow com questions 13475896 need an example of ta
  • iReport - 组织列输出?

    I am working on a profit and loss report that should look like this And my data table looks like this 对于此损益表 我有查询 1 它填充当
  • webRTC 设置信令服务器

    当系统连接在局域网中时 如何为webRTC设置信令服务器 是否强制要求我们必须使用 STUN 和 TURN 服务器进行信令 要使 WebRTC 在 LAN 上运行 您需要在该 LAN 中拥有一个信令服务器 信令服务器是任何 Web 服务器
  • Z3中的parthood定义

    我试图在 Z3 中定义集合对 使用数组定义 之间的部分关系 在下面的代码中称为 C 我写了 3 个断言来定义自反性 传递性和反对称性 但 Z3 返回 未知 我不明白为什么 define sort Set Array Int Bool dec