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");
        }
示例#4
0
        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' });
 }