示例#1
0
        public bool GenerateWExpr(out WExpr program)
        {
            program = null;
            WExpr candidate;

            while (z3Solver.Check() == Status.SATISFIABLE)
            {
                ProgramBuilder builder = new ProgramBuilder(builderFilterModes);
                candidate = choiceTree.BuildProgram(z3Context, z3Solver.Model, builder);
                ExcludeLastModel(choiceVariables, z3Context, z3Solver);
                if (builder.KeepProgram() && filter.KeepProgram(candidate))
                {
                    program = candidate;
                    break;
                }
            }

            return(program != null);
        }