let G1 be _Graph; :: thesis: for v being object
for V being Subset of (the_Vertices_of G1)
for G2 being addAdjVertexAll of G1,v,V
for G3 being GraphComplement of G1 st not v in the_Vertices_of G1 & the_Edges_of G2 misses the_Edges_of G3 holds
ex G4 being addAdjVertexAll of G3,v,(the_Vertices_of G1) \ V st G4 is GraphComplement of G2

let v be object ; :: thesis: for V being Subset of (the_Vertices_of G1)
for G2 being addAdjVertexAll of G1,v,V
for G3 being GraphComplement of G1 st not v in the_Vertices_of G1 & the_Edges_of G2 misses the_Edges_of G3 holds
ex G4 being addAdjVertexAll of G3,v,(the_Vertices_of G1) \ V st G4 is GraphComplement of G2

let V be Subset of (the_Vertices_of G1); :: thesis: for G2 being addAdjVertexAll of G1,v,V
for G3 being GraphComplement of G1 st not v in the_Vertices_of G1 & the_Edges_of G2 misses the_Edges_of G3 holds
ex G4 being addAdjVertexAll of G3,v,(the_Vertices_of G1) \ V st G4 is GraphComplement of G2

let G2 be addAdjVertexAll of G1,v,V; :: thesis: for G3 being GraphComplement of G1 st not v in the_Vertices_of G1 & the_Edges_of G2 misses the_Edges_of G3 holds
ex G4 being addAdjVertexAll of G3,v,(the_Vertices_of G1) \ V st G4 is GraphComplement of G2

let G3 be GraphComplement of G1; :: thesis: ( not v in the_Vertices_of G1 & the_Edges_of G2 misses the_Edges_of G3 implies ex G4 being addAdjVertexAll of G3,v,(the_Vertices_of G1) \ V st G4 is GraphComplement of G2 )
assume A1: ( not v in the_Vertices_of G1 & the_Edges_of G2 misses the_Edges_of G3 ) ; :: thesis: ex G4 being addAdjVertexAll of G3,v,(the_Vertices_of G1) \ V st G4 is GraphComplement of G2
consider E0 being set such that
( card V = card E0 & E0 misses the_Edges_of G1 ) and
the_Edges_of G2 = (the_Edges_of G1) \/ E0 and
A2: for v1 being object st v1 in V holds
ex e1 being object st
( e1 in E0 & e1 Joins v1,v,G2 & ( for e2 being object st e2 Joins v1,v,G2 holds
e1 = e2 ) ) by A1, GLIB_007:def 4;
per cases ( (the_Vertices_of G1) \ V <> {} or (the_Vertices_of G1) \ V = {} ) ;
suppose A3: (the_Vertices_of G1) \ V <> {} ; :: thesis: ex G4 being addAdjVertexAll of G3,v,(the_Vertices_of G1) \ V st G4 is GraphComplement of G2
set E = { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ;
deffunc H1( object ) -> object = $1 `2 ;
consider h being Function such that
A4: ( dom h = { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } & ( for x being object st x in { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } holds
h . x = H1(x) ) ) from FUNCT_1:sch 3();
set s = (the_Source_of G3) +* h;
A5: dom ((the_Source_of G3) +* h) = (dom (the_Source_of G3)) \/ (dom h) by FUNCT_4:def 1
.= (the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } by A4, FUNCT_2:def 1 ;
now :: thesis: for y being object holds
( ( y in (the_Vertices_of G1) \ V implies y in rng h ) & ( y in rng h implies y in (the_Vertices_of G1) \ V ) )
let y be object ; :: thesis: ( ( y in (the_Vertices_of G1) \ V implies y in rng h ) & ( y in rng h implies y in (the_Vertices_of G1) \ V ) )
hereby :: thesis: ( y in rng h implies y in (the_Vertices_of G1) \ V )
set x = [{(the_Edges_of G2),(the_Edges_of G3)},y];
assume y in (the_Vertices_of G1) \ V ; :: thesis: y in rng h
then A6: [{(the_Edges_of G2),(the_Edges_of G3)},y] in { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ;
then h . [{(the_Edges_of G2),(the_Edges_of G3)},y] = [{(the_Edges_of G2),(the_Edges_of G3)},y] `2 by A4
.= y ;
hence y in rng h by A4, A6, FUNCT_1:def 3; :: thesis: verum
end;
assume y in rng h ; :: thesis: y in (the_Vertices_of G1) \ V
then consider x being object such that
A7: ( x in dom h & h . x = y ) by FUNCT_1:def 3;
reconsider x = x as set by TARSKI:1;
consider w being Element of (the_Vertices_of G1) \ V such that
A8: x = [{(the_Edges_of G2),(the_Edges_of G3)},w] by A4, A7;
h . x = x `2 by A4, A7
.= w by A8 ;
hence y in (the_Vertices_of G1) \ V by A3, A7; :: thesis: verum
end;
then A9: rng h = (the_Vertices_of G1) \ V by TARSKI:2
.= (the_Vertices_of G3) \ V by Th98 ;
then A10: (rng (the_Source_of G3)) \/ (rng h) c= the_Vertices_of G3 by XBOOLE_1:8;
rng ((the_Source_of G3) +* h) c= (rng (the_Source_of G3)) \/ (rng h) by FUNCT_4:17;
then A11: rng ((the_Source_of G3) +* h) c= the_Vertices_of G3 by A10, XBOOLE_1:1;
the_Vertices_of G3 c= (the_Vertices_of G3) \/ {v} by XBOOLE_1:7;
then reconsider s = (the_Source_of G3) +* h as Function of ((the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ),((the_Vertices_of G3) \/ {v}) by A5, A11, XBOOLE_1:1, FUNCT_2:2;
set t = (the_Target_of G3) +* ( { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } --> v);
A12: dom ((the_Target_of G3) +* ( { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } --> v)) = (dom (the_Target_of G3)) \/ (dom ( { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } --> v)) by FUNCT_4:def 1
.= (the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } by FUNCT_2:def 1 ;
the_Vertices_of G3 c= (the_Vertices_of G3) \/ {v} by XBOOLE_1:7;
then A13: rng (the_Target_of G3) c= (the_Vertices_of G3) \/ {v} by XBOOLE_1:1;
A14: {v} c= (the_Vertices_of G3) \/ {v} by XBOOLE_1:7;
A15: rng ((the_Target_of G3) +* ( { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } --> v)) c= (rng (the_Target_of G3)) \/ (rng ( { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } --> v)) by FUNCT_4:17;
rng ( { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } --> v) c= (the_Vertices_of G3) \/ {v} by A14, XBOOLE_1:1;
then (rng (the_Target_of G3)) \/ (rng ( { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } --> v)) c= (the_Vertices_of G3) \/ {v} by A13, XBOOLE_1:8;
then reconsider t = (the_Target_of G3) +* ( { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } --> v) as Function of ((the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ),((the_Vertices_of G3) \/ {v}) by A12, A15, XBOOLE_1:1, FUNCT_2:2;
A16: { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } misses the_Edges_of G3
proof
assume { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } meets the_Edges_of G3 ; :: thesis: contradiction
then consider e being object such that
A17: ( e in { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } & e in the_Edges_of G3 ) by XBOOLE_0:3;
reconsider e = e as set by TARSKI:1;
consider w being Element of (the_Vertices_of G1) \ V such that
A18: e = [{(the_Edges_of G2),(the_Edges_of G3)},w] by A17;
A19: the_Edges_of G3 in {(the_Edges_of G2),(the_Edges_of G3)} by TARSKI:def 2;
A20: {(the_Edges_of G2),(the_Edges_of G3)} in {{(the_Edges_of G2),(the_Edges_of G3)}} by TARSKI:def 1;
e = {{{(the_Edges_of G2),(the_Edges_of G3)},w},{{(the_Edges_of G2),(the_Edges_of G3)}}} by A18, TARSKI:def 5;
then {{(the_Edges_of G2),(the_Edges_of G3)}} in e by TARSKI:def 2;
hence contradiction by A17, A19, A20, XREGULAR:8; :: thesis: verum
end;
A21: { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } misses the_Edges_of G2
proof
assume { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } meets the_Edges_of G2 ; :: thesis: contradiction
then consider e being object such that
A22: ( e in { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } & e in the_Edges_of G2 ) by XBOOLE_0:3;
reconsider e = e as set by TARSKI:1;
consider w being Element of (the_Vertices_of G1) \ V such that
A23: e = [{(the_Edges_of G2),(the_Edges_of G3)},w] by A22;
A24: the_Edges_of G2 in {(the_Edges_of G2),(the_Edges_of G3)} by TARSKI:def 2;
A25: {(the_Edges_of G2),(the_Edges_of G3)} in {{(the_Edges_of G2),(the_Edges_of G3)}} by TARSKI:def 1;
e = {{{(the_Edges_of G2),(the_Edges_of G3)},w},{{(the_Edges_of G2),(the_Edges_of G3)}}} by A23, TARSKI:def 5;
then {{(the_Edges_of G2),(the_Edges_of G3)}} in e by TARSKI:def 2;
hence contradiction by A22, A24, A25, XREGULAR:8; :: thesis: verum
end;
set G4 = createGraph (((the_Vertices_of G3) \/ {v}),((the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ),s,t);
now :: thesis: ( the_Vertices_of G3 c= the_Vertices_of (createGraph (((the_Vertices_of G3) \/ {v}),((the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ),s,t)) & the_Edges_of G3 c= the_Edges_of (createGraph (((the_Vertices_of G3) \/ {v}),((the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ),s,t)) & ( for e being set st e in the_Edges_of G3 holds
( (the_Source_of G3) . e = (the_Source_of (createGraph (((the_Vertices_of G3) \/ {v}),((the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ),s,t))) . e & (the_Target_of G3) . e = (the_Target_of (createGraph (((the_Vertices_of G3) \/ {v}),((the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ),s,t))) . e ) ) )
thus the_Vertices_of G3 c= the_Vertices_of (createGraph (((the_Vertices_of G3) \/ {v}),((the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ),s,t)) by XBOOLE_1:7; :: thesis: ( the_Edges_of G3 c= the_Edges_of (createGraph (((the_Vertices_of G3) \/ {v}),((the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ),s,t)) & ( for e being set st e in the_Edges_of G3 holds
( (the_Source_of G3) . e = (the_Source_of (createGraph (((the_Vertices_of G3) \/ {v}),((the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ),s,t))) . e & (the_Target_of G3) . e = (the_Target_of (createGraph (((the_Vertices_of G3) \/ {v}),((the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ),s,t))) . e ) ) )

thus the_Edges_of G3 c= the_Edges_of (createGraph (((the_Vertices_of G3) \/ {v}),((the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ),s,t)) by XBOOLE_1:7; :: thesis: for e being set st e in the_Edges_of G3 holds
( (the_Source_of G3) . e = (the_Source_of (createGraph (((the_Vertices_of G3) \/ {v}),((the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ),s,t))) . e & (the_Target_of G3) . e = (the_Target_of (createGraph (((the_Vertices_of G3) \/ {v}),((the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ),s,t))) . e )

let e be set ; :: thesis: ( e in the_Edges_of G3 implies ( (the_Source_of G3) . e = (the_Source_of (createGraph (((the_Vertices_of G3) \/ {v}),((the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ),s,t))) . e & (the_Target_of G3) . e = (the_Target_of (createGraph (((the_Vertices_of G3) \/ {v}),((the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ),s,t))) . e ) )
assume A26: e in the_Edges_of G3 ; :: thesis: ( (the_Source_of G3) . e = (the_Source_of (createGraph (((the_Vertices_of G3) \/ {v}),((the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ),s,t))) . e & (the_Target_of G3) . e = (the_Target_of (createGraph (((the_Vertices_of G3) \/ {v}),((the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ),s,t))) . e )
then e in (the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } by XBOOLE_0:def 3;
then A27: not e in { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } by A16, A26, XBOOLE_0:5;
then A28: not e in dom ( { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } --> v) ;
thus (the_Source_of G3) . e = s . e by A4, A27, FUNCT_4:11
.= (the_Source_of (createGraph (((the_Vertices_of G3) \/ {v}),((the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ),s,t))) . e ; :: thesis: (the_Target_of G3) . e = (the_Target_of (createGraph (((the_Vertices_of G3) \/ {v}),((the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ),s,t))) . e
thus (the_Target_of G3) . e = t . e by A28, FUNCT_4:11
.= (the_Target_of (createGraph (((the_Vertices_of G3) \/ {v}),((the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ),s,t))) . e ; :: thesis: verum
end;
then reconsider G4 = createGraph (((the_Vertices_of G3) \/ {v}),((the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ),s,t) as Supergraph of G3 by GLIB_006:def 9;
(the_Vertices_of G1) \ V c= the_Vertices_of G1 ;
then A29: ( (the_Vertices_of G1) \ V c= the_Vertices_of G3 & not v in the_Vertices_of G3 ) by A1, Th98;
now :: thesis: ( the_Vertices_of G4 = (the_Vertices_of G3) \/ {v} & ( for e being object holds
( not e Joins v,v,G4 & ( for v1 being object holds
( ( not v1 in (the_Vertices_of G1) \ V implies not e Joins v1,v,G4 ) & ( for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,G4 holds
e DJoins v1,v2,G3 ) ) ) ) ) & ex E being set st
( card ((the_Vertices_of G1) \ V) = card E & E misses the_Edges_of G3 & the_Edges_of G4 = (the_Edges_of G3) \/ E & ( for v1 being object st v1 in (the_Vertices_of G1) \ V holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,G4 & ( for e2 being object st e2 Joins v1,v,G4 holds
e1 = e2 ) ) ) ) )
thus the_Vertices_of G4 = (the_Vertices_of G3) \/ {v} ; :: thesis: ( ( for e being object holds
( not e Joins v,v,G4 & ( for v1 being object holds
( ( not v1 in (the_Vertices_of G1) \ V implies not e Joins v1,v,G4 ) & ( for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,G4 holds
e DJoins v1,v2,G3 ) ) ) ) ) & ex E being set st
( card ((the_Vertices_of G1) \ V) = card E & E misses the_Edges_of G3 & the_Edges_of G4 = (the_Edges_of G3) \/ E & ( for v1 being object st v1 in (the_Vertices_of G1) \ V holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,G4 & ( for e2 being object st e2 Joins v1,v,G4 holds
e1 = e2 ) ) ) ) )

hereby :: thesis: ex E being set st
( card ((the_Vertices_of G1) \ V) = card E & E misses the_Edges_of G3 & the_Edges_of G4 = (the_Edges_of G3) \/ E & ( for v1 being object st v1 in (the_Vertices_of G1) \ V holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,G4 & ( for e2 being object st e2 Joins v1,v,G4 holds
e1 = e2 ) ) ) )
let e be object ; :: thesis: ( not e Joins v,v,G4 & ( for v1 being object holds
( ( not v1 in (the_Vertices_of G1) \ V implies not e Joins v1,v,G4 ) & ( for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,G4 holds
e DJoins v1,v2,G3 ) ) ) )

thus not e Joins v,v,G4 :: thesis: for v1 being object holds
( ( not v1 in (the_Vertices_of G1) \ V implies not e Joins v1,v,G4 ) & ( for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,G4 holds
e DJoins v1,v2,G3 ) )
proof
assume A30: e Joins v,v,G4 ; :: thesis: contradiction
per cases then ( e Joins v,v,G3 or not e in the_Edges_of G3 ) by GLIB_006:72;
suppose A31: not e in the_Edges_of G3 ; :: thesis: contradiction
e in the_Edges_of G4 by A30, GLIB_000:def 13;
then e in (the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ;
then A32: e in { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } by A16, A31, XBOOLE_0:5;
then consider w being Element of (the_Vertices_of G1) \ V such that
A33: e = [{(the_Edges_of G2),(the_Edges_of G3)},w] ;
(the_Source_of G4) . e = s . e
.= h . e by A4, A32, FUNCT_4:13
.= [{(the_Edges_of G2),(the_Edges_of G3)},w] `2 by A4, A32, A33
.= w ;
then v = w by A30, GLIB_000:def 13;
then v in (the_Vertices_of G1) \ V by A3;
hence contradiction by A1; :: thesis: verum
end;
end;
end;
let v1 be object ; :: thesis: ( ( not v1 in (the_Vertices_of G1) \ V implies not e Joins v1,v,G4 ) & ( for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,G4 holds
e DJoins v1,v2,G3 ) )

hereby :: thesis: for v2 being object st v1 <> v & v2 <> v & e DJoins v1,v2,G4 holds
e DJoins v1,v2,G3
assume A34: not v1 in (the_Vertices_of G1) \ V ; :: thesis: not e Joins v1,v,G4
assume A35: e Joins v1,v,G4 ; :: thesis: contradiction
per cases then ( e Joins v1,v,G3 or not e in the_Edges_of G3 ) by GLIB_006:72;
suppose A36: not e in the_Edges_of G3 ; :: thesis: contradiction
e in the_Edges_of G4 by A35, GLIB_000:def 13;
then e in (the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ;
then A37: e in { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } by A36, XBOOLE_0:def 3;
then consider w being Element of (the_Vertices_of G1) \ V such that
A38: e = [{(the_Edges_of G2),(the_Edges_of G3)},w] ;
(the_Source_of G4) . e = s . e
.= h . e by A4, A37, FUNCT_4:13
.= [{(the_Edges_of G2),(the_Edges_of G3)},w] `2 by A4, A37, A38
.= w ;
end;
end;
end;
let v2 be object ; :: thesis: ( v1 <> v & v2 <> v & e DJoins v1,v2,G4 implies e DJoins v1,v2,G3 )
assume A39: ( v1 <> v & v2 <> v & e DJoins v1,v2,G4 ) ; :: thesis: e DJoins v1,v2,G3
e in the_Edges_of G3
proof
assume A40: not e in the_Edges_of G3 ; :: thesis: contradiction
e in the_Edges_of G4 by A39, GLIB_000:def 14;
then e in (the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ;
then A41: e in { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } by A40, XBOOLE_0:def 3;
then A42: e in dom ( { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } --> v) ;
(the_Target_of G4) . e = t . e
.= ( { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } --> v) . e by A42, FUNCT_4:13
.= v by A41, FUNCOP_1:7 ;
hence contradiction by A39, GLIB_000:def 14; :: thesis: verum
end;
hence e DJoins v1,v2,G3 by A39, GLIB_006:71; :: thesis: verum
end;
take E = { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ; :: thesis: ( card ((the_Vertices_of G1) \ V) = card E & E misses the_Edges_of G3 & the_Edges_of G4 = (the_Edges_of G3) \/ E & ( for v1 being object st v1 in (the_Vertices_of G1) \ V holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,G4 & ( for e2 being object st e2 Joins v1,v,G4 holds
e1 = e2 ) ) ) )

now :: thesis: for x1, x2 being object st x1 in dom h & x2 in dom h & h . x1 = h . x2 holds
x1 = x2
let x1, x2 be object ; :: thesis: ( x1 in dom h & x2 in dom h & h . x1 = h . x2 implies x1 = x2 )
assume A43: ( x1 in dom h & x2 in dom h & h . x1 = h . x2 ) ; :: thesis: x1 = x2
then consider w1 being Element of (the_Vertices_of G1) \ V such that
A44: x1 = [{(the_Edges_of G2),(the_Edges_of G3)},w1] by A4;
consider w2 being Element of (the_Vertices_of G1) \ V such that
A45: x2 = [{(the_Edges_of G2),(the_Edges_of G3)},w2] by A4, A43;
w1 = [{(the_Edges_of G2),(the_Edges_of G3)},w1] `2
.= h . x1 by A4, A43, A44
.= [{(the_Edges_of G2),(the_Edges_of G3)},w2] `2 by A4, A43, A45
.= w2 ;
hence x1 = x2 by A44, A45; :: thesis: verum
end;
then A46: h is one-to-one by FUNCT_1:def 4;
thus card ((the_Vertices_of G1) \ V) = card ((the_Vertices_of G3) \ V) by Th98
.= card E by A4, A9, A46, CARD_1:70 ; :: thesis: ( E misses the_Edges_of G3 & the_Edges_of G4 = (the_Edges_of G3) \/ E & ( for v1 being object st v1 in (the_Vertices_of G1) \ V holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,G4 & ( for e2 being object st e2 Joins v1,v,G4 holds
e1 = e2 ) ) ) )

thus E misses the_Edges_of G3 by A16; :: thesis: ( the_Edges_of G4 = (the_Edges_of G3) \/ E & ( for v1 being object st v1 in (the_Vertices_of G1) \ V holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,G4 & ( for e2 being object st e2 Joins v1,v,G4 holds
e1 = e2 ) ) ) )

thus the_Edges_of G4 = (the_Edges_of G3) \/ E ; :: thesis: for v1 being object st v1 in (the_Vertices_of G1) \ V holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,G4 & ( for e2 being object st e2 Joins v1,v,G4 holds
e1 = e2 ) )

let v1 be object ; :: thesis: ( v1 in (the_Vertices_of G1) \ V implies ex e1 being object st
( e1 in E & e1 Joins v1,v,G4 & ( for e2 being object st e2 Joins v1,v,G4 holds
e1 = e2 ) ) )

assume A47: v1 in (the_Vertices_of G1) \ V ; :: thesis: ex e1 being object st
( e1 in E & e1 Joins v1,v,G4 & ( for e2 being object st e2 Joins v1,v,G4 holds
e1 = e2 ) )

set e1 = [{(the_Edges_of G2),(the_Edges_of G3)},v1];
take e1 = [{(the_Edges_of G2),(the_Edges_of G3)},v1]; :: thesis: ( e1 in E & e1 Joins v1,v,G4 & ( for e2 being object st e2 Joins v1,v,G4 holds
e1 = e2 ) )

thus A48: e1 in E by A47; :: thesis: ( e1 Joins v1,v,G4 & ( for e2 being object st e2 Joins v1,v,G4 holds
e1 = e2 ) )

then e1 in (the_Edges_of G3) \/ E by XBOOLE_0:def 3;
then A49: e1 in the_Edges_of G4 ;
A50: e1 in dom (E --> v) by A48;
A51: (the_Source_of G4) . e1 = s . e1
.= h . e1 by A4, A48, FUNCT_4:13
.= e1 `2 by A4, A48
.= v1 ;
(the_Target_of G4) . e1 = t . e1
.= (E --> v) . e1 by A50, FUNCT_4:13
.= v by A48, FUNCOP_1:7 ;
hence e1 Joins v1,v,G4 by A49, A51, GLIB_000:def 13; :: thesis: for e2 being object st e2 Joins v1,v,G4 holds
e1 = e2

let e2 be object ; :: thesis: ( e2 Joins v1,v,G4 implies e1 = e2 )
assume A52: e2 Joins v1,v,G4 ; :: thesis: e1 = e2
not e2 Joins v1,v,G3 then A53: not e2 in the_Edges_of G3 by A52, GLIB_006:72;
e2 in the_Edges_of G4 by A52, GLIB_000:def 13;
then e2 in (the_Edges_of G3) \/ E ;
then A54: e2 in E by A53, XBOOLE_0:def 3;
then consider w being Element of (the_Vertices_of G1) \ V such that
A55: e2 = [{(the_Edges_of G2),(the_Edges_of G3)},w] ;
(the_Source_of G4) . e2 = s . e2
.= h . e2 by A4, A54, FUNCT_4:13
.= [{(the_Edges_of G2),(the_Edges_of G3)},w] `2 by A4, A54, A55
.= w ;
then A56: ( v = w or v1 = w ) by A52, GLIB_000:def 13;
v1 = w
proof
assume v1 <> w ; :: thesis: contradiction
then v in (the_Vertices_of G1) \ V by A3, A56;
hence contradiction by A1; :: thesis: verum
end;
hence e1 = e2 by A55; :: thesis: verum
end;
then reconsider G4 = G4 as addAdjVertexAll of G3,v,(the_Vertices_of G1) \ V by A29, GLIB_007:def 4;
take G4 ; :: thesis: G4 is GraphComplement of G2
now :: thesis: ( the_Vertices_of G4 = the_Vertices_of G2 & the_Edges_of G4 misses the_Edges_of G2 & ( for u, w being Vertex of G2 st u <> w holds
( ( ex e1 being object st e1 Joins u,w,G2 implies for e2 being object holds not e2 Joins u,w,G4 ) & ( ( for e2 being object holds not e2 Joins u,w,G4 ) implies ex e1 being object st e1 Joins u,w,G2 ) ) ) )
thus the_Vertices_of G4 = (the_Vertices_of G3) \/ {v}
.= (the_Vertices_of G1) \/ {v} by Th98
.= the_Vertices_of G2 by A1, GLIB_007:def 4 ; :: thesis: ( the_Edges_of G4 misses the_Edges_of G2 & ( for u, w being Vertex of G2 st u <> w holds
( ( ex e1 being object st e1 Joins u,w,G2 implies for e2 being object holds not e2 Joins u,w,G4 ) & ( ( for e2 being object holds not e2 Joins u,w,G4 ) implies ex e1 being object st b5 Joins e1,b4,G2 ) ) ) )

(the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } misses the_Edges_of G2 by A1, A21, XBOOLE_1:70;
hence the_Edges_of G4 misses the_Edges_of G2 ; :: thesis: for u, w being Vertex of G2 st u <> w holds
( ( ex e1 being object st e1 Joins u,w,G2 implies for e2 being object holds not e2 Joins u,w,G4 ) & ( ( for e2 being object holds not e2 Joins u,w,G4 ) implies ex e1 being object st b5 Joins e1,b4,G2 ) )

let u, w be Vertex of G2; :: thesis: ( u <> w implies ( ( ex e1 being object st e1 Joins u,w,G2 implies for e2 being object holds not e2 Joins u,w,G4 ) & ( ( for e2 being object holds not e2 Joins u,w,G4 ) implies ex e1 being object st b3 Joins e1,b2,G2 ) ) )
assume A57: u <> w ; :: thesis: ( ( ex e1 being object st e1 Joins u,w,G2 implies for e2 being object holds not e2 Joins u,w,G4 ) & ( ( for e2 being object holds not e2 Joins u,w,G4 ) implies ex e1 being object st b3 Joins e1,b2,G2 ) )
hereby :: thesis: ( ( for e2 being object holds not e2 Joins u,w,G4 ) implies ex e1 being object st b3 Joins e1,b2,G2 )
given e1 being object such that A58: e1 Joins u,w,G2 ; :: thesis: for e2 being object holds not e2 Joins u,w,G4
per cases ( e1 Joins u,w,G1 or not e1 in the_Edges_of G1 ) by A58, GLIB_006:72;
suppose A59: e1 Joins u,w,G1 ; :: thesis: for e2 being object holds not e2 Joins u,w,G4
then ( u is Vertex of G1 & w is Vertex of G1 ) by GLIB_000:13;
then A60: for e2 being object holds not e2 Joins u,w,G3 by A57, A59, Th98;
( u <> v & w <> v ) by A1, A59, GLIB_000:13;
hence for e2 being object holds not e2 Joins u,w,G4 by A29, A60, GLIB_007:49; :: thesis: verum
end;
suppose A61: not e1 in the_Edges_of G1 ; :: thesis: for e2 being object holds not e2 Joins u,w,G4
A62: the_Edges_of G2 = (the_Edges_of G1) \/ (G2 .edgesBetween (V,{v})) by A1, GLIB_007:59;
e1 in the_Edges_of G2 by A58, GLIB_000:def 13;
then e1 in G2 .edgesBetween (V,{v}) by A61, A62, XBOOLE_0:def 3;
then e1 SJoins V,{v},G2 by GLIB_000:def 30;
then ( ( (the_Source_of G2) . e1 in V & (the_Target_of G2) . e1 in {v} ) or ( (the_Source_of G2) . e1 in {v} & (the_Target_of G2) . e1 in V ) ) by GLIB_000:def 15;
then A63: ( ( u in V & w in {v} ) or ( u in {v} & w in V ) ) by A58, GLIB_000:def 13;
then A64: ( ( u = v & w in V ) or ( u in V & w = v ) ) by TARSKI:def 1;
thus for e2 being object holds not e2 Joins u,w,G4 :: thesis: verum
proof
given e2 being object such that A65: e2 Joins u,w,G4 ; :: thesis: contradiction
A66: not e2 in the_Edges_of G3 e2 in the_Edges_of G4 by A65, GLIB_000:def 13;
then e2 in (the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } ;
then A67: e2 in { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } by A66, XBOOLE_0:def 3;
then consider x being Element of (the_Vertices_of G1) \ V such that
A68: e2 = [{(the_Edges_of G2),(the_Edges_of G3)},x] ;
(the_Source_of G4) . e2 = s . e2
.= h . e2 by A4, A67, FUNCT_4:13
.= [{(the_Edges_of G2),(the_Edges_of G3)},x] `2 by A4, A67, A68
.= x ;
then ( (the_Source_of G4) . e2 in the_Vertices_of G1 & not (the_Source_of G4) . e2 in V ) by A3, XBOOLE_0:def 5;
end;
end;
end;
end;
assume A69: for e2 being object holds not e2 Joins u,w,G4 ; :: thesis: ex e1 being object st b3 Joins e1,b2,G2
A70: for e2 being object holds not e2 Joins u,w,G3 by A69, GLIB_006:70;
per cases ( u = v or w = v or ( u <> v & w <> v ) ) ;
suppose A71: u = v ; :: thesis: ex e1 being object st b3 Joins e1,b2,G2
A72: not w in {v} by A57, A71, TARSKI:def 1;
w in V
proof
assume A73: not w in V ; :: thesis: contradiction
the_Vertices_of G2 = (the_Vertices_of G1) \/ {v} by A1, GLIB_007:def 4;
then w in the_Vertices_of G1 by A72, XBOOLE_0:def 3;
then A74: w in (the_Vertices_of G1) \ V by A73, XBOOLE_0:def 5;
set e1 = [{(the_Edges_of G2),(the_Edges_of G3)},w];
A75: [{(the_Edges_of G2),(the_Edges_of G3)},w] in { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } by A74;
then A76: [{(the_Edges_of G2),(the_Edges_of G3)},w] in dom ( { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } --> v) ;
[{(the_Edges_of G2),(the_Edges_of G3)},w] in (the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } by A75, XBOOLE_0:def 3;
then A77: [{(the_Edges_of G2),(the_Edges_of G3)},w] in the_Edges_of G4 ;
A78: (the_Source_of G4) . [{(the_Edges_of G2),(the_Edges_of G3)},w] = s . [{(the_Edges_of G2),(the_Edges_of G3)},w]
.= h . [{(the_Edges_of G2),(the_Edges_of G3)},w] by A4, A75, FUNCT_4:13
.= [{(the_Edges_of G2),(the_Edges_of G3)},w] `2 by A4, A75
.= w ;
(the_Target_of G4) . [{(the_Edges_of G2),(the_Edges_of G3)},w] = t . [{(the_Edges_of G2),(the_Edges_of G3)},w]
.= ( { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } --> v) . [{(the_Edges_of G2),(the_Edges_of G3)},w] by A76, FUNCT_4:13
.= v by A75, FUNCOP_1:7 ;
then [{(the_Edges_of G2),(the_Edges_of G3)},w] Joins v,w,G4 by A77, A78, GLIB_000:def 13;
hence contradiction by A69, A71; :: thesis: verum
end;
then consider e1 being object such that
A79: ( e1 in E0 & e1 Joins w,v,G2 ) and
for e2 being object st e2 Joins w,v,G2 holds
e1 = e2 by A2;
take e1 = e1; :: thesis: e1 Joins u,w,G2
thus e1 Joins u,w,G2 by A71, A79, GLIB_000:14; :: thesis: verum
end;
suppose A80: w = v ; :: thesis: ex e1 being object st b3 Joins e1,b2,G2
A81: not u in {v} by A57, A80, TARSKI:def 1;
u in V
proof
assume A82: not u in V ; :: thesis: contradiction
the_Vertices_of G2 = (the_Vertices_of G1) \/ {v} by A1, GLIB_007:def 4;
then u in the_Vertices_of G1 by A81, XBOOLE_0:def 3;
then A83: u in (the_Vertices_of G1) \ V by A82, XBOOLE_0:def 5;
set e1 = [{(the_Edges_of G2),(the_Edges_of G3)},u];
A84: [{(the_Edges_of G2),(the_Edges_of G3)},u] in { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } by A83;
then A85: [{(the_Edges_of G2),(the_Edges_of G3)},u] in dom ( { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } --> v) ;
[{(the_Edges_of G2),(the_Edges_of G3)},u] in (the_Edges_of G3) \/ { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } by A84, XBOOLE_0:def 3;
then A86: [{(the_Edges_of G2),(the_Edges_of G3)},u] in the_Edges_of G4 ;
A87: (the_Source_of G4) . [{(the_Edges_of G2),(the_Edges_of G3)},u] = s . [{(the_Edges_of G2),(the_Edges_of G3)},u]
.= h . [{(the_Edges_of G2),(the_Edges_of G3)},u] by A4, A84, FUNCT_4:13
.= [{(the_Edges_of G2),(the_Edges_of G3)},u] `2 by A4, A84
.= u ;
(the_Target_of G4) . [{(the_Edges_of G2),(the_Edges_of G3)},u] = t . [{(the_Edges_of G2),(the_Edges_of G3)},u]
.= ( { [{(the_Edges_of G2),(the_Edges_of G3)},w] where w is Element of (the_Vertices_of G1) \ V : verum } --> v) . [{(the_Edges_of G2),(the_Edges_of G3)},u] by A85, FUNCT_4:13
.= v by A84, FUNCOP_1:7 ;
then [{(the_Edges_of G2),(the_Edges_of G3)},u] Joins u,v,G4 by A86, A87, GLIB_000:def 13;
hence contradiction by A69, A80; :: thesis: verum
end;
then consider e1 being object such that
A88: ( e1 in E0 & e1 Joins u,v,G2 ) and
for e2 being object st e2 Joins u,v,G2 holds
e1 = e2 by A2;
take e1 = e1; :: thesis: e1 Joins u,w,G2
thus e1 Joins u,w,G2 by A80, A88; :: thesis: verum
end;
suppose ( u <> v & w <> v ) ; :: thesis: ex e1 being object st b3 Joins e1,b2,G2
then A89: ( not u in {v} & not w in {v} ) by TARSKI:def 1;
the_Vertices_of G2 = (the_Vertices_of G1) \/ {v} by A1, GLIB_007:def 4;
then ( u is Vertex of G1 & w is Vertex of G1 ) by A89, XBOOLE_0:def 3;
then consider e1 being object such that
A90: e1 Joins u,w,G1 by A57, A70, Th98;
take e1 = e1; :: thesis: e1 Joins u,w,G2
thus e1 Joins u,w,G2 by A90, GLIB_006:70; :: thesis: verum
end;
end;
end;
hence G4 is GraphComplement of G2 by Th98; :: thesis: verum
end;
suppose A91: (the_Vertices_of G1) \ V = {} ; :: thesis: ex G4 being addAdjVertexAll of G3,v,(the_Vertices_of G1) \ V st G4 is GraphComplement of G2
take G4 = the addAdjVertexAll of G3,v,(the_Vertices_of G1) \ V; :: thesis: G4 is GraphComplement of G2
A92: G4 is addVertex of G3,v by A91, GLIB_007:55;
now :: thesis: ( the_Vertices_of G4 = the_Vertices_of G2 & the_Edges_of G4 misses the_Edges_of G2 & ( for u, w being Vertex of G2 st u <> w holds
( ( ex e1 being object st e1 Joins u,w,G2 implies for e2 being object holds not e2 Joins u,w,G4 ) & ( ( for e2 being object holds not e2 Joins u,w,G4 ) implies ex e1 being object st e1 Joins u,w,G2 ) ) ) )
thus the_Vertices_of G4 = (the_Vertices_of G3) \/ {v} by A92, GLIB_006:def 10
.= (the_Vertices_of G1) \/ {v} by Th98
.= the_Vertices_of G2 by A1, GLIB_007:def 4 ; :: thesis: ( the_Edges_of G4 misses the_Edges_of G2 & ( for u, w being Vertex of G2 st u <> w holds
( ( ex e1 being object st e1 Joins u,w,G2 implies for e2 being object holds not e2 Joins u,w,G4 ) & ( ( for e2 being object holds not e2 Joins u,w,G4 ) implies ex e1 being object st b5 Joins e1,b4,G2 ) ) ) )

the_Edges_of G3 = the_Edges_of G4 by A92, GLIB_006:def 10;
hence the_Edges_of G4 misses the_Edges_of G2 by A1; :: thesis: for u, w being Vertex of G2 st u <> w holds
( ( ex e1 being object st e1 Joins u,w,G2 implies for e2 being object holds not e2 Joins u,w,G4 ) & ( ( for e2 being object holds not e2 Joins u,w,G4 ) implies ex e1 being object st b5 Joins e1,b4,G2 ) )

let u, w be Vertex of G2; :: thesis: ( u <> w implies ( ( ex e1 being object st e1 Joins u,w,G2 implies for e2 being object holds not e2 Joins u,w,G4 ) & ( ( for e2 being object holds not e2 Joins u,w,G4 ) implies ex e1 being object st b3 Joins e1,b2,G2 ) ) )
assume A93: u <> w ; :: thesis: ( ( ex e1 being object st e1 Joins u,w,G2 implies for e2 being object holds not e2 Joins u,w,G4 ) & ( ( for e2 being object holds not e2 Joins u,w,G4 ) implies ex e1 being object st b3 Joins e1,b2,G2 ) )
hereby :: thesis: ( ( for e2 being object holds not e2 Joins u,w,G4 ) implies ex e1 being object st b3 Joins e1,b2,G2 )
given e1 being object such that A94: e1 Joins u,w,G2 ; :: thesis: for e2 being object holds not e2 Joins u,w,G4
per cases ( e1 Joins u,w,G1 or not e1 in the_Edges_of G1 ) by A94, GLIB_006:72;
suppose A95: e1 Joins u,w,G1 ; :: thesis: for e2 being object holds not e2 Joins u,w,G4
then ( u is Vertex of G1 & w is Vertex of G1 ) by GLIB_000:13;
then for e2 being object holds not e2 Joins u,w,G3 by A93, A95, Th98;
hence for e2 being object holds not e2 Joins u,w,G4 by A92, GLIB_006:87; :: thesis: verum
end;
suppose A96: not e1 in the_Edges_of G1 ; :: thesis: for e2 being object holds not e2 Joins u,w,G4
end;
end;
end;
assume for e2 being object holds not e2 Joins u,w,G4 ; :: thesis: ex e1 being object st b3 Joins e1,b2,G2
then A98: for e2 being object holds not e2 Joins u,w,G3 by A92, GLIB_006:87;
A99: the_Vertices_of G2 = (the_Vertices_of G1) \/ {v} by A1, GLIB_007:def 4;
the_Vertices_of G1 c= V by A91, XBOOLE_1:37;
then A100: V = the_Vertices_of G1 by XBOOLE_0:def 10;
per cases ( u = v or w = v or ( u <> v & w <> v ) ) ;
suppose A101: u = v ; :: thesis: ex e1 being object st b3 Joins e1,b2,G2
then not w in {v} by A93, TARSKI:def 1;
then w in the_Vertices_of G1 by A99, XBOOLE_0:def 3;
then consider e1 being object such that
A102: ( e1 in E0 & e1 Joins w,v,G2 ) and
for e2 being object st e2 Joins w,v,G2 holds
e1 = e2 by A2, A100;
take e1 = e1; :: thesis: e1 Joins u,w,G2
thus e1 Joins u,w,G2 by A101, A102, GLIB_000:14; :: thesis: verum
end;
suppose A103: w = v ; :: thesis: ex e1 being object st b3 Joins e1,b2,G2
then not u in {v} by A93, TARSKI:def 1;
then u in the_Vertices_of G1 by A99, XBOOLE_0:def 3;
then consider e1 being object such that
A104: ( e1 in E0 & e1 Joins u,v,G2 ) and
for e2 being object st e2 Joins u,v,G2 holds
e1 = e2 by A2, A100;
take e1 = e1; :: thesis: e1 Joins u,w,G2
thus e1 Joins u,w,G2 by A103, A104; :: thesis: verum
end;
suppose ( u <> v & w <> v ) ; :: thesis: ex e1 being object st b3 Joins e1,b2,G2
then ( not u in {v} & not w in {v} ) by TARSKI:def 1;
then ( u is Vertex of G1 & w is Vertex of G1 ) by A99, XBOOLE_0:def 3;
then consider e1 being object such that
A105: e1 Joins u,w,G1 by A93, A98, Th98;
take e1 = e1; :: thesis: e1 Joins u,w,G2
thus e1 Joins u,w,G2 by A105, GLIB_006:70; :: thesis: verum
end;
end;
end;
hence G4 is GraphComplement of G2 by Th98; :: thesis: verum
end;
end;