let G3 be _Graph; for v being object
for V being set
for v1 being Vertex of G3
for e being object
for G2 being addAdjVertexAll of G3,v,V st V c= the_Vertices_of G3 & not v in the_Vertices_of G3 & not v1 in V & not e in the_Edges_of G2 holds
for G1 being _Graph st ( G1 is addEdge of G2,v1,e,v or G1 is addEdge of G2,v,e,v1 ) holds
G1 is addAdjVertexAll of G3,v,V \/ {v1}
let v be object ; for V being set
for v1 being Vertex of G3
for e being object
for G2 being addAdjVertexAll of G3,v,V st V c= the_Vertices_of G3 & not v in the_Vertices_of G3 & not v1 in V & not e in the_Edges_of G2 holds
for G1 being _Graph st ( G1 is addEdge of G2,v1,e,v or G1 is addEdge of G2,v,e,v1 ) holds
G1 is addAdjVertexAll of G3,v,V \/ {v1}
let V be set ; for v1 being Vertex of G3
for e being object
for G2 being addAdjVertexAll of G3,v,V st V c= the_Vertices_of G3 & not v in the_Vertices_of G3 & not v1 in V & not e in the_Edges_of G2 holds
for G1 being _Graph st ( G1 is addEdge of G2,v1,e,v or G1 is addEdge of G2,v,e,v1 ) holds
G1 is addAdjVertexAll of G3,v,V \/ {v1}
let v1 be Vertex of G3; for e being object
for G2 being addAdjVertexAll of G3,v,V st V c= the_Vertices_of G3 & not v in the_Vertices_of G3 & not v1 in V & not e in the_Edges_of G2 holds
for G1 being _Graph st ( G1 is addEdge of G2,v1,e,v or G1 is addEdge of G2,v,e,v1 ) holds
G1 is addAdjVertexAll of G3,v,V \/ {v1}
let e be object ; for G2 being addAdjVertexAll of G3,v,V st V c= the_Vertices_of G3 & not v in the_Vertices_of G3 & not v1 in V & not e in the_Edges_of G2 holds
for G1 being _Graph st ( G1 is addEdge of G2,v1,e,v or G1 is addEdge of G2,v,e,v1 ) holds
G1 is addAdjVertexAll of G3,v,V \/ {v1}
let G2 be addAdjVertexAll of G3,v,V; ( V c= the_Vertices_of G3 & not v in the_Vertices_of G3 & not v1 in V & not e in the_Edges_of G2 implies for G1 being _Graph st ( G1 is addEdge of G2,v1,e,v or G1 is addEdge of G2,v,e,v1 ) holds
G1 is addAdjVertexAll of G3,v,V \/ {v1} )
assume that
A1:
( V c= the_Vertices_of G3 & not v in the_Vertices_of G3 )
and
A2:
( not v1 in V & not e in the_Edges_of G2 )
; for G1 being _Graph st ( G1 is addEdge of G2,v1,e,v or G1 is addEdge of G2,v,e,v1 ) holds
G1 is addAdjVertexAll of G3,v,V \/ {v1}
consider E being set such that
A3:
( card V = card E & E misses the_Edges_of G3 & the_Edges_of G2 = (the_Edges_of G3) \/ E )
and
A4:
for v1 being object st v1 in V holds
ex e1 being object st
( e1 in E & e1 Joins v1,v,G2 & ( for e2 being object st e2 Joins v1,v,G2 holds
e1 = e2 ) )
by A1, Def4;
consider f being Function such that
A5:
( f is one-to-one & dom f = E & rng f = V )
by WELLORD2:def 4, A3, CARD_1:5;
set f1 = f +* (e .--> v1);
reconsider E1 = E \/ {e}, V1 = V \/ {v1} as set ;
A6: dom (f +* (e .--> v1)) =
(dom f) \/ (dom (e .--> v1))
by FUNCT_4:def 1
.=
(dom f) \/ (dom ({e} --> v1))
by FUNCOP_1:def 9
.=
E1
by A5
;
( e is set & v1 is set )
by TARSKI:1;
then A7:
rng (e .--> v1) = {v1}
by FUNCOP_1:88;
then A8:
(rng f) \/ (rng (e .--> v1)) = V \/ {v1}
by A5;
(rng f) /\ (rng (e .--> v1)) = {}
then A10:
f +* (e .--> v1) is one-to-one
by A5, XBOOLE_0:def 7, FUNCT_4:92;
for w being object st w in (rng f) \/ (rng (e .--> v1)) holds
w in rng (f +* (e .--> v1))
then A14:
(rng f) \/ (rng (e .--> v1)) c= rng (f +* (e .--> v1))
by TARSKI:def 3;
rng (f +* (e .--> v1)) c= (rng f) \/ (rng (e .--> v1))
by FUNCT_4:17;
then
rng (f +* (e .--> v1)) = (rng f) \/ (rng (e .--> v1))
by A14, XBOOLE_0:def 10;
then A15:
card E1 = card V1
by A8, A10, A6, WELLORD2:def 4, CARD_1:5;
A16:
(the_Edges_of G2) /\ {e} = {}
by A2, ZFMISC_1:50, XBOOLE_0:def 7;
the_Edges_of G3 c= the_Edges_of G2
by GLIB_006:def 9;
then
(the_Edges_of G3) /\ {e} c= (the_Edges_of G2) /\ {e}
by XBOOLE_1:26;
then A17:
(the_Edges_of G3) /\ {e} = {}
by A16;
(the_Edges_of G3) /\ E1 = (the_Edges_of G3) /\ {e}
by XBOOLE_1:78, A3;
then A18:
E1 misses the_Edges_of G3
by A17, XBOOLE_0:def 7;
A19:
(the_Edges_of G3) \/ E1 = (the_Edges_of G2) \/ {e}
by A3, XBOOLE_1:4;
( v is Vertex of G2 & v1 is Vertex of G3 )
by A1, Th50;
then A20:
( v in the_Vertices_of G2 & v1 is Vertex of G2 )
by GLIB_006:68;
A21:
V1 c= the_Vertices_of G3
by A1, XBOOLE_1:8;
let G1 be _Graph; ( ( G1 is addEdge of G2,v1,e,v or G1 is addEdge of G2,v,e,v1 ) implies G1 is addAdjVertexAll of G3,v,V \/ {v1} )
assume
( G1 is addEdge of G2,v1,e,v or G1 is addEdge of G2,v,e,v1 )
; G1 is addAdjVertexAll of G3,v,V \/ {v1}
per cases then
( G1 is addEdge of G2,v1,e,v or G1 is addEdge of G2,v,e,v1 )
;
suppose A22:
G1 is
addEdge of
G2,
v1,
e,
v
;
G1 is addAdjVertexAll of G3,v,V \/ {v1}then A23:
(
the_Vertices_of G1 = the_Vertices_of G2 &
the_Edges_of G1 = (the_Edges_of G2) \/ {e} &
the_Source_of G1 = (the_Source_of G2) +* (e .--> v1) &
the_Target_of G1 = (the_Target_of G2) +* (e .--> v) )
by A20, A2, GLIB_006:def 11;
A24:
G1 is
Supergraph of
G3
by A22, GLIB_006:62;
now ( the_Vertices_of G1 = (the_Vertices_of G3) \/ {v} & ( for e3 being object holds
( not e3 Joins v,v,G1 & ( for v3 being object holds
( ( not v3 in V1 implies not e3 Joins v3,v,G1 ) & ( for v2 being object st v3 <> v & v2 <> v & e3 DJoins v3,v2,G1 holds
e3 DJoins v3,v2,G3 ) ) ) ) ) & ex E1 being set st
( card V1 = card E1 & E1 misses the_Edges_of G3 & the_Edges_of G1 = (the_Edges_of G3) \/ E1 & ( for v3 being object st v3 in V1 holds
ex e1 being object st
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) ) ) ) )thus
the_Vertices_of G1 = (the_Vertices_of G3) \/ {v}
by A23, A1, Def4;
( ( for e3 being object holds
( not e3 Joins v,v,G1 & ( for v3 being object holds
( ( not v3 in V1 implies not e3 Joins v3,v,G1 ) & ( for v2 being object st v3 <> v & v2 <> v & e3 DJoins v3,v2,G1 holds
e3 DJoins v3,v2,G3 ) ) ) ) ) & ex E1 being set st
( card V1 = card E1 & E1 misses the_Edges_of G3 & the_Edges_of G1 = (the_Edges_of G3) \/ E1 & ( for v3 being object st v3 in V1 holds
ex e1 being object st
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) ) ) ) )hereby ex E1 being set st
( card V1 = card E1 & E1 misses the_Edges_of G3 & the_Edges_of G1 = (the_Edges_of G3) \/ E1 & ( for v3 being object st v3 in V1 holds
ex e1 being object st
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) ) ) )
let e3 be
object ;
( not e3 Joins v,v,G1 & ( for v3 being object holds
( ( not v3 in V1 implies not e3 Joins v3,v,G1 ) & ( for v2 being object st v3 <> v & v2 <> v & e3 DJoins v3,v2,G1 holds
b3 DJoins b4,b5,G3 ) ) ) )thus
not
e3 Joins v,
v,
G1
for v3 being object holds
( ( not v3 in V1 implies not e3 Joins v3,v,G1 ) & ( for v2 being object st v3 <> v & v2 <> v & e3 DJoins v3,v2,G1 holds
b3 DJoins b4,b5,G3 ) )proof
assume A25:
e3 Joins v,
v,
G1
;
contradiction
end; let v3 be
object ;
( ( not v3 in V1 implies not e3 Joins v3,v,G1 ) & ( for v2 being object st v3 <> v & v2 <> v & e3 DJoins v3,v2,G1 holds
b2 DJoins b3,b4,G3 ) )thus
( not
v3 in V1 implies not
e3 Joins v3,
v,
G1 )
for v2 being object st v3 <> v & v2 <> v & e3 DJoins v3,v2,G1 holds
b2 DJoins b3,b4,G3let v2 be
object ;
( v3 <> v & v2 <> v & e3 DJoins v3,v2,G1 implies b1 DJoins b2,b3,G3 )assume A28:
(
v3 <> v &
v2 <> v &
e3 DJoins v3,
v2,
G1 )
;
b1 DJoins b2,b3,G3
end; take E1 =
E1;
( card V1 = card E1 & E1 misses the_Edges_of G3 & the_Edges_of G1 = (the_Edges_of G3) \/ E1 & ( for v3 being object st v3 in V1 holds
ex e1 being object st
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) ) ) )thus
card V1 = card E1
by A15;
( E1 misses the_Edges_of G3 & the_Edges_of G1 = (the_Edges_of G3) \/ E1 & ( for v3 being object st v3 in V1 holds
ex e1 being object st
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) ) ) )thus
E1 misses the_Edges_of G3
by A18;
( the_Edges_of G1 = (the_Edges_of G3) \/ E1 & ( for v3 being object st v3 in V1 holds
ex e1 being object st
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) ) ) )thus
the_Edges_of G1 = (the_Edges_of G3) \/ E1
by A19, A23;
for v3 being object st v3 in V1 holds
ex e1 being object st
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) )let v3 be
object ;
( v3 in V1 implies ex e1 being object st
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) ) )assume A30:
v3 in V1
;
ex e1 being object st
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) )thus
ex
e1 being
object st
(
e1 in E1 &
e1 Joins v3,
v,
G1 & ( for
e2 being
object st
e2 Joins v3,
v,
G1 holds
e1 = e2 ) )
verumproof
per cases
( v3 in V or v3 in {v1} )
by A30, XBOOLE_0:def 3;
suppose A31:
v3 in V
;
ex e1 being object st
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) )then consider e1 being
object such that A32:
(
e1 in E &
e1 Joins v3,
v,
G2 )
and A33:
for
e2 being
object st
e2 Joins v3,
v,
G2 holds
e1 = e2
by A4;
take
e1
;
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) )thus
e1 in E1
by A32, XBOOLE_0:def 3;
( e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) )
(
v3 is
set &
v is
set )
by TARSKI:1;
hence
e1 Joins v3,
v,
G1
by A22, A32, GLIB_006:70;
for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2let e2 be
object ;
( e2 Joins v3,v,G1 implies e1 = e2 )assume A34:
e2 Joins v3,
v,
G1
;
e1 = e2 end; suppose
v3 in {v1}
;
ex e1 being object st
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) )then A35:
v3 = v1
by TARSKI:def 1;
take
e
;
( e in E1 & e Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e = e2 ) )
e in {e}
by TARSKI:def 1;
hence
e in E1
by XBOOLE_0:def 3;
( e Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e = e2 ) )
e DJoins v1,
v,
G1
by A2, A20, A22, GLIB_006:105;
hence
e Joins v3,
v,
G1
by A35, GLIB_000:16;
for e2 being object st e2 Joins v3,v,G1 holds
e = e2let e2 be
object ;
( e2 Joins v3,v,G1 implies e = e2 )assume A36:
e2 Joins v3,
v,
G1
;
e = e2 end; end;
end; end; hence
G1 is
addAdjVertexAll of
G3,
v,
V \/ {v1}
by A24, A21, A1, Def4;
verum end; suppose A37:
G1 is
addEdge of
G2,
v,
e,
v1
;
G1 is addAdjVertexAll of G3,v,V \/ {v1}then A38:
(
the_Vertices_of G1 = the_Vertices_of G2 &
the_Edges_of G1 = (the_Edges_of G2) \/ {e} &
the_Source_of G1 = (the_Source_of G2) +* (e .--> v) &
the_Target_of G1 = (the_Target_of G2) +* (e .--> v1) )
by A20, A2, GLIB_006:def 11;
A39:
G1 is
Supergraph of
G3
by A37, GLIB_006:62;
now ( the_Vertices_of G1 = (the_Vertices_of G3) \/ {v} & ( for e3 being object holds
( not e3 Joins v,v,G1 & ( for v3 being object holds
( ( not v3 in V1 implies not e3 Joins v3,v,G1 ) & ( for v2 being object st v3 <> v & v2 <> v & e3 DJoins v3,v2,G1 holds
e3 DJoins v3,v2,G3 ) ) ) ) ) & ex E1 being set st
( card V1 = card E1 & E1 misses the_Edges_of G3 & the_Edges_of G1 = (the_Edges_of G3) \/ E1 & ( for v3 being object st v3 in V1 holds
ex e1 being object st
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) ) ) ) )thus
the_Vertices_of G1 = (the_Vertices_of G3) \/ {v}
by A1, A38, Def4;
( ( for e3 being object holds
( not e3 Joins v,v,G1 & ( for v3 being object holds
( ( not v3 in V1 implies not e3 Joins v3,v,G1 ) & ( for v2 being object st v3 <> v & v2 <> v & e3 DJoins v3,v2,G1 holds
e3 DJoins v3,v2,G3 ) ) ) ) ) & ex E1 being set st
( card V1 = card E1 & E1 misses the_Edges_of G3 & the_Edges_of G1 = (the_Edges_of G3) \/ E1 & ( for v3 being object st v3 in V1 holds
ex e1 being object st
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) ) ) ) )hereby ex E1 being set st
( card V1 = card E1 & E1 misses the_Edges_of G3 & the_Edges_of G1 = (the_Edges_of G3) \/ E1 & ( for v3 being object st v3 in V1 holds
ex e1 being object st
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) ) ) )
let e3 be
object ;
( not e3 Joins v,v,G1 & ( for v3 being object holds
( ( not v3 in V1 implies not e3 Joins v3,v,G1 ) & ( for v2 being object st v3 <> v & v2 <> v & e3 DJoins v3,v2,G1 holds
b3 DJoins b4,b5,G3 ) ) ) )thus
not
e3 Joins v,
v,
G1
for v3 being object holds
( ( not v3 in V1 implies not e3 Joins v3,v,G1 ) & ( for v2 being object st v3 <> v & v2 <> v & e3 DJoins v3,v2,G1 holds
b3 DJoins b4,b5,G3 ) )proof
assume A40:
e3 Joins v,
v,
G1
;
contradiction
end; let v3 be
object ;
( ( not v3 in V1 implies not e3 Joins v3,v,G1 ) & ( for v2 being object st v3 <> v & v2 <> v & e3 DJoins v3,v2,G1 holds
b2 DJoins b3,b4,G3 ) )thus
( not
v3 in V1 implies not
e3 Joins v3,
v,
G1 )
for v2 being object st v3 <> v & v2 <> v & e3 DJoins v3,v2,G1 holds
b2 DJoins b3,b4,G3let v2 be
object ;
( v3 <> v & v2 <> v & e3 DJoins v3,v2,G1 implies b1 DJoins b2,b3,G3 )assume A43:
(
v3 <> v &
v2 <> v &
e3 DJoins v3,
v2,
G1 )
;
b1 DJoins b2,b3,G3
end; take E1 =
E1;
( card V1 = card E1 & E1 misses the_Edges_of G3 & the_Edges_of G1 = (the_Edges_of G3) \/ E1 & ( for v3 being object st v3 in V1 holds
ex e1 being object st
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) ) ) )thus
card V1 = card E1
by A15;
( E1 misses the_Edges_of G3 & the_Edges_of G1 = (the_Edges_of G3) \/ E1 & ( for v3 being object st v3 in V1 holds
ex e1 being object st
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) ) ) )thus
E1 misses the_Edges_of G3
by A18;
( the_Edges_of G1 = (the_Edges_of G3) \/ E1 & ( for v3 being object st v3 in V1 holds
ex e1 being object st
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) ) ) )thus
the_Edges_of G1 = (the_Edges_of G3) \/ E1
by A19, A38;
for v3 being object st v3 in V1 holds
ex e1 being object st
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) )let v3 be
object ;
( v3 in V1 implies ex e1 being object st
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) ) )assume A45:
v3 in V1
;
ex e1 being object st
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) )thus
ex
e1 being
object st
(
e1 in E1 &
e1 Joins v3,
v,
G1 & ( for
e2 being
object st
e2 Joins v3,
v,
G1 holds
e1 = e2 ) )
verumproof
per cases
( v3 in V or v3 in {v1} )
by A45, XBOOLE_0:def 3;
suppose A46:
v3 in V
;
ex e1 being object st
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) )then consider e1 being
object such that A47:
(
e1 in E &
e1 Joins v3,
v,
G2 )
and A48:
for
e2 being
object st
e2 Joins v3,
v,
G2 holds
e1 = e2
by A4;
take
e1
;
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) )thus
e1 in E1
by A47, XBOOLE_0:def 3;
( e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) )
(
v3 is
set &
v is
set )
by TARSKI:1;
hence
e1 Joins v3,
v,
G1
by A37, A47, GLIB_006:70;
for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2let e2 be
object ;
( e2 Joins v3,v,G1 implies e1 = e2 )assume A49:
e2 Joins v3,
v,
G1
;
e1 = e2 end; suppose
v3 in {v1}
;
ex e1 being object st
( e1 in E1 & e1 Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e1 = e2 ) )then A50:
v3 = v1
by TARSKI:def 1;
take
e
;
( e in E1 & e Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e = e2 ) )
e in {e}
by TARSKI:def 1;
hence
e in E1
by XBOOLE_0:def 3;
( e Joins v3,v,G1 & ( for e2 being object st e2 Joins v3,v,G1 holds
e = e2 ) )
e DJoins v,
v1,
G1
by A2, A20, A37, GLIB_006:105;
hence
e Joins v3,
v,
G1
by A50, GLIB_000:16;
for e2 being object st e2 Joins v3,v,G1 holds
e = e2let e2 be
object ;
( e2 Joins v3,v,G1 implies e = e2 )assume A51:
e2 Joins v3,
v,
G1
;
e = e2 end; end;
end; end; hence
G1 is
addAdjVertexAll of
G3,
v,
V \/ {v1}
by A39, A21, A1, Def4;
verum end; end;