public override WS1SFormula ToWS1S(CharSetSolver solver) { if (WS1S == null) { WS1S = new WS1SNot(phi.ToWS1S(solver)); } return(WS1S); }
public override WS1SFormula ToWS1S(CharSetSolver solver) { if (WS1S == null) { WS1S = new WS1SNot(new WS1SExists(variable, new WS1SAnd(new WS1SSingleton(variable), new WS1SNot(phi.ToWS1S(solver))))); } return(WS1S); }
public override WS1SFormula ToWS1S(CharSetSolver solver) { if (WS1S == null) WS1S = new WS1SNot(new WS1SExists(variable, new WS1SAnd(new WS1SSingleton(variable), new WS1SNot(phi.ToWS1S(solver))))); return WS1S; }
public override WS1SFormula ToWS1S(CharSetSolver solver) { if (WS1S == null) WS1S = new WS1SNot(phi.ToWS1S(solver)); return WS1S; }
public void WS1SNot() { var solver = new CharSetSolver(BitWidth.BV64); //new solver using ASCII encoding List<char> alph = new List<char> { 'a', 'b' }; HashSet<char> al = new HashSet<char>(alph); WS1SFormula f1 = new WS1SUnaryPred("X", solver.MkCharConstraint(false, 'a')); WS1SFormula f2 = new WS1SSingleton("X"); WS1SFormula f = new WS1SAnd(f1, f2); WS1SFormula phi = new WS1SNot(new WS1SExists("X", f)); var dfa = phi.getDFA(al, solver); var test = solver.Convert(@"^b*$"); Assert.IsTrue(dfa.IsEquivalentWith(test, solver)); string file = "../../../MSOZ3Test/DotFiles/nota"; solver.SaveAsDot(dfa, "aut", file); //extension .dot is added automatically when missing }