At:
topsortl-properties
1
2
2
2
2
2
1
2
1
1.
the_graph: Graph
2.
the_obj: GraphObject(the_graph)
3.
L: Vertices(the_graph) List
4.
i:Vertices(the_graph). (i
L)
5.
paren(Vertices(the_graph);dfsl(the_obj;L))
6.
no_repeats(Vertices(the_graph)+Vertices(the_graph);dfsl(the_obj;L))
7.
dfsl-traversal(the_graph;L;dfsl(the_obj;L))
8.
i:Vertices(the_graph). (i
L) 
(inr(i)
dfsl(the_obj;L)) & (inl(i)
dfsl(the_obj;L))
9.
non-trivial-loop-free(the_graph)
10.
L1,L2:Vertices(the_graph) List.
L = (L1 @ L2)

(
s1,s2:Vertices(the_graph) List.
topsortl(the_obj;L) = (s2 @ s1)
& (
j:Vertices(the_graph).
((j
s1) 
L1-the_graph- > *j) & ((j
s2) 
L2-the_graph- > *j &
L1-the_graph- > *j)))
11.
i:Vertices(the_graph), s1,s2:Vertices(the_graph) List.
topsortl(the_obj;L) = (s1 @ [i] @ s2)

(
j:Vertices(the_graph).
j = i 
i-the_graph- > *j 
(j
s2))
12.
i:Vertices(the_graph). (i
topsortl(the_obj;L))
13.
i,j:Vertices(the_graph).
j = i 
i-the_graph- > *j 
i before j
topsortl(the_obj;L)
14.
i,j:Vertices(the_graph).
j before i
L

j-the_graph- > *i

(
k:Vertices(the_graph). k before j
L 
k-the_graph- > *i) 
i before j
topsortl(the_obj;L)
15.
i: Vertices(the_graph)
16.
j: Vertices(the_graph)
17.
k: Vertices(the_graph)
18.
k-the_graph- > *j
19.
k-the_graph- > *i
20.
k':Vertices(the_graph). k' before k
L 
k'-the_graph- > *i
21.
i before k
topsortl(the_obj;L)
Dec(k = j)
By:
Using [`the_obj',the_obj]
(BackThru
Thm* For any graph
the_obj:GraphObject(the_graph), x,y:V. Dec(x = y))
Generated subgoals:
None
About: