- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
鉴于以下简化的量词,根据 Boogie 生成的 Z3 选项设置(下面有完整的详细信息),结果我得到“未知”:
(declare-fun F (Int) Bool)
(declare-fun G (Int) Bool)
(assert (forall ((x Int)) (! (and
(F x) (G x))
:pattern ((F x))
)))
(assert (not (forall ((x Int)) (! (and
(G x) (F x))
:pattern ((F x))
))))
(check-sat)
我对(我认为)Z3 将如何处理这个问题的理解是 skolemise the existential(不是 for all),这将产生 F 和 G 的基础实例。鉴于电子图中的这些,我们应该能够实例化另一个量词,并获得不满意。我可以看到 Z3 可能必须进行大小写拆分才能执行此操作,但我希望在删除量词并填充电子图之后进行这种大小写拆分。
相反,第一个量词在上述问题中没有被实例化。我做了一些观察:
如果能理解上述场景,以及为什么(在失败的情况下)这些术语在 skolemisation 后并不总是出现在电子图中,那就太好了。我不确定更改 case_split 选项的一般效果是什么。目前,我认为 Boogie 不允许对其进行更改(并覆盖在命令行上所做的任何选择)。但我觉得电子图应该在所有情况下都能获得信息,这是理想情况。
这是完整的文件(删除大部分选项集似乎对失败案例没有影响,除了 smt.case_split 那个):
(set-option :print-success false)
(set-info :smt-lib-version 2.0)
(set-option :AUTO_CONFIG false)
;(set-option :MODEL.V2 true)
(set-option :smt.PHASE_SELECTION 0)
(set-option :smt.RESTART_STRATEGY 0)
(set-option :smt.RESTART_FACTOR |1.5|)
(set-option :smt.ARITH.RANDOM_INITIAL_VALUE true)
(set-option :smt.DELAY_UNITS true)
(set-option :NNF.SK_HACK true)
(set-option :smt.MBQI false)
(set-option :smt.QI.EAGER_THRESHOLD 100)
(set-option :smt.QI.COST |"(+ weight generation)"|)
(set-option :TYPE_CHECK true)
(set-option :smt.BV.REFLECT true)
(set-option :TIMEOUT 0)
(set-option :smt.QI.PROFILE true)
(set-option :smt.CASE_SPLIT 3)
; done setting options
(declare-fun F (Int) Bool)
(declare-fun G (Int) Bool)
(assert (forall ((x Int)) (! (and
(F x) (G x))
:pattern ((F x))
)))
(assert (not (forall ((x Int)) (! (and
(G x) (F x))
:pattern ((F x))
))))
(check-sat)
最佳答案
这由 https://stackoverflow.com/users/1096362/nikolaj-bjorner 的答案解决对于这个问题: Surprising behaviour when trying to prove a forall
将证明义务转换为析取,然后是子句的相应相关性,解释了为什么 Z3 没有将这两个连词视为潜在的触发因素。
关于z3 - 为什么连词的电子匹配对顺序/案例拆分策略敏感?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28149863/
我这里有一些(遗留)代码,似乎在LD_LIBRARY_PATH上调用setenv(其值在编译时未知,实际上它将从命令中获取)行),现在我必须将其移植到 Windows。我怀疑 setenv 只是出于历
我在 SSIS 包上有一个敏感字符串参数,用于存储远程服务器的密码。 但是,当字符串值包含花括号时,作业代理会在配置该步骤的包参数时抛出错误: Microsoft SQL Server Managem
我们都非常了解 strictfp 的工作原理。 像这样: package com.hk.basicjava.tests.strictfp; import java.util.*; public cla
我正在对我的博客进行简单搜索。我使用亚美尼亚语,当我搜索时,这些字母总是很敏感。这是我的代码的一部分。提前谢谢你。 search_query = get.get('search') query_lis
我正在对我的博客进行简单搜索。我使用亚美尼亚语,当我搜索时,这些字母总是很敏感。这是我的代码的一部分。提前谢谢你。 search_query = get.get('search') query_lis
想象一下这个非常基本的可拖放设置: #dropArea 是可放置的。 #itemBox > .item 是可拖动对象。 由于某种原因,droppable
我有这样的网址: http://quickstart.local/public/category1/product2 并且在 url (category1/product2) 数字是 id ,从数据库
我是一名优秀的程序员,十分优秀!