小编use*_*932的帖子

带Craig插值的Z3(iz3)

我正在尝试使用C API生成Craig插值,但结果不正确.但是,当我通过Z3_write_interpolation_problem将相同的问题转储到文件并调用iZ3时,我得到了预期的插值.

我附上代码以便能够重现相同的结果.我正在使用z3 4.1


#include<stdio.h>
#include<stdlib.h
#include<assert.h>
#include<stdarg.h>
#include<memory.h>
#include<setjmp.h>
#include<iz3.h>

Z3_ast mk_var(Z3_context ctx, const char * name, Z3_sort ty) 
{
   Z3_symbol   s  = Z3_mk_string_symbol(ctx, name);
   return Z3_mk_const(ctx, s, ty);
}

Z3_ast mk_int_var(Z3_context ctx, const char * name) 
{
   Z3_sort ty = Z3_mk_int_sort(ctx);
   return mk_var(ctx, name, ty); 
}

void interpolation_1(){
// Create context
Z3_config  cfg = Z3_mk_config();
Z3_context ctx = Z3_mk_interpolation_context(cfg);        

// Build formulae
Z3_ast x0,x1,x2;
x0 = mk_int_var(ctx, "x0");
x1 = mk_int_var(ctx, "x1");
x2 = mk_int_var(ctx, "x2");
Z3_ast zero …
Run Code Online (Sandbox Code Playgroud)

c theorem-proving smt z3

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

标签 统计

c ×1

smt ×1

theorem-proving ×1

z3 ×1