小编Leo*_*ura的帖子

代码合同+代码分析

我想在我的代码库中开始使用代码契约.

我已经使用了代码分析,启用了所有规则,并且目标是零警告.

但是,在使用时,Contract.Requires(parameter != null)我收到代码分析的警告,即CA1062:

CA1062:Microsoft.Design:在外部可见的方法"富",用它之前验证参数"参数".

这很不幸,我不想禁用该规则,因为我发现它很有用.但我也不想压制它的每一个错误发生.

有解决方案吗?

.net c# code-contracts visual-studio visual-studio-2012

20
推荐指数
2
解决办法
2103
查看次数

在omp关键部分中抛出C++异常

我想知道在OMP关键部分中抛出C++异常是否安全.

#pragma omp critical (my_critical_section)
{
    ...
    throw my_exception("failed")
    ...       
}
Run Code Online (Sandbox Code Playgroud)

g ++不抱怨.我很困惑,因为它抱怨return关键部分内的陈述.它返回错误:invalid exit from OpenMP structured block我写的时候

#pragma omp critical (my_critical_section)
{
    ...
    return;
    ...       
}
Run Code Online (Sandbox Code Playgroud)

那么,为什么离开临界区有一个例外是可以的,但是留下一个返回语句是不行的

c++ openmp

16
推荐指数
1
解决办法
3601
查看次数

z3python:将字符串转换为表达式

鉴于这x,y,z = Ints('x y z') 和字符串一样s='x + y + 2*z = 5',是否有快速方法将s转换为z3表达式?如果它不可能那么似乎我必须做很多字符串操作来进行转换.

python z3

8
推荐指数
1
解决办法
7895
查看次数

寻找SMT Z3用例(如DbC)和Z3开源替代品的实际例子?

我有兴趣和寻找SMT Z3使用的实际例子(如DbC)以及该工具的代码和开源替代品.所以,事实上,我对类似的Z3正式求解工具很感兴趣,但是:

  • 它必须是开源的
  • 提供低级(API)和高级(文本脚本)交互
  • 支持SMT-LIB
  • 适合(可用)在工具中/用于编写/用于Java,python,ruby,Vala等语言,而不是 Haskell
  • 具有基于它的稳定(可在实践中使用)工具,如合同设计(DbC),静态类型验证等.

根据SMT-LIB主页(详见bit.ly软件包),2010年SMT解决方案列表为:"Alt-Ergo,Barcelogic,Beaver,Boolector,CVC3,DPT,MathSAT,OpenSMT,SatEEn,Spear,STP,SWORD, UCLID,veriT,Yices,Z3."

请提供有关在实践中使用其中任何一个的任何反馈(代码示例是最好的)?

最后,任何有关它与GHC可能性进行比较的信息都是有用的,但仅限于存在实施示例(不是语言"特征")的情况.

有关Z3的更快速信息,请访问http://bit.ly/bundles/ewiger/1

.net constraint-programming sat-solvers z3

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

(Z3Py)声明功能

对于某些给定的结果/ x对,我想在简单的"result = x*t + c"公式中找到c和t系数:

from z3 import *

x=Int('x')
c=Int('c')
t=Int('t')

s=Solver()

f = Function('f', IntSort(), IntSort())

# x*t+c = result
# x, result = [(1,55), (12,34), (13,300)]

s.add (f(x)==(x*t+c))
s.add (f(1)==55, f(12)==34, f(13)==300)

t=s.check()
if t==sat:
    print s.model()
else:
   print t
Run Code Online (Sandbox Code Playgroud)

......但结果显然是错误的.我可能需要找出如何映射函数参数.

我该如何正确定义功能?

python z3

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

z3 const 声明

在 Z3 Python 中,1)x = Const("x",IntSort()) 与 2)之间的区别是什么 x = Int("x") ?is_const 对两者都返回 true,并且它们都是 ArithRef。我认为 1) 适合定义一个常量,例如,x 是 3.14 和 2) 是创建一个变量。

是否有正确的方法来创建像 x = 3.14 这样的 const 变量(除了生成公式 x == 3.14)

python z3

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

Z3可以检查包含递归函数的公式的可满足性吗?

我正在尝试一些涉及递归函数的Z3教程的例子.我试过以下例子.

  1. 斐波纳契(第8.3节)
  2. IsNat(第8.3节)
  3. 归纳法(第10.5节)

Z3超过了上述所有示例.但是,该教程似乎意味着只有Inductive是非终结的.

Z3可以检查包含递归函数的公式的可满足性,还是无法处理任何归纳事实?

smt z3

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

哪些统计数据表明Z3有效运行?

SMTLib2指令(get-info all-statistics)显示多个数字,例如

num. conflicts:     4
num. propagations:  0 (binary: 0)
num. qa. inst:      23
Run Code Online (Sandbox Code Playgroud)

为了测试不同的公理化和编码,我想知道这些数字中的哪一个适合宣布一个Z3运行比另一个运行更好/更有效。

从名字中猜测,我想说的是num. qa. inst-数量化实例化的数量-是一个很好的指标(低=更好),但是其他指标呢?

statistics encoding solver smt z3

3
推荐指数
1
解决办法
704
查看次数

如何在 SMT 2.0 中定义返回 4 个参数的最小值的函数

我想在 SMT 2.0 中定义一个函数,返回 4 个整数值中的最小值。

smt z3

0
推荐指数
1
解决办法
2571
查看次数