私はZ3 .Net APIを使用しています。私はすべての満足のいくモデルを作成したいという単純なコードを持っています。コードは次のようにされています満足できるモデルをすべて作成する、Z3 .Net API
Model resultModel = pSolver.Model;
Console.WriteLine("x = {0}, y = {1}",
resultModel.Evaluate(pX),
resultModel.Evaluate(pY));
しかし、例えば、いくつかのモデルがあります:私はこのコードを使用するすべてのモデルを列挙したいとき
Solver solver = ctx.MkSolver();
Expr x = ctx.MkConst("x", ctx.MkBoolSort());
Expr y = ctx.MkConst("y", ctx.MkBoolSort());
BoolExpr constraint1 = ctx.MkBoolConst("Constraint1");
solver.AssertAndTrack(ctx.MkOr((BoolExpr)x, (BoolExpr)y), constraint1);
問題はコードでその後でありますif(X = true)then(Y = Y)。
X = true, Y = true
X = true, Y = false
は私にこれらの答えを与えることができますか、私はこれらの答えを得るための内部コーディングを使用する必要がありますAPIの機能があります:このような状況のために私は次のようにInfactは二つのモデルがあることを示したいと思います。