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

checking nfa equivalence with bisimulations up to
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Checking NFA Equivalence with Bisimulations up to Congruence

Filippo Bonchi and Damien Pous CNRS, LIP, ENS Lyon POPL, Roma, 25.1.2o13

slide-2
SLIDE 2

Language equivalence of finite automata

◮ Useful for model checking:

◮ check that a program refines its specification ◮ compute a sequence Ai of automata until Ai ∼ Ai+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

slide-3
SLIDE 3

Outline

Deterministic Automata Non-Deterministic Automata Comparison with other algorithms

Filippo Bonchi & Damien Pous 3/26

slide-4
SLIDE 4

Checking language equivalence

Deterministic case, first algorithm: x

a

y

a

z

a

  • u

a

v

a

  • Filippo Bonchi & Damien Pous

4/26

slide-5
SLIDE 5

Checking language equivalence

Deterministic case, first algorithm: x

a

y

a

z

a

  • u

a

v

a

  • Filippo Bonchi & Damien Pous

4/26

slide-6
SLIDE 6

Checking language equivalence

Deterministic case, first algorithm: x

a

y

a

z

a

  • u

a

v

a

  • Filippo Bonchi & Damien Pous

4/26

slide-7
SLIDE 7

Checking language equivalence

Deterministic case, first algorithm: x

a

y

a

z

a

  • u

a

v

a

  • Filippo Bonchi & Damien Pous

4/26

slide-8
SLIDE 8

Checking language equivalence

Deterministic case, first algorithm: x

a

y

a

z

a

  • u

a

v

a

  • Filippo Bonchi & Damien Pous

4/26

slide-9
SLIDE 9

Checking language equivalence

Deterministic case, first algorithm: x

a

y

a

z

a

  • u

a

v

a

  • Filippo Bonchi & Damien Pous

4/26

slide-10
SLIDE 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, ta(x) R ta(y). Filippo Bonchi & Damien Pous 5/26

slide-11
SLIDE 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, ta(x) R ta(y).

◮ Theorem: L(x) = L(y) iff

there exists a bisimulation R with x R y

Filippo Bonchi & Damien Pous 5/26

slide-12
SLIDE 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, ta(x) R ta(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

slide-13
SLIDE 13

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • Filippo Bonchi & Damien Pous

6/26

slide-14
SLIDE 14

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 1 pairs

Filippo Bonchi & Damien Pous 6/26

slide-15
SLIDE 15

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 2 pairs

Filippo Bonchi & Damien Pous 6/26

slide-16
SLIDE 16

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 3 pairs

Filippo Bonchi & Damien Pous 6/26

slide-17
SLIDE 17

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 4 pairs

Filippo Bonchi & Damien Pous 6/26

slide-18
SLIDE 18

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 5 pairs

Filippo Bonchi & Damien Pous 6/26

slide-19
SLIDE 19

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 6 pairs

Filippo Bonchi & Damien Pous 6/26

slide-20
SLIDE 20

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 7 pairs

Filippo Bonchi & Damien Pous 6/26

slide-21
SLIDE 21

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 8 pairs

Filippo Bonchi & Damien Pous 6/26

slide-22
SLIDE 22

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 9 pairs

Filippo Bonchi & Damien Pous 6/26

slide-23
SLIDE 23

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 10 pairs

Filippo Bonchi & Damien Pous 6/26

slide-24
SLIDE 24

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 11 pairs

Filippo Bonchi & Damien Pous 6/26

slide-25
SLIDE 25

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 12 pairs

Filippo Bonchi & Damien Pous 6/26

slide-26
SLIDE 26

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 13 pairs

Filippo Bonchi & Damien Pous 6/26

slide-27
SLIDE 27

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 14 pairs

Filippo Bonchi & Damien Pous 6/26

slide-28
SLIDE 28

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 15 pairs

Filippo Bonchi & Damien Pous 6/26

slide-29
SLIDE 29

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 16 pairs

Filippo Bonchi & Damien Pous 6/26

slide-30
SLIDE 30

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 17 pairs

Filippo Bonchi & Damien Pous 6/26

slide-31
SLIDE 31

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 18 pairs

Filippo Bonchi & Damien Pous 6/26

slide-32
SLIDE 32

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 19 pairs

Filippo Bonchi & Damien Pous 6/26

slide-33
SLIDE 33

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 20 pairs

Filippo Bonchi & Damien Pous 6/26

slide-34
SLIDE 34

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 21 pairs

Filippo Bonchi & Damien Pous 6/26

slide-35
SLIDE 35

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 21 pairs

Filippo Bonchi & Damien Pous 6/26

slide-36
SLIDE 36

Checking language equivalence

Deterministic case, naive algorithm: quadratic complexity ·

· · · ·

  • ·

· · · ·

  • 21 pairs

Filippo Bonchi & Damien Pous 6/26

slide-37
SLIDE 37

Checking language equivalence

One can stop much earlier ·

· · · ·

  • ·

· · · ·

  • 21 pairs

Filippo Bonchi & Damien Pous 7/26

slide-38
SLIDE 38

Checking language equivalence

One can stop much earlier ·

· · · ·

  • ·

· · · ·

  • 21 20 pairs

Filippo Bonchi & Damien Pous 7/26

slide-39
SLIDE 39

Checking language equivalence

One can stop much earlier ·

· · · ·

  • ·

· · · ·

  • 21 19 pairs

Filippo Bonchi & Damien Pous 7/26

slide-40
SLIDE 40

Checking language equivalence

One can stop much earlier ·

· · · ·

  • ·

· · · ·

  • 21 18 pairs

Filippo Bonchi & Damien Pous 7/26

slide-41
SLIDE 41

Checking language equivalence

One can stop much earlier ·

· · · ·

  • ·

· · · ·

  • 21 17 pairs

Filippo Bonchi & Damien Pous 7/26

slide-42
SLIDE 42

Checking language equivalence

One can stop much earlier ·

· · · ·

  • ·

· · · ·

  • 21 16 pairs

Filippo Bonchi & Damien Pous 7/26

slide-43
SLIDE 43

Checking language equivalence

One can stop much earlier ·

· · · ·

  • ·

· · · ·

  • 21 15 pairs

Filippo Bonchi & Damien Pous 7/26

slide-44
SLIDE 44

Checking language equivalence

One can stop much earlier ·

· · · ·

  • ·

· · · ·

  • 21 14 pairs

Filippo Bonchi & Damien Pous 7/26

slide-45
SLIDE 45

Checking language equivalence

One can stop much earlier ·

· · · ·

  • ·

· · · ·

  • 21 13 pairs

Filippo Bonchi & Damien Pous 7/26

slide-46
SLIDE 46

Checking language equivalence

One can stop much earlier ·

· · · ·

  • ·

· · · ·

  • 21 12 pairs

Filippo Bonchi & Damien Pous 7/26

slide-47
SLIDE 47

Checking language equivalence

One can stop much earlier ·

· · · ·

  • ·

· · · ·

  • 21 11 pairs

Filippo Bonchi & Damien Pous 7/26

slide-48
SLIDE 48

Checking language equivalence

One can stop much earlier ·

· · · ·

  • ·

· · · ·

  • 21 10 pairs

Filippo Bonchi & Damien Pous 7/26

slide-49
SLIDE 49

Checking language equivalence

One can stop much earlier ·

· · · ·

  • ·

· · · ·

  • 21 9 pairs

Filippo Bonchi & Damien Pous 7/26

slide-50
SLIDE 50

Checking language equivalence

One can stop much earlier ·

· · · ·

  • ·

· · · ·

  • [Hopcroft and Karp ’71]

Filippo Bonchi & Damien Pous 7/26

slide-51
SLIDE 51

Checking language equivalence

One can stop much earlier ·

· · · ·

  • ·

· · · ·

  • [Hopcroft and Karp ’71]

Complexity: almost linear

[Tarjan ’75]

Filippo Bonchi & Damien Pous 7/26

slide-52
SLIDE 52

Checking language equivalence

Correctness of HK algorithm, revisited:

◮ Denote by Re the equivalence closure of R ◮ R is a bisimulation up to equivalence if x R y entails

◮ o(x) = o(y); ◮ for all a, ta(x) Re ta(y). Filippo Bonchi & Damien Pous 8/26

slide-53
SLIDE 53

Checking language equivalence

Correctness of HK algorithm, revisited:

◮ Denote by Re the equivalence closure of R ◮ R is a bisimulation up to equivalence if x R y entails

◮ o(x) = o(y); ◮ for all a, ta(x) Re ta(y).

◮ Theorem: L(x) = L(y) iff

there exists a bisimulation up to equivalence R, with x R y

Filippo Bonchi & Damien Pous 8/26

slide-54
SLIDE 54

Checking language equivalence

Correctness of HK algorithm, revisited:

◮ Denote by Re the equivalence closure of R ◮ R is a bisimulation up to equivalence if x R y entails

◮ o(x) = o(y); ◮ for all a, ta(x) Re ta(y).

◮ Theorem: L(x) = L(y) iff

there exists a bisimulation up to equivalence R, with x R y

Ten years before Milner and Park!

Filippo Bonchi & Damien Pous 8/26

slide-55
SLIDE 55

Outline

Deterministic Automata Non-Deterministic Automata Comparison with other algorithms

Filippo Bonchi & Damien Pous 9/26

slide-56
SLIDE 56

Non-Deterministic Automata

◮ Deterministic v.s. non-deterministic:

·

a

·

b

  • c
  • ·

· ·

a

  • a
  • ·

b

  • ·

c

  • ·

·

◮ Reduction to the deterministic case:

◮ “powerset construction”: (S, t, o) → (P(S), t#, o#) ◮ from states (x, y, . . . ) to sets of states (X, Y , . . . ) Filippo Bonchi & Damien Pous 10/26

slide-57
SLIDE 57

Checking language equivalence

Non-deterministic case: use Hopcroft and Karp on the fly: x

  • z
  • y
  • u
  • w
  • v
  • Filippo Bonchi & Damien Pous

11/26

slide-58
SLIDE 58

Checking language equivalence

Non-deterministic case: use Hopcroft and Karp on the fly: x

  • z
  • y
  • u
  • w
  • v
  • x

u

Filippo Bonchi & Damien Pous 11/26

slide-59
SLIDE 59

Checking language equivalence

Non-deterministic case: use Hopcroft and Karp on the fly: x

  • z
  • y
  • u
  • w
  • v
  • x

y

u

v+w

Filippo Bonchi & Damien Pous 11/26

slide-60
SLIDE 60

Checking language equivalence

Non-deterministic case: use Hopcroft and Karp on the fly: x

  • z
  • y
  • u
  • w
  • v
  • x

y z

u

v+w u+w

Filippo Bonchi & Damien Pous 11/26

slide-61
SLIDE 61

Checking language equivalence

Non-deterministic case: use Hopcroft and Karp on the fly: x

  • z
  • y
  • u
  • w
  • v
  • x

y z x+y

u

v+w u+w u+v+w

Filippo Bonchi & Damien Pous 11/26

slide-62
SLIDE 62

Checking language equivalence

Non-deterministic case: use Hopcroft and Karp on the fly: x

  • z
  • y
  • u
  • w
  • v
  • x

y z x+y y+z

u

v+w u+w u+v+w

Filippo Bonchi & Damien Pous 11/26

slide-63
SLIDE 63

Checking language equivalence

Non-deterministic case: use Hopcroft and Karp on the fly: x

  • z
  • y
  • u
  • w
  • v
  • x

y z x+y y+z x+y+z

u

v+w u+w u+v+w

Filippo Bonchi & Damien Pous 11/26

slide-64
SLIDE 64

Checking language equivalence

Non-deterministic case: use Hopcroft and Karp on the fly: x

  • z
  • y
  • u
  • w
  • v
  • x

y z x+y y+z x+y+z

  • u

v+w u+w u+v+w

Filippo Bonchi & Damien Pous 11/26

slide-65
SLIDE 65

Checking language equivalence

Non-deterministic case: use Hopcroft and Karp on the fly: x

  • z
  • y
  • u
  • w
  • v
  • x

y z x+y y+z x+y+z

  • u

v+w u+w u+v+w

Filippo Bonchi & Damien Pous 11/26

slide-66
SLIDE 66

Checking language equivalence

Non-deterministic case: use Hopcroft and Karp on the fly: x

  • z
  • y
  • u
  • w
  • v
  • x

y z x+y y+z x+y+z

  • u

v+w u+w u+v+w (correctness comes for free)

Filippo Bonchi & Damien Pous 11/26

slide-67
SLIDE 67

Checking language equivalence

One can do better: x

  • z
  • y
  • u
  • w
  • v
  • x

y z x+y y+z x+y+z

  • u

v+w u+w u+v+w

Filippo Bonchi & Damien Pous 12/26

slide-68
SLIDE 68

Checking language equivalence

One can do better: x

  • z
  • y
  • u
  • w
  • v
  • (x, u)

+ (y, v+w) = (x+y, u+v+w)

x

y z x+y y+z x+y+z

  • u

v+w u+w u+v+w

Filippo Bonchi & Damien Pous 12/26

slide-69
SLIDE 69

Checking language equivalence

One can do better: x

  • z
  • y
  • u
  • w
  • v
  • (x, u)

+ (y, v+w) = (x+y, u+v+w)

x

y z x+y y+z x+y+z

  • u

v+w u+w u+v+w parts of the accessible subsets need not be explored

Filippo Bonchi & Damien Pous 12/26

slide-70
SLIDE 70

Correctness

◮ Denote by Ru the context closure of R:

X R Y X Ru Y X1 Ru Y1 X2 Ru Y2 X1 + X2 Ru Y1 + Y2

◮ R is a bisimulation up to context if X R Y entails

◮ o#(X) = o#(Y ); ◮ for all a, t#

a (X) Ru t# a (Y ).

◮ Theorem: L(X) = L(Y ) iff

there exists a bisimulation up to context R, with X R Y

Filippo Bonchi & Damien Pous 13/26

slide-71
SLIDE 71

Checking language equivalence

One can do even better: x

  • y
  • z
  • u
  • x
  • 1

y+z

  • 2

x+y

x+y+z

  • u
  • Filippo Bonchi & Damien Pous

14/26

slide-72
SLIDE 72

Checking language equivalence

One can do even better: x

  • y
  • z
  • u
  • x+y =

u+y (1) = y+z+y (2) = y+z = u (2)

x

  • 1

y+z

  • 2

x+y

x+y+z

  • u
  • Filippo Bonchi & Damien Pous

14/26

slide-73
SLIDE 73

Correctness

◮ Let Rc denote the congruence closure of R

(i.e., equivalence and context closure)

◮ R is a bisimulation up to congruence if X R Y entails

◮ o#(X) = o#(Y ); ◮ for all a, t#

a (X) Rc t# a (Y ).

◮ Theorem: L(X) = L(Y ) iff

there exists a bisimulation up to congruence R, with X R Y

Filippo Bonchi & Damien Pous 15/26

slide-74
SLIDE 74

Congruence check

How to check whether (X, Y ) ∈ Rc?

Filippo Bonchi & Damien Pous 16/26

slide-75
SLIDE 75

Congruence check

How to check whether (X, Y ) ∈ Rc?

◮ Rc is an equivalence relation ◮ define a canonical element for each equivalence class

(take the largest set of the equivalence class)

Filippo Bonchi & Damien Pous 16/26

slide-76
SLIDE 76

Congruence check

How to check whether (X, Y ) ∈ Rc?

◮ Rc is an equivalence relation ◮ define a canonical element for each equivalence class

(take the largest set of the equivalence class)

◮ compute these canonical elements by set rewriting

(X, Y →R X+Y whenever (X, Y ) ∈ R)

Filippo Bonchi & Damien Pous 16/26

slide-77
SLIDE 77

Congruence check

How to check whether (X, Y ) ∈ Rc?

◮ Rc is an equivalence relation ◮ define a canonical element for each equivalence class

(take the largest set of the equivalence class)

◮ compute these canonical elements by set rewriting

(X, Y →R X+Y whenever (X, Y ) ∈ R)

◮ Theorem: (X, Y ) ∈ Rc iff X↓R = Y ↓R

Filippo Bonchi & Damien Pous 16/26

slide-78
SLIDE 78

Hopcroft and Karp with Contexts: HKC

◮ The resulting algorithm is called HKC, it combines

◮ “up to equivalence”

[HK’71, Milner’89]

◮ “up to context”

[MPW’92, Sangiorgi’95]

Filippo Bonchi & Damien Pous 17/26

slide-79
SLIDE 79

Hopcroft and Karp with Contexts: HKC

◮ The resulting algorithm is called HKC, it combines

◮ “up to equivalence”

[HK’71, Milner’89]

◮ “up to context”

[MPW’92, Sangiorgi’95]

◮ Good property: no need to explore all accessible states of the

determinised automata

Filippo Bonchi & Damien Pous 17/26

slide-80
SLIDE 80

Outline

Deterministic Automata Non-Deterministic Automata Comparison with other algorithms

Filippo Bonchi & Damien Pous 18/26

slide-81
SLIDE 81

Antichain-based algorithms (AC)

◮ “Antichains: a new algorithm

for checking universality of finite automata” De Wulf, Doyen, Henzinger, and Raskin, CAV ’06

◮ Algorithms for language inclusion ◮ Rough idea: iterate over an antichain to reach a fixpoint Filippo Bonchi & Damien Pous 19/26

slide-82
SLIDE 82

Antichain-based algorithms (AC)

◮ “Antichains: a new algorithm

for checking universality of finite automata” De Wulf, Doyen, Henzinger, and Raskin, CAV ’06

◮ Algorithms for language inclusion ◮ Rough idea: iterate over an antichain to reach a fixpoint

◮ “Antichain Algorithms for Finite Automata”

Doyen and Raskin, TACAS ’10

◮ “When Simulation Meets Antichains”

Abdulla, Chen, Hol´ ık, Mayr, and Vojnar, TACAS ’10 → Exploit simulation preorders

(cf. Richard Mayr’s talk)

Filippo Bonchi & Damien Pous 19/26

slide-83
SLIDE 83

Rephrasing antichains with coinduction

In the paper:

◮ Antichains (AC) rephrased as simulations up to upward closure ◮ One-to-one correspondence with bisimulations up to context

(rather than bisimulations up to congruence for HKC)

Filippo Bonchi & Damien Pous 20/26

slide-84
SLIDE 84

Rephrasing antichains with coinduction

In the paper:

◮ Antichains (AC) rephrased as simulations up to upward closure ◮ One-to-one correspondence with bisimulations up to context

(rather than bisimulations up to congruence for HKC)

◮ Exploiting simulation preorders in AC as an additional up-to

technique

◮ Which can easily be adapted to HKC

→ HKC’

Filippo Bonchi & Damien Pous 20/26

slide-85
SLIDE 85

Comparing AC and HKC

  • 1. Benchmarks

◮ Implementations

◮ AC, AC’: libvata (C++, for tree automata) ◮ HK, HKC, HKC’: homemade OCaml implementation

◮ Testcases

◮ random automata (using [Tabakov, Vardi ’05] model) ◮ automata inclusions arising from model checking

(the ones from [Abdulla, Chen, Hol´ ık, Mayr, and Vojnar ’10])

Filippo Bonchi & Damien Pous 21/26

slide-86
SLIDE 86

Comparing AC and HKC

  • 1. Benchmarks

◮ Implementations

◮ AC, AC’: libvata (C++, for tree automata) ◮ HK, HKC, HKC’: homemade OCaml implementation

◮ Testcases

◮ random automata (using [Tabakov, Vardi ’05] model) ◮ automata inclusions arising from model checking

(the ones from [Abdulla, Chen, Hol´ ık, Mayr, and Vojnar ’10])

→ Up to two orders of magnitude faster than libvata

(lots of numbers in the paper)

Filippo Bonchi & Damien Pous 21/26

slide-87
SLIDE 87

Comparing AC and HKC

  • 2. Formal analysis of the proof techniques

We established the following picture: HKC ′ HKC

  • AC ′

equivalence

  • HK
  • AC
  • similarity
  • Naive
  • context
  • where an arrow means:

◮ the proof technique is at least as powerful ◮ there are examples yielding to an exponential improvement

Filippo Bonchi & Damien Pous 22/26

slide-88
SLIDE 88

Comparing AC and HKC

  • 2. Formal analysis of the proof techniques

HKC ′ HKC

  • AC ′

equivalence

  • HK
  • AC
  • similarity
  • Naive
  • context
  • HKC ′

AC ′

equivalence

  • HKC = AC

similarity

  • HK = Naive

context

  • General case

Disjoint inclusion case

Filippo Bonchi & Damien Pous 22/26

slide-89
SLIDE 89

Intuition for HKC>AC in the equivalence case

HKC ′ HKC

  • AC ′

equivalence

  • HK
  • AC
  • similarity
  • Naive
  • context
  • disjoint or non-disjoint equivalence check

Filippo Bonchi & Damien Pous 23/26

slide-90
SLIDE 90

Intuition for HKC=AC in the disjoint inclusion case

HKC ′ AC ′

equivalence

  • HKC = AC

similarity

  • HK = Naive

context

  • disjoint inclusion check

Filippo Bonchi & Damien Pous 24/26

slide-91
SLIDE 91

Intuition for HKC’>AC’ in the disjoint inclusion case

HKC ′ AC ′

equivalence

  • HKC = AC

similarity

  • HK = Naive

context

  • disjoint inclusion check, but with simulation preorder

Filippo Bonchi & Damien Pous 25/26

slide-92
SLIDE 92

Summary

◮ A new and efficient automata algorithm, exploiting ideas from

concurrency theory: up-to techniques [Milner ’89, Sangiorgi ’95]

◮ A unified framework: coinduction, to rephrase and compare

various algorithms from the literature

◮ Hopcroft and Karp ’71 ◮ Antichains ’06 ◮ Antichains with similarity ’10

◮ The algorithms can be tested online:

http://perso.ens-lyon.fr/damien.pous/hknt

Filippo Bonchi & Damien Pous 26/26