public void Test4() // second and second-last position are same, (length = 3) { PDLPred phi = new PDLPosEq(new PDLSuccessor(new PDLFirst()), new PDLPredecessor(new PDLLast())); PrintDFA(phi, "Test4", new List <char> { 'a', 'b' }); }
public void Test3() // first pos = last pos, length = 1 { PDLPred phi = new PDLPosEq(new PDLFirst(), new PDLLast()); PrintDFA(phi, "Test3", new List <char> { 'a', 'b' }); }
public void FirstLastEq() { List <char> alph = new List <char> { 'a', 'b' }; HashSet <char> al = new HashSet <char>(alph); PDLPred phi = new PDLPosEq(new PDLFirst(), new PDLLast()); StringBuilder sb = new StringBuilder(); List <Pair <int, Pair <PDLPred, long> > > pairs = SynthTimer(phi, al, sb); Output(sb, "FirstLastEq"); }
public void FirstLastEq() { var solver = new CharSetSolver(BitWidth.BV64); List <char> alph = new List <char> { 'a', 'b' }; HashSet <char> al = new HashSet <char>(alph); PDLPred phi = new PDLPosEq(new PDLFirst(), new PDLLast()); var dfa = phi.GetDFA(al, solver); var test = solver.Convert(@"^(a|b){1}$"); Console.WriteLine(phi.ToMSO(new FreshGen()).ToWS1S(solver).ToString()); Assert.IsTrue(dfa.IsEquivalentWith(test, solver)); //string file = "../../../TestPDL/DotFiles/FirstLastEq"; //solver.SaveAsDot(dfa, "aut", file); }
public void FirstLastEq() { var solver = new CharSetSolver(BitWidth.BV64); List<char> alph = new List<char> { 'a', 'b' }; HashSet<char> al = new HashSet<char>(alph); PDLPred phi = new PDLPosEq(new PDLFirst(), new PDLLast()); var dfa = phi.GetDFA(al, solver); var test = solver.Convert(@"^(a|b){1}$"); Console.WriteLine(phi.ToMSO(new FreshGen()).ToWS1S(solver).ToString()); Assert.IsTrue(dfa.IsEquivalentWith(test, solver)); //string file = "../../../TestPDL/DotFiles/FirstLastEq"; //solver.SaveAsDot(dfa, "aut", file); }
public void Test4() // second and second-last position are same, (length = 3) { PDLPred phi = new PDLPosEq(new PDLSuccessor(new PDLFirst()), new PDLPredecessor(new PDLLast())); PrintDFA(phi, "Test4", new List<char> { 'a', 'b' }); }
public void Test3() // first pos = last pos, length = 1 { PDLPred phi = new PDLPosEq(new PDLFirst(), new PDLLast()); PrintDFA(phi, "Test3", new List<char> { 'a', 'b' }); }