From a3968c50a32f8f4afb80c303bbbc9d805e9d9baa Mon Sep 17 00:00:00 2001 From: phawaderamchandra Date: Thu, 12 Oct 2023 11:45:24 +0530 Subject: [PATCH] class 20,21,22,23,24 summary --- class_20_03102023/summary.txt | 16 + class_21_05102023/Z3_slides.pdf | Bin 0 -> 237631 bytes class_21_05102023/demorgan.cpp | 38 + class_21_05102023/example.cpp | 1421 +++++++++++++++++++++++++++++ class_21_05102023/expr_vector.cpp | 47 + class_21_05102023/getmodel.cpp | 45 + class_22_09102923/summary.txt | 14 + class_23_10102923/summary.txt | 10 + class_24_12102023/summary.txt | 10 + 9 files changed, 1601 insertions(+) create mode 100644 class_20_03102023/summary.txt create mode 100644 class_21_05102023/Z3_slides.pdf create mode 100644 class_21_05102023/demorgan.cpp create mode 100644 class_21_05102023/example.cpp create mode 100644 class_21_05102023/expr_vector.cpp create mode 100644 class_21_05102023/getmodel.cpp create mode 100644 class_22_09102923/summary.txt create mode 100644 class_23_10102923/summary.txt create mode 100644 class_24_12102023/summary.txt diff --git a/class_20_03102023/summary.txt b/class_20_03102023/summary.txt new file mode 100644 index 0000000..efd9faf --- /dev/null +++ b/class_20_03102023/summary.txt @@ -0,0 +1,16 @@ +Resolution +Examples +Soundness of resolution rule. + +Res*(F) + +Proposition 1: +If \emptyset \in Res*(F) then F is unsatisfiable. +Proof : (by contradiction and using soundness of resolution rule) + +Proposition 2: +If F is unsatisfiable then \emptyset \in Res*(F) +Proof : (by induction on #prop_variables appearing in F +Base case : when F has only one variable. + + diff --git a/class_21_05102023/Z3_slides.pdf b/class_21_05102023/Z3_slides.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8ce09c2f5a4ca323cd80c3798627fb11b00e0435 GIT binary patch literal 237631 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 +#include +#include +#include"z3++.h" + +using namespace z3; + + +/** + De Morgan's Duality Law: {e not(x and y) <-> (not x) or ( not y) } +*/ + + +int main(){ + +context c; +expr x = c.bool_const("x"); +expr y = c.bool_const("y"); +expr conjecture = !(x && y) == (!x || !y); + +//create a solver +solver s(c); + +//assert the negation of conjecture +s.add(!conjecture); + +std::cout << s << "\n"; +std::cout << s.to_smt2() << "\n"; + +//check if the result if unsat +switch (s.check()) { +case unsat: std::cout << "demorgan is valid\n"; break; +case sat: std::cout << "demorgan is not valid\n"; break; +case unknown: std::cout <<"unknown\n"; break; +} +} //end of function + + diff --git a/class_21_05102023/example.cpp b/class_21_05102023/example.cpp new file mode 100644 index 0000000..6f92c00 --- /dev/null +++ b/class_21_05102023/example.cpp @@ -0,0 +1,1421 @@ + +/*++ +Copyright (c) 2015 Microsoft Corporation + +--*/ + +#include +#include +#include +#include"z3++.h" + +using namespace z3; + + + + +/** + Demonstration of how Z3 can be used to prove validity of + De Morgan's Duality Law: {e not(x and y) <-> (not x) or ( not y) } +*/ +void demorgan() { + std::cout << "de-Morgan example\n"; + + context c; + + expr x = c.bool_const("x"); + expr y = c.bool_const("y"); + expr conjecture = (!(x && y)) == (!x || !y); + + solver s(c); + // adding the negation of the conjecture as a constraint. + s.add(!conjecture); + std::cout << s << "\n"; + std::cout << s.to_smt2() << "\n"; + switch (s.check()) { + case unsat: std::cout << "de-Morgan is valid\n"; break; + case sat: std::cout << "de-Morgan is not valid\n"; break; + case unknown: std::cout << "unknown\n"; break; + } +} + +/** + \brief Find a model for x >= 1 and y < x + 3. +*/ +void find_model_example1() { + std::cout << "find_model_example1\n"; + context c; + expr x = c.int_const("x"); + expr y = c.int_const("y"); + solver s(c); + + s.add(x >= 1); + s.add(y < x + 3); + std::cout << s.check() << "\n"; + + model m = s.get_model(); + std::cout << m << "\n"; + // traversing the model + for (unsigned i = 0; i < m.size(); i++) { + func_decl v = m[i]; + // this problem contains only constants + assert(v.arity() == 0); + std::cout << v.name() << " = " << m.get_const_interp(v) << "\n"; + } + // we can evaluate expressions in the model. + std::cout << "x + y + 1 = " << m.eval(x + y + 1) << "\n"; +} + + +/** + \brief Prove x = y implies g(x) = g(y), and + disprove x = y implies g(g(x)) = g(y). + + This function demonstrates how to create uninterpreted types and + functions. +*/ +void prove_example1() { + std::cout << "prove_example1\n"; + + context c; + expr x = c.int_const("x"); + expr y = c.int_const("y"); + sort I = c.int_sort(); + func_decl g = function("g", I, I); + + solver s(c); + expr conjecture1 = implies(x == y, g(x) == g(y)); + std::cout << "conjecture 1\n" << conjecture1 << "\n"; + s.add(!conjecture1); + if (s.check() == unsat) + std::cout << "proved" << "\n"; + else + std::cout << "failed to prove" << "\n"; + + s.reset(); // remove all assertions from solver s + + expr conjecture2 = implies(x == y, g(g(x)) == g(y)); + std::cout << "conjecture 2\n" << conjecture2 << "\n"; + s.add(!conjecture2); + if (s.check() == unsat) { + std::cout << "proved" << "\n"; + } + else { + std::cout << "failed to prove" << "\n"; + model m = s.get_model(); + std::cout << "counterexample:\n" << m << "\n"; + std::cout << "g(g(x)) = " << m.eval(g(g(x))) << "\n"; + std::cout << "g(y) = " << m.eval(g(y)) << "\n"; + } +} + +/** + \brief Prove not(g(g(x) - g(y)) = g(z)), x + z <= y <= x implies z < 0 . + Then, show that z < -1 is not implied. + + This example demonstrates how to combine uninterpreted functions and arithmetic. +*/ +void prove_example2() { + std::cout << "prove_example1\n"; + context c; + expr x = c.int_const("x"); + expr y = c.int_const("y"); + expr z = c.int_const("z"); + sort I = c.int_sort(); + func_decl g = function("g", I, I); + + expr conjecture1 = implies(g(g(x) - g(y)) != g(z) && x + z <= y && y <= x, + z < 0); + + solver s(c); + s.add(!conjecture1); + std::cout << "conjecture 1:\n" << conjecture1 << "\n"; + if (s.check() == unsat) + std::cout << "proved" << "\n"; + else + std::cout << "failed to prove" << "\n"; + + expr conjecture2 = implies(g(g(x) - g(y)) != g(z) && x + z <= y && y <= x, + z < -1); + s.reset(); + s.add(!conjecture2); + std::cout << "conjecture 2:\n" << conjecture2 << "\n"; + + if (s.check() == unsat) { + std::cout << "proved" << "\n"; + } + else { + std::cout << "failed to prove" << "\n"; + std::cout << "counterexample:\n" << s.get_model() << "\n"; + } +} + +/** + \brief Nonlinear arithmetic example 1 +*/ +void nonlinear_example1() { + std::cout << "nonlinear example 1\n"; + config cfg; + cfg.set("auto_config", true); + context c(cfg); + + expr x = c.real_const("x"); + expr y = c.real_const("y"); + expr z = c.real_const("z"); + + solver s(c); + + s.add(x*x + y*y == 1); // x^2 + y^2 == 1 + s.add(x*x*x + z*z*z < c.real_val("1/2")); // x^3 + z^3 < 1/2 + s.add(z != 0); + std::cout << s.check() << "\n"; + model m = s.get_model(); + std::cout << m << "\n"; + set_param("pp.decimal", true); // set decimal notation + std::cout << "model in decimal notation\n"; + std::cout << m << "\n"; + set_param("pp.decimal-precision", 50); // increase number of decimal places to 50. + std::cout << "model using 50 decimal places\n"; + std::cout << m << "\n"; + set_param("pp.decimal", false); // disable decimal notation +} + +/** + \brief Simple function that tries to prove the given conjecture using the following steps: + 1- create a solver + 2- assert the negation of the conjecture + 3- checks if the result is unsat. +*/ +void prove(expr conjecture) { + context & c = conjecture.ctx(); + solver s(c); + s.add(!conjecture); + std::cout << "conjecture:\n" << conjecture << "\n"; + if (s.check() == unsat) { + std::cout << "proved" << "\n"; + } + else { + std::cout << "failed to prove" << "\n"; + std::cout << "counterexample:\n" << s.get_model() << "\n"; + } +} + +/** + \brief Simple bit-vector example. This example disproves that x - 10 <= 0 IFF x <= 10 for (32-bit) machine integers +*/ +void bitvector_example1() { + std::cout << "bitvector example 1\n"; + context c; + expr x = c.bv_const("x", 32); + + // using signed <= + prove((x - 10 <= 0) == (x <= 10)); + + // using unsigned <= + prove(ule(x - 10, 0) == ule(x, 10)); + + expr y = c.bv_const("y", 32); + prove(implies(concat(x, y) == concat(y, x), x == y)); +} + +/** + \brief Find x and y such that: x ^ y - 103 == x * y +*/ +void bitvector_example2() { + std::cout << "bitvector example 2\n"; + context c; + expr x = c.bv_const("x", 32); + expr y = c.bv_const("y", 32); + solver s(c); + // In C++, the operator == has higher precedence than ^. + s.add((x ^ y) - 103 == x * y); + std::cout << s << "\n"; + std::cout << s.check() << "\n"; + std::cout << s.get_model() << "\n"; +} + +/** + \brief Mixing C and C++ APIs. +*/ +void capi_example() { + std::cout << "capi example\n"; + context c; + expr x = c.bv_const("x", 32); + expr y = c.bv_const("y", 32); + // Invoking a C API function, and wrapping the result using an expr object. + expr r = to_expr(c, Z3_mk_bvsrem(c, x, y)); + std::cout << "r: " << r << "\n"; +} + +/** + \brief Demonstrate how to evaluate expressions in a model. +*/ +void eval_example1() { + std::cout << "eval example 1\n"; + context c; + expr x = c.int_const("x"); + expr y = c.int_const("y"); + solver s(c); + + /* assert x < y */ + s.add(x < y); + /* assert x > 2 */ + s.add(x > 2); + + std::cout << s.check() << "\n"; + + model m = s.get_model(); + std::cout << "Model:\n" << m << "\n"; + std::cout << "x+y = " << m.eval(x+y) << "\n"; +} + +/** + \brief Several contexts can be used simultaneously. +*/ +void two_contexts_example1() { + std::cout << "two contexts example 1\n"; + context c1, c2; + + expr x = c1.int_const("x"); + expr n = x + 1; + // We cannot mix expressions from different contexts, but we can copy + // an expression from one context to another. + // The following statement copies the expression n from c1 to c2. + expr n1 = to_expr(c2, Z3_translate(c1, n, c2)); + std::cout << n1 << "\n"; +} + +/** + \brief Demonstrates how to catch API usage errors. + */ +void error_example() { + std::cout << "error example\n"; + + context c; + expr x = c.bool_const("x"); + + // Error using the C API can be detected using Z3_get_error_code. + // The next call fails because x is a constant. + //Z3_ast arg = Z3_get_app_arg(c, x, 0); + if (Z3_get_error_code(c) != Z3_OK) { + std::cout << "last call failed.\n"; + } + + // The C++ layer converts API usage errors into exceptions. + try { + // The next call fails because x is a Boolean. + expr n = x + 1; + } + catch (exception & ex) { + std::cout << "failed: " << ex << "\n"; + } + + // The functions to_expr, to_sort and to_func_decl also convert C API errors into exceptions. + try { + expr arg = to_expr(c, Z3_get_app_arg(c, x, 0)); + } + catch (exception & ex) { + std::cout << "failed: " << ex << "\n"; + } +} + +/** + \brief Demonstrate different ways of creating rational numbers: decimal and fractional representations. +*/ +void numeral_example() { + std::cout << "numeral example\n"; + context c; + + expr n1 = c.real_val("1/2"); + expr n2 = c.real_val("0.5"); + expr n3 = c.real_val(1, 2); + std::cout << n1 << " " << n2 << " " << n3 << "\n"; + prove(n1 == n2 && n1 == n3); + + n1 = c.real_val("-1/3"); + n2 = c.real_val("-0.3333333333333333333333333333333333"); + std::cout << n1 << " " << n2 << "\n"; + prove(n1 != n2); +} + +/** + \brief Test ite-term (if-then-else terms). +*/ +void ite_example() { + std::cout << "if-then-else example\n"; + context c; + + expr f = c.bool_val(false); + expr one = c.int_val(1); + expr zero = c.int_val(0); + expr ite = to_expr(c, Z3_mk_ite(c, f, one, zero)); + + std::cout << "term: " << ite << "\n"; +} + +void ite_example2() { + std::cout << "if-then-else example2\n"; + context c; + expr b = c.bool_const("b"); + expr x = c.int_const("x"); + expr y = c.int_const("y"); + std::cout << (ite(b, x, y) > 0) << "\n"; +} + +/** + \brief Small example using quantifiers. +*/ +void quantifier_example() { + std::cout << "quantifier example\n"; + context c; + + expr x = c.int_const("x"); + expr y = c.int_const("y"); + sort I = c.int_sort(); + func_decl f = function("f", I, I, I); + + solver s(c); + + // making sure model based quantifier instantiation is enabled. + params p(c); + p.set("mbqi", true); + s.set(p); + + s.add(forall(x, y, f(x, y) >= 0)); + expr a = c.int_const("a"); + s.add(f(a, a) < a); + std::cout << s << "\n"; + std::cout << s.check() << "\n"; + std::cout << s.get_model() << "\n"; + s.add(a < 0); + std::cout << s.check() << "\n"; +} + +/** + \brief Unsat core example +*/ +void unsat_core_example1() { + std::cout << "unsat core example1\n"; + context c; + // We use answer literals to track assertions. + // An answer literal is essentially a fresh Boolean marker + // that is used to track an assertion. + // For example, if we want to track assertion F, we + // create a fresh Boolean variable p and assert (p => F) + // Then we provide p as an argument for the check method. + expr p1 = c.bool_const("p1"); + expr p2 = c.bool_const("p2"); + expr p3 = c.bool_const("p3"); + expr x = c.int_const("x"); + expr y = c.int_const("y"); + solver s(c); + s.add(implies(p1, x > 10)); + s.add(implies(p1, y > x)); + s.add(implies(p2, y < 5)); + s.add(implies(p3, y > 0)); + expr assumptions[3] = { p1, p2, p3 }; + std::cout << s.check(3, assumptions) << "\n"; + expr_vector core = s.unsat_core(); + std::cout << core << "\n"; + std::cout << "size: " << core.size() << "\n"; + for (unsigned i = 0; i < core.size(); i++) { + std::cout << core[i] << "\n"; + } + // Trying again without p2 + expr assumptions2[2] = { p1, p3 }; + std::cout << s.check(2, assumptions2) << "\n"; +} + +/** + \brief Unsat core example 2 +*/ +void unsat_core_example2() { + std::cout << "unsat core example 2\n"; + context c; + // The answer literal mechanism, described in the previous example, + // tracks assertions. An assertion can be a complicated + // formula containing containing the conjunction of many subformulas. + expr p1 = c.bool_const("p1"); + expr x = c.int_const("x"); + expr y = c.int_const("y"); + solver s(c); + expr F = x > 10 && y > x && y < 5 && y > 0; + s.add(implies(p1, F)); + expr assumptions[1] = { p1 }; + std::cout << s.check(1, assumptions) << "\n"; + expr_vector core = s.unsat_core(); + std::cout << core << "\n"; + std::cout << "size: " << core.size() << "\n"; + for (unsigned i = 0; i < core.size(); i++) { + std::cout << core[i] << "\n"; + } + // The core is not very informative, since p1 is tracking the formula F + // that is a conjunction of subformulas. + // Now, we use the following piece of code to break this conjunction + // into individual subformulas. First, we flat the conjunctions by + // using the method simplify. + std::vector qs; // auxiliary vector used to store new answer literals. + assert(F.is_app()); // I'm assuming F is an application. + if (F.decl().decl_kind() == Z3_OP_AND) { + // F is a conjunction + std::cout << "F num. args (before simplify): " << F.num_args() << "\n"; + F = F.simplify(); + std::cout << "F num. args (after simplify): " << F.num_args() << "\n"; + for (unsigned i = 0; i < F.num_args(); i++) { + std::cout << "Creating answer literal q" << i << " for " << F.arg(i) << "\n"; + std::stringstream qname; qname << "q" << i; + expr qi = c.bool_const(qname.str().c_str()); // create a new answer literal + s.add(implies(qi, F.arg(i))); + qs.push_back(qi); + } + } + // The solver s already contains p1 => F + // To disable F, we add (not p1) as an additional assumption + qs.push_back(!p1); + std::cout << s.check(static_cast(qs.size()), &qs[0]) << "\n"; + expr_vector core2 = s.unsat_core(); + std::cout << core2 << "\n"; + std::cout << "size: " << core2.size() << "\n"; + for (unsigned i = 0; i < core2.size(); i++) { + std::cout << core2[i] << "\n"; + } +} + +/** + \brief Unsat core example 3 +*/ +void unsat_core_example3() { + // Extract unsat core using tracked assertions + std::cout << "unsat core example 3\n"; + context c; + expr x = c.int_const("x"); + expr y = c.int_const("y"); + solver s(c); + + // enabling unsat core tracking + params p(c); + p.set("unsat_core", true); + s.set(p); + + // The following assertion will not be tracked. + s.add(x > 0); + + // The following assertion will be tracked using Boolean variable p1. + // The C++ wrapper will automatically create the Boolean variable. + s.add(y > 0, "p1"); + + // Asserting other tracked assertions. + s.add(x < 10, "p2"); + s.add(y < 0, "p3"); + + std::cout << s.check() << "\n"; + std::cout << s.unsat_core() << "\n"; +} + +void tactic_example1() { + /* + Z3 implements a methodology for orchestrating reasoning engines where "big" symbolic + reasoning steps are represented as functions known as tactics, and tactics are composed + using combinators known as tacticals. Tactics process sets of formulas called Goals. + + When a tactic is applied to some goal G, four different outcomes are possible. The tactic succeeds + in showing G to be satisfiable (i.e., feasible); succeeds in showing G to be unsatisfiable (i.e., infeasible); + produces a sequence of subgoals; or fails. When reducing a goal G to a sequence of subgoals G1, ..., Gn, + we face the problem of model conversion. A model converter construct a model for G using a model for some subgoal Gi. + + In this example, we create a goal g consisting of three formulas, and a tactic t composed of two built-in tactics: + simplify and solve-eqs. The tactic simplify apply transformations equivalent to the ones found in the command simplify. + The tactic solver-eqs eliminate variables using Gaussian elimination. Actually, solve-eqs is not restricted + only to linear arithmetic. It can also eliminate arbitrary variables. + Then, sequential composition combinator & applies simplify to the input goal and solve-eqs to each subgoal produced by simplify. + In this example, only one subgoal is produced. + */ + std::cout << "tactic example 1\n"; + context c; + expr x = c.real_const("x"); + expr y = c.real_const("y"); + goal g(c); + g.add(x > 0); + g.add(y > 0); + g.add(x == y + 2); + std::cout << g << "\n"; + tactic t1(c, "simplify"); + tactic t2(c, "solve-eqs"); + tactic t = t1 & t2; + apply_result r = t(g); + std::cout << r << "\n"; +} + +void tactic_example2() { + /* + In Z3, we say a clause is any constraint of the form (f_1 || ... || f_n). + The tactic split-clause will select a clause in the input goal, and split it n subgoals. + One for each subformula f_i. + */ + std::cout << "tactic example 2\n"; + context c; + expr x = c.real_const("x"); + expr y = c.real_const("y"); + goal g(c); + g.add(x < 0 || x > 0); + g.add(x == y + 1); + g.add(y < 0); + tactic t(c, "split-clause"); + apply_result r = t(g); + for (unsigned i = 0; i < r.size(); i++) { + std::cout << "subgoal " << i << "\n" << r[i] << "\n"; + } +} + +void tactic_example3() { + /* + - The choice combinator t | s first applies t to the given goal, if it fails then returns the result of s applied to the given goal. + - repeat(t) Keep applying the given tactic until no subgoal is modified by it. + - repeat(t, n) Keep applying the given tactic until no subgoal is modified by it, or the number of iterations is greater than n. + - try_for(t, ms) Apply tactic t to the input goal, if it does not return in ms milliseconds, it fails. + - with(t, params) Apply the given tactic using the given parameters. + */ + std::cout << "tactic example 3\n"; + context c; + expr x = c.real_const("x"); + expr y = c.real_const("y"); + expr z = c.real_const("z"); + goal g(c); + g.add(x == 0 || x == 1); + g.add(y == 0 || y == 1); + g.add(z == 0 || z == 1); + g.add(x + y + z > 2); + // split all clauses + tactic split_all = repeat(tactic(c, "split-clause") | tactic(c, "skip")); + std::cout << split_all(g) << "\n"; + tactic split_at_most_2 = repeat(tactic(c, "split-clause") | tactic(c, "skip"), 1); + std::cout << split_at_most_2(g) << "\n"; + // In the tactic split_solver, the tactic solve-eqs discharges all but one goal. + // Note that, this tactic generates one goal: the empty goal which is trivially satisfiable (i.e., feasible) + tactic split_solve = split_all & tactic(c, "solve-eqs"); + std::cout << split_solve(g) << "\n"; +} + +void tactic_example4() { + /* + A tactic can be converted into a solver object using the method mk_solver(). + If the tactic produces the empty goal, then the associated solver returns sat. + If the tactic produces a single goal containing False, then the solver returns unsat. + Otherwise, it returns unknown. + + In this example, the tactic t implements a basic bit-vector solver using equation solving, + bit-blasting, and a propositional SAT solver. + We use the combinator `with` to configure our little solver. + We also include the tactic `aig` which tries to compress Boolean formulas using And-Inverted Graphs. + */ + std::cout << "tactic example 4\n"; + context c; + params p(c); + p.set("mul2concat", true); + tactic t = + with(tactic(c, "simplify"), p) & + tactic(c, "solve-eqs") & + tactic(c, "bit-blast") & + tactic(c, "aig") & + tactic(c, "sat"); + solver s = t.mk_solver(); + expr x = c.bv_const("x", 16); + expr y = c.bv_const("y", 16); + s.add(x*32 + y == 13); + // In C++, the operator < has higher precedence than &. + s.add((x & y) < 10); + s.add(y > -100); + std::cout << s.check() << "\n"; + model m = s.get_model(); + std::cout << m << "\n"; + std::cout << "x*32 + y = " << m.eval(x*32 + y) << "\n"; + std::cout << "x & y = " << m.eval(x & y) << "\n"; +} + +void tactic_example5() { + /* + The tactic smt wraps the main solver in Z3 as a tactic. + */ + std::cout << "tactic example 5\n"; + context c; + expr x = c.int_const("x"); + expr y = c.int_const("y"); + solver s = tactic(c, "smt").mk_solver(); + s.add(x > y + 1); + std::cout << s.check() << "\n"; + std::cout << s.get_model() << "\n"; +} + +void tactic_example6() { + /* + In this example, we show how to implement a solver for integer arithmetic using SAT. + The solver is complete only for problems where every variable has a lower and upper bound. + */ + std::cout << "tactic example 6\n"; + context c; + params p(c); + p.set("arith_lhs", true); + p.set("som", true); // sum-of-monomials normal form + solver s = + (with(tactic(c, "simplify"), p) & + tactic(c, "normalize-bounds") & + tactic(c, "lia2pb") & + tactic(c, "pb2bv") & + tactic(c, "bit-blast") & + tactic(c, "sat")).mk_solver(); + expr x = c.int_const("x"); + expr y = c.int_const("y"); + expr z = c.int_const("z"); + s.add(x > 0 && x < 10); + s.add(y > 0 && y < 10); + s.add(z > 0 && z < 10); + s.add(3*y + 2*x == z); + std::cout << s.check() << "\n"; + std::cout << s.get_model() << "\n"; + s.reset(); + s.add(3*y + 2*x == z); + std::cout << s.check() << "\n"; +} + +void tactic_example7() { + /* + Tactics can be combined with solvers. + For example, we can apply a tactic to a goal, produced a set of subgoals, + then select one of the subgoals and solve it using a solver. + This example demonstrates how to do that, and + how to use model converters to convert a model for a subgoal into a model for the original goal. + */ + std::cout << "tactic example 7\n"; + context c; + tactic t = + tactic(c, "simplify") & + tactic(c, "normalize-bounds") & + tactic(c, "solve-eqs"); + expr x = c.int_const("x"); + expr y = c.int_const("y"); + expr z = c.int_const("z"); + goal g(c); + g.add(x > 10); + g.add(y == x + 3); + g.add(z > y); + apply_result r = t(g); + // r contains only one subgoal + std::cout << r << "\n"; + solver s(c); + goal subgoal = r[0]; + for (unsigned i = 0; i < subgoal.size(); i++) { + s.add(subgoal[i]); + } + std::cout << s.check() << "\n"; + model m = s.get_model(); + std::cout << "model for subgoal:\n" << m << "\n"; + std::cout << "model for original goal:\n" << subgoal.convert_model(m) << "\n"; +} + +void tactic_example8() { + /* + Probes (aka formula measures) are evaluated over goals. + Boolean expressions over them can be built using relational operators and Boolean connectives. + The tactic fail_if(cond) fails if the given goal does not satisfy the condition cond. + Many numeric and Boolean measures are available in Z3. + + In this example, we build a simple tactic using fail_if. + It also shows that a probe can be applied directly to a goal. + */ + std::cout << "tactic example 8\n"; + context c; + + expr x = c.int_const("x"); + expr y = c.int_const("y"); + expr z = c.int_const("z"); + + goal g(c); + g.add(x + y + z > 0); + + probe p(c, "num-consts"); + std::cout << "num-consts: " << p(g) << "\n"; + + tactic t = fail_if(p > 2); + try { + t(g); + } + catch (exception&) { + std::cout << "tactic failed...\n"; + } + std::cout << "trying again...\n"; + g.reset(); + g.add(x + y > 0); + std::cout << t(g) << "\n"; +} + +void tactic_example9() { + /* + The combinator (tactical) cond(p, t1, t2) is a shorthand for: + + (fail_if(p) & t1) | t2 + + The combinator when(p, t) is a shorthand for: + + cond(p, t, tactic(c, "skip")) + + The tactic skip just returns the input goal. + This example demonstrates how to use the cond combinator. + */ + std::cout << "tactic example 9\n"; + context c; + + expr x = c.int_const("x"); + expr y = c.int_const("y"); + expr z = c.int_const("z"); + + goal g(c); + g.add(x*x - y*y >= 0); + + probe p(c, "num-consts"); + tactic t = cond(p > 2, tactic(c, "simplify"), tactic(c, "factor")); + std::cout << t(g) << "\n"; + + g.reset(); + g.add(x + x + y + z >= 0); + g.add(x*x - y*y >= 0); + std::cout << t(g) << "\n"; +} + +void tactic_qe() { + std::cout << "tactic example using quantifier elimination\n"; + context c; + + // Create a solver using "qe" and "smt" tactics + solver s = + (tactic(c, "qe") & + tactic(c, "smt")).mk_solver(); + + expr a = c.int_const("a"); + expr b = c.int_const("b"); + expr x = c.int_const("x"); + expr f = implies(x <= a, x < b); + + expr qf = forall(x, f); + + std::cout << qf << "\n"; + + s.add(qf); + std::cout << s.check() << "\n"; + std::cout << s.get_model() << "\n"; +} + +void visit(std::vector& visited, expr const & e) { + if (visited.size() <= e.id()) { + visited.resize(e.id()+1, false); + } + if (visited[e.id()]) { + return; + } + visited[e.id()] = true; + + if (e.is_app()) { + unsigned num = e.num_args(); + for (unsigned i = 0; i < num; i++) { + visit(visited, e.arg(i)); + } + // do something + // Example: print the visited expression + func_decl f = e.decl(); + std::cout << "application of " << f.name() << ": " << e << "\n"; + } + else if (e.is_quantifier()) { + visit(visited, e.body()); + // do something + } + else { + assert(e.is_var()); + // do something + } +} + +void tst_visit() { + std::cout << "visit example\n"; + context c; + + // only one of the occurrences of x*x is visited + // because they are the same subterms + expr x = c.int_const("x"); + expr y = c.int_const("y"); + expr z = c.int_const("z"); + expr f = x*x + x*x - y*y >= 0; + std::vector visited; + visit(visited, f); +} + +void tst_numeral() { + std::cout << "numeral example\n"; + context c; + expr x = c.real_val("1/3"); + double d = 0; + if (!x.is_numeral(d)) { + std::cout << x << " is not recognized as a numeral\n"; + return; + } + std::cout << x << " is " << d << "\n"; +} + +void incremental_example1() { + std::cout << "incremental example1\n"; + context c; + expr x = c.int_const("x"); + solver s(c); + s.add(x > 0); + std::cout << s.check() << "\n"; + // We can add more formulas to the solver + s.add(x < 0); + // and, invoke s.check() again... + std::cout << s.check() << "\n"; +} + +void incremental_example2() { + // In this example, we show how push() and pop() can be used + // to remove formulas added to the solver. + std::cout << "incremental example2\n"; + context c; + expr x = c.int_const("x"); + solver s(c); + s.add(x > 0); + std::cout << s.check() << "\n"; + // push() creates a backtracking point (aka a snapshot). + s.push(); + // We can add more formulas to the solver + s.add(x < 0); + // and, invoke s.check() again... + std::cout << s.check() << "\n"; + // pop() will remove all formulas added between this pop() and the matching push() + s.pop(); + // The context is satisfiable again + std::cout << s.check() << "\n"; + // and contains only x > 0 + std::cout << s << "\n"; +} + +void incremental_example3() { + // In this example, we show how to use assumptions to "remove" + // formulas added to a solver. Actually, we disable them. + std::cout << "incremental example3\n"; + context c; + expr x = c.int_const("x"); + solver s(c); + s.add(x > 0); + std::cout << s.check() << "\n"; + // Now, suppose we want to add x < 0 to the solver, but we also want + // to be able to disable it later. + // To do that, we create an auxiliary Boolean variable + expr b = c.bool_const("b"); + // and, assert (b implies x < 0) + s.add(implies(b, x < 0)); + // Now, we check whether s is satisfiable under the assumption "b" is true. + expr_vector a1(c); + a1.push_back(b); + std::cout << s.check(a1) << "\n"; + // To "disable" (x > 0), we may just ask with the assumption "not b" or not provide any assumption. + std::cout << s.check() << "\n"; + expr_vector a2(c); + a2.push_back(!b); + std::cout << s.check(a2) << "\n"; +} + +void enum_sort_example() { + std::cout << "enumeration sort example\n"; + context ctx; + const char * enum_names[] = { "a", "b", "c" }; + func_decl_vector enum_consts(ctx); + func_decl_vector enum_testers(ctx); + sort s = ctx.enumeration_sort("enumT", 3, enum_names, enum_consts, enum_testers); + // enum_consts[0] is a func_decl of arity 0. + // we convert it to an expression using the operator() + expr a = enum_consts[0u](); + expr b = enum_consts[1u](); + expr x = ctx.constant("x", s); + expr test = (x==a) && (x==b); + std::cout << "1: " << test << std::endl; + tactic qe(ctx, "ctx-solver-simplify"); + goal g(ctx); + g.add(test); + expr res(ctx); + apply_result result_of_elimination = qe.apply(g); + goal result_goal = result_of_elimination[0]; + std::cout << "2: " << result_goal.as_expr() << std::endl; +} + +void tuple_example() { + std::cout << "tuple example\n"; + context ctx; + const char * names[] = { "first", "second" }; + sort sorts[2] = { ctx.int_sort(), ctx.bool_sort() }; + func_decl_vector projs(ctx); + func_decl pair = ctx.tuple_sort("pair", 2, names, sorts, projs); + sorts[1] = pair.range(); + func_decl pair2 = ctx.tuple_sort("pair2", 2, names, sorts, projs); + + std::cout << pair2 << "\n"; +} + +void datatype_example() { + std::cout << "datatype example\n"; + context ctx; + constructors cs(ctx); + symbol ilist = ctx.str_symbol("ilist"); + symbol accs[2] = { ctx.str_symbol("hd"), ctx.str_symbol("tl") }; + sort sorts[2] = { ctx.int_sort(), ctx.datatype_sort(ilist) }; + cs.add(ctx.str_symbol("nil"), ctx.str_symbol("is-nil"), 0, nullptr, nullptr); + cs.add(ctx.str_symbol("cons"), ctx.str_symbol("is-cons"), 2, accs, sorts); + sort ls = ctx.datatype(ilist, cs); + std::cout << ls << "\n"; + func_decl nil(ctx), is_nil(ctx); + func_decl_vector nil_acc(ctx); + cs.query(0, nil, is_nil, nil_acc); + func_decl cons(ctx), is_cons(ctx); + func_decl_vector cons_acc(ctx); + cs.query(1, cons, is_cons, cons_acc); + std::cout << nil << " " << is_nil << " " << nil_acc << "\n"; + std::cout << cons << " " << is_cons << " " << cons_acc << "\n"; + + symbol tree = ctx.str_symbol("tree"); + symbol tlist = ctx.str_symbol("tree_list"); + symbol accs1[2] = { ctx.str_symbol("left"), ctx.str_symbol("right") }; + symbol accs2[2] = { ctx.str_symbol("hd"), ctx.str_symbol("tail") }; + sort sorts1[2] = { ctx.datatype_sort(tlist), ctx.datatype_sort(tlist) }; + sort sorts2[2] = { ctx.int_sort(), ctx.datatype_sort(tree) }; + constructors cs1(ctx), cs2(ctx); + cs1.add(ctx.str_symbol("tnil"), ctx.str_symbol("is-tnil"), 0, nullptr, nullptr); + cs1.add(ctx.str_symbol("tnode"), ctx.str_symbol("is-tnode"), 2, accs1, sorts1); + constructor_list cl1(cs1); + cs2.add(ctx.str_symbol("lnil"), ctx.str_symbol("is-lnil"), 0, nullptr, nullptr); + cs2.add(ctx.str_symbol("lcons"), ctx.str_symbol("is-lcons"), 2, accs2, sorts2); + constructor_list cl2(cs2); + symbol names[2] = { tree, tlist }; + constructor_list* cl[2] = { &cl1, &cl2 }; + sort_vector dsorts = ctx.datatypes(2, names, cl); + std::cout << dsorts << "\n"; + cs1.query(0, nil, is_nil, nil_acc); + cs1.query(1, cons, is_cons, cons_acc); + std::cout << nil << " " << is_nil << " " << nil_acc << "\n"; + std::cout << cons << " " << is_cons << " " << cons_acc << "\n"; + + cs2.query(0, nil, is_nil, nil_acc); + cs2.query(1, cons, is_cons, cons_acc); + std::cout << nil << " " << is_nil << " " << nil_acc << "\n"; + std::cout << cons << " " << is_cons << " " << cons_acc << "\n"; + +} + +void expr_vector_example() { + std::cout << "expr_vector example\n"; + context c; + const unsigned N = 10; + + expr_vector x(c); + + for (unsigned i = 0; i < N; i++) { + std::stringstream x_name; + x_name << "x_" << i; + x.push_back(c.int_const(x_name.str().c_str())); + } + + solver s(c); + for (unsigned i = 0; i < N; i++) { + s.add(x[i] >= 1); + } + + std::cout << s << "\n" << "solving...\n" << s.check() << "\n"; + model m = s.get_model(); + std::cout << "solution\n" << m; +} + +void exists_expr_vector_example() { + std::cout << "exists expr_vector example\n"; + context c; + const unsigned N = 10; + + expr_vector xs(c); + expr x(c); + expr b(c); + b = c.bool_val(true); + + for (unsigned i = 0; i < N; i++) { + std::stringstream x_name; + x_name << "x_" << i; + x = c.int_const(x_name.str().c_str()); + xs.push_back(x); + b = b && x >= 0; + } + + expr ex(c); + ex = exists(xs, b); + std::cout << ex << std::endl; +} + +void substitute_example() { + std::cout << "substitute example\n"; + context c; + expr x(c); + x = c.int_const("x"); + expr f(c); + f = (x == 2) || (x == 1); + std::cout << f << std::endl; + + expr two(c), three(c); + two = c.int_val(2); + three = c.int_val(3); + Z3_ast from[] = { two }; + Z3_ast to[] = { three }; + expr new_f(c); + new_f = to_expr(c, Z3_substitute(c, f, 1, from, to)); + + std::cout << new_f << std::endl; +} + +void opt_example() { + context c; + optimize opt(c); + params p(c); + p.set("priority",c.str_symbol("pareto")); + opt.set(p); + expr x = c.int_const("x"); + expr y = c.int_const("y"); + opt.add(10 >= x && x >= 0); + opt.add(10 >= y && y >= 0); + opt.add(x + y <= 11); + optimize::handle h1 = opt.maximize(x); + optimize::handle h2 = opt.maximize(y); + while (true) { + if (sat == opt.check()) { + std::cout << x << ": " << opt.lower(h1) << " " << y << ": " << opt.lower(h2) << "\n"; + } + else { + break; + } + } +} + +/** + * translate from one optimization context to another. + */ +void opt_translate_example() { + context c1, c2; + optimize o1(c1); + expr x = c1.int_const("x"); + expr y = c1.int_const("y"); + o1.add(10 >= x && x >= 0); + o1.add(10 >= y && y >= 0); + o1.add(x + y <= 11); + optimize::handle h1 = o1.maximize(x); + optimize::handle h2 = o1.maximize(y); + (void)h1; + (void)h2; + optimize o2(c2, o1); + expr z = c2.int_const("z"); + expr x2 = c2.int_const("x"); + o2.add(x2 + z == 2); + o2.minimize(z); + std::cout << o2 << "\n"; +} + +void extract_example() { + std::cout << "extract example\n"; + context c; + expr x(c); + x = c.constant("x", c.bv_sort(32)); + expr y = x.extract(21, 10); + std::cout << y << " " << y.hi() << " " << y.lo() << "\n"; +} + +void sudoku_example() { + std::cout << "sudoku example\n"; + + context c; + + // 9x9 matrix of integer variables + expr_vector x(c); + for (unsigned i = 0; i < 9; ++i) + for (unsigned j = 0; j < 9; ++j) { + std::stringstream x_name; + + x_name << "x_" << i << '_' << j; + x.push_back(c.int_const(x_name.str().c_str())); + } + + solver s(c); + + // each cell contains a value in {1, ..., 9} + for (unsigned i = 0; i < 9; ++i) + for (unsigned j = 0; j < 9; ++j) { + s.add(x[i * 9 + j] >= 1 && x[i * 9 + j] <= 9); + } + + // each row contains a digit at most once + for (unsigned i = 0; i < 9; ++i) { + expr_vector t(c); + for (unsigned j = 0; j < 9; ++j) + t.push_back(x[i * 9 + j]); + s.add(distinct(t)); + } + + // each column contains a digit at most once + for (unsigned j = 0; j < 9; ++j) { + expr_vector t(c); + for (unsigned i = 0; i < 9; ++i) + t.push_back(x[i * 9 + j]); + s.add(distinct(t)); + } + + // each 3x3 square contains a digit at most once + for (unsigned i0 = 0; i0 < 3; i0++) { + for (unsigned j0 = 0; j0 < 3; j0++) { + expr_vector t(c); + for (unsigned i = 0; i < 3; i++) + for (unsigned j = 0; j < 3; j++) + t.push_back(x[(i0 * 3 + i) * 9 + j0 * 3 + j]); + s.add(distinct(t)); + } + } + + // sudoku instance, we use '0' for empty cells + int instance[9][9] = {{0,0,0,0,9,4,0,3,0}, + {0,0,0,5,1,0,0,0,7}, + {0,8,9,0,0,0,0,4,0}, + {0,0,0,0,0,0,2,0,8}, + {0,6,0,2,0,1,0,5,0}, + {1,0,2,0,0,0,0,0,0}, + {0,7,0,0,0,0,5,2,0}, + {9,0,0,0,6,5,0,0,0}, + {0,4,0,9,7,0,0,0,0}}; + + for (unsigned i = 0; i < 9; i++) + for (unsigned j = 0; j < 9; j++) + if (instance[i][j] != 0) + s.add(x[i * 9 + j] == instance[i][j]); + + std::cout << s.check() << std::endl; + std::cout << s << std::endl; + + model m = s.get_model(); + for (unsigned i = 0; i < 9; ++i) { + for (unsigned j = 0; j < 9; ++j) + std::cout << m.eval(x[i * 9 + j]); + std::cout << '\n'; + } +} + +void param_descrs_example() { + std::cout << "parameter description example\n"; + context c; + param_descrs p = param_descrs::simplify_param_descrs(c); + std::cout << p << "\n"; + unsigned sz = p.size(); + for (unsigned i = 0; i < sz; ++i) { + symbol nm = p.name(i); + char const* kind = "other"; + Z3_param_kind k = p.kind(nm); + if (k == Z3_PK_UINT) kind = "uint"; + if (k == Z3_PK_BOOL) kind = "bool"; + std::cout << nm << ": " << p.documentation(nm) << " kind: " << kind << "\n"; + } +} + +void consequence_example() { + std::cout << "consequence example\n"; + context c; + expr A = c.bool_const("a"); + expr B = c.bool_const("b"); + expr C = c.bool_const("c"); + solver s(c); + s.add(implies(A, B)); + s.add(implies(B, C)); + expr_vector assumptions(c), vars(c), consequences(c); + assumptions.push_back(!C); + vars.push_back(A); + vars.push_back(B); + vars.push_back(C); + std::cout << s.consequences(assumptions, vars, consequences) << "\n"; + std::cout << consequences << "\n"; +} + +static void parse_example() { + std::cout << "parse example\n"; + context c; + sort_vector sorts(c); + func_decl_vector decls(c); + sort B = c.bool_sort(); + decls.push_back(c.function("a", 0, 0, B)); + expr_vector a = c.parse_string("(assert a)", sorts, decls); + std::cout << a << "\n"; + + // expr b = c.parse_string("(benchmark tst :extrafuns ((x Int) (y Int)) :formula (> x y) :formula (> x 0))"); +} + +static void parse_string() { + std::cout << "parse string\n"; + z3::context c; + z3::solver s(c); + s.from_string("(declare-const x Int)(assert (> x 10))"); + std::cout << s.check() << "\n"; +} + +void mk_model_example() { + context c; + + // construct empty model + model m(c); + + // create constants "a", "b" and get their func_decl + expr a = c.int_const("a"); + expr b = c.int_const("b"); + func_decl a_decl = a.decl(); + func_decl b_decl = b.decl(); + + // create numerals to be used in model + expr zero_numeral = c.int_val(0); + expr one_numeral = c.int_val(1); + + // add assignment to model + m.add_const_interp(a_decl, zero_numeral); + m.add_const_interp(b_decl, one_numeral); + + // evaluate a + b < 2 in the model + std::cout << m.eval(a + b < 2)<< std::endl; +} + +void recfun_example() { + std::cout << "recfun example\n"; + context c; + expr x = c.int_const("x"); + expr y = c.int_const("y"); + expr b = c.bool_const("b"); + sort I = c.int_sort(); + sort B = c.bool_sort(); + func_decl f = recfun("f", I, B, I); + expr_vector args(c); + args.push_back(x); args.push_back(b); + c.recdef(f, args, ite(b, x, f(x + 1, !b))); + prove(f(x,c.bool_val(false)) > x); +} + +static void string_values() { + context c; + std::cout << "string_values\n"; + expr s = c.string_val("abc\n\n\0\0", 7); + std::cout << s << "\n"; + std::string s1 = s.get_string(); + std::cout << s1 << "\n"; + std::u32string buffer = s.get_u32string(); + for (unsigned ch : buffer) + std::cout << "char: " << ch << "\n"; +} + +expr MakeStringConstant(context* context, std::string value) { + return context->string_val(value.c_str()); +} + +expr MakeStringFunction(context* c, std::string s) { + sort sort = c->string_sort(); + symbol name = c->str_symbol(s.c_str()); + return c->constant(name, sort); +} + +static void string_issue_2298() { + context c; + solver s(c); + s.push(); + expr func1 = MakeStringFunction(&c, "func1"); + expr func2 = MakeStringFunction(&c, "func2"); + + expr abc = MakeStringConstant(&c, "abc"); + expr cde = MakeStringConstant(&c, "cde"); + + expr length = func1.length(); + expr five = c.int_val(5); + + s.add(func2 == abc || func1 == cde); + s.add(func2 == abc || func2 == cde); + s.add(length <= five); + + s.check(); + s.pop(); +} + +void iterate_args() { + std::cout << "iterate arguments\n"; + context c; + expr x = c.int_const("x"); + expr y = c.int_const("y"); + sort I = c.int_sort(); + func_decl g = function("g", I, I, I); + expr e = g(x, y); + std::cout << "expression " << e << "\n"; + for (expr arg : e) + std::cout << "arg " << arg << "\n"; + +} + +int main() { + + try { +// demorgan(); std::cout << "\n"; + find_model_example1(); std::cout << "\n"; +/* prove_example1(); std::cout << "\n"; + prove_example2(); std::cout << "\n"; + nonlinear_example1(); std::cout << "\n"; + bitvector_example1(); std::cout << "\n"; + bitvector_example2(); std::cout << "\n"; + capi_example(); std::cout << "\n"; + eval_example1(); std::cout << "\n"; + two_contexts_example1(); std::cout << "\n"; + error_example(); std::cout << "\n"; + numeral_example(); std::cout << "\n"; + ite_example(); std::cout << "\n"; + ite_example2(); std::cout << "\n"; + quantifier_example(); std::cout << "\n"; + unsat_core_example1(); std::cout << "\n"; + unsat_core_example2(); std::cout << "\n"; + unsat_core_example3(); std::cout << "\n"; + tactic_example1(); std::cout << "\n"; + tactic_example2(); std::cout << "\n"; + tactic_example3(); std::cout << "\n"; + tactic_example4(); std::cout << "\n"; + tactic_example5(); std::cout << "\n"; + tactic_example6(); std::cout << "\n"; + tactic_example7(); std::cout << "\n"; + tactic_example8(); std::cout << "\n"; + tactic_example9(); std::cout << "\n"; + tactic_qe(); std::cout << "\n"; + tst_visit(); std::cout << "\n"; + tst_numeral(); std::cout << "\n"; + incremental_example1(); std::cout << "\n"; + incremental_example2(); std::cout << "\n"; + incremental_example3(); std::cout << "\n"; + enum_sort_example(); std::cout << "\n"; + tuple_example(); std::cout << "\n"; + datatype_example(); std::cout << "\n"; + expr_vector_example(); std::cout << "\n"; + exists_expr_vector_example(); std::cout << "\n"; + substitute_example(); std::cout << "\n"; + opt_example(); std::cout << "\n"; + opt_translate_example(); std::cout << "\n"; + extract_example(); std::cout << "\n"; + param_descrs_example(); std::cout << "\n"; + sudoku_example(); std::cout << "\n"; + consequence_example(); std::cout << "\n"; + parse_example(); std::cout << "\n"; + parse_string(); std::cout << "\n"; + mk_model_example(); std::cout << "\n"; + recfun_example(); std::cout << "\n"; + string_values(); std::cout << "\n"; + string_issue_2298(); std::cout << "\n"; + iterate_args(); std::cout << "\n"; +*/ + std::cout << "done\n"; + } + catch (exception & ex) { + std::cout << "unexpected error: " << ex << "\n"; + } + Z3_finalize_memory(); + return 0; +} diff --git a/class_21_05102023/expr_vector.cpp b/class_21_05102023/expr_vector.cpp new file mode 100644 index 0000000..7a28382 --- /dev/null +++ b/class_21_05102023/expr_vector.cpp @@ -0,0 +1,47 @@ +/*++ +Copyright (c) 2015 Microsoft Corporation +--*/ + +#include +#include +#include +#include"z3++.h" + +using namespace z3; + + + +void expr_vector_example() { + std::cout << "expr_vector example\n"; + context c; + const unsigned N = 10; + + expr_vector x(c); + + for (unsigned i = 0; i < N; i++) { + std::stringstream x_name; + x_name << "x_" << i; + x.push_back(c.int_const(x_name.str().c_str())); + } + + solver s(c); + for (unsigned i = 0; i < N; i++) { + s.add(x[i] >= 1); + } + + std::cout << s << "\n" << "solving...\n" << s.check() << "\n"; + model m = s.get_model(); + std::cout << "solution\n" << m; +} + +int main() { + + try { + expr_vector_example(); std::cout << "\n"; + std::cout << "done\n"; + } + catch (exception & ex) { + std::cout << "unexpected error: " << ex << "\n"; + } + return 0; +} diff --git a/class_21_05102023/getmodel.cpp b/class_21_05102023/getmodel.cpp new file mode 100644 index 0000000..8d244de --- /dev/null +++ b/class_21_05102023/getmodel.cpp @@ -0,0 +1,45 @@ +#include +#include +#include +#include"z3++.h" + +using namespace z3; + + +/** +find values of expressions that satisfy the following ineaualities +x >= 1 +y < x +3 +*/ + +int main(){ +context c; +expr x = c.int_const("x"); +expr y = c.int_const("y"); +//create a solver +solver s(c); +//adding the constraints +s.add(x >=1); +s.add(y < x+3); + +std::cout << s.check() << "\n\n"; + +model m = s.get_model(); +std::cout << m << "\n"; + +//traversing the model +std::cout << "traversing the model" << "\n"; +for (unsigned i =0; i < m.size(); i++){ + func_decl v = m[i]; + assert(v.arity() ==0); + std::cout << v.name()<<"="< \universe + +Extenstion of S to give meaning to terms, atomic formulas and wffs. +