public CPDLLogConnPred(CPDLPred lhs, CPDLPred rhs, PDLLogicalOperator original) { this.lhs = lhs; this.rhs = rhs; this.original = original; }
public CPDLNegationPred(CPDLPred original) { this.original = original; }
public CPDLSecondOrderQuantifierPred(string variableName, CPDLPred originalFormula) { Debug.Assert(variableName != null); Debug.Assert(originalFormula != null); this.variableName = variableName; this.originalFormula = originalFormula; }
private static void GenerateConstraints(CPDLPred choicePred, HashSet<char> alphabet, VariableCache.ConstraintMode constraintMode, Context z3Context, Solver z3Solver) { VariableCache variableGenerator = VariableCache.Create(constraintMode); choicePred.ToSMTConstraints(z3Context, z3Solver, alphabet.Count, variableGenerator); variableGenerator.GenerateAdditionalConstraints(z3Context, z3Solver); }
private static IEnumerable<PDLPred> Concretize(CPDLPred choicePred, HashSet<char> alphabet, VariableCache.ConstraintMode constraintMode) { Context z3Context = new Context(); Solver z3Solver = z3Context.MkSolver(); GenerateConstraints(choicePred, alphabet, constraintMode, z3Context, z3Solver); List<char> alphabetList = new List<char>(alphabet); IEnumerable<string> choiceVariables = choicePred.GetChoiceVariables(); while (z3Solver.Check() == Status.SATISFIABLE) { yield return choicePred.InterpretModel(alphabetList, z3Context, z3Solver.Model); ExcludeLastModel(choiceVariables, z3Context, z3Solver); } }
public CPDLPredSet(string FOVar, CPDLPred pred) { this.FOVar = FOVar; this.pred = pred; }