let G be _Graph; :: thesis: for a, b being Vertex of G st a <> b & not a,b are_adjacent holds
for S being Subset of (the_Vertices_of G) holds
( S is VertexSeparator of a,b iff ( not a in S & not b in S & ( for W being Walk of G st W is_Walk_from a,b holds
ex x being Vertex of G st
( x in S & x in W .vertices() ) ) ) )

let a, b be Vertex of G; :: thesis: ( a <> b & not a,b are_adjacent implies for S being Subset of (the_Vertices_of G) holds
( S is VertexSeparator of a,b iff ( not a in S & not b in S & ( for W being Walk of G st W is_Walk_from a,b holds
ex x being Vertex of G st
( x in S & x in W .vertices() ) ) ) ) )

assume A1: ( a <> b & not a,b are_adjacent ) ; :: thesis: for S being Subset of (the_Vertices_of G) holds
( S is VertexSeparator of a,b iff ( not a in S & not b in S & ( for W being Walk of G st W is_Walk_from a,b holds
ex x being Vertex of G st
( x in S & x in W .vertices() ) ) ) )

let S be Subset of (the_Vertices_of G); :: thesis: ( S is VertexSeparator of a,b iff ( not a in S & not b in S & ( for W being Walk of G st W is_Walk_from a,b holds
ex x being Vertex of G st
( x in S & x in W .vertices() ) ) ) )

hereby :: thesis: ( not a in S & not b in S & ( for W being Walk of G st W is_Walk_from a,b holds
ex x being Vertex of G st
( x in S & x in W .vertices() ) ) implies S is VertexSeparator of a,b )
assume A2: S is VertexSeparator of a,b ; :: thesis: ( not a in S & not b in S & ( for W being Walk of G st W is_Walk_from a,b holds
ex x being Vertex of G st
( x in S & x in W .vertices() ) ) )

hence ( not a in S & not b in S ) by A1, Def8; :: thesis: for W being Walk of G st W is_Walk_from a,b holds
ex x being Vertex of G st
( x in S & x in W .vertices() )

then A3: not (the_Vertices_of G) \ S is empty by XBOOLE_0:def 5;
let W be Walk of G; :: thesis: ( W is_Walk_from a,b implies ex x being Vertex of G st
( x in S & x in W .vertices() ) )

assume A4: W is_Walk_from a,b ; :: thesis: ex x being Vertex of G st
( x in S & x in W .vertices() )

now end;
hence ex x being Vertex of G st
( x in S & x in W .vertices() ) ; :: thesis: verum
end;
assume A11: ( not a in S & not b in S & ( for W being Walk of G st W is_Walk_from a,b holds
ex x being Vertex of G st
( x in S & x in W .vertices() ) ) ) ; :: thesis: S is VertexSeparator of a,b
now
let G2 be removeVertices of G,S; :: thesis: for W being Walk of G2 holds not W is_Walk_from a,b
not (the_Vertices_of G) \ S is empty by A11, XBOOLE_0:def 5;
then A12: the_Vertices_of G2 = (the_Vertices_of G) \ S by GLIB_000:def 39;
given W being Walk of G2 such that A13: W is_Walk_from a,b ; :: thesis: contradiction
reconsider W2 = W as Walk of G by GLIB_001:168;
( W .first() = a & W .last() = b ) by A13, GLIB_001:def 23;
then ( W2 .first() = a & W2 .last() = b ) ;
then A14: W2 is_Walk_from a,b by GLIB_001:def 23;
now
let x be set ; :: thesis: ( ( x in W2 .vertices() implies x in W .vertices() ) & ( x in W .vertices() implies x in W2 .vertices() ) )
hereby :: thesis: ( x in W .vertices() implies x in W2 .vertices() ) end;
assume x in W .vertices() ; :: thesis: x in W2 .vertices()
then ex n being odd Element of NAT st
( n <= len W2 & W2 . n = x ) by GLIB_001:88;
hence x in W2 .vertices() by GLIB_001:88; :: thesis: verum
end;
then W2 .vertices() = W .vertices() by TARSKI:2;
then for x being Vertex of G holds
( not x in S or not x in W2 .vertices() ) by A12, XBOOLE_0:def 5;
hence contradiction by A11, A14; :: thesis: verum
end;
hence S is VertexSeparator of a,b by A1, A11, Def8; :: thesis: verum