1542 //new ce1 : STAR(SEQ(ALTS(ALTS(ONE,CHAR(a)),SEQ(ONE,CHAR(b))),ALTS(CHAR(a),ALTS(CHAR(b),CHAR(a))))) |
1548 //new ce1 : STAR(SEQ(ALTS(ALTS(ONE,CHAR(a)),SEQ(ONE,CHAR(b))),ALTS(CHAR(a),ALTS(CHAR(b),CHAR(a))))) |
1543 //new ce2 : ALTS(CHAR(b),SEQ(ALTS(ZERO,ALTS(CHAR(b),CHAR(b))),ALTS(ALTS(CHAR(a),CHAR(b)),SEQ(CHAR(c),ONE)))) |
1549 //new ce2 : ALTS(CHAR(b),SEQ(ALTS(ZERO,ALTS(CHAR(b),CHAR(b))),ALTS(ALTS(CHAR(a),CHAR(b)),SEQ(CHAR(c),ONE)))) |
1544 //new ce3 : SEQ(CHAR(b),ALTS(ALTS(ALTS(ONE,CHAR(a)),SEQ(CHAR(c),ONE)),SEQ(STAR(ZERO),SEQ(ONE,CHAR(b))))) |
1550 //new ce3 : SEQ(CHAR(b),ALTS(ALTS(ALTS(ONE,CHAR(a)),SEQ(CHAR(c),ONE)),SEQ(STAR(ZERO),SEQ(ONE,CHAR(b))))) |
1545 //circular double-nullable STAR(SEQ((STAR("b") | "a" | "b"), ("b" | ONE))) |
1551 //circular double-nullable STAR(SEQ((STAR("b") | "a" | "b"), ("b" | ONE))) |
1546 def counterexample_check() { |
1552 def counterexample_check() { |
1547 val r = STAR(SEQ(ALTS(STAR(CHAR('b')),ALTS(CHAR('b'),CHAR('a'))), |
1553 val r : Rexp = SEQ(ALTS(ONE, |
1548 ALTS(ALTS(CHAR('b'),CHAR('c')),STAR(ZERO))))//SEQ(SEQ(STAR(ALTS(CHAR('a'),CHAR('b'))), |
1554 SEQ(ALTS(CHAR('f'), CHAR('b')), CHAR('g'))), SEQ(CHAR('a'), SEQ(CHAR('d'), CHAR('e'))))//(1+(f +b)·g)·(a·(d·e))//STAR(SEQ(ALTS(STAR(CHAR('b')),ALTS(CHAR('b'),CHAR('a'))), |
|
1555 val acc : Set[Rexp] = Set(SEQ(CHAR('a'), SEQ(CHAR('d'), CHAR('e'))), SEQ(SEQ(CHAR('f'), CHAR('g')), SEQ(CHAR('a'), SEQ(CHAR('d'), CHAR('e')))) ) |
|
1556 val a = internalise(r) |
|
1557 aprint(prune(a, acc)); |
|
1558 //ALTS(ALTS(CHAR('b'),CHAR('c')),STAR(ZERO))))//SEQ(SEQ(STAR(ALTS(CHAR('a'),CHAR('b'))), |
1549 //ALTS(ALTS(CHAR('c'),CHAR('b')),STAR(ONE))),STAR(CHAR('b'))) |
1559 //ALTS(ALTS(CHAR('c'),CHAR('b')),STAR(ONE))),STAR(CHAR('b'))) |
1550 val s = "ab" |
1560 // val s = "ab" |
1551 val bdStrong5 = bdersStrong6(s.toList, internalise(r)) |
1561 // val bdStrong5 = bdersStrong6(s.toList, internalise(r)) |
1552 val bdStrong5Set = breakIntoTerms(erase(bdStrong5)) |
1562 // val bdStrong5Set = breakIntoTerms(erase(bdStrong5)) |
1553 val pdersSet = pderUNIV(r)//.map(r => erase(bsimp(internalise(r))))//.flatMap(r => turnIntoTerms(r))//.map(oneSimp).flatMap(r => breakIntoTerms(r)) |
1563 // val pdersSet = pderUNIV(r)//.map(r => erase(bsimp(internalise(r))))//.flatMap(r => turnIntoTerms(r))//.map(oneSimp).flatMap(r => breakIntoTerms(r)) |
1554 val apdersSet = pdersSet.map(internalise) |
1564 // val apdersSet = pdersSet.map(internalise) |
1555 println("original regex ") |
1565 // println("original regex ") |
1556 rprint(r) |
1566 // rprint(r) |
1557 println("after strong bsimp") |
1567 // println("after strong bsimp") |
1558 aprint(bdStrong5) |
1568 // aprint(bdStrong5) |
1559 println("turned into a set %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ") |
1569 // println("turned into a set %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ") |
1560 rsprint(bdStrong5Set) |
1570 // rsprint(bdStrong5Set) |
1561 println("after pderUNIV") |
1571 // println("after pderUNIV") |
1562 rsprint(pdersSet.toList) |
1572 // rsprint(pdersSet.toList) |
1563 println("pderUNIV distinctBy6") |
1573 // println("pderUNIV distinctBy6") |
1564 //asprint(distinctBy6(apdersSet.toList)) |
1574 // //asprint(distinctBy6(apdersSet.toList)) |
1565 rsprint((pdersSet.toList).flatMap(turnIntoTerms)) |
1575 // rsprint((pdersSet.toList).flatMap(turnIntoTerms)) |
1566 // rsprint(turnIntoTerms(pdersSet.toList(3))) |
1576 // rsprint(turnIntoTerms(pdersSet.toList(3))) |
1567 // println("NO 3 not into terms") |
1577 // println("NO 3 not into terms") |
1568 // rprint((pdersSet.toList())) |
1578 // rprint((pdersSet.toList())) |
1569 // println("after pderUNIV broken") |
1579 // println("after pderUNIV broken") |
1570 // rsprint(pdersSet.flatMap(r => turnIntoTerms(r)).toList) |
1580 // rsprint(pdersSet.flatMap(r => turnIntoTerms(r)).toList) |