public ISolverStatement MakeNegation(ISolverStatement innerStatement) { //Variables ISolverStatement finalStatement = null; Term term = ((Z3Statement)innerStatement).Term; // finalStatement = new Z3Statement(_context.MkNot(term)); return finalStatement; }
public ISolverStatement MakeOr(ISolverStatement leftStatement, ISolverStatement rightStatement) { //Variables ISolverStatement finalStatement = null; List<Term> terms = new List<Term>(); terms.Add(((Z3Statement)leftStatement).Term); terms.Add(((Z3Statement)rightStatement).Term); // finalStatement = MakeOr(terms); return finalStatement; }
public ISolverStatement MakeLowerOrEqual(ISolverStatement leftStatement, ISolverStatement rightStatement) { //Variables ISolverStatement finalStatement = null; Term leftTerm = ((Z3Statement)leftStatement).Term; Term rightTerm = ((Z3Statement)rightStatement).Term; // finalStatement = new Z3Statement(_context.MkLe(leftTerm, rightTerm)); return finalStatement; }
public ISolverStatement MakeImplies(string leftVarID, ISolverStatement rightStatement) { //Variables ISolverStatement finalStatement = null; Term leftTerm = _variables[leftVarID].Term; Term rightTerm = ((Z3Statement)rightStatement).Term; // finalStatement = new Z3Statement(_context.MkImplies(leftTerm, rightTerm)); return finalStatement; }
public ISolverStatement MakeExcludes(ISolverStatement leftStatement, ISolverStatement rightStatement) { //Variables ISolverStatement finalStatement = null; Term leftTerm = ((Z3Statement)leftStatement).Term; Term rightTerm = ((Z3Statement)rightStatement).Term; // finalStatement = new Z3Statement(_context.MkNot(_context.MkAnd(leftTerm, rightTerm))); return finalStatement; }
public ISolverStatement MakeEquivalence(string leftVarID, ISolverStatement rightStatement) { //Variables ISolverStatement finalStatement = null; Term leftTerm = _variables[leftVarID].Term; Term rightTerm = ((Z3Statement)rightStatement).Term; // Z3Statement substatement1 = new Z3Statement(_context.MkImplies(leftTerm, rightTerm)); Z3Statement substatement2 = new Z3Statement(_context.MkImplies(rightTerm, leftTerm)); finalStatement = new Z3Statement(_context.MkAnd(substatement1.Term, substatement2.Term)); return finalStatement; }
public ISolverStatement MakeAdd(ISolverStatement[] innerStatements) { //Variables ISolverStatement finalStatement = null; List<Term> terms = new List<Term>(); foreach (ISolverStatement innerStatement in innerStatements) { terms.Add(((Z3Statement)innerStatement).Term); } // finalStatement = new Z3Statement(_context.MkAdd(terms.ToArray())); return finalStatement; }