Semi-automatic proof
- f
Strong connectivity
jean-jacques.levy@inria.fr
journées PPS, 12-10-2017
1
Semi-automatic proof of Strong connectivity - - PowerPoint PPT Presentation
Semi-automatic proof of Strong connectivity jean-jacques.levy@inria.fr journes PPS, 12-10-2017 1 Plan motivation algorithm formal proof other systems conclusion .. joint work (in progress) with Ran Chen [VSTTE 2017]) also
jean-jacques.levy@inria.fr
journées PPS, 12-10-2017
1
2
.. joint work (in progress) with Ran Chen [VSTTE 2017])
also cooperation with Cyril Cohen, Laurent Théry, Stephan Merz
3
4
5
2 8 3 4 9 1 7 5 6 2 8 9 7 5 6 3 4 1
graph spanning tree (forest)
6
2 8 9 7 5 6 3 4 1 2 8 3 4 9 1 7 5 6
3 SCCs (strongly connected components) 3 vertices are their bases
7
LOWLINK(x) = min ( {num[x]} ∪ {num[y] | x
∗
= ⇒, → y ∧ x and y are in same connected component} )
2 8 9 7 5 6 3 4 1 2 8 9 7 5 6 3 4 1
1 5 5 5 1 1 2
2 8 9 3 4 1
1 4 4 1 1 2
8
1 1 1 1 1 2 2 2 2 3 3 3 4 4 5 1 2 3 4 5 6 1 1 2 2 3 3 4 4 8 8 1 2 3 4 5 6 9 7
successive values of the working stack 1 2 3 4 5 6 increasing rank
2 8 9 7 5 6 3 4 1
9
I m p e r a t i v e s t y l e
10
LOWLINK(x) = min ( {num[x]} ∪ {num[y] | x
∗
= ⇒, → y ∧ x and y are in same connected component} )
11
returns LOWLINK(x) and new environment
x
e1.stack s3 s2
12
F u n c t i
a l p r
r a m m i n g
13
u s i n g W h y 3
14
15
vertex in stack reaches all vertices with higher rank
cc1 cc2 ccn sccs stack
increasing rank increasing number
16
17
e’.stack e.stack
x
e.grays = e’.grays e.sccs e’.sccs
⊆
e.blacks e’.blacks
⊆
18
Coq
x
e1.stack s3 s2
[http://jeanjacqueslevy.net/why3/graph/abs/scct/1-7/scc.html]
19
Coq
reachable x x0 ^ edge x0 y 0 ^ reachable y 0 y ^ x0 2 s2 ^ y 0 62 s2
in same scc y x ^ y 62 s2
y 0 is white x0 = x then y 0 ∈ successors x
y 0 is black
x0 6= x then x0 is black ¬ no black to white b1 g1
[1]
y 0 ∈ e1.sccs then
in same scc y 0 x
x is black
[2]
x0 = x then y 0 ∈ successors x
n1 ≤ e1.num[y 0] y 0 ∈ s3
rank y 0 s1 < rank x s1 e1.num[y 0] < e1.num[x] = e.num[x] = n
x0 6= x then xedge to s1 (Cons x s3) y 0
[3]
x
s1=e1.stack s3 s2
20
[http://jeanjacqueslevy.net/why3/graph/abs/scct/1-7/scc.html]
21
[http://github.com/CohenCyril/tarjan]
22
[cyril cohen, laurent théry, JJL]
[http://jeanjacqueslevy.net/why3/graph/abs/scct/isa/Tarjan.pdf]
23
[stephan merz]
24
[kenji maillard, catalin hritcu]
25
26
[http://jeanjacqueslevy.net/why3]