MCPcopy Create free account
hub / github.com/Z3Prover/z3 / unsatCoreAndProofExample2

Method unsatCoreAndProofExample2

examples/java/JavaExample.java:2077–2114  ·  view source on GitHub ↗
(Context ctx)

Source from the content-addressed store, hash-verified

2075 /// Extract unsatisfiable core example with AssertAndTrack
2076
2077 public void unsatCoreAndProofExample2(Context ctx)
2078 {
2079 System.out.println("UnsatCoreAndProofExample2");
2080 Log.append("UnsatCoreAndProofExample2");
2081
2082 Solver solver = ctx.mkSolver();
2083
2084 BoolExpr pa = ctx.mkBoolConst("PredA");
2085 BoolExpr pb = ctx.mkBoolConst("PredB");
2086 BoolExpr pc = ctx.mkBoolConst("PredC");
2087 BoolExpr pd = ctx.mkBoolConst("PredD");
2088
2089 BoolExpr f1 = ctx.mkAnd(new BoolExpr[] { pa, pb, pc });
2090 BoolExpr f2 = ctx.mkAnd(new BoolExpr[] { pa, ctx.mkNot(pb), pc });
2091 BoolExpr f3 = ctx.mkOr(ctx.mkNot(pa), ctx.mkNot(pc));
2092 BoolExpr f4 = pd;
2093
2094 BoolExpr p1 = ctx.mkBoolConst("P1");
2095 BoolExpr p2 = ctx.mkBoolConst("P2");
2096 BoolExpr p3 = ctx.mkBoolConst("P3");
2097 BoolExpr p4 = ctx.mkBoolConst("P4");
2098
2099 solver.assertAndTrack(f1, p1);
2100 solver.assertAndTrack(f2, p2);
2101 solver.assertAndTrack(f3, p3);
2102 solver.assertAndTrack(f4, p4);
2103 Status result = solver.check();
2104
2105 if (result == Status.UNSATISFIABLE)
2106 {
2107 System.out.println("unsat");
2108 System.out.println("core: ");
2109 for (Expr c : solver.getUnsatCore())
2110 {
2111 System.out.println(c);
2112 }
2113 }
2114 }
2115
2116 public void finiteDomainExample(Context ctx)
2117 {

Callers 1

mainMethod · 0.95

Calls 9

appendMethod · 0.95
assertAndTrackMethod · 0.95
checkMethod · 0.95
getUnsatCoreMethod · 0.95
mkSolverMethod · 0.80
mkBoolConstMethod · 0.80
mkAndMethod · 0.80
mkNotMethod · 0.80
mkOrMethod · 0.80

Tested by

no test coverage detected