checking nfa equivalence with bisimulations up to
play

Checking NFA Equivalence with Bisimulations up to Congruence - PowerPoint PPT Presentation

Checking NFA Equivalence with Bisimulations up to Congruence Filippo Bonchi and Damien Pous CNRS, LIP, ENS Lyon POPL, Roma, 25.1.2o13 Language equivalence of finite automata Useful for model checking: check that a program refines its


  1. Checking NFA Equivalence with Bisimulations up to Congruence Filippo Bonchi and Damien Pous CNRS, LIP, ENS Lyon POPL, Roma, 25.1.2o13

  2. Language equivalence of finite automata ◮ Useful for model checking: ◮ check that a program refines its specification ◮ compute a sequence A i of automata until A i ∼ A i +1 (cf. abstract regular model checking) ◮ Useful in proof assistants: ◮ decide the equational theory of Kleene algebra ( R ∪ S ) ⋆ = R ⋆ ; ( S ; R ⋆ ) ⋆ (cf. the ATBR and RelationAlgebra Coq libraries) ◮ This work: a new algorithm Filippo Bonchi & Damien Pous 2/26

  3. Outline Deterministic Automata Non-Deterministic Automata Comparison with other algorithms Filippo Bonchi & Damien Pous 3/26

  4. � � Checking language equivalence Deterministic case, first algorithm: a � z a � y x a a � v u a Filippo Bonchi & Damien Pous 4/26

  5. � � Checking language equivalence Deterministic case, first algorithm: a � z a � y x a a � v u a Filippo Bonchi & Damien Pous 4/26

  6. � � Checking language equivalence Deterministic case, first algorithm: a � z a � y x a a � v u a Filippo Bonchi & Damien Pous 4/26

  7. � � Checking language equivalence Deterministic case, first algorithm: a � z a � y x a a � v u a Filippo Bonchi & Damien Pous 4/26

  8. � � Checking language equivalence Deterministic case, first algorithm: a � z a � y x a a � v u a Filippo Bonchi & Damien Pous 4/26

  9. � � Checking language equivalence Deterministic case, first algorithm: a � z a � y x a a � v u a Filippo Bonchi & Damien Pous 4/26

  10. Checking language equivalence Deterministic case, naive algorithm, correctness: ◮ A relation R is a bisimulation if x R y entails ◮ o ( x ) = o ( y ); ◮ for all a , t a ( x ) R t a ( y ). Filippo Bonchi & Damien Pous 5/26

  11. Checking language equivalence Deterministic case, naive algorithm, correctness: ◮ A relation R is a bisimulation if x R y entails ◮ o ( x ) = o ( y ); ◮ for all a , t a ( x ) R t a ( y ). ◮ Theorem: L ( x ) = L ( y ) iff there exists a bisimulation R with x R y Filippo Bonchi & Damien Pous 5/26

  12. Checking language equivalence Deterministic case, naive algorithm, correctness: ◮ A relation R is a bisimulation if x R y entails ◮ o ( x ) = o ( y ); ◮ for all a , t a ( x ) R t a ( y ). ◮ Theorem: L ( x ) = L ( y ) iff there exists a bisimulation R with x R y The previous algorithm attempts to construct a bisimulation Filippo Bonchi & Damien Pous 5/26

  13. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · Filippo Bonchi & Damien Pous 6/26

  14. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 1 pairs Filippo Bonchi & Damien Pous 6/26

  15. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 2 pairs Filippo Bonchi & Damien Pous 6/26

  16. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 3 pairs Filippo Bonchi & Damien Pous 6/26

  17. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 4 pairs Filippo Bonchi & Damien Pous 6/26

  18. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 5 pairs Filippo Bonchi & Damien Pous 6/26

  19. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 6 pairs Filippo Bonchi & Damien Pous 6/26

  20. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 7 pairs Filippo Bonchi & Damien Pous 6/26

  21. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 8 pairs Filippo Bonchi & Damien Pous 6/26

  22. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 9 pairs Filippo Bonchi & Damien Pous 6/26

  23. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 10 pairs Filippo Bonchi & Damien Pous 6/26

  24. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 11 pairs Filippo Bonchi & Damien Pous 6/26

  25. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 12 pairs Filippo Bonchi & Damien Pous 6/26

  26. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 13 pairs Filippo Bonchi & Damien Pous 6/26

  27. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 14 pairs Filippo Bonchi & Damien Pous 6/26

  28. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 15 pairs Filippo Bonchi & Damien Pous 6/26

  29. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 16 pairs Filippo Bonchi & Damien Pous 6/26

  30. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 17 pairs Filippo Bonchi & Damien Pous 6/26

  31. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 18 pairs Filippo Bonchi & Damien Pous 6/26

  32. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 19 pairs Filippo Bonchi & Damien Pous 6/26

  33. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 20 pairs Filippo Bonchi & Damien Pous 6/26

  34. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 21 pairs Filippo Bonchi & Damien Pous 6/26

  35. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 21 pairs Filippo Bonchi & Damien Pous 6/26

  36. � � Checking language equivalence Deterministic case, naive algorithm: quadratic complexity � · � · � · � · · � · � · � · � · · 21 pairs Filippo Bonchi & Damien Pous 6/26

  37. � � Checking language equivalence One can stop much earlier � · � · � · � · · � · � · � · � · · 21 pairs Filippo Bonchi & Damien Pous 7/26

  38. � � Checking language equivalence One can stop much earlier � · � · � · � · · � · � · � · � · · 21 20 pairs Filippo Bonchi & Damien Pous 7/26

  39. � � Checking language equivalence One can stop much earlier � · � · � · � · · � · � · � · � · · 21 19 pairs Filippo Bonchi & Damien Pous 7/26

  40. � � Checking language equivalence One can stop much earlier � · � · � · � · · � · � · � · � · · 21 18 pairs Filippo Bonchi & Damien Pous 7/26

  41. � � Checking language equivalence One can stop much earlier � · � · � · � · · � · � · � · � · · 21 17 pairs Filippo Bonchi & Damien Pous 7/26

  42. � � Checking language equivalence One can stop much earlier � · � · � · � · · � · � · � · � · · 21 16 pairs Filippo Bonchi & Damien Pous 7/26

  43. � � Checking language equivalence One can stop much earlier � · � · � · � · · � · � · � · � · · 21 15 pairs Filippo Bonchi & Damien Pous 7/26

  44. � � Checking language equivalence One can stop much earlier � · � · � · � · · � · � · � · � · · 21 14 pairs Filippo Bonchi & Damien Pous 7/26

Recommend


More recommend