glib_012.miz
begin
definition
let G be
_Graph;
::
GLIB_012:def1
attr G is
loopfull means
:
Def1: for v be
Vertex of G holds ex e be
object st e
Joins (v,v,G);
end
theorem ::
GLIB_012:1
Th1: for G be
_Graph holds G is
loopfull iff for v be
Vertex of G holds ex e be
object st e
DJoins (v,v,G)
proof
let G be
_Graph;
hereby
assume
A1: G is
loopfull;
let v be
Vertex of G;
consider e be
object such that
A2: e
Joins (v,v,G) by
A1;
take e;
thus e
DJoins (v,v,G) by
A2,
GLIB_000: 16;
end;
assume
A3: for v be
Vertex of G holds ex e be
object st e
DJoins (v,v,G);
let v be
Vertex of G;
consider e be
object such that
A4: e
DJoins (v,v,G) by
A3;
take e;
thus e
Joins (v,v,G) by
A4,
GLIB_000: 16;
end;
theorem ::
GLIB_012:2
for G be
_Graph holds G is
loopfull iff for v be
Vertex of G holds (v,v)
are_adjacent
proof
let G be
_Graph;
hereby
assume
A1: G is
loopfull;
let v be
Vertex of G;
consider e be
object such that
A2: e
Joins (v,v,G) by
A1;
thus (v,v)
are_adjacent by
A2,
CHORD:def 3;
end;
assume
A3: for v be
Vertex of G holds (v,v)
are_adjacent ;
let v be
Vertex of G;
consider e be
object such that
A4: e
Joins (v,v,G) by
A3,
CHORD:def 3;
take e;
thus thesis by
A4;
end;
registration
cluster
loopfull -> non
loopless for
_Graph;
coherence
proof
let G be
_Graph;
assume G is
loopfull;
then
consider e be
object such that
A1: e
Joins ( the
Vertex of G, the
Vertex of G,G);
thus thesis by
A1,
GLIB_000: 18;
end;
cluster
_trivial non
loopless ->
loopfull for
_Graph;
coherence
proof
let G be
_Graph;
assume
A2: G is
_trivial non
loopless;
let v be
Vertex of G;
consider v0 be
Vertex of G such that
A3: (
the_Vertices_of G)
=
{v0} by
A2,
GLIB_000: 22;
A4: v
= v0 by
A3,
TARSKI:def 1;
consider v9 be
object such that
A5: ex e be
object st e
Joins (v9,v9,G) by
A2,
GLIB_000: 18;
consider e be
object such that
A6: e
Joins (v9,v9,G) by
A5;
take e;
v9
in (
the_Vertices_of G) by
A6,
GLIB_000: 13;
then v9
= v0 by
A3,
TARSKI:def 1;
hence e
Joins (v,v,G) by
A4,
A6;
end;
cluster
loopfull
complete for
_Graph;
existence
proof
set G2 = the
_trivial
_Graph;
set G1 = the
addEdge of G2, the
Vertex of G2, (
the_Edges_of G2), the
Vertex of G2;
take G1;
thus thesis;
end;
cluster non
loopfull for
_Graph;
existence
proof
take the
loopless
_Graph;
thus thesis;
end;
end
theorem ::
GLIB_012:3
Th3: for G1 be
_Graph, E be
set, G2 be
reverseEdgeDirections of G1, E holds G1 is
loopfull iff G2 is
loopfull
proof
let G1 be
_Graph, E be
set, G2 be
reverseEdgeDirections of G1, E;
hereby
assume
A1: G1 is
loopfull;
now
let v be
Vertex of G2;
v is
Vertex of G1 by
GLIB_007: 4;
then
consider e be
object such that
A2: e
Joins (v,v,G1) by
A1;
take e;
thus e
Joins (v,v,G2) by
A2,
GLIB_007: 9;
end;
hence G2 is
loopfull;
end;
assume
A3: G2 is
loopfull;
now
let v be
Vertex of G1;
v is
Vertex of G2 by
GLIB_007: 4;
then
consider e be
object such that
A4: e
Joins (v,v,G2) by
A3;
take e;
thus e
Joins (v,v,G1) by
A4,
GLIB_007: 9;
end;
hence G1 is
loopfull;
end;
registration
let G be
loopfull
_Graph, E be
set;
cluster ->
loopfull for
reverseEdgeDirections of G, E;
coherence by
Th3;
end
registration
let G be non
loopfull
_Graph, E be
set;
cluster -> non
loopfull for
reverseEdgeDirections of G, E;
coherence by
Th3;
end
theorem ::
GLIB_012:4
Th4: for G1,G2 be
_Graph st G1
== G2 holds G1 is
loopfull implies G2 is
loopfull
proof
let G1,G2 be
_Graph;
assume G1
== G2;
then G2 is
reverseEdgeDirections of G1,
{} by
GLIB_009: 42;
hence thesis;
end;
theorem ::
GLIB_012:5
Th5: for G2 be
loopfull
_Graph, G1 be
Supergraph of G2 st (
the_Vertices_of G1)
= (
the_Vertices_of G2) holds G1 is
loopfull
proof
let G2 be
loopfull
_Graph, G1 be
Supergraph of G2;
assume
A1: (
the_Vertices_of G1)
= (
the_Vertices_of G2);
let v be
Vertex of G1;
consider e be
object such that
A2: e
Joins (v,v,G2) by
A1,
Def1;
take e;
thus e
Joins (v,v,G1) by
A2,
GLIB_006: 70;
end;
theorem ::
GLIB_012:6
Th6: for G1,G2 be
_Graph, F be
PGraphMapping of G1, G2 st (
rng (F
_V ))
= (
the_Vertices_of G2) & (G1
.loops() )
c= (
dom (F
_E )) holds G1 is
loopfull implies G2 is
loopfull
proof
let G1,G2 be
_Graph, F be
PGraphMapping of G1, G2;
assume
A1: (
rng (F
_V ))
= (
the_Vertices_of G2) & (G1
.loops() )
c= (
dom (F
_E ));
assume
A2: G1 is
loopfull;
now
let v be
Vertex of G2;
consider v0 be
object such that
A3: v0
in (
dom (F
_V )) & ((F
_V )
. v0)
= v by
A1,
FUNCT_1:def 3;
consider e0 be
object such that
A4: e0
Joins (v0,v0,G1) by
A2,
A3;
reconsider e = ((F
_E )
. e0) as
object;
take e;
e0
in (G1
.loops() ) by
A4,
GLIB_009:def 2;
hence e
Joins (v,v,G2) by
A1,
A3,
A4,
GLIB_010: 4;
end;
hence G2 is
loopfull;
end;
theorem ::
GLIB_012:7
Th7: for G1,G2 be
_Graph, F be
PGraphMapping of G1, G2 st F is
total
onto holds G1 is
loopfull implies G2 is
loopfull
proof
let G1,G2 be
_Graph, F be
PGraphMapping of G1, G2;
assume
A1: F is
total
onto;
(G1
.loops() )
c= (
the_Edges_of G1);
then (G1
.loops() )
c= (
dom (F
_E )) & (
rng (F
_V ))
= (
the_Vertices_of G2) by
A1,
GLIB_010:def 11,
GLIB_010:def 12;
hence thesis by
Th6;
end;
theorem ::
GLIB_012:8
Th8: for G1,G2 be
_Graph, F be
PGraphMapping of G1, G2 st F is
semi-continuous & (
dom (F
_V ))
= (
the_Vertices_of G1) & (G2
.loops() )
c= (
rng (F
_E )) holds G2 is
loopfull implies G1 is
loopfull
proof
let G1,G2 be
_Graph, F be
PGraphMapping of G1, G2;
assume that
A1: F is
semi-continuous and
A2: (
dom (F
_V ))
= (
the_Vertices_of G1) & (G2
.loops() )
c= (
rng (F
_E )) and
A3: G2 is
loopfull;
now
let v be
Vertex of G1;
((F
_V )
. v)
in (
rng (F
_V )) by
A2,
FUNCT_1: 3;
then
consider e be
object such that
A4: e
Joins (((F
_V )
. v),((F
_V )
. v),G2) by
A3;
e
in (G2
.loops() ) by
A4,
GLIB_009:def 2;
then
consider e0 be
object such that
A5: e0
in (
dom (F
_E )) & ((F
_E )
. e0)
= e by
A2,
FUNCT_1:def 3;
take e0;
thus e0
Joins (v,v,G1) by
A1,
A2,
A4,
A5,
GLIB_010:def 15;
end;
hence G1 is
loopfull;
end;
theorem ::
GLIB_012:9
Th9: for G1,G2 be
_Graph, F be
PGraphMapping of G1, G2 st F is
total
onto
semi-continuous holds G2 is
loopfull implies G1 is
loopfull
proof
let G1,G2 be
_Graph, F be
PGraphMapping of G1, G2;
assume
A1: F is
total
onto
semi-continuous;
(G2
.loops() )
c= (
the_Edges_of G2);
then (
dom (F
_V ))
= (
the_Vertices_of G1) & (G2
.loops() )
c= (
rng (F
_E )) by
A1,
GLIB_010:def 11,
GLIB_010:def 12;
hence thesis by
A1,
Th8;
end;
theorem ::
GLIB_012:10
for G1,G2 be
_Graph, F be
PGraphMapping of G1, G2 st F is
isomorphism holds G1 is
loopfull iff G2 is
loopfull by
Th7,
Th9;
registration
let G be
loopfull
_Graph, V be
set;
cluster ->
loopfull for
inducedSubgraph of G, V;
coherence
proof
let G2 be
inducedSubgraph of G, V;
per cases ;
suppose
A1: V is non
empty
Subset of (
the_Vertices_of G);
let v be
Vertex of G2;
v
in (
the_Vertices_of G2);
then
reconsider v0 = v as
Vertex of G;
consider e be
object such that
A2: e
Joins (v0,v0,G) by
Def1;
take e;
(
the_Vertices_of G2)
= V by
A1,
GLIB_000:def 37;
then e
in (G
.edgesBetween V) by
A2,
GLIB_000: 32;
then e
in (
the_Edges_of G2) & e is
set & v is
set by
A1,
GLIB_000:def 37;
hence e
Joins (v,v,G2) by
A2,
GLIB_000: 73;
end;
suppose not V is non
empty
Subset of (
the_Vertices_of G);
then G2
== G by
GLIB_000:def 37;
hence thesis by
Th4;
end;
end;
cluster ->
loopfull for
removeVertices of G, V;
coherence ;
cluster ->
loopfull for
removeVertex of G, V;
coherence ;
end
registration
let G be non
loopfull
_Graph;
cluster -> non
loopfull for
spanning
Subgraph of G;
coherence
proof
let G2 be
spanning
Subgraph of G;
assume
A1: G2 is
loopfull;
now
let v be
Vertex of G;
v is
Vertex of G2 by
GLIB_000:def 33;
then
consider e be
object such that
A2: e
Joins (v,v,G2) by
A1;
take e;
thus e
Joins (v,v,G) by
A2,
GLIB_000: 72;
end;
hence contradiction by
Def1;
end;
let E be
set;
cluster -> non
loopfull for
inducedSubgraph of G, (
the_Vertices_of G), E;
coherence
proof
let G2 be
inducedSubgraph of G, (
the_Vertices_of G), E;
per cases ;
suppose E is
Subset of (
the_Edges_of G);
hence thesis;
end;
suppose not E is
Subset of (
the_Edges_of G);
then not E
c= (G
.edgesBetween (
the_Vertices_of G)) by
GLIB_000: 34;
then G
== G2 by
GLIB_000:def 37;
hence thesis by
Th4;
end;
end;
cluster -> non
loopfull for
removeEdges of G, E;
coherence ;
cluster -> non
loopfull for
removeEdge of G, E;
coherence ;
end
theorem ::
GLIB_012:11
Th11: for G2 be
_Graph, V be
set, G1 be
addVertices of G2, V st (V
\ (
the_Vertices_of G2))
<>
{} holds G1 is non
loopfull
proof
let G2 be
_Graph, V be
set, G1 be
addVertices of G2, V;
assume (V
\ (
the_Vertices_of G2))
<>
{} ;
then
consider v be
object such that
A1: v
in (V
\ (
the_Vertices_of G2)) by
XBOOLE_0:def 1;
reconsider v as
Vertex of G1 by
A1,
GLIB_006: 86;
(v
.edgesInOut() )
=
{} by
A1,
GLIB_006: 88,
GLIB_000:def 49;
then for e be
object holds not e
Joins (v,v,G1) by
GLIB_000: 62;
hence thesis;
end;
registration
let G be non
loopfull
_Graph, V be
set;
cluster -> non
loopfull for
addVertices of G, V;
coherence
proof
let G1 be
addVertices of G, V;
per cases ;
suppose (V
\ (
the_Vertices_of G))
<>
{} ;
hence thesis by
Th11;
end;
suppose (V
\ (
the_Vertices_of G))
=
{} ;
then G
== G1 by
GLIB_006: 78,
XBOOLE_1: 37;
hence thesis by
Th4;
end;
end;
end
registration
let G be
loopfull
_Graph, v,e,w be
object;
cluster ->
loopfull for
addEdge of G, v, e, w;
coherence
proof
let G1 be
addEdge of G, v, e, w;
per cases ;
suppose
A1: v is
Vertex of G & w is
Vertex of G & not e
in (
the_Edges_of G);
reconsider e as
set by
TARSKI: 1;
G is
removeEdge of G1, e by
A1,
GLIB_006: 108;
hence thesis;
end;
suppose not (v is
Vertex of G & w is
Vertex of G & not e
in (
the_Edges_of G));
then G
== G1 by
GLIB_006:def 11;
hence thesis by
Th4;
end;
end;
end
theorem ::
GLIB_012:12
Th12: for G2 be
_Graph, v be
Vertex of G2, e,w be
object holds for G1 be
addAdjVertex of G2, v, e, w st not e
in (
the_Edges_of G2) & not w
in (
the_Vertices_of G2) holds G1 is non
loopfull
proof
let G2 be
_Graph, v be
Vertex of G2, e,w be
object;
let G1 be
addAdjVertex of G2, v, e, w;
assume
A1: not e
in (
the_Edges_of G2) & not w
in (
the_Vertices_of G2);
then
reconsider w as
Vertex of G1 by
GLIB_006: 129;
v
<> w by
A1;
then for e be
object holds not e
Joins (w,w,G1) by
A1,
GLIB_006: 133;
hence thesis;
end;
theorem ::
GLIB_012:13
Th13: for G2 be
_Graph, v,e be
object, w be
Vertex of G2 holds for G1 be
addAdjVertex of G2, v, e, w st not e
in (
the_Edges_of G2) & not v
in (
the_Vertices_of G2) holds G1 is non
loopfull
proof
let G2 be
_Graph, v,e be
object, w be
Vertex of G2;
let G1 be
addAdjVertex of G2, v, e, w;
assume
A1: not e
in (
the_Edges_of G2) & not v
in (
the_Vertices_of G2);
then
reconsider v as
Vertex of G1 by
GLIB_006: 130;
v
<> w by
A1;
then for e be
object holds not e
Joins (v,v,G1) by
A1,
GLIB_006: 134;
hence thesis;
end;
registration
let G be non
loopfull
_Graph, v,e,w be
object;
cluster -> non
loopfull for
addAdjVertex of G, v, e, w;
coherence
proof
let G1 be
addAdjVertex of G, v, e, w;
per cases ;
suppose v
in (
the_Vertices_of G) & not w
in (
the_Vertices_of G) & not e
in (
the_Edges_of G);
hence thesis by
Th12;
end;
suppose not v
in (
the_Vertices_of G) & w
in (
the_Vertices_of G) & not e
in (
the_Edges_of G);
hence thesis by
Th13;
end;
suppose not (v
in (
the_Vertices_of G) & not w
in (
the_Vertices_of G) & not e
in (
the_Edges_of G)) & not ( not v
in (
the_Vertices_of G) & w
in (
the_Vertices_of G) & not e
in (
the_Edges_of G));
then G1
== G by
GLIB_006:def 12;
hence thesis by
Th4;
end;
end;
end
theorem ::
GLIB_012:14
Th14: for G2 be
_Graph, v be
object, V be
Subset of (
the_Vertices_of G2) holds for G1 be
addAdjVertexAll of G2, v, V st not v
in (
the_Vertices_of G2) holds G1 is non
loopfull
proof
let G2 be
_Graph, v be
object, V be
Subset of (
the_Vertices_of G2);
let G1 be
addAdjVertexAll of G2, v, V;
assume
A1: not v
in (
the_Vertices_of G2);
then
reconsider v as
Vertex of G1 by
GLIB_007: 50;
for e be
object holds not e
Joins (v,v,G1) by
A1,
GLIB_007:def 4;
hence thesis;
end;
registration
let G be non
loopfull
_Graph, v be
object, V be
set;
cluster -> non
loopfull for
addAdjVertexAll of G, v, V;
coherence
proof
let G1 be
addAdjVertexAll of G, v, V;
per cases ;
suppose V
c= (
the_Vertices_of G) & not v
in (
the_Vertices_of G);
hence thesis by
Th14;
end;
suppose not (V
c= (
the_Vertices_of G) & not v
in (
the_Vertices_of G));
then G
== G1 by
GLIB_007:def 4;
hence thesis by
Th4;
end;
end;
end
registration
let G be
loopfull
_Graph;
cluster ->
loopfull for
removeParallelEdges of G;
coherence
proof
let G2 be
removeParallelEdges of G;
consider E be
RepEdgeSelection of G such that
A1: G2 is
inducedSubgraph of G, (
the_Vertices_of G), E by
GLIB_009:def 7;
now
let v be
Vertex of G2;
v is
Vertex of G by
GLIB_000:def 33;
then
consider e0 be
object such that
A2: e0
Joins (v,v,G) by
Def1;
consider e be
object such that
A3: e
Joins (v,v,G) & e
in E and for e9 be
object st e9
Joins (v,v,G) & e9
in E holds e9
= e by
A2,
GLIB_009:def 5;
take e;
E
c= (
the_Edges_of G);
then
A4: E
c= (G
.edgesBetween (
the_Vertices_of G)) by
GLIB_000: 34;
(
the_Vertices_of G)
c= (
the_Vertices_of G);
then (
the_Edges_of G2)
= E by
A1,
A4,
GLIB_000:def 37;
hence e
Joins (v,v,G2) by
A3,
GLIB_000: 73;
end;
hence thesis;
end;
cluster ->
loopfull for
removeDParallelEdges of G;
coherence
proof
let G2 be
removeDParallelEdges of G;
consider E be
RepDEdgeSelection of G such that
A5: G2 is
inducedSubgraph of G, (
the_Vertices_of G), E by
GLIB_009:def 8;
now
let v be
Vertex of G2;
v is
Vertex of G by
GLIB_000:def 33;
then
consider e0 be
object such that
A6: e0
DJoins (v,v,G) by
Th1;
consider e be
object such that
A7: e
DJoins (v,v,G) & e
in E and for e9 be
object st e9
DJoins (v,v,G) & e9
in E holds e9
= e by
A6,
GLIB_009:def 6;
take e;
E
c= (
the_Edges_of G);
then
A8: E
c= (G
.edgesBetween (
the_Vertices_of G)) by
GLIB_000: 34;
(
the_Vertices_of G)
c= (
the_Vertices_of G);
then (
the_Edges_of G2)
= E by
A5,
A8,
GLIB_000:def 37;
hence e
DJoins (v,v,G2) by
A7,
GLIB_000: 73;
end;
hence thesis by
Th1;
end;
end
registration
let G be non
loopfull
_Graph;
cluster -> non
loopfull for
removeParallelEdges of G;
coherence ;
cluster -> non
loopfull for
removeDParallelEdges of G;
coherence ;
end
definition
let GF be
Graph-yielding
Function;
::
GLIB_012:def2
attr GF is
loopfull means
:
Def2: for x be
object st x
in (
dom GF) holds ex G be
_Graph st (GF
. x)
= G & G is
loopfull;
end
registration
let G be
loopfull
_Graph;
cluster
<*G*> ->
loopfull;
coherence
proof
let x be
object;
assume
A1: x
in (
dom
<*G*>);
then
reconsider n = x as
Nat;
1
<= n
<= (
len
<*G*>) by
A1,
FINSEQ_3: 25;
then 1
<= n
<= 1 by
FINSEQ_1: 40;
then n
= 1 by
XXREAL_0: 1;
hence thesis by
FINSEQ_1: 40;
end;
cluster (
NAT
--> G) ->
loopfull;
coherence by
FUNCOP_1: 7;
end
definition
let GF be non
empty
Graph-yielding
Function;
:: original:
loopfull
redefine
::
GLIB_012:def3
attr GF is
loopfull means
:
Def3: for x be
Element of (
dom GF) holds (GF
. x) is
loopfull;
compatibility
proof
hereby
assume
A1: GF is
loopfull;
let x be
Element of (
dom GF);
consider G be
_Graph such that
A2: (GF
. x)
= G & G is
loopfull by
A1;
thus (GF
. x) is
loopfull by
A2;
end;
assume
A3: for x be
Element of (
dom GF) holds (GF
. x) is
loopfull;
let x be
object;
assume x
in (
dom GF);
then
reconsider y = x as
Element of (
dom GF);
take (GF
. y);
thus thesis by
A3;
end;
end
Lm1: for F be
ManySortedSet of
NAT , n be
object holds n is
Nat iff n
in (
dom F)
proof
let F be
ManySortedSet of
NAT , n be
object;
hereby
assume n is
Nat;
then n
in
NAT by
ORDINAL1:def 12;
hence n
in (
dom F) by
PARTFUN1:def 2;
end;
assume n
in (
dom F);
hence n is
Nat;
end;
definition
let GSq be
GraphSeq;
:: original:
loopfull
redefine
::
GLIB_012:def4
attr GSq is
loopfull means
:
Def4: for n be
Nat holds (GSq
. n) is
loopfull;
compatibility
proof
hereby
assume
A1: GSq is
loopfull;
let x be
Nat;
x
in (
dom GSq) by
Lm1;
hence (GSq
. x) is
loopfull by
A1;
end;
assume
A2: for x be
Nat holds (GSq
. x) is
loopfull;
let x be
Element of (
dom GSq);
thus thesis by
A2;
end;
end
registration
cluster
empty ->
loopfull for
Graph-yielding
Function;
coherence ;
cluster non
empty
loopfull -> non
loopless for
Graph-yielding
Function;
coherence
proof
let GF be
Graph-yielding
Function;
assume
A1: GF is non
empty
loopfull;
then
consider x be
object such that
A2: x
in (
dom GF) by
XBOOLE_0:def 1;
consider G be
_Graph such that
A3: (GF
. x)
= G & G is
loopfull by
A1,
A2;
thus thesis by
A1,
A2,
A3;
end;
end
registration
cluster
loopfull for
GraphSeq;
existence
proof
take (
NAT
--> the
loopfull
_Graph);
thus thesis;
end;
cluster non
empty
loopfull for
Graph-yielding
FinSequence;
existence
proof
take
<* the
loopfull
_Graph*>;
thus thesis;
end;
end
registration
let GF be
loopfull non
empty
Graph-yielding
Function, x be
Element of (
dom GF);
cluster (GF
. x) ->
loopfull;
coherence by
Def3;
end
registration
let GSq be
loopfull
GraphSeq, x be
Nat;
cluster (GSq
. x) ->
loopfull;
coherence by
Def4;
end
registration
let p be
loopfull
Graph-yielding
FinSequence, n be
Nat;
cluster (p
| n) ->
loopfull;
coherence
proof
A1: (p
| n)
= (p
| (
Seg n)) by
FINSEQ_1:def 15;
now
let x be
object;
assume
A2: x
in (
dom (p
| n));
then x
in (
dom p) by
A1,
RELAT_1: 60,
TARSKI:def 3;
then
consider G be
_Graph such that
A3: (p
. x)
= G & G is
loopfull by
Def2;
take G;
thus ((p
| n)
. x)
= G & G is
loopfull by
A1,
A3,
A2,
FUNCT_1: 47;
end;
hence thesis;
end;
cluster (p
/^ n) ->
loopfull;
coherence
proof
per cases ;
suppose
A4: n
<= (
len p);
now
let x be
object;
assume
A5: x
in (
dom (p
/^ n));
then
reconsider i = x as
Nat;
(n
+ i)
in (
dom p) by
A5,
FINSEQ_5: 26;
then
consider G be
_Graph such that
A6: (p
. (n
+ i))
= G & G is
loopfull by
Def2;
take G;
thus ((p
/^ n)
. x)
= G & G is
loopfull by
A4,
A5,
A6,
RFINSEQ:def 1;
end;
hence thesis;
end;
suppose not (n
<= (
len p));
hence thesis by
RFINSEQ:def 1;
end;
end;
let m be
Nat;
cluster (
smid (p,m,n)) ->
loopfull;
coherence
proof
(
smid (p,m,n))
= ((p
/^ (m
-' 1))
| ((n
+ 1)
-' m)) by
FINSEQ_8:def 1;
hence thesis;
end;
cluster ((m,n)
-cut p) ->
loopfull;
coherence
proof
per cases ;
suppose 1
<= m & m
<= n & n
<= (
len p);
then 1
<= m & m
<= (
len p) & 1
<= n & n
<= (
len p) by
XXREAL_0: 2;
then m
in (
dom p) & n
in (
dom p) by
FINSEQ_3: 25;
then (
smid (p,m,n))
= ((m,n)
-cut p) by
FINSEQ_8: 29;
hence thesis;
end;
suppose not (1
<= m & m
<= n & n
<= (
len p));
hence thesis by
FINSEQ_6:def 4;
end;
end;
end
registration
let p,q be
loopfull
Graph-yielding
FinSequence;
cluster (p
^ q) ->
loopfull;
coherence
proof
for x be
object st x
in (
dom (p
^ q)) holds ex G be
_Graph st G
= ((p
^ q)
. x) & G is
loopfull
proof
let x be
object;
assume
A1: x
in (
dom (p
^ q));
then
reconsider k = x as
Nat;
per cases by
A1,
FINSEQ_1: 25;
suppose k
in (
dom p);
then ((p
^ q)
. k)
= (p
. k) & ex G be
_Graph st (p
. k)
= G & G is
loopfull by
Def2,
FINSEQ_1:def 7;
hence ex G be
_Graph st ((p
^ q)
. x)
= G & G is
loopfull;
end;
suppose ex n be
Nat st n
in (
dom q) & k
= ((
len p)
+ n);
then
consider n be
Nat such that
A2: n
in (
dom q) & k
= ((
len p)
+ n);
((p
^ q)
. ((
len p)
+ n))
= (q
. n) & ex G be
_Graph st (q
. n)
= G & G is
loopfull by
A2,
Def2,
FINSEQ_1:def 7;
hence ex G be
_Graph st ((p
^ q)
. x)
= G & G is
loopfull by
A2;
end;
end;
hence thesis;
end;
cluster (p
^' q) ->
loopfull;
coherence
proof
(p
^' q)
= (p
^ ((2,(
len q))
-cut q)) by
FINSEQ_6:def 5;
hence thesis;
end;
end
registration
let G1,G2 be
loopfull
_Graph;
cluster
<*G1, G2*> ->
loopfull;
coherence
proof
<*G1, G2*>
= (
<*G1*>
^
<*G2*>) by
FINSEQ_1:def 9;
hence thesis;
end;
let G3 be
loopfull
_Graph;
cluster
<*G1, G2, G3*> ->
loopfull;
coherence
proof
<*G1, G2, G3*>
= ((
<*G1*>
^
<*G2*>)
^
<*G3*>) by
FINSEQ_1:def 10;
hence thesis;
end;
end
begin
definition
let G be
_Graph, V be
set;
::
GLIB_012:def5
mode
addLoops of G,V ->
Supergraph of G means
:
Def5: (
the_Vertices_of it )
= (
the_Vertices_of G) & ex E be
set, f be
one-to-one
Function st E
misses (
the_Edges_of G) & (
the_Edges_of it )
= ((
the_Edges_of G)
\/ E) & (
dom f)
= E & (
rng f)
= V & (
the_Source_of it )
= ((
the_Source_of G)
+* f) & (
the_Target_of it )
= ((
the_Target_of G)
+* f) if V
c= (
the_Vertices_of G)
otherwise it
== G;
existence
proof
hereby
assume
A1: V
c= (
the_Vertices_of G);
set E = {
[(
the_Edges_of G), v] where v be
Vertex of G : v
in V };
deffunc
F(
object) = ($1
`2 );
consider f be
Function such that
A2: (
dom f)
= E & for x be
object st x
in E holds (f
. x)
=
F(x) from
FUNCT_1:sch 3;
set s = ((
the_Source_of G)
+* f), t = ((
the_Target_of G)
+* f);
now
let y be
object;
hereby
assume y
in (
rng f);
then
consider x be
object such that
A3: x
in (
dom f) & (f
. x)
= y by
FUNCT_1:def 3;
consider v be
Vertex of G such that
A4: x
=
[(
the_Edges_of G), v] & v
in V by
A2,
A3;
y
= (x
`2 ) by
A2,
A3
.= v by
A4;
hence y
in V by
A4;
end;
set x =
[(
the_Edges_of G), y];
assume y
in V;
then
A5: x
in (
dom f) by
A1,
A2;
then (f
. x)
= (x
`2 ) by
A2
.= y;
hence y
in (
rng f) by
A5,
FUNCT_1: 3;
end;
then
A6: (
rng f)
= V by
TARSKI: 2;
A7: (
dom s)
= ((
dom (
the_Source_of G))
\/ (
dom f)) by
FUNCT_4:def 1
.= ((
the_Edges_of G)
\/ E) by
A2,
FUNCT_2:def 1;
A8: (
dom t)
= ((
dom (
the_Target_of G))
\/ (
dom f)) by
FUNCT_4:def 1
.= ((
the_Edges_of G)
\/ E) by
A2,
FUNCT_2:def 1;
A9: (
the_Edges_of G)
misses E
proof
assume (
the_Edges_of G)
meets E;
then
consider e be
object such that
A10: e
in (
the_Edges_of G) & e
in E by
XBOOLE_0: 3;
reconsider e as
set by
TARSKI: 1;
consider v be
Vertex of G such that
A11: e
=
[(
the_Edges_of G), v] & v
in V by
A10;
A12: (
the_Edges_of G)
in
{(
the_Edges_of G)} by
TARSKI:def 1;
e
=
{
{(
the_Edges_of G), v},
{(
the_Edges_of G)}} by
A11,
TARSKI:def 5;
then
{(
the_Edges_of G)}
in e by
TARSKI:def 2;
hence contradiction by
A10,
A12,
XREGULAR: 7;
end;
((
rng (
the_Source_of G))
\/ (
rng f))
c= ((
the_Vertices_of G)
\/ V) & ((
rng (
the_Target_of G))
\/ (
rng f))
c= ((
the_Vertices_of G)
\/ V) by
A6,
XBOOLE_1: 9;
then
A13: ((
rng (
the_Source_of G))
\/ (
rng f))
c= (
the_Vertices_of G) & ((
rng (
the_Target_of G))
\/ (
rng f))
c= (
the_Vertices_of G) by
A1,
XBOOLE_1: 12;
(
rng s)
c= ((
rng (
the_Source_of G))
\/ (
rng f)) & (
rng t)
c= ((
rng (
the_Target_of G))
\/ (
rng f)) by
FUNCT_4: 17;
then
A14: (
rng s)
c= (
the_Vertices_of G) & (
rng t)
c= (
the_Vertices_of G) by
A13,
XBOOLE_1: 1;
then
reconsider s as
Function of ((
the_Edges_of G)
\/ E), (
the_Vertices_of G) by
A7,
FUNCT_2: 2;
reconsider t as
Function of ((
the_Edges_of G)
\/ E), (
the_Vertices_of G) by
A8,
A14,
FUNCT_2: 2;
set H = (
createGraph ((
the_Vertices_of G),((
the_Edges_of G)
\/ E),s,t));
(
the_Edges_of H)
= ((
the_Edges_of G)
\/ E) by
GLIB_000: 6;
then
A15: (
the_Edges_of G)
c= (
the_Edges_of H) & (
the_Vertices_of G)
= (
the_Vertices_of H) by
XBOOLE_1: 7,
GLIB_000: 6;
now
let e be
set;
assume
A16: e
in (
the_Edges_of G);
then e
in ((
the_Edges_of G)
\/ E) by
XBOOLE_0:def 3;
then
A17: not e
in (
dom f) by
A2,
A9,
A16,
XBOOLE_0: 5;
A18: (
the_Source_of H)
= s & (
the_Target_of H)
= t by
GLIB_000: 6;
hence ((
the_Source_of G)
. e)
= ((
the_Source_of H)
. e) by
A17,
FUNCT_4: 11;
thus ((
the_Target_of G)
. e)
= ((
the_Target_of H)
. e) by
A17,
A18,
FUNCT_4: 11;
end;
then
reconsider H as
Supergraph of G by
A15,
GLIB_006:def 9;
take H;
thus (
the_Vertices_of H)
= (
the_Vertices_of G) by
GLIB_000: 6;
now
let x1,x2 be
object;
assume
A19: x1
in (
dom f) & x2
in (
dom f) & (f
. x1)
= (f
. x2);
then
consider v1 be
Vertex of G such that
A20: x1
=
[(
the_Edges_of G), v1] & v1
in V by
A2;
consider v2 be
Vertex of G such that
A21: x2
=
[(
the_Edges_of G), v2] & v2
in V by
A2,
A19;
thus x1
=
[(
the_Edges_of G), (
[(
the_Edges_of G), v1]
`2 )] by
A20
.=
[(
the_Edges_of G), (f
. x2)] by
A2,
A19,
A20
.=
[(
the_Edges_of G), (
[(
the_Edges_of G), v2]
`2 )] by
A2,
A19,
A21
.= x2 by
A21;
end;
then
reconsider f as
one-to-one
Function by
FUNCT_1:def 4;
take E, f;
thus E
misses (
the_Edges_of G) & (
the_Edges_of H)
= ((
the_Edges_of G)
\/ E) by
A9,
GLIB_000: 6;
thus (
dom f)
= E & (
rng f)
= V by
A2,
A6;
thus (
the_Source_of H)
= ((
the_Source_of G)
+* f) & (
the_Target_of H)
= ((
the_Target_of G)
+* f) by
GLIB_000: 6;
end;
assume not V
c= (
the_Vertices_of G);
take G;
thus thesis by
GLIB_006: 61;
end;
consistency ;
end
definition
let G be
_Graph;
mode
addLoops of G is
addLoops of G, (
the_Vertices_of G);
end
theorem ::
GLIB_012:15
Th15: for G2 be
_Graph, V be
set, G1 be
addLoops of G2, V holds (
the_Vertices_of G1)
= (
the_Vertices_of G2)
proof
let G2 be
_Graph, V be
set, G1 be
addLoops of G2, V;
per cases ;
suppose V
c= (
the_Vertices_of G2);
hence thesis by
Def5;
end;
suppose not V
c= (
the_Vertices_of G2);
then G1
== G2 by
Def5;
hence thesis by
GLIB_000:def 34;
end;
end;
theorem ::
GLIB_012:16
Th16: for G2 be
_Graph, V be
set, G1 be
addLoops of G2, V holds for e,v,w be
object st v
<> w holds e
DJoins (v,w,G1) iff e
DJoins (v,w,G2)
proof
let G2 be
_Graph, V be
set, G1 be
addLoops of G2, V;
per cases ;
suppose V
c= (
the_Vertices_of G2);
then
consider E be
set, f be
one-to-one
Function such that
A1: E
misses (
the_Edges_of G2) & (
the_Edges_of G1)
= ((
the_Edges_of G2)
\/ E) & (
dom f)
= E & (
rng f)
= V & (
the_Source_of G1)
= ((
the_Source_of G2)
+* f) & (
the_Target_of G1)
= ((
the_Target_of G2)
+* f) by
Def5;
let e,v,w be
object;
assume
A2: v
<> w;
hereby
assume
A3: e
DJoins (v,w,G1);
then
A4: e
in ((
the_Edges_of G2)
\/ E) by
A1,
GLIB_000:def 14;
not e
in E
proof
assume
A5: e
in E;
then
A6: ((
the_Source_of G1)
. e)
= (f
. e) by
A1,
FUNCT_4: 13;
((
the_Target_of G1)
. e)
= (f
. e) by
A1,
A5,
FUNCT_4: 13;
then (f
. e)
= v & (f
. e)
= w by
A3,
A6,
GLIB_000:def 14;
hence contradiction by
A2;
end;
then e
in (
the_Edges_of G2) by
A1,
A4,
XBOOLE_0: 5;
hence e
DJoins (v,w,G2) by
A3,
GLIB_006: 71;
end;
assume
A7: e
DJoins (v,w,G2);
v is
set & w is
set by
TARSKI: 1;
hence thesis by
A7,
GLIB_006: 70;
end;
suppose not V
c= (
the_Vertices_of G2);
then G1
== G2 by
Def5;
hence thesis by
GLIB_000: 88;
end;
end;
theorem ::
GLIB_012:17
Th17: for G2 be
_Graph, V be
set, G1 be
addLoops of G2, V holds for e,v,w be
object st v
<> w holds e
Joins (v,w,G1) iff e
Joins (v,w,G2)
proof
let G2 be
_Graph, V be
set, G1 be
addLoops of G2, V;
let e,v,w be
object;
assume
A1: v
<> w;
hereby
assume e
Joins (v,w,G1);
per cases by
GLIB_000: 16;
suppose e
DJoins (v,w,G1);
then e
DJoins (v,w,G2) by
A1,
Th16;
hence e
Joins (v,w,G2) by
GLIB_000: 16;
end;
suppose e
DJoins (w,v,G1);
then e
DJoins (w,v,G2) by
A1,
Th16;
hence e
Joins (v,w,G2) by
GLIB_000: 16;
end;
end;
assume
A2: e
Joins (v,w,G2);
v is
set & w is
set by
TARSKI: 1;
hence e
Joins (v,w,G1) by
A2,
GLIB_006: 70;
end;
theorem ::
GLIB_012:18
for G2 be
_Graph, V be
Subset of (
the_Vertices_of G2) holds for G1 be
addLoops of G2, V holds for v be
Vertex of G1 st v
in V holds (v,v)
are_adjacent
proof
let G2 be
_Graph, V be
Subset of (
the_Vertices_of G2), G1 be
addLoops of G2, V;
let v be
Vertex of G1;
consider E be
set, f be
one-to-one
Function such that
A1: E
misses (
the_Edges_of G2) & (
the_Edges_of G1)
= ((
the_Edges_of G2)
\/ E) & (
dom f)
= E & (
rng f)
= V & (
the_Source_of G1)
= ((
the_Source_of G2)
+* f) & (
the_Target_of G1)
= ((
the_Target_of G2)
+* f) by
Def5;
assume v
in V;
then
consider e be
object such that
A2: e
in (
dom f) & (f
. e)
= v by
A1,
FUNCT_1:def 3;
A3: ((
the_Source_of G1)
. e)
= v by
A1,
A2,
FUNCT_4: 13;
A4: ((
the_Target_of G1)
. e)
= v by
A1,
A2,
FUNCT_4: 13;
e
in (
the_Edges_of G1) by
A1,
A2,
XBOOLE_0:def 3;
then e
Joins (v,v,G1) by
A3,
A4,
GLIB_000:def 13;
hence (v,v)
are_adjacent by
CHORD:def 3;
end;
theorem ::
GLIB_012:19
for G2 be
_Graph, V be
set holds for G1 be
addLoops of G2, V holds (G1
.order() )
= (G2
.order() ) by
Th15;
theorem ::
GLIB_012:20
for G2 be
_Graph, V be
Subset of (
the_Vertices_of G2) holds for G1 be
addLoops of G2, V holds (G1
.size() )
= ((G2
.size() )
+` (
card V))
proof
let G2 be
_Graph, V be
Subset of (
the_Vertices_of G2), G1 be
addLoops of G2, V;
consider E be
set, f be
one-to-one
Function such that
A1: E
misses (
the_Edges_of G2) & (
the_Edges_of G1)
= ((
the_Edges_of G2)
\/ E) & (
dom f)
= E & (
rng f)
= V & (
the_Source_of G1)
= ((
the_Source_of G2)
+* f) & (
the_Target_of G1)
= ((
the_Target_of G2)
+* f) by
Def5;
thus (G1
.size() )
= ((
card (
the_Edges_of G2))
+` (
card E)) by
A1,
CARD_2: 35
.= ((G2
.size() )
+` (
card V)) by
A1,
CARD_1: 70;
end;
theorem ::
GLIB_012:21
Th21: for G1,G2 be
_Graph holds G1 is
addLoops of G2,
{} iff G1
== G2
proof
let G1,G2 be
_Graph;
hereby
assume
A1: G1 is
addLoops of G2,
{} ;
{}
c= (
the_Vertices_of G2) by
XBOOLE_1: 2;
then
consider E be
set, f be
one-to-one
Function such that
A2: E
misses (
the_Edges_of G2) & (
the_Edges_of G1)
= ((
the_Edges_of G2)
\/ E) & (
dom f)
= E & (
rng f)
=
{} & (
the_Source_of G1)
= ((
the_Source_of G2)
+* f) & (
the_Target_of G1)
= ((
the_Target_of G2)
+* f) by
A1,
Def5;
A3: f
=
{} by
A2;
then
A4: E
=
{} by
A2;
A5: (
the_Source_of G1)
= (
the_Source_of G2) by
A2,
A3,
FUNCT_4: 21;
(
the_Target_of G1)
= (
the_Target_of G2) by
A2,
A3,
FUNCT_4: 21;
hence G1
== G2 by
A1,
A2,
A4,
A5,
Th15,
GLIB_000:def 34;
end;
assume
A6: G1
== G2;
then
A7: G1 is
Supergraph of G2 by
GLIB_006: 59;
now
thus
{}
c= (
the_Vertices_of G2) by
XBOOLE_1: 2;
thus (
the_Vertices_of G1)
= (
the_Vertices_of G2) by
A6,
GLIB_000:def 34;
set E = the
empty
set, f = the
empty
one-to-one
Function;
take E, f;
thus E
misses (
the_Edges_of G2) by
XBOOLE_1: 65;
thus (
the_Edges_of G1)
= ((
the_Edges_of G2)
\/ E) by
A6,
GLIB_000:def 34;
thus (
dom f)
= E & (
rng f)
=
{} ;
thus (
the_Source_of G1)
= (
the_Source_of G2) by
A6,
GLIB_000:def 34
.= ((
the_Source_of G2)
+* f) by
FUNCT_4: 21;
thus (
the_Target_of G1)
= (
the_Target_of G2) by
A6,
GLIB_000:def 34
.= ((
the_Target_of G2)
+* f) by
FUNCT_4: 21;
end;
hence G1 is
addLoops of G2,
{} by
A7,
Def5;
end;
theorem ::
GLIB_012:22
for G be
_Graph holds G is
addLoops of G,
{}
proof
let G be
_Graph;
A1: G is
Supergraph of G &
{}
c= (
the_Vertices_of G) by
GLIB_006: 61,
XBOOLE_1: 2;
now
thus (
the_Vertices_of G)
= (
the_Vertices_of G);
reconsider E =
{} as
set;
reconsider f = the
empty
Function as
one-to-one
Function;
take E, f;
thus E
misses (
the_Edges_of G) by
XBOOLE_1: 65;
thus (
the_Edges_of G)
= ((
the_Edges_of G)
\/ E);
thus (
dom f)
= E & (
rng f)
=
{} ;
thus (
the_Source_of G)
= ((
the_Source_of G)
+* f) by
FUNCT_4: 21;
thus (
the_Target_of G)
= ((
the_Target_of G)
+* f) by
FUNCT_4: 21;
end;
hence thesis by
A1,
Def5;
end;
theorem ::
GLIB_012:23
for G be
_Graph, V1,V2 be
Subset of (
the_Vertices_of G) holds for G1 be
addLoops of G, V1, G2 be
addLoops of G1, V2 st V1
misses V2 holds G2 is
addLoops of G, (V1
\/ V2)
proof
let G be
_Graph, V1,V2 be
Subset of (
the_Vertices_of G);
let G1 be
addLoops of G, V1, G2 be
addLoops of G1, V2;
assume
A1: V1
misses V2;
consider E1 be
set, f1 be
one-to-one
Function such that
A2: E1
misses (
the_Edges_of G) & (
the_Edges_of G1)
= ((
the_Edges_of G)
\/ E1) & (
dom f1)
= E1 & (
rng f1)
= V1 & (
the_Source_of G1)
= ((
the_Source_of G)
+* f1) & (
the_Target_of G1)
= ((
the_Target_of G)
+* f1) by
Def5;
V2
c= (
the_Vertices_of G);
then V2
c= (
the_Vertices_of G1) by
Th15;
then
consider E2 be
set, f2 be
one-to-one
Function such that
A3: E2
misses (
the_Edges_of G1) & (
the_Edges_of G2)
= ((
the_Edges_of G1)
\/ E2) & (
dom f2)
= E2 & (
rng f2)
= V2 & (
the_Source_of G2)
= ((
the_Source_of G1)
+* f2) & (
the_Target_of G2)
= ((
the_Target_of G1)
+* f2) by
Def5;
A4: G2 is
Supergraph of G by
GLIB_006: 62;
A5: (
the_Vertices_of G2)
= (
the_Vertices_of G1) by
Th15
.= (
the_Vertices_of G) by
Th15;
now
reconsider E = (E1
\/ E2) as
set;
reconsider f = (f1
+* f2) as
one-to-one
Function by
A1,
A2,
A3,
FUNCT_4: 92;
take E, f;
A6: E2
misses (
the_Edges_of G) & E2
misses E1 by
A2,
A3,
XBOOLE_1: 70;
hence E
misses (
the_Edges_of G) by
A2,
XBOOLE_1: 70;
thus (
the_Edges_of G2)
= ((
the_Edges_of G)
\/ E) by
A2,
A3,
XBOOLE_1: 4;
thus (
dom f)
= E by
A2,
A3,
FUNCT_4:def 1;
thus (
rng f)
= (V1
\/ V2) by
A2,
A3,
A6,
NECKLACE: 6;
thus (
the_Source_of G2)
= ((
the_Source_of G)
+* f) by
A2,
A3,
FUNCT_4: 14;
thus (
the_Target_of G2)
= ((
the_Target_of G)
+* f) by
A2,
A3,
FUNCT_4: 14;
end;
hence thesis by
A4,
A5,
Def5;
end;
theorem ::
GLIB_012:24
Th24: for G3 be
_Graph, V1,V2 be
Subset of (
the_Vertices_of G3) holds for G1 be
addLoops of G3, (V1
\/ V2) st V1
misses V2 holds ex G2 be
addLoops of G3, V1 st G1 is
addLoops of G2, V2
proof
let G3 be
_Graph, V1,V2 be
Subset of (
the_Vertices_of G3);
let G1 be
addLoops of G3, (V1
\/ V2);
assume
A1: V1
misses V2;
consider E3 be
set, f3 be
one-to-one
Function such that
A2: E3
misses (
the_Edges_of G3) & (
the_Edges_of G1)
= ((
the_Edges_of G3)
\/ E3) & (
dom f3)
= E3 & (
rng f3)
= (V1
\/ V2) & (
the_Source_of G1)
= ((
the_Source_of G3)
+* f3) & (
the_Target_of G1)
= ((
the_Target_of G3)
+* f3) by
Def5;
set E1 = (f3
" V1);
set f1 = (f3
| (f3
" V1));
set s1 = ((
the_Source_of G3)
+* f1);
set t1 = ((
the_Target_of G3)
+* f1);
A3: E1
c= E3 by
A2,
RELAT_1: 132;
then
A4: E1
= (E1
/\ E3) by
XBOOLE_1: 28
.= (
dom f1) by
A2,
RELAT_1: 61;
A5: (
dom s1)
= ((
dom (
the_Source_of G3))
\/ (
dom f1)) by
FUNCT_4:def 1
.= ((
the_Edges_of G3)
\/ E1) by
A4,
FUNCT_2:def 1;
A6: (
dom t1)
= ((
dom (
the_Target_of G3))
\/ (
dom f1)) by
FUNCT_4:def 1
.= ((
the_Edges_of G3)
\/ E1) by
A4,
FUNCT_2:def 1;
A7: V1
= (f3
.: (f3
" V1)) by
A2,
XBOOLE_1: 7,
FUNCT_1: 77
.= (
rng f1) by
RELAT_1: 115;
then
A8: ((
the_Vertices_of G3)
\/ (
rng f1))
= (
the_Vertices_of G3) by
XBOOLE_1: 12;
A9: (
rng s1)
c= ((
rng (
the_Source_of G3))
\/ (
rng f1)) by
FUNCT_4: 17;
((
rng (
the_Source_of G3))
\/ (
rng f1))
c= ((
the_Vertices_of G3)
\/ (
rng f1)) by
XBOOLE_1: 9;
then
reconsider s1 as
Function of ((
the_Edges_of G3)
\/ E1), (
the_Vertices_of G3) by
A5,
A8,
A9,
XBOOLE_1: 1,
FUNCT_2: 2;
A10: (
rng t1)
c= ((
rng (
the_Target_of G3))
\/ (
rng f1)) by
FUNCT_4: 17;
((
rng (
the_Target_of G3))
\/ (
rng f1))
c= ((
the_Vertices_of G3)
\/ (
rng f1)) by
XBOOLE_1: 9;
then
reconsider t1 as
Function of ((
the_Edges_of G3)
\/ E1), (
the_Vertices_of G3) by
A6,
A8,
A10,
XBOOLE_1: 1,
FUNCT_2: 2;
set G2 = (
createGraph ((
the_Vertices_of G3),((
the_Edges_of G3)
\/ E1),s1,t1));
now
thus (
the_Vertices_of G3)
c= (
the_Vertices_of G2) by
GLIB_000: 6;
(
the_Edges_of G2)
= ((
the_Edges_of G3)
\/ E1) by
GLIB_000: 6;
hence (
the_Edges_of G3)
c= (
the_Edges_of G2) by
XBOOLE_1: 7;
let e be
set;
assume
A11: e
in (
the_Edges_of G3);
then e
in ((
the_Edges_of G3)
\/ E3) by
XBOOLE_0:def 3;
then
A12: not e
in (
dom f1) by
A2,
A3,
A4,
A11,
XBOOLE_0: 5;
thus ((
the_Source_of G3)
. e)
= (s1
. e) by
A12,
FUNCT_4: 11
.= ((
the_Source_of G2)
. e) by
GLIB_000: 6;
thus ((
the_Target_of G3)
. e)
= (t1
. e) by
A12,
FUNCT_4: 11
.= ((
the_Target_of G2)
. e) by
GLIB_000: 6;
end;
then
reconsider G2 as
Supergraph of G3 by
GLIB_006:def 9;
now
thus (
the_Vertices_of G2)
= (
the_Vertices_of G3) by
GLIB_000: 6;
reconsider E1 as
set;
reconsider f1 as
one-to-one
Function by
FUNCT_1: 52;
take E1, f1;
thus E1
misses (
the_Edges_of G3) by
A2,
A3,
XBOOLE_1: 63;
thus (
the_Edges_of G2)
= ((
the_Edges_of G3)
\/ E1) by
GLIB_000: 6;
thus (
dom f1)
= E1 by
A4;
thus (
rng f1)
= V1 by
A7;
thus (
the_Source_of G2)
= ((
the_Source_of G3)
+* f1) by
GLIB_000: 6;
thus (
the_Target_of G2)
= ((
the_Target_of G3)
+* f1) by
GLIB_000: 6;
end;
then
reconsider G2 as
addLoops of G3, V1 by
Def5;
take G2;
set E2 = (E3
\ E1);
A13: (
the_Vertices_of G1)
= (
the_Vertices_of G3) by
Def5
.= (
the_Vertices_of G2) by
GLIB_000: 6;
A14: (
the_Edges_of G1)
= ((
the_Edges_of G3)
\/ (E1
\/ E2)) by
A2,
A3,
XBOOLE_1: 45
.= (((
the_Edges_of G3)
\/ E1)
\/ E2) by
XBOOLE_1: 4
.= ((
the_Edges_of G2)
\/ E2) by
GLIB_000: 6;
now
thus (
the_Vertices_of G2)
c= (
the_Vertices_of G1) by
A13;
thus (
the_Edges_of G2)
c= (
the_Edges_of G1) by
A14,
XBOOLE_1: 7;
let e be
set;
A15: E1
misses (
the_Edges_of G3) by
A2,
A3,
XBOOLE_1: 63;
assume e
in (
the_Edges_of G2);
then
A16: e
in ((
the_Edges_of G3)
\/ E1) by
GLIB_000: 6;
per cases by
XBOOLE_0:def 3;
suppose
A17: e
in (
the_Edges_of G3);
then
A18: not e
in E1 by
A15,
A16,
XBOOLE_0: 5;
thus ((
the_Source_of G2)
. e)
= (s1
. e) by
GLIB_000: 6
.= ((
the_Source_of G3)
. e) by
A4,
A18,
FUNCT_4: 11
.= ((
the_Source_of G1)
. e) by
A17,
GLIB_006:def 9;
thus ((
the_Target_of G2)
. e)
= (t1
. e) by
GLIB_000: 6
.= ((
the_Target_of G3)
. e) by
A4,
A18,
FUNCT_4: 11
.= ((
the_Target_of G1)
. e) by
A17,
GLIB_006:def 9;
end;
suppose
A19: e
in E1;
thus ((
the_Source_of G2)
. e)
= (s1
. e) by
GLIB_000: 6
.= (f1
. e) by
A4,
A19,
FUNCT_4: 13
.= (f3
. e) by
A19,
FUNCT_1: 49
.= ((
the_Source_of G1)
. e) by
A2,
A3,
A19,
FUNCT_4: 13;
thus ((
the_Target_of G2)
. e)
= (t1
. e) by
GLIB_000: 6
.= (f1
. e) by
A4,
A19,
FUNCT_4: 13
.= (f3
. e) by
A19,
FUNCT_1: 49
.= ((
the_Target_of G1)
. e) by
A2,
A3,
A19,
FUNCT_4: 13;
end;
end;
then
A20: G1 is
Supergraph of G2 by
GLIB_006:def 9;
V2
c= (
the_Vertices_of G3);
then
A21: V2
c= (
the_Vertices_of G2) by
Def5;
now
reconsider E2 as
set;
reconsider f2 = (f3
| E2) as
one-to-one
Function by
FUNCT_1: 52;
take E2, f2;
E2
misses (E3
\ E2) by
XBOOLE_1: 79;
then E2
misses (E3
/\ E1) by
XBOOLE_1: 48;
then
A22: E2
misses E1 by
A3,
XBOOLE_1: 28;
E2
misses (
the_Edges_of G3) by
A2,
XBOOLE_1: 63;
then E2
misses ((
the_Edges_of G3)
\/ E1) by
A22,
XBOOLE_1: 70;
hence E2
misses (
the_Edges_of G2) by
GLIB_000: 6;
thus (
the_Edges_of G1)
= ((
the_Edges_of G2)
\/ E2) by
A14;
A23: E2
= ((f3
" (V1
\/ V2))
\ (f3
" V1)) by
A2,
RELAT_1: 134
.= (f3
" ((V1
\/ V2)
\ V1)) by
FUNCT_1: 69
.= (f3
" V2) by
A1,
XBOOLE_1: 88;
thus (
dom f2)
= ((
dom f3)
/\ (f3
" V2)) by
A23,
RELAT_1: 61
.= E2 by
A2,
A23,
XBOOLE_1: 28;
thus (
rng f2)
= (f3
.: (f3
" V2)) by
A23,
RELAT_1: 115
.= V2 by
A2,
XBOOLE_1: 7,
FUNCT_1: 77;
A24: (
dom f3)
c= (E1
\/ E2) by
A2,
A3,
XBOOLE_1: 45;
thus (
the_Source_of G1)
= ((
the_Source_of G3)
+* (f1
+* (f3
| E2))) by
A2,
A24,
FUNCT_4: 70
.= (((
the_Source_of G3)
+* f1)
+* f2) by
FUNCT_4: 14
.= ((
the_Source_of G2)
+* f2) by
GLIB_000: 6;
thus (
the_Target_of G1)
= ((
the_Target_of G3)
+* (f1
+* f2)) by
A2,
A24,
FUNCT_4: 70
.= (((
the_Target_of G3)
+* f1)
+* f2) by
FUNCT_4: 14
.= ((
the_Target_of G2)
+* f2) by
GLIB_000: 6;
end;
hence G1 is
addLoops of G2, V2 by
A13,
A20,
A21,
Def5;
end;
theorem ::
GLIB_012:25
Th25: for G2 be
loopless
_Graph, V be
Subset of (
the_Vertices_of G2) holds for G1 be
addLoops of G2, V holds (
the_Edges_of G2)
misses (G1
.loops() ) & (
the_Edges_of G1)
= ((
the_Edges_of G2)
\/ (G1
.loops() ))
proof
let G2 be
loopless
_Graph, V be
Subset of (
the_Vertices_of G2);
let G1 be
addLoops of G2, V;
thus (
the_Edges_of G2)
misses (G1
.loops() )
proof
assume (
the_Edges_of G2)
meets (G1
.loops() );
then
consider e be
object such that
A1: e
in (
the_Edges_of G2) & e
in (G1
.loops() ) by
XBOOLE_0: 3;
consider v be
object such that
A2: e
Joins (v,v,G1) by
A1,
GLIB_009:def 2;
thus contradiction by
A1,
A2,
GLIB_006: 72,
GLIB_000: 18;
end;
consider E be
set, f be
one-to-one
Function such that
A3: E
misses (
the_Edges_of G2) & (
the_Edges_of G1)
= ((
the_Edges_of G2)
\/ E) & (
dom f)
= E & (
rng f)
= V & (
the_Source_of G1)
= ((
the_Source_of G2)
+* f) & (
the_Target_of G1)
= ((
the_Target_of G2)
+* f) by
Def5;
now
let e be
object;
hereby
assume e
in (G1
.loops() );
then
consider v be
object such that
A4: e
Joins (v,v,G1) by
GLIB_009:def 2;
A5: not e
in (
the_Edges_of G2) by
A4,
GLIB_000: 18,
GLIB_006: 72;
e
in (
the_Edges_of G1) by
A4,
GLIB_000:def 13;
hence e
in E by
A3,
A5,
XBOOLE_0:def 3;
end;
assume e
in E;
then
A6: e
in (
dom f) & e
in (
the_Edges_of G1) by
A3,
XBOOLE_0:def 3;
then ((
the_Source_of G1)
. e)
= (f
. e) & ((
the_Target_of G1)
. e)
= (f
. e) by
A3,
FUNCT_4: 13;
hence e
in (G1
.loops() ) by
A6,
GLIB_000:def 14,
GLIB_009: 45;
end;
hence (
the_Edges_of G1)
= ((
the_Edges_of G2)
\/ (G1
.loops() )) by
A3,
TARSKI: 2;
end;
theorem ::
GLIB_012:26
Th26: for G1 be
loopless
_Graph, V be
set holds for G2 be
addLoops of G1, V, G3 be
removeLoops of G2 holds G1
== G3
proof
let G1 be
loopless
_Graph, V be
set;
let G2 be
addLoops of G1, V, G3 be
removeLoops of G2;
per cases ;
suppose
A1: V
c= (
the_Vertices_of G1);
then
A2: (
the_Vertices_of G1)
= (
the_Vertices_of G2) by
Def5
.= (
the_Vertices_of G3) by
GLIB_000: 53;
A3: (
the_Edges_of G1)
= (((
the_Edges_of G1)
\/ (G2
.loops() ))
\ (G2
.loops() )) by
A1,
Th25,
XBOOLE_1: 88
.= ((
the_Edges_of G2)
\ (G2
.loops() )) by
A1,
Th25
.= (
the_Edges_of G3) by
GLIB_000: 53;
A4: (
dom (
the_Source_of G1))
= (
the_Edges_of G3) by
A3,
FUNCT_2:def 1
.= (
dom (
the_Source_of G3)) by
FUNCT_2:def 1;
A5: (
dom (
the_Target_of G1))
= (
the_Edges_of G3) by
A3,
FUNCT_2:def 1
.= (
dom (
the_Target_of G3)) by
FUNCT_2:def 1;
now
let e be
object;
assume
A6: e
in (
dom (
the_Source_of G1));
hence ((
the_Source_of G1)
. e)
= ((
the_Source_of G2)
. e) by
GLIB_006:def 9
.= ((
the_Source_of G3)
. e) by
A3,
A6,
GLIB_000:def 32;
end;
then
A7: (
the_Source_of G1)
= (
the_Source_of G3) by
A4,
FUNCT_1: 2;
now
let e be
object;
assume
A8: e
in (
dom (
the_Target_of G1));
hence ((
the_Target_of G1)
. e)
= ((
the_Target_of G2)
. e) by
GLIB_006:def 9
.= ((
the_Target_of G3)
. e) by
A3,
A8,
GLIB_000:def 32;
end;
then (
the_Target_of G1)
= (
the_Target_of G3) by
A5,
FUNCT_1: 2;
hence thesis by
A2,
A3,
A7,
GLIB_000:def 34;
end;
suppose not V
c= (
the_Vertices_of G1);
then
A9: G1
== G2 by
Def5;
then G2 is
loopless by
GLIB_000: 89;
then G2
== G3 by
GLIB_009: 58;
hence thesis by
A9,
GLIB_000: 85;
end;
end;
theorem ::
GLIB_012:27
Th27: for G1,G2 be
_Graph, v be
Vertex of G2 holds G1 is
addLoops of G2,
{v} iff ex e be
object st not e
in (
the_Edges_of G2) & G1 is
addEdge of G2, v, e, v
proof
let G1,G2 be
_Graph, v be
Vertex of G2;
hereby
assume
A1: G1 is
addLoops of G2,
{v};
then
consider E be
set, f be
one-to-one
Function such that
A2: E
misses (
the_Edges_of G2) & (
the_Edges_of G1)
= ((
the_Edges_of G2)
\/ E) & (
dom f)
= E & (
rng f)
=
{v} & (
the_Source_of G1)
= ((
the_Source_of G2)
+* f) & (
the_Target_of G1)
= ((
the_Target_of G2)
+* f) by
Def5;
v
in (
rng f) by
A2,
TARSKI:def 1;
then
consider e be
object such that
A3: e
in (
dom f) & (f
. e)
= v by
FUNCT_1:def 3;
take e;
(
card E)
= (
card
{v}) by
A2,
CARD_1: 70;
then
consider e0 be
object such that
A4: E
=
{e0} by
CARD_1: 29;
A5: E
=
{e} by
A2,
A3,
A4,
TARSKI:def 1;
hence
A6: not e
in (
the_Edges_of G2) by
A2,
ZFMISC_1: 48;
(
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
.--> v)) by
A1,
A2,
A5,
Def5,
FUNCOP_1: 9;
hence G1 is
addEdge of G2, v, e, v by
A1,
A6,
GLIB_006:def 11;
end;
given e be
object such that
A7: not e
in (
the_Edges_of G2) & G1 is
addEdge of G2, v, e, v;
now
thus (
the_Vertices_of G1)
= (
the_Vertices_of G2) by
A7,
GLIB_006:def 11;
reconsider f = (e
.--> v) as
one-to-one
Function;
take E =
{e}, f;
thus E
misses (
the_Edges_of G2) by
A7,
ZFMISC_1: 50;
thus (
the_Edges_of G1)
= ((
the_Edges_of G2)
\/ E) by
A7,
GLIB_006:def 11;
thus (
dom f)
= E;
e is
set & v is
set by
TARSKI: 1;
hence (
rng f)
=
{v} by
FUNCOP_1: 88;
thus (
the_Source_of G1)
= ((
the_Source_of G2)
+* f) by
A7,
GLIB_006:def 11;
thus (
the_Target_of G1)
= ((
the_Target_of G2)
+* f) by
A7,
GLIB_006:def 11;
end;
hence G1 is
addLoops of G2,
{v} by
A7,
Def5;
end;
Lm2: for p be non
empty
FinSequence, x be
object holds for n be
Element of (
dom (p
^
<*x*>)) st n
<= ((
len (p
^
<*x*>))
- 1) holds n
= ((
len (p
^
<*x*>))
- 1) or n
<= ((
len p)
- 1)
proof
let p be non
empty
FinSequence, x be
object, n be
Element of (
dom (p
^
<*x*>));
A1: (
len (p
^
<*x*>))
= ((
len p)
+ (
len
<*x*>)) by
FINSEQ_1: 22
.= ((
len p)
+ 1) by
FINSEQ_1: 39;
assume
A2: n
<= ((
len (p
^
<*x*>))
- 1);
assume not n
= ((
len (p
^
<*x*>))
- 1);
then
A3: n
< (((
len p)
- 1)
+ 1) by
A1,
A2,
XXREAL_0: 1;
((
len p)
- 1) is
Nat by
CHORD: 1;
hence n
<= ((
len p)
- 1) by
A3,
NAT_1: 13;
end;
theorem ::
GLIB_012:28
for G2 be
_Graph, V be
finite
Subset of (
the_Vertices_of G2) holds for G1 be
addLoops of G2, V holds ex p be non
empty
Graph-yielding
FinSequence st (p
. 1)
== G2 & (p
. (
len p))
= G1 & (
len p)
= ((
card V)
+ 1) & for n be
Element of (
dom p) st n
<= ((
len p)
- 1) holds ex v be
Vertex of G2, e be
object st (p
. (n
+ 1)) is
addEdge of (p
. n), v, e, v & v
in V & not e
in (
the_Edges_of (p
. n))
proof
defpred
P[
Nat] means for G2 be
_Graph holds for V be
finite
Subset of (
the_Vertices_of G2) holds for G1 be
addLoops of G2, V st (
card V)
= $1 holds ex p be non
empty
Graph-yielding
FinSequence st (p
. 1)
== G2 & (p
. (
len p))
= G1 & (
len p)
= ((
card V)
+ 1) & for n be
Element of (
dom p) st n
<= ((
len p)
- 1) holds ex v be
Vertex of G2, e be
object st (p
. (n
+ 1)) is
addEdge of (p
. n), v, e, v & v
in V & not e
in (
the_Edges_of (p
. n));
A1:
P[
0 ]
proof
let G2 be
_Graph, V be
finite
Subset of (
the_Vertices_of G2);
let G1 be
addLoops of G2, V;
assume (
card V)
=
0 ;
then
A2: V
=
{} ;
take p =
<*G1*>;
(p
. 1)
= G1 by
FINSEQ_1: 40;
hence (p
. 1)
== G2 by
A2,
Th21;
thus (p
. (
len p))
= (p
. 1) by
FINSEQ_1: 40
.= G1 by
FINSEQ_1: 40;
thus (
len p)
= ((
card V)
+ 1) by
A2,
FINSEQ_1: 40;
let n be
Element of (
dom p);
A3: 1
<= n by
FINSEQ_3: 25;
assume n
<= ((
len p)
- 1);
then n
<= (1
- 1) by
FINSEQ_1: 40;
hence thesis by
A3,
XXREAL_0: 2;
end;
A4: for k be
Nat st
P[k] holds
P[(k
+ 1)]
proof
let k be
Nat;
assume
A5:
P[k];
let G2 be
_Graph, V be
finite
Subset of (
the_Vertices_of G2);
let G1 be
addLoops of G2, V;
assume
A6: (
card V)
= (k
+ 1);
then
A7: V
<>
{} ;
set v0 = the
Element of V;
v0
in V by
A7;
then
reconsider v0 as
Vertex of G2;
reconsider V9 = (V
\
{v0}) as
finite
Subset of (
the_Vertices_of G2);
A8: V
= (V9
\/
{v0}) by
A7,
ZFMISC_1: 116;
reconsider V0 =
{v0} as
finite
Subset of (
the_Vertices_of G2);
v0
in
{v0} by
TARSKI:def 1;
then
A9: not v0
in V9 by
XBOOLE_0:def 5;
then V9
misses V0 by
ZFMISC_1: 50;
then
consider G9 be
addLoops of G2, V9 such that
A10: G1 is
addLoops of G9, V0 by
A8,
Th24;
(
card V9)
= ((
card V)
- (
card V0)) by
A7,
ZFMISC_1: 31,
CARD_2: 44
.= ((k
+ 1)
- 1) by
A6,
CARD_1: 30;
then
consider p be non
empty
Graph-yielding
FinSequence such that
A11: (p
. 1)
== G2 & (p
. (
len p))
= G9 & (
len p)
= ((
card V9)
+ 1) and
A12: for n be
Element of (
dom p) st n
<= ((
len p)
- 1) holds ex v be
Vertex of G2, e be
object st (p
. (n
+ 1)) is
addEdge of (p
. n), v, e, v & v
in V9 & not e
in (
the_Edges_of (p
. n)) by
A5;
take q = (p
^
<*G1*>);
1
<= (
len p) by
FINSEQ_1: 20;
then 1
in (
dom p) by
FINSEQ_3: 25;
hence (q
. 1)
== G2 by
A11,
FINSEQ_1:def 7;
A13: (
len q)
= ((
len p)
+ (
len
<*G1*>)) by
FINSEQ_1: 22
.= ((
len p)
+ 1) by
FINSEQ_1: 40;
hence
A14: (q
. (
len q))
= G1 by
FINSEQ_1: 42;
thus (
len q)
= ((
card V)
+ 1) by
A8,
A9,
A11,
A13,
CARD_2: 41;
let n be
Element of (
dom q);
assume n
<= ((
len q)
- 1);
per cases by
Lm2;
suppose
A15: n
= ((
len q)
- 1);
then
A16: (q
. (n
+ 1))
= G1 by
A14;
A17: 1
<= n by
FINSEQ_3: 25;
A18: n
= (
len p) by
A13,
A15;
then n
in (
dom p) by
A17,
FINSEQ_3: 25;
then
A19: (q
. n)
= G9 by
A11,
A18,
FINSEQ_1:def 7;
v0 is
Vertex of G9 by
Th15;
then
consider e be
object such that
A20: not e
in (
the_Edges_of G9) & G1 is
addEdge of G9, v0, e, v0 by
A10,
Th27;
reconsider v0 as
Vertex of G2;
take v0, e;
thus (q
. (n
+ 1)) is
addEdge of (q
. n), v0, e, v0 by
A16,
A19,
A20;
thus v0
in V by
A7;
thus not e
in (
the_Edges_of (q
. n)) by
A19,
A20;
end;
suppose
A21: n
<= ((
len p)
- 1);
then
A22: (n
+
0 )
<= (((
len p)
- 1)
+ 1) by
XREAL_1: 7;
1
<= n by
FINSEQ_3: 25;
then
reconsider m = n as
Element of (
dom p) by
A22,
FINSEQ_3: 25;
consider v be
Vertex of G2, e be
object such that
A23: (p
. (m
+ 1)) is
addEdge of (p
. m), v, e, v & v
in V9 & not e
in (
the_Edges_of (p
. m)) by
A12,
A21;
(1
+
0 )
<= (n
+ 1) & (n
+ 1)
<= (((
len p)
- 1)
+ 1) by
A21,
XREAL_1: 6;
then (n
+ 1)
in (
dom p) by
FINSEQ_3: 25;
then
A24: (q
. (n
+ 1))
= (p
. (m
+ 1)) by
FINSEQ_1:def 7;
A25: (q
. n)
= (p
. m) by
FINSEQ_1:def 7;
take v, e;
v
in V by
A23,
XBOOLE_1: 36,
TARSKI:def 3;
hence thesis by
A23,
A24,
A25;
end;
end;
A26: for k be
Nat holds
P[k] from
NAT_1:sch 2(
A1,
A4);
let G2 be
_Graph, V be
finite
Subset of (
the_Vertices_of G2);
let G1 be
addLoops of G2, V;
thus thesis by
A26;
end;
theorem ::
GLIB_012:29
Th29: for G3,G4 be
_Graph, V1,V2 be
set holds for G1 be
addLoops of G3, V1, G2 be
addLoops of G4, V2 holds for F0 be
PGraphMapping of G3, G4 st V1
c= (
the_Vertices_of G3) & V2
c= (
the_Vertices_of G4) & ((F0
_V )
| V1) is
one-to-one & (
dom ((F0
_V )
| V1))
= V1 & (
rng ((F0
_V )
| V1))
= V2 holds ex F be
PGraphMapping of G1, G2 st (F
_V )
= (F0
_V ) & ((F
_E )
| (
dom (F0
_E )))
= (F0
_E ) & (F0 is non
empty implies F is non
empty) & (F0 is
total implies F is
total) & (F0 is
onto implies F is
onto) & (F0 is
one-to-one implies F is
one-to-one) & (F0 is
directed implies F is
directed) & (F0 is
weak_SG-embedding implies F is
weak_SG-embedding) & (F0 is
isomorphism implies F is
isomorphism) & (F0 is
Disomorphism implies F is
Disomorphism)
proof
let G3,G4 be
_Graph, V1,V2 be
set;
let G1 be
addLoops of G3, V1, G2 be
addLoops of G4, V2;
let F0 be
PGraphMapping of G3, G4;
assume that
A1: V1
c= (
the_Vertices_of G3) & V2
c= (
the_Vertices_of G4) and
A2: ((F0
_V )
| V1) is
one-to-one & (
dom ((F0
_V )
| V1))
= V1 & (
rng ((F0
_V )
| V1))
= V2;
(
the_Vertices_of G1)
= (
the_Vertices_of G3) & (
the_Vertices_of G2)
= (
the_Vertices_of G4) by
A1,
Def5;
then
reconsider f = (F0
_V ) as
PartFunc of (
the_Vertices_of G1), (
the_Vertices_of G2);
consider E1 be
set, f1 be
one-to-one
Function such that
A3: E1
misses (
the_Edges_of G3) & (
the_Edges_of G1)
= ((
the_Edges_of G3)
\/ E1) & (
dom f1)
= E1 & (
rng f1)
= V1 & (
the_Source_of G1)
= ((
the_Source_of G3)
+* f1) & (
the_Target_of G1)
= ((
the_Target_of G3)
+* f1) by
A1,
Def5;
consider E2 be
set, f2 be
one-to-one
Function such that
A4: E2
misses (
the_Edges_of G4) & (
the_Edges_of G2)
= ((
the_Edges_of G4)
\/ E2) & (
dom f2)
= E2 & (
rng f2)
= V2 & (
the_Source_of G2)
= ((
the_Source_of G4)
+* f2) & (
the_Target_of G2)
= ((
the_Target_of G4)
+* f2) by
A2,
Def5;
set h = (((f2
" )
* ((F0
_V )
| V1))
* f1);
set g = ((F0
_E )
+* h);
A5: (
dom g)
= ((
dom (F0
_E ))
\/ (
dom h)) by
FUNCT_4:def 1;
A6: (
dom (f2
" ))
= (
rng ((F0
_V )
| V1)) by
A2,
A4,
FUNCT_1: 33;
then
A7: (
dom ((f2
" )
* ((F0
_V )
| V1)))
= (
rng f1) by
A2,
A3,
RELAT_1: 27;
then
A8: (
dom h)
= E1 by
A3,
RELAT_1: 27;
then
A9: (
dom g)
c= (
the_Edges_of G1) by
A3,
A5,
XBOOLE_1: 9;
(
rng ((f2
" )
* ((F0
_V )
| V1)))
= (
rng (f2
" )) by
A6,
RELAT_1: 28
.= E2 by
A4,
FUNCT_1: 33;
then
A10: (
rng h)
= E2 by
A7,
RELAT_1: 28;
A11: (
rng g)
c= ((
rng (F0
_E ))
\/ (
rng h)) by
FUNCT_4: 17;
((
rng (F0
_E ))
\/ (
rng h))
c= ((
the_Edges_of G4)
\/ E2) by
A10,
XBOOLE_1: 9;
then (
rng g)
c= (
the_Edges_of G2) by
A4,
A11,
XBOOLE_1: 1;
then
reconsider g as
PartFunc of (
the_Edges_of G1), (
the_Edges_of G2) by
A9,
RELSET_1: 4;
A12: (
dom (((F0
_V )
| V1)
* f1))
= (
dom f1) by
A2,
A3,
RELAT_1: 27;
now
hereby
let e be
object;
set v = ((
the_Source_of G1)
. e), w = ((
the_Target_of G1)
. e);
assume e
in (
dom g);
per cases by
FUNCT_4: 12;
suppose
A13: e
in (
dom (F0
_E ));
then v
= ((
the_Source_of G3)
. e) & w
= ((
the_Target_of G3)
. e) by
GLIB_006:def 9;
hence v
in (
dom f) & w
in (
dom f) by
A13,
GLIB_010: 5;
end;
suppose e
in (
dom h);
then
A14: e
in (
dom f1) by
A3,
A8;
then v
= (f1
. e) & w
= (f1
. e) by
A3,
FUNCT_4: 13;
then v
in V1 & w
in V1 by
A3,
A14,
FUNCT_1: 3;
hence v
in (
dom f) & w
in (
dom f) by
A2,
RELAT_1: 57;
end;
end;
let e,v,w be
object;
assume
A15: e
in (
dom g) & v
in (
dom f) & w
in (
dom f);
assume
A16: e
Joins (v,w,G1);
per cases by
A15,
FUNCT_4: 12;
suppose
A17: e
in (
dom (F0
_E ));
then e
Joins (v,w,G3) by
A16,
GLIB_006: 72;
then
A18: ((F0
_E )
. e)
Joins (((F0
_V )
. v),((F0
_V )
. w),G4) by
A15,
A17,
GLIB_010: 4;
not e
in E1 by
A3,
A15,
A17,
XBOOLE_0: 5;
then (g
. e)
Joins ((f
. v),(f
. w),G4) by
A8,
A18,
FUNCT_4: 11;
hence (g
. e)
Joins ((f
. v),(f
. w),G2) by
GLIB_006: 70;
end;
suppose e
in (
dom h);
then
A19: e
in E1 & (g
. e)
= (h
. e) by
A8,
FUNCT_4: 13;
then ((
the_Source_of G1)
. e)
= (f1
. e) & ((
the_Target_of G1)
. e)
= (f1
. e) by
A3,
FUNCT_4: 13;
then
A20: v
= (f1
. e) & w
= (f1
. e) by
A16,
GLIB_000:def 13;
then
A21: v
in V1 by
A3,
A19,
FUNCT_1: 3;
then
A22: (f
. v)
= (((F0
_V )
| V1)
. v) by
FUNCT_1: 49;
then
A23: (f
. v)
in V2 by
A2,
A21,
FUNCT_1: 3;
then (f
. v)
in (
dom (f2
" )) by
A4,
FUNCT_1: 33;
then ((f2
" )
. (f
. v))
in (
rng (f2
" )) by
FUNCT_1: 3;
then
A24: ((f2
" )
. (f
. v))
in (
dom f2) by
FUNCT_1: 33;
then ((
the_Source_of G2)
. ((f2
" )
. (f
. v)))
= (f2
. ((f2
" )
. (f
. v))) & ((
the_Target_of G2)
. ((f2
" )
. (f
. v)))
= (f2
. ((f2
" )
. (f
. v))) by
A4,
FUNCT_4: 13;
then
A25: ((
the_Source_of G2)
. ((f2
" )
. (f
. v)))
= (f
. v) & ((
the_Target_of G2)
. ((f2
" )
. (f
. v)))
= (f
. v) by
A4,
A23,
FUNCT_1: 35;
((f2
" )
. (f
. v))
in (
the_Edges_of G2) by
A4,
A24,
XBOOLE_0:def 3;
then ((f2
" )
. (((F0
_V )
| V1)
. v))
Joins ((f
. v),(f
. v),G2) by
A22,
A25,
GLIB_000:def 13;
then ((f2
" )
. ((((F0
_V )
| V1)
* f1)
. e))
Joins ((f
. v),(f
. w),G2) by
A3,
A19,
A20,
FUNCT_1: 13;
then (((f2
" )
* (((F0
_V )
| V1)
* f1))
. e)
Joins ((f
. v),(f
. w),G2) by
A3,
A12,
A19,
FUNCT_1: 13;
hence (g
. e)
Joins ((f
. v),(f
. w),G2) by
A19,
RELAT_1: 36;
end;
end;
then
reconsider F =
[f, g] as
PGraphMapping of G1, G2 by
GLIB_010: 8;
take F;
thus (F
_V )
= (F0
_V );
A26: (
dom (F0
_E ))
misses (
dom h) by
A3,
A8,
XBOOLE_1: 63;
hence ((F
_E )
| (
dom (F0
_E )))
= (F0
_E ) by
FUNCT_4: 33;
hereby
assume F0 is non
empty;
then (
dom (F
_V ))
<>
{} ;
hence F is non
empty;
end;
thus
A27: F0 is
total implies F is
total
proof
assume F0 is
total;
then
A28: (
dom (F0
_V ))
= (
the_Vertices_of G3) & (
dom (F0
_E ))
= (
the_Edges_of G3) by
GLIB_010:def 11;
then
A29: (
dom (F
_V ))
= (
the_Vertices_of G1) by
A1,
Def5;
(
dom (F
_E ))
= (
the_Edges_of G1) by
A3,
A8,
A28,
FUNCT_4:def 1;
hence F is
total by
A29,
GLIB_010:def 11;
end;
thus
A30: F0 is
onto implies F is
onto
proof
assume F0 is
onto;
then
A31: (
rng (F0
_V ))
= (
the_Vertices_of G4) & (
rng (F0
_E ))
= (
the_Edges_of G4) by
GLIB_010:def 12;
then
A32: (
rng (F
_V ))
= (
the_Vertices_of G2) by
A2,
Def5;
(
rng (F
_E ))
= (
the_Edges_of G2) by
A4,
A10,
A26,
A31,
NECKLACE: 6;
hence F is
onto by
A32,
GLIB_010:def 12;
end;
thus
A33: F0 is
one-to-one implies F is
one-to-one
proof
assume
A34: F0 is
one-to-one;
(
rng (F0
_E ))
misses E2 by
A4,
XBOOLE_1: 63;
then (F
_V ) is
one-to-one & (F
_E ) is
one-to-one by
A2,
A10,
A34,
FUNCT_4: 92;
hence F is
one-to-one by
GLIB_010:def 13;
end;
thus
A35: F0 is
directed implies F is
directed
proof
assume
A36: F0 is
directed;
now
let e,v,w be
object;
assume
A37: e
in (
dom (F
_E )) & v
in (
dom (F
_V )) & w
in (
dom (F
_V ));
assume
A38: e
DJoins (v,w,G1);
per cases by
A37,
FUNCT_4: 12;
suppose
A39: e
in (
dom (F0
_E ));
then e
DJoins (v,w,G3) by
A38,
GLIB_006: 71;
then
A40: ((F0
_E )
. e)
DJoins (((F0
_V )
. v),((F0
_V )
. w),G4) by
A36,
A37,
A39,
GLIB_010:def 14;
not e
in E1 by
A3,
A37,
A39,
XBOOLE_0: 5;
then (g
. e)
DJoins ((f
. v),(f
. w),G4) by
A8,
A40,
FUNCT_4: 11;
hence ((F
_E )
. e)
DJoins (((F
_V )
. v),((F
_V )
. w),G2) by
GLIB_006: 70;
end;
suppose e
in (
dom h);
then
A41: e
in E1 & (g
. e)
= (h
. e) by
A8,
FUNCT_4: 13;
then ((
the_Source_of G1)
. e)
= (f1
. e) & ((
the_Target_of G1)
. e)
= (f1
. e) by
A3,
FUNCT_4: 13;
then
A42: v
= (f1
. e) & w
= (f1
. e) by
A38,
GLIB_000:def 14;
then
A43: v
in V1 by
A3,
A41,
FUNCT_1: 3;
then
A44: (f
. v)
= (((F0
_V )
| V1)
. v) by
FUNCT_1: 49;
then
A45: (f
. v)
in V2 by
A2,
A43,
FUNCT_1: 3;
then (f
. v)
in (
dom (f2
" )) by
A4,
FUNCT_1: 33;
then ((f2
" )
. (f
. v))
in (
rng (f2
" )) by
FUNCT_1: 3;
then
A46: ((f2
" )
. (f
. v))
in (
dom f2) by
FUNCT_1: 33;
then ((
the_Source_of G2)
. ((f2
" )
. (f
. v)))
= (f2
. ((f2
" )
. (f
. v))) & ((
the_Target_of G2)
. ((f2
" )
. (f
. v)))
= (f2
. ((f2
" )
. (f
. v))) by
A4,
FUNCT_4: 13;
then
A47: ((
the_Source_of G2)
. ((f2
" )
. (f
. v)))
= (f
. v) & ((
the_Target_of G2)
. ((f2
" )
. (f
. v)))
= (f
. v) by
A4,
A45,
FUNCT_1: 35;
((f2
" )
. (f
. v))
in (
the_Edges_of G2) by
A4,
A46,
XBOOLE_0:def 3;
then ((f2
" )
. (((F0
_V )
| V1)
. v))
DJoins ((f
. v),(f
. v),G2) by
A44,
A47,
GLIB_000:def 14;
then ((f2
" )
. ((((F0
_V )
| V1)
* f1)
. e))
DJoins ((f
. v),(f
. w),G2) by
A3,
A41,
A42,
FUNCT_1: 13;
then (((f2
" )
* (((F0
_V )
| V1)
* f1))
. e)
DJoins ((f
. v),(f
. w),G2) by
A3,
A12,
A41,
FUNCT_1: 13;
hence ((F
_E )
. e)
DJoins (((F
_V )
. v),((F
_V )
. w),G2) by
A41,
RELAT_1: 36;
end;
end;
hence F is
directed by
GLIB_010:def 14;
end;
thus F0 is
weak_SG-embedding implies F is
weak_SG-embedding by
A27,
A33;
thus F0 is
isomorphism implies F is
isomorphism by
A27,
A30,
A33;
thus F0 is
Disomorphism implies F is
Disomorphism by
A27,
A30,
A33,
A35;
end;
theorem ::
GLIB_012:30
for G3 be
_Graph, G4 be G3
-isomorphic
_Graph holds for G1 be
addLoops of G3 holds for G2 be
addLoops of G4 holds G2 is G1
-isomorphic
proof
let G3 be
_Graph, G4 be G3
-isomorphic
_Graph;
let G1 be
addLoops of G3;
let G2 be
addLoops of G4;
consider F0 be
PGraphMapping of G3, G4 such that
A1: F0 is
isomorphism by
GLIB_010:def 23;
A2: (
dom ((F0
_V )
| (
the_Vertices_of G3)))
= (
the_Vertices_of G3) by
A1,
GLIB_010:def 11;
(
rng ((F0
_V )
| (
the_Vertices_of G3)))
= (
the_Vertices_of G4) by
A1,
GLIB_010:def 12;
then
consider F be
PGraphMapping of G1, G2 such that (F
_V )
= (F0
_V ) & ((F
_E )
| (
dom (F0
_E )))
= (F0
_E ) and F0 is non
empty implies F is non
empty and F0 is
total implies F is
total and F0 is
onto implies F is
onto and F0 is
one-to-one implies F is
one-to-one and F0 is
directed implies F is
directed and F0 is
weak_SG-embedding implies F is
weak_SG-embedding and
A3: F0 is
isomorphism implies F is
isomorphism and F0 is
Disomorphism implies F is
Disomorphism by
A1,
A2,
Th29;
thus thesis by
A1,
A3,
GLIB_010:def 23;
end;
theorem ::
GLIB_012:31
for G3 be
_Graph, G4 be G3
-Disomorphic
_Graph holds for G1 be
addLoops of G3 holds for G2 be
addLoops of G4 holds G2 is G1
-Disomorphic
proof
let G3 be
_Graph, G4 be G3
-Disomorphic
_Graph;
let G1 be
addLoops of G3;
let G2 be
addLoops of G4;
consider F0 be
PGraphMapping of G3, G4 such that
A1: F0 is
Disomorphism by
GLIB_010:def 24;
A2: (
dom ((F0
_V )
| (
the_Vertices_of G3)))
= (
the_Vertices_of G3) by
A1,
GLIB_010:def 11;
(
rng ((F0
_V )
| (
the_Vertices_of G3)))
= (
the_Vertices_of G4) by
A1,
GLIB_010:def 12;
then
consider F be
PGraphMapping of G1, G2 such that (F
_V )
= (F0
_V ) & ((F
_E )
| (
dom (F0
_E )))
= (F0
_E ) and F0 is non
empty implies F is non
empty and F0 is
total implies F is
total and F0 is
onto implies F is
onto and F0 is
one-to-one implies F is
one-to-one and F0 is
directed implies F is
directed and F0 is
weak_SG-embedding implies F is
weak_SG-embedding and F0 is
isomorphism implies F is
isomorphism and
A3: F0 is
Disomorphism implies F is
Disomorphism by
A1,
A2,
Th29;
thus thesis by
A1,
A3,
GLIB_010:def 24;
end;
theorem ::
GLIB_012:32
for G3,G4 be
_Graph, V be
set holds for G1 be
addLoops of G3, V, G2 be
addLoops of G4, V st G3
== G4 holds G2 is G1
-Disomorphic
proof
let G3,G4 be
_Graph, V be
set;
let G1 be
addLoops of G3, V, G2 be
addLoops of G4, V;
assume
A1: G3
== G4;
per cases ;
suppose
A2: V
c= (
the_Vertices_of G3);
consider F0 be
PGraphMapping of G3, G4 such that
A3: F0
= (
id G3) & F0 is
Disomorphism by
A1,
GLIBPRE0: 77;
A4: ((F0
_V )
| V) is
one-to-one by
A3,
FUNCT_1: 52;
A5: (
dom ((F0
_V )
| V))
= ((
dom (F0
_V ))
/\ V) by
RELAT_1: 61
.= V by
A2,
A3,
XBOOLE_1: 28;
A6: (
rng ((F0
_V )
| V))
= (((
id G3)
_V )
.: V) by
A3,
RELAT_1: 115
.= V by
A2,
FUNCT_1: 92;
consider F be
PGraphMapping of G1, G2 such that (F
_V )
= (F0
_V ) & ((F
_E )
| (
dom (F0
_E )))
= (F0
_E ) and F0 is non
empty implies F is non
empty and F0 is
total implies F is
total and F0 is
onto implies F is
onto and F0 is
one-to-one implies F is
one-to-one and F0 is
directed implies F is
directed and F0 is
weak_SG-embedding implies F is
weak_SG-embedding and F0 is
isomorphism implies F is
isomorphism and
A7: F0 is
Disomorphism implies F is
Disomorphism by
A2,
A4,
A5,
A6,
Th29;
thus thesis by
A3,
A7,
GLIB_010:def 24;
end;
suppose not V
c= (
the_Vertices_of G3);
then G1
== G3 & not V
c= (
the_Vertices_of G4) by
A1,
Def5,
GLIB_000:def 34;
then G1
== G4 & G2
== G4 by
A1,
Def5,
GLIB_000: 85;
hence thesis by
GLIB_000: 85,
GLIBPRE0: 78;
end;
end;
theorem ::
GLIB_012:33
for G3 be
_Graph, V,E be
set, G4 be
reverseEdgeDirections of G3, E holds for G1 be
addLoops of G3, V, G2 be
addLoops of G4, V holds G2 is G1
-isomorphic
proof
let G3 be
_Graph, V,E be
set, G4 be
reverseEdgeDirections of G3, E;
let G1 be
addLoops of G3, V, G2 be
addLoops of G4, V;
per cases ;
suppose
A1: V
c= (
the_Vertices_of G3);
consider F0 be
PGraphMapping of G3, G4 such that
A2: F0
= (
id G3) & F0 is
isomorphism by
GLIBPRE0: 79;
A3: ((F0
_V )
| V) is
one-to-one by
A2,
FUNCT_1: 52;
A4: (
dom ((F0
_V )
| V))
= ((
dom (F0
_V ))
/\ V) by
RELAT_1: 61
.= V by
A1,
A2,
XBOOLE_1: 28;
A5: (
rng ((F0
_V )
| V))
= (((
id G3)
_V )
.: V) by
A2,
RELAT_1: 115
.= V by
A1,
FUNCT_1: 92;
consider F be
PGraphMapping of G1, G2 such that (F
_V )
= (F0
_V ) & ((F
_E )
| (
dom (F0
_E )))
= (F0
_E ) and F0 is non
empty implies F is non
empty and F0 is
total implies F is
total and F0 is
onto implies F is
onto and F0 is
one-to-one implies F is
one-to-one and F0 is
directed implies F is
directed and F0 is
weak_SG-embedding implies F is
weak_SG-embedding and
A6: F0 is
isomorphism implies F is
isomorphism and F0 is
Disomorphism implies F is
Disomorphism by
A1,
A3,
A4,
A5,
Th29;
thus thesis by
A2,
A6,
GLIB_010:def 23;
end;
suppose not V
c= (
the_Vertices_of G3);
then G1
== G3 & not V
c= (
the_Vertices_of G4) by
Def5,
GLIB_007: 4;
then
A7: G1
== G3 & G2
== G4 by
Def5;
then G2 is
reverseEdgeDirections of G3, E by
GLIB_007: 2;
then G3 is
reverseEdgeDirections of G2, E by
GLIB_007: 3;
then G1 is
reverseEdgeDirections of G2, E by
A7,
GLIB_007: 2;
then G2 is
reverseEdgeDirections of G1, E by
GLIB_007: 3;
hence thesis by
GLIBPRE0: 80;
end;
end;
theorem ::
GLIB_012:34
for G3 be
_Graph, E,V be
set, G4 be
reverseEdgeDirections of G3, E holds for G1 be
addLoops of G3, V, G2 be
reverseEdgeDirections of G1, E st E
c= (
the_Edges_of G3) holds G2 is
addLoops of G4, V
proof
let G3 be
_Graph, E,V be
set, G4 be
reverseEdgeDirections of G3, E;
let G1 be
addLoops of G3, V, G2 be
reverseEdgeDirections of G1, E;
assume
A1: E
c= (
the_Edges_of G3);
A2: (
the_Vertices_of G2)
= (
the_Vertices_of G1) by
GLIB_007: 4
.= (
the_Vertices_of G3) by
Th15
.= (
the_Vertices_of G4) by
GLIB_007: 4;
(
the_Edges_of G3)
c= (
the_Edges_of G1) by
GLIB_006:def 9;
then
A3: E
c= (
the_Edges_of G1) by
A1,
XBOOLE_1: 1;
A4: G2 is
Supergraph of G4 by
A1,
GLIBPRE0: 52;
per cases ;
suppose
A5: V
c= (
the_Vertices_of G3);
then
A6: V
c= (
the_Vertices_of G4) by
GLIB_007: 4;
now
consider D be
set, f be
one-to-one
Function such that
A7: D
misses (
the_Edges_of G3) & (
the_Edges_of G1)
= ((
the_Edges_of G3)
\/ D) & (
dom f)
= D & (
rng f)
= V & (
the_Source_of G1)
= ((
the_Source_of G3)
+* f) & (
the_Target_of G1)
= ((
the_Target_of G3)
+* f) by
A5,
Def5;
take D, f;
thus D
misses (
the_Edges_of G4) by
A7,
GLIB_007: 4;
thus (
the_Edges_of G2)
= (
the_Edges_of G1) by
GLIB_007: 4
.= ((
the_Edges_of G4)
\/ D) by
A7,
GLIB_007: 4;
thus (
dom f)
= D & (
rng f)
= V by
A7;
E
= ((
the_Edges_of G3)
/\ E) by
A1,
XBOOLE_1: 28;
then
A8: (
dom f)
misses ((
the_Edges_of G3)
/\ E) by
A1,
A7,
XBOOLE_1: 63;
then (
dom f)
misses ((
dom (
the_Source_of G3))
/\ E) by
FUNCT_2:def 1;
then
A9: (
dom f)
misses (
dom ((
the_Source_of G3)
| E)) by
RELAT_1: 61;
(
dom f)
misses ((
dom (
the_Target_of G3))
/\ E) by
A8,
FUNCT_2:def 1;
then
A10: (
dom f)
misses (
dom ((
the_Target_of G3)
| E)) by
RELAT_1: 61;
A11: ((
the_Source_of G1)
| E)
= (((
the_Source_of G1)
| (
the_Edges_of G3))
| E) by
A1,
RELAT_1: 74
.= ((
the_Source_of G3)
| E) by
GLIB_006: 69;
A12: ((
the_Target_of G1)
| E)
= (((
the_Target_of G1)
| (
the_Edges_of G3))
| E) by
A1,
RELAT_1: 74
.= ((
the_Target_of G3)
| E) by
GLIB_006: 69;
thus (
the_Source_of G2)
= ((
the_Source_of G1)
+* ((
the_Target_of G1)
| E)) by
A3,
GLIB_007:def 1
.= ((
the_Source_of G3)
+* (f
+* ((
the_Target_of G3)
| E))) by
A7,
A12,
FUNCT_4: 14
.= ((
the_Source_of G3)
+* (((
the_Target_of G3)
| E)
+* f)) by
A10,
FUNCT_4: 35
.= (((
the_Source_of G3)
+* ((
the_Target_of G3)
| E))
+* f) by
FUNCT_4: 14
.= ((
the_Source_of G4)
+* f) by
A1,
GLIB_007:def 1;
thus (
the_Target_of G2)
= ((
the_Target_of G1)
+* ((
the_Source_of G1)
| E)) by
A3,
GLIB_007:def 1
.= ((
the_Target_of G3)
+* (f
+* ((
the_Source_of G3)
| E))) by
A7,
A11,
FUNCT_4: 14
.= ((
the_Target_of G3)
+* (((
the_Source_of G3)
| E)
+* f)) by
A9,
FUNCT_4: 35
.= (((
the_Target_of G3)
+* ((
the_Source_of G3)
| E))
+* f) by
FUNCT_4: 14
.= ((
the_Target_of G4)
+* f) by
A1,
GLIB_007:def 1;
end;
hence thesis by
A2,
A4,
A6,
Def5;
end;
suppose not V
c= (
the_Vertices_of G3);
then
A13: G1
== G3 & not V
c= (
the_Vertices_of G4) by
Def5,
GLIB_007: 4;
G3 is
reverseEdgeDirections of G4, E by
GLIB_007: 3;
then G1 is
reverseEdgeDirections of G4, E by
A13,
GLIB_007: 2;
then G4 is
reverseEdgeDirections of G1, E by
GLIB_007: 3;
then G2
== G4 by
GLIB_007: 1;
hence thesis by
A4,
A13,
Def5;
end;
end;
theorem ::
GLIB_012:35
for G3 be
_Graph, V1 be
Subset of (
the_Vertices_of G3) holds for V2 be non
empty
Subset of (
the_Vertices_of G3) holds for G4 be
inducedSubgraph of G3, V2 holds for G1 be
addLoops of G3, V1, G2 be
inducedSubgraph of G1, V2 holds G2 is
addLoops of G4, (V1
/\ V2)
proof
let G3 be
_Graph, V1 be
Subset of (
the_Vertices_of G3);
let V2 be non
empty
Subset of (
the_Vertices_of G3);
let G4 be
inducedSubgraph of G3, V2;
let G1 be
addLoops of G3, V1, G2 be
inducedSubgraph of G1, V2;
A1: (
the_Vertices_of G1)
= (
the_Vertices_of G3) by
Def5;
A2: (
the_Vertices_of G4)
= V2 by
GLIB_000:def 37;
A3: (
the_Vertices_of G2)
= V2 by
A1,
GLIB_000:def 37;
A4: (
the_Edges_of G4)
= (G3
.edgesBetween V2) by
GLIB_000:def 37;
A5: (
the_Edges_of G2)
= (G1
.edgesBetween V2) by
A1,
GLIB_000:def 37;
consider E be
set, f be
one-to-one
Function such that
A6: E
misses (
the_Edges_of G3) & (
the_Edges_of G1)
= ((
the_Edges_of G3)
\/ E) & (
dom f)
= E & (
rng f)
= V1 & (
the_Source_of G1)
= ((
the_Source_of G3)
+* f) & (
the_Target_of G1)
= ((
the_Target_of G3)
+* f) by
Def5;
set g = (f
| (f
" V2));
set D = (
dom g);
now
let e be
object;
thus e
in (
the_Edges_of G2) implies e
in (
the_Edges_of G4) or e
in D
proof
assume e
in (
the_Edges_of G2);
then
A7: e
in (
the_Edges_of G1) & ((
the_Source_of G1)
. e)
in V2 & ((
the_Target_of G1)
. e)
in V2 by
A5,
GLIB_000: 31;
per cases by
A6,
XBOOLE_0:def 3;
suppose
A8: e
in (
the_Edges_of G3);
then ((
the_Source_of G3)
. e)
in V2 & ((
the_Target_of G3)
. e)
in V2 by
A7,
GLIB_006:def 9;
hence thesis by
A4,
A8,
GLIB_000: 31;
end;
suppose
A9: e
in E;
then ((
the_Source_of G1)
. e)
= (f
. e) by
A6,
FUNCT_4: 13;
then e
in (f
" V2) by
A6,
A7,
A9,
FUNCT_1:def 7;
hence thesis by
A6,
A9,
RELAT_1: 57;
end;
end;
assume e
in (
the_Edges_of G4) or e
in D;
per cases ;
suppose e
in (
the_Edges_of G4);
then
A10: e
in (
the_Edges_of G3) & ((
the_Source_of G3)
. e)
in V2 & ((
the_Target_of G3)
. e)
in V2 by
A4,
GLIB_000: 31;
then
A11: ((
the_Source_of G3)
. e)
= ((
the_Source_of G1)
. e) & ((
the_Target_of G3)
. e)
= ((
the_Target_of G1)
. e) by
GLIB_006:def 9;
(
the_Edges_of G3)
c= (
the_Edges_of G1) by
GLIB_006:def 9;
hence e
in (
the_Edges_of G2) by
A5,
A10,
A11,
GLIB_000: 31;
end;
suppose e
in D;
then e
in (f
" V2) by
RELAT_1: 57;
then
A12: e
in (
dom f) & (f
. e)
in V2 by
FUNCT_1:def 7;
then
A13: ((
the_Source_of G1)
. e)
in V2 & ((
the_Target_of G1)
. e)
in V2 by
A6,
FUNCT_4: 13;
e
in (
the_Edges_of G1) by
A6,
A12,
XBOOLE_0:def 3;
hence e
in (
the_Edges_of G2) by
A5,
A13,
GLIB_000: 31;
end;
end;
then
A14: (
the_Edges_of G2)
= ((
the_Edges_of G4)
\/ D) by
XBOOLE_0:def 3;
now
thus (
the_Vertices_of G4)
c= (
the_Vertices_of G2) by
A2,
A3;
thus (
the_Edges_of G4)
c= (
the_Edges_of G2) by
A14,
XBOOLE_1: 7;
let e be
set;
set v = ((
the_Source_of G4)
. e), w = ((
the_Target_of G4)
. e);
assume
A15: e
in (
the_Edges_of G4);
then e
DJoins (v,w,G4) by
GLIB_000:def 14;
then
A16: e
DJoins (v,w,G3) by
GLIB_000: 72;
then
A17: e
DJoins (v,w,G1) by
GLIB_006: 70;
then
A18: v
= ((
the_Source_of G1)
. e) & w
= ((
the_Target_of G1)
. e) by
GLIB_000:def 14;
v
= ((
the_Source_of G3)
. e) & w
= ((
the_Target_of G3)
. e) by
A16,
GLIB_000:def 14;
then
A19: e
in (
the_Edges_of G3) & v
in V2 & w
in V2 by
A4,
A15,
GLIB_000: 31;
(
the_Edges_of G3)
c= (
the_Edges_of G1) by
GLIB_006:def 9;
then e
in (G1
.edgesBetween V2) by
A19,
A18,
GLIB_000: 31;
then e
DJoins (v,w,G2) by
A5,
A17,
GLIB_000: 73;
hence ((
the_Source_of G2)
. e)
= ((
the_Source_of G4)
. e) & ((
the_Target_of G2)
. e)
= ((
the_Target_of G4)
. e) by
GLIB_000:def 14;
end;
then
A20: G2 is
Supergraph of G4 by
GLIB_006:def 9;
A21: (V1
/\ V2)
c= (
the_Vertices_of G4) by
A2,
XBOOLE_1: 17;
now
thus (
the_Vertices_of G2)
= (
the_Vertices_of G4) by
A2,
A3;
reconsider D as
set;
reconsider g as
one-to-one
Function by
FUNCT_1: 52;
take D, g;
D
c= (
dom f) & (
the_Edges_of G4)
c= (
the_Edges_of G3) by
RELAT_1: 60;
hence
A22: D
misses (
the_Edges_of G4) by
A6,
XBOOLE_1: 64;
thus (
the_Edges_of G2)
= ((
the_Edges_of G4)
\/ D) by
A14;
thus (
dom g)
= D;
thus (
rng g)
= (f
.: (f
" V2)) by
RELAT_1: 115
.= (V2
/\ (f
.: (
dom f))) by
FUNCT_1: 78
.= (V1
/\ V2) by
A6,
RELAT_1: 113;
A23: (
dom (
the_Source_of G2))
= ((
the_Edges_of G4)
\/ D) by
A14,
FUNCT_2:def 1
.= ((
dom (
the_Source_of G4))
\/ (
dom g)) by
FUNCT_2:def 1
.= (
dom ((
the_Source_of G4)
+* g)) by
FUNCT_4:def 1;
now
let x be
object;
assume x
in (
dom (
the_Source_of G2));
then
A24: x
in ((
the_Edges_of G4)
\/ D) by
A14;
per cases by
XBOOLE_0:def 3;
suppose
A25: x
in (
the_Edges_of G4);
then
A26: not x
in D by
A22,
A24,
XBOOLE_0: 5;
thus ((
the_Source_of G2)
. x)
= ((
the_Source_of G4)
. x) by
A20,
A25,
GLIB_006:def 9
.= (((
the_Source_of G4)
+* g)
. x) by
A26,
FUNCT_4: 11;
end;
suppose
A27: x
in D;
then
A28: x
in (f
" V2) by
RELAT_1: 57;
then
A29: x
in (
dom f) & (f
. x)
in V2 by
FUNCT_1:def 7;
then
A30: ((
the_Source_of G1)
. x)
= (f
. x) & ((
the_Target_of G1)
. x)
= (f
. x) by
A6,
FUNCT_4: 13;
x
in (
the_Edges_of G1) by
A6,
A29,
XBOOLE_0:def 3;
then
A31: x
Joins ((f
. x),(f
. x),G1) by
A30,
GLIB_000:def 13;
then x
in (G1
.edgesBetween V2) by
A29,
GLIB_000: 32;
then x
Joins ((f
. x),(f
. x),G2) by
A5,
A31,
GLIB_000: 73;
hence ((
the_Source_of G2)
. x)
= (f
. x) by
GLIB_000:def 13
.= (g
. x) by
A28,
FUNCT_1: 49
.= (((
the_Source_of G4)
+* g)
. x) by
A27,
FUNCT_4: 13;
end;
end;
hence (
the_Source_of G2)
= ((
the_Source_of G4)
+* g) by
A23,
FUNCT_1: 2;
A32: (
dom (
the_Target_of G2))
= ((
the_Edges_of G4)
\/ D) by
A14,
FUNCT_2:def 1
.= ((
dom (
the_Target_of G4))
\/ (
dom g)) by
FUNCT_2:def 1
.= (
dom ((
the_Target_of G4)
+* g)) by
FUNCT_4:def 1;
now
let x be
object;
assume x
in (
dom (
the_Target_of G2));
then
A33: x
in ((
the_Edges_of G4)
\/ D) by
A14;
per cases by
XBOOLE_0:def 3;
suppose
A34: x
in (
the_Edges_of G4);
then
A35: not x
in D by
A22,
A33,
XBOOLE_0: 5;
thus ((
the_Target_of G2)
. x)
= ((
the_Target_of G4)
. x) by
A20,
A34,
GLIB_006:def 9
.= (((
the_Target_of G4)
+* g)
. x) by
A35,
FUNCT_4: 11;
end;
suppose
A36: x
in D;
then
A37: x
in (f
" V2) by
RELAT_1: 57;
then
A38: x
in (
dom f) & (f
. x)
in V2 by
FUNCT_1:def 7;
then
A39: ((
the_Source_of G1)
. x)
= (f
. x) & ((
the_Target_of G1)
. x)
= (f
. x) by
A6,
FUNCT_4: 13;
x
in (
the_Edges_of G1) by
A6,
A38,
XBOOLE_0:def 3;
then
A40: x
Joins ((f
. x),(f
. x),G1) by
A39,
GLIB_000:def 13;
then x
in (G1
.edgesBetween V2) by
A38,
GLIB_000: 32;
then x
Joins ((f
. x),(f
. x),G2) by
A5,
A40,
GLIB_000: 73;
hence ((
the_Target_of G2)
. x)
= (f
. x) by
GLIB_000:def 13
.= (g
. x) by
A37,
FUNCT_1: 49
.= (((
the_Target_of G4)
+* g)
. x) by
A36,
FUNCT_4: 13;
end;
end;
hence (
the_Target_of G2)
= ((
the_Target_of G4)
+* g) by
A32,
FUNCT_1: 2;
end;
hence G2 is
addLoops of G4, (V1
/\ V2) by
A20,
A21,
Def5;
end;
theorem ::
GLIB_012:36
for G2 be
_Graph, V be
set, G1 be
addLoops of G2, V holds for v1 be
Vertex of G1, v2 be
Vertex of G2 st not v1
in V & v1
= v2 holds (v1 is
isolated iff v2 is
isolated) & (v1 is
endvertex iff v2 is
endvertex)
proof
let G2 be
_Graph, V be
set, G1 be
addLoops of G2, V;
let v1 be
Vertex of G1, v2 be
Vertex of G2;
assume
A1: not v1
in V & v1
= v2;
per cases ;
suppose V
c= (
the_Vertices_of G2);
then
consider E be
set, f be
one-to-one
Function such that
A2: E
misses (
the_Edges_of G2) & (
the_Edges_of G1)
= ((
the_Edges_of G2)
\/ E) & (
dom f)
= E & (
rng f)
= V & (
the_Source_of G1)
= ((
the_Source_of G2)
+* f) & (
the_Target_of G1)
= ((
the_Target_of G2)
+* f) by
Def5;
A3: G2 is
Subgraph of G1 by
GLIB_006: 57;
hence v1 is
isolated implies v2 is
isolated by
A1,
GLIB_000: 83;
thus v2 is
isolated implies v1 is
isolated
proof
assume
A4: v2 is
isolated;
assume not v1 is
isolated;
then (v1
.allNeighbors() )
<>
{} by
GLIB_008: 7;
then
consider w be
object such that
A5: w
in (v1
.allNeighbors() ) by
XBOOLE_0:def 1;
consider e be
object such that
A6: e
Joins (v1,w,G1) by
A5,
GLIB_000: 71;
per cases by
A1,
A6,
GLIB_006: 72;
suppose
A7: e
Joins (v2,w,G2);
w is
set by
TARSKI: 1;
then w
in (v2
.allNeighbors() ) by
A7,
GLIB_000: 71;
hence contradiction by
A4,
GLIB_008: 7;
end;
suppose
A8: not e
in (
the_Edges_of G2);
e
in ((
the_Edges_of G2)
\/ E) by
A2,
A6,
GLIB_000:def 13;
then
A9: e
in (
dom f) by
A2,
A8,
XBOOLE_0: 5;
then ((
the_Source_of G1)
. e)
= (f
. e) & ((
the_Target_of G1)
. e)
= (f
. e) by
A2,
FUNCT_4: 13;
then v1
= (f
. e) by
A6,
GLIB_000:def 13;
hence contradiction by
A1,
A2,
A9,
FUNCT_1: 3;
end;
end;
thus v1 is
endvertex implies v2 is
endvertex
proof
assume
A10: v1 is
endvertex;
assume not v2 is
endvertex;
then
A11: v2 is
isolated by
A1,
A3,
A10,
GLIB_000: 84;
consider e be
object such that
A12: (v1
.edgesInOut() )
=
{e} & not e
Joins (v1,v1,G1) by
A10,
GLIB_000:def 51;
e
in (v1
.edgesInOut() ) by
A12,
TARSKI:def 1;
then
A13: e
in (
the_Edges_of G1) & (((
the_Source_of G1)
. e)
= v1 or ((
the_Target_of G1)
. e)
= v1) by
GLIB_000: 61;
per cases ;
suppose
A14: ((
the_Source_of G1)
. e)
= v1;
set w = ((
the_Target_of G1)
. e);
e
Joins (v1,w,G1) by
A13,
A14,
GLIB_000:def 13;
then e
Joins (v2,w,G2) by
A1,
A12,
Th17;
then w
in (v2
.allNeighbors() ) by
GLIB_000: 71;
hence contradiction by
A11,
GLIB_008: 7;
end;
suppose
A15: ((
the_Target_of G1)
. e)
= v1;
set w = ((
the_Source_of G1)
. e);
e
Joins (v1,w,G1) by
A13,
A15,
GLIB_000:def 13;
then e
Joins (v2,w,G2) by
A1,
A12,
Th17;
then w
in (v2
.allNeighbors() ) by
GLIB_000: 71;
hence contradiction by
A11,
GLIB_008: 7;
end;
end;
thus v2 is
endvertex implies v1 is
endvertex
proof
assume v2 is
endvertex;
then
consider e be
object such that
A16: (v2
.edgesInOut() )
=
{e} & not e
Joins (v2,v2,G2) by
GLIB_000:def 51;
now
let e0 be
object;
hereby
assume e0
in (v1
.edgesInOut() );
then
A17: e0
in (
the_Edges_of G1) & (((
the_Source_of G1)
. e0)
= v1 or ((
the_Target_of G1)
. e0)
= v1) by
GLIB_000: 61;
per cases ;
suppose
A18: ((
the_Source_of G1)
. e0)
= v1;
set w = ((
the_Target_of G1)
. e0);
A19: e0
Joins (v1,w,G1) by
A17,
A18,
GLIB_000:def 13;
e0
in (
the_Edges_of G2)
proof
assume not e0
in (
the_Edges_of G2);
then
A20: e0
in (
dom f) by
A2,
A17,
XBOOLE_0:def 3;
then v1
= (f
. e0) by
A2,
A17,
FUNCT_4: 13;
hence contradiction by
A1,
A2,
A20,
FUNCT_1: 3;
end;
then e0
in (v2
.edgesInOut() ) by
A1,
A19,
GLIB_006: 72,
GLIB_000: 62;
hence e0
= e by
A16,
TARSKI:def 1;
end;
suppose
A21: ((
the_Target_of G1)
. e0)
= v1;
set w = ((
the_Source_of G1)
. e0);
A22: e0
Joins (v1,w,G1) by
A17,
A21,
GLIB_000:def 13;
e0
in (
the_Edges_of G2)
proof
assume not e0
in (
the_Edges_of G2);
then
A23: e0
in (
dom f) by
A2,
A17,
XBOOLE_0:def 3;
then v1
= (f
. e0) by
A2,
A17,
FUNCT_4: 13;
hence contradiction by
A1,
A2,
A23,
FUNCT_1: 3;
end;
then e0
in (v2
.edgesInOut() ) by
A1,
A22,
GLIB_006: 72,
GLIB_000: 62;
hence e0
= e by
A16,
TARSKI:def 1;
end;
end;
assume e0
= e;
then e0
in (v2
.edgesInOut() ) by
A16,
TARSKI:def 1;
hence e0
in (v1
.edgesInOut() ) by
A1,
A3,
GLIB_000: 78,
TARSKI:def 3;
end;
then
A24: (v1
.edgesInOut() )
=
{e} by
TARSKI:def 1;
e
in (v2
.edgesInOut() ) by
A16,
TARSKI:def 1;
then not e
Joins (v1,v1,G1) by
A1,
A16,
GLIB_006: 72;
hence v1 is
endvertex by
A24,
GLIB_000:def 51;
end;
end;
suppose not V
c= (
the_Vertices_of G2);
then G1
== G2 by
Def5;
hence thesis by
A1,
GLIB_000: 97;
end;
end;
theorem ::
GLIB_012:37
Th37: for G2 be
_Graph, V be
set, G1 be
addLoops of G2, V holds for P be
Path of G1 holds P is
Path of G2 or ex v,e be
object st e
Joins (v,v,G1) & P
= (G1
.walkOf (v,e,v))
proof
let G2 be
_Graph, V be
set, G1 be
addLoops of G2, V;
let P be
Path of G1;
A1: G2 is
Subgraph of G1 by
GLIB_006: 57;
per cases ;
suppose P is non
trivial & (P
.edges() )
c= (
the_Edges_of G2);
hence thesis by
A1,
GLIB_001: 169,
GLIB_001: 176;
end;
suppose
A2: P is
trivial;
(P
.first() )
in (
the_Vertices_of G1);
then (P
.first() )
in (
the_Vertices_of G2) by
Th15;
hence thesis by
A1,
A2,
GLIB_001: 168;
end;
suppose not V
c= (
the_Vertices_of G2);
then G1
== G2 by
Def5;
hence thesis by
GLIB_001: 179,
GLIB_001: 181;
end;
suppose
A3: not (P
.edges() )
c= (
the_Edges_of G2) & V
c= (
the_Vertices_of G2);
then ((P
.edges() )
\ (
the_Edges_of G2))
<>
{} by
XBOOLE_1: 37;
then
consider e be
object such that
A4: e
in ((P
.edges() )
\ (
the_Edges_of G2)) by
XBOOLE_0:def 1;
consider E be
set, f be
one-to-one
Function such that
A5: E
misses (
the_Edges_of G2) & (
the_Edges_of G1)
= ((
the_Edges_of G2)
\/ E) & (
dom f)
= E & (
rng f)
= V & (
the_Source_of G1)
= ((
the_Source_of G2)
+* f) & (
the_Target_of G1)
= ((
the_Target_of G2)
+* f) by
A3,
Def5;
A6: not e
in (
the_Edges_of G2) & e
in (
the_Edges_of G1) by
A4,
XBOOLE_0:def 5;
then e
in (
dom f) by
A5,
XBOOLE_0:def 3;
then ((
the_Source_of G1)
. e)
= (f
. e) & ((
the_Target_of G1)
. e)
= (f
. e) by
A5,
FUNCT_4: 13;
then
A7: e
Joins ((f
. e),(f
. e),G1) by
A6,
GLIB_000:def 13;
e
in (P
.edges() ) by
A4,
XBOOLE_0:def 5;
then
consider n be
odd
Element of
NAT such that
A8: n
< (
len P) & (P
. (n
+ 1))
= e by
GLIB_001: 100;
(P
. (n
+ 1))
Joins ((P
. n),(P
. (n
+ 2)),G1) by
A8,
GLIB_001:def 3;
then
A9: (P
. n)
= (f
. e) & (P
. (n
+ 2))
= (f
. e) by
A7,
A8,
GLIB_000: 15;
(n
+
0 )
< (n
+ 2) & (n
+ 2)
<= (
len P) by
A8,
CHORD: 4,
XREAL_1: 8;
then
A10: n
= 1 & (n
+ 2)
= (
len P) by
A9,
GLIB_001:def 28;
A11: P
=
<*(f
. e), e, (f
. e)*> by
A8,
A9,
A10,
FINSEQ_1: 45;
now
reconsider e as
object;
reconsider v = (f
. e) as
object;
take v, e;
thus e
Joins (v,v,G1) by
A7;
hence P
= (G1
.walkOf (v,e,v)) by
A11,
GLIB_001:def 5;
end;
hence thesis;
end;
end;
theorem ::
GLIB_012:38
for G2 be
_Graph, V be
set, G1 be
addLoops of G2, V holds for W be
Walk of G1 st (W
.edges() )
misses ((G1
.loops() )
\ (G2
.loops() )) holds W is
Walk of G2
proof
let G2 be
_Graph, V be
set, G1 be
addLoops of G2, V;
let W be
Walk of G1;
A1: G2 is
Subgraph of G1 by
GLIB_006: 57;
assume
A2: (W
.edges() )
misses ((G1
.loops() )
\ (G2
.loops() ));
per cases ;
suppose V
c= (
the_Vertices_of G2);
then
consider E be
set, f be
one-to-one
Function such that
A3: E
misses (
the_Edges_of G2) & (
the_Edges_of G1)
= ((
the_Edges_of G2)
\/ E) & (
dom f)
= E & (
rng f)
= V & (
the_Source_of G1)
= ((
the_Source_of G2)
+* f) & (
the_Target_of G1)
= ((
the_Target_of G2)
+* f) by
Def5;
now
let e be
object;
assume
A4: e
in E;
then
A5: ((
the_Source_of G1)
. e)
= (f
. e) & ((
the_Target_of G1)
. e)
= (f
. e) by
A3,
FUNCT_4: 13;
A6: e
in ((
the_Edges_of G2)
\/ E) by
A4,
XBOOLE_0:def 3;
then e
Joins ((f
. e),(f
. e),G1) by
A3,
A5,
GLIB_000:def 13;
then
A7: e
in (G1
.loops() ) by
GLIB_009:def 2;
not e
in (G2
.loops() ) by
A3,
A4,
A6,
XBOOLE_0: 5;
hence e
in ((G1
.loops() )
\ (G2
.loops() )) by
A7,
XBOOLE_0:def 5;
end;
then (W
.edges() )
misses E by
A2,
XBOOLE_1: 63,
TARSKI:def 3;
then
A8: (W
.edges() )
c= (
the_Edges_of G2) by
A3,
XBOOLE_1: 73;
(W
.vertices() )
c= (
the_Vertices_of G1);
then (W
.vertices() )
c= (
the_Vertices_of G2) by
Th15;
hence thesis by
A1,
A8,
GLIB_001: 170;
end;
suppose not V
c= (
the_Vertices_of G2);
then G1
== G2 by
Def5;
hence W is
Walk of G2 by
GLIB_001: 179;
end;
end;
registration
let G be
_Graph;
cluster ->
loopfull for
addLoops of G;
coherence
proof
let G1 be
addLoops of G;
let v be
Vertex of G1;
consider E be
set, f be
one-to-one
Function such that
A1: E
misses (
the_Edges_of G) & (
the_Edges_of G1)
= ((
the_Edges_of G)
\/ E) & (
dom f)
= E & (
rng f)
= (
the_Vertices_of G) & (
the_Source_of G1)
= ((
the_Source_of G)
+* f) & (
the_Target_of G1)
= ((
the_Target_of G)
+* f) by
Def5;
v
in (
the_Vertices_of G1);
then v
in (
the_Vertices_of G) by
Th15;
then
consider e be
object such that
A2: e
in (
dom f) & (f
. e)
= v by
A1,
FUNCT_1:def 3;
take e;
A3: ((
the_Source_of G1)
. e)
= (f
. e) & ((
the_Target_of G1)
. e)
= (f
. e) by
A1,
A2,
FUNCT_4: 13;
e
in (
the_Edges_of G1) by
A1,
A2,
XBOOLE_0:def 3;
hence e
Joins (v,v,G1) by
A2,
A3,
GLIB_000:def 13;
end;
let V be non
empty
Subset of (
the_Vertices_of G);
cluster -> non
loopless for
addLoops of G, V;
coherence
proof
let G1 be
addLoops of G, V;
consider E be
set, f be
one-to-one
Function such that
A4: E
misses (
the_Edges_of G) & (
the_Edges_of G1)
= ((
the_Edges_of G)
\/ E) & (
dom f)
= E & (
rng f)
= V & (
the_Source_of G1)
= ((
the_Source_of G)
+* f) & (
the_Target_of G1)
= ((
the_Target_of G)
+* f) by
Def5;
now
reconsider v = the
Element of V as
object;
take v;
consider e be
object such that
A5: e
in (
dom f) & (f
. e)
= v by
A4,
FUNCT_1:def 3;
take e;
A6: ((
the_Source_of G1)
. e)
= (f
. e) & ((
the_Target_of G1)
. e)
= (f
. e) by
A4,
A5,
FUNCT_4: 13;
e
in (
the_Edges_of G1) by
A4,
A5,
XBOOLE_0:def 3;
hence e
DJoins (v,v,G1) by
A5,
A6,
GLIB_000:def 14;
end;
hence thesis by
GLIB_009: 17;
end;
end
theorem ::
GLIB_012:39
Th39: for G2 be
_Graph, V be
set, G1 be
addLoops of G2, V holds G1 is
_finite iff G2 is
_finite
proof
let G2 be
_Graph, V be
set, G1 be
addLoops of G2, V;
per cases ;
suppose
A1: V
c= (
the_Vertices_of G2);
then
consider E be
set, f be
one-to-one
Function such that
A2: E
misses (
the_Edges_of G2) & (
the_Edges_of G1)
= ((
the_Edges_of G2)
\/ E) & (
dom f)
= E & (
rng f)
= V & (
the_Source_of G1)
= ((
the_Source_of G2)
+* f) & (
the_Target_of G1)
= ((
the_Target_of G2)
+* f) by
Def5;
thus G1 is
_finite implies G2 is
_finite;
assume
A3: G2 is
_finite;
then E is
finite by
A1,
A2,
CARD_1: 59;
then
A4: (
the_Edges_of G1) is
finite by
A2,
A3;
(
the_Vertices_of G2)
= (
the_Vertices_of G1) by
Th15;
hence thesis by
A3,
A4,
GLIB_000:def 17;
end;
suppose not V
c= (
the_Vertices_of G2);
then G1
== G2 by
Def5;
hence thesis by
GLIB_000: 89;
end;
end;
registration
let G be
_finite
_Graph, V be
set;
cluster ->
_finite for
addLoops of G, V;
coherence by
Th39;
end
registration
let G be non
_finite
_Graph, V be
set;
cluster -> non
_finite for
addLoops of G, V;
coherence ;
end
theorem ::
GLIB_012:40
Th40: for G2 be
_Graph, V be
set, G1 be
addLoops of G2, V holds G1 is
connected iff G2 is
connected
proof
let G2 be
_Graph, V be
set, G1 be
addLoops of G2, V;
hereby
assume
A1: G1 is
connected;
now
let u,v be
Vertex of G2;
u is
Vertex of G1 & v is
Vertex of G1 by
Th15;
then
consider W1 be
Walk of G1 such that
A2: W1
is_Walk_from (u,v) by
A1,
GLIB_002:def 1;
set P1 = the
Path of W1;
per cases by
Th37;
suppose P1 is
Path of G2;
then
reconsider P2 = P1 as
Walk of G2;
take P2;
P1
is_Walk_from (u,v) by
A2,
GLIB_001: 160;
hence P2
is_Walk_from (u,v) by
GLIB_001: 19;
end;
suppose ex w,e be
object st e
Joins (w,w,G1) & P1
= (G1
.walkOf (w,e,w));
then
consider w,e be
object such that
A3: e
Joins (w,w,G1) & P1
= (G1
.walkOf (w,e,w));
A4: (P1
.first() )
= w & (P1
.last() )
= w by
A3,
GLIB_001: 15;
P1
is_Walk_from (u,v) by
A2,
GLIB_001: 160;
then
A5: (P1
.first() )
= u & (P1
.last() )
= v by
GLIB_001:def 23;
reconsider W2 = (G2
.walkOf u) as
Walk of G2;
take W2;
thus W2
is_Walk_from (u,v) by
A4,
A5,
GLIB_001: 13;
end;
end;
hence G2 is
connected by
GLIB_002:def 1;
end;
assume
A6: G2 is
connected;
now
let u,v be
Vertex of G1;
u is
Vertex of G2 & v is
Vertex of G2 by
Th15;
then
consider W2 be
Walk of G2 such that
A7: W2
is_Walk_from (u,v) by
A6,
GLIB_002:def 1;
G2 is
Subgraph of G1 by
GLIB_006: 57;
then
reconsider W1 = W2 as
Walk of G1 by
GLIB_001: 167;
take W1;
thus W1
is_Walk_from (u,v) by
A7,
GLIB_001: 19;
end;
hence G1 is
connected by
GLIB_002:def 1;
end;
registration
let G be
connected
_Graph, V be
set;
cluster ->
connected for
addLoops of G, V;
coherence by
Th40;
end
registration
let G be non
connected
_Graph, V be
set;
cluster -> non
connected for
addLoops of G, V;
coherence by
Th40;
end
theorem ::
GLIB_012:41
Th41: for G2 be
_Graph, V be
set, G1 be
addLoops of G2, V holds G1 is
chordal iff G2 is
chordal
proof
let G2 be
_Graph, V be
set, G1 be
addLoops of G2, V;
hereby
assume
A1: G1 is
chordal;
now
let P2 be
Walk of G2;
assume
A2: (P2
.length() )
> 3 & P2 is
Cycle-like;
reconsider P1 = P2 as
Walk of G1 by
GLIB_006: 75;
A3: (P1
.length() )
= (P2
.length() ) & P1 is
Cycle-like by
A2,
GLIB_006: 76,
GLIB_001: 114;
now
consider m,n be
odd
Nat such that
A4: (m
+ 2)
< n & n
<= (
len P1) & (P1
. m)
<> (P1
. n) and
A5: ex e be
object st e
Joins ((P1
. m),(P1
. n),G1) and
A6: for f be
object st f
in (P1
.edges() ) holds not f
Joins ((P1
. m),(P1
. n),G1) by
A1,
A2,
A3,
CHORD:def 10,
CHORD:def 11;
take m, n;
thus (m
+ 2)
< n & n
<= (
len P2) & (P2
. m)
<> (P2
. n) by
A4;
thus ex e be
object st e
Joins ((P2
. m),(P2
. n),G2)
proof
consider e be
object such that
A7: e
Joins ((P1
. m),(P1
. n),G1) by
A5;
take e;
thus e
Joins ((P2
. m),(P2
. n),G2) by
A4,
A7,
Th17;
end;
thus for f be
object st f
in (P2
.edges() ) holds not f
Joins ((P2
. m),(P2
. n),G2)
proof
let f be
object;
assume f
in (P2
.edges() );
then f
in (P1
.edges() ) by
GLIB_001: 110;
then not f
Joins ((P1
. m),(P1
. n),G1) by
A6;
hence not f
Joins ((P2
. m),(P2
. n),G2) by
A4,
Th17;
end;
end;
hence P2 is
chordal by
CHORD:def 10;
end;
hence G2 is
chordal by
CHORD:def 11;
end;
assume
A8: G2 is
chordal;
now
let P1 be
Walk of G1;
assume
A9: (P1
.length() )
> 3 & P1 is
Cycle-like;
P1 is
Walk of G2
proof
assume not P1 is
Walk of G2;
then
consider v,e be
object such that
A10: e
Joins (v,v,G1) & P1
= (G1
.walkOf (v,e,v)) by
A9,
Th37;
((2
* 1)
+ 1)
= (
len P1) by
A10,
GLIB_001: 14
.= ((2
* (P1
.length() ))
+ 1) by
GLIB_001: 112;
hence contradiction by
A9;
end;
then
reconsider P2 = P1 as
Walk of G2;
A11: (P1
.length() )
= (P2
.length() ) & P2 is
Cycle-like by
A9,
GLIB_006: 76,
GLIB_001: 114;
now
consider m,n be
odd
Nat such that
A12: (m
+ 2)
< n & n
<= (
len P2) & (P2
. m)
<> (P2
. n) and
A13: ex e be
object st e
Joins ((P2
. m),(P2
. n),G2) and
A14: for f be
object st f
in (P2
.edges() ) holds not f
Joins ((P2
. m),(P2
. n),G2) by
A8,
A9,
A11,
CHORD:def 10,
CHORD:def 11;
take m, n;
thus (m
+ 2)
< n & n
<= (
len P1) & (P1
. m)
<> (P1
. n) by
A12;
thus ex e be
object st e
Joins ((P1
. m),(P1
. n),G1)
proof
consider e be
object such that
A15: e
Joins ((P2
. m),(P2
. n),G2) by
A13;
take e;
thus e
Joins ((P1
. m),(P1
. n),G1) by
A12,
A15,
Th17;
end;
thus for f be
object st f
in (P1
.edges() ) holds not f
Joins ((P1
. m),(P1
. n),G1)
proof
let f be
object;
assume f
in (P1
.edges() );
then f
in (P2
.edges() ) by
GLIB_001: 110;
then not f
Joins ((P2
. m),(P2
. n),G2) by
A14;
hence not f
Joins ((P1
. m),(P1
. n),G1) by
A12,
Th17;
end;
end;
hence P1 is
chordal by
CHORD:def 10;
end;
hence thesis by
CHORD:def 11;
end;
registration
let G be
chordal
_Graph, V be
set;
cluster ->
chordal for
addLoops of G, V;
coherence by
Th41;
end
registration
let G be non
edgeless
_Graph, V be
set;
cluster -> non
edgeless for
addLoops of G, V;
coherence ;
end
registration
let G be
loopfull
_Graph, V be
set;
cluster ->
loopfull for
addLoops of G, V;
coherence
proof
let G1 be
addLoops of G, V;
(
the_Vertices_of G1)
= (
the_Vertices_of G) by
Th15;
hence thesis by
Th5;
end;
end
registration
let G be
simple
_Graph, V be
set;
cluster ->
non-multi for
addLoops of G, V;
coherence
proof
let G2 be
addLoops of G, V;
per cases ;
suppose
A1: V
c= (
the_Vertices_of G);
now
let e1,e2,v1,v2 be
object;
assume
A2: e1
Joins (v1,v2,G2) & e2
Joins (v1,v2,G2);
per cases ;
suppose
A3: v1
= v2;
consider E be
set, f be
one-to-one
Function such that E
misses (
the_Edges_of G) and
A4: (
the_Edges_of G2)
= ((
the_Edges_of G)
\/ E) and
A5: (
dom f)
= E & (
rng f)
= V and
A6: (
the_Source_of G2)
= ((
the_Source_of G)
+* f) and (
the_Target_of G2)
= ((
the_Target_of G)
+* f) by
A1,
Def5;
A7: not e1
in (
the_Edges_of G)
proof
assume
A8: e1
in (
the_Edges_of G);
then e1
Joins (v1,v1,G) by
A2,
A3,
GLIB_006: 72;
then ((
the_Source_of G)
. e1)
= v1 & ((
the_Target_of G)
. e1)
= v1 by
GLIB_000:def 13;
hence contradiction by
A8,
GLIB_000:def 18;
end;
A9: not e2
in (
the_Edges_of G)
proof
assume
A10: e2
in (
the_Edges_of G);
then e2
Joins (v1,v1,G) by
A2,
A3,
GLIB_006: 72;
then ((
the_Source_of G)
. e2)
= v1 & ((
the_Target_of G)
. e2)
= v1 by
GLIB_000:def 13;
hence contradiction by
A10,
GLIB_000:def 18;
end;
e1
in (
the_Edges_of G2) by
A2,
GLIB_000:def 13;
then
A11: e1
in E by
A4,
A7,
XBOOLE_0:def 3;
e2
in (
the_Edges_of G2) by
A2,
GLIB_000:def 13;
then
A12: e2
in E by
A4,
A9,
XBOOLE_0:def 3;
(f
. e1)
= ((
the_Source_of G2)
. e1) by
A5,
A6,
A11,
FUNCT_4: 13
.= v1 by
A2,
A3,
GLIB_000:def 13
.= ((
the_Source_of G2)
. e2) by
A2,
A3,
GLIB_000:def 13
.= (f
. e2) by
A5,
A6,
A12,
FUNCT_4: 13;
hence e1
= e2 by
A5,
A11,
A12,
FUNCT_1:def 4;
end;
suppose v1
<> v2;
then e1
Joins (v1,v2,G) & e2
Joins (v1,v2,G) by
A2,
Th17;
hence e1
= e2 by
GLIB_000:def 20;
end;
end;
hence thesis by
GLIB_000:def 20;
end;
suppose not V
c= (
the_Vertices_of G);
then G
== G2 by
Def5;
hence thesis by
GLIB_000: 89;
end;
end;
end
registration
let G be
Dsimple
_Graph, V be
set;
cluster ->
non-Dmulti for
addLoops of G, V;
coherence
proof
let G2 be
addLoops of G, V;
per cases ;
suppose
A1: V
c= (
the_Vertices_of G);
now
let e1,e2,v1,v2 be
object;
assume
A2: e1
DJoins (v1,v2,G2) & e2
DJoins (v1,v2,G2);
per cases ;
suppose
A3: v1
= v2;
consider E be
set, f be
one-to-one
Function such that E
misses (
the_Edges_of G) and
A4: (
the_Edges_of G2)
= ((
the_Edges_of G)
\/ E) and
A5: (
dom f)
= E & (
rng f)
= V and
A6: (
the_Source_of G2)
= ((
the_Source_of G)
+* f) and (
the_Target_of G2)
= ((
the_Target_of G)
+* f) by
A1,
Def5;
A7: not e1
in (
the_Edges_of G)
proof
assume
A8: e1
in (
the_Edges_of G);
then e1
DJoins (v1,v1,G) by
A2,
A3,
GLIB_006: 71;
then ((
the_Source_of G)
. e1)
= v1 & ((
the_Target_of G)
. e1)
= v1 by
GLIB_000:def 14;
hence contradiction by
A8,
GLIB_000:def 18;
end;
A9: not e2
in (
the_Edges_of G)
proof
assume
A10: e2
in (
the_Edges_of G);
then e2
DJoins (v1,v1,G) by
A2,
A3,
GLIB_006: 71;
then ((
the_Source_of G)
. e2)
= v1 & ((
the_Target_of G)
. e2)
= v1 by
GLIB_000:def 14;
hence contradiction by
A10,
GLIB_000:def 18;
end;
e1
in (
the_Edges_of G2) by
A2,
GLIB_000:def 14;
then
A11: e1
in E by
A4,
A7,
XBOOLE_0:def 3;
e2
in (
the_Edges_of G2) by
A2,
GLIB_000:def 14;
then
A12: e2
in E by
A4,
A9,
XBOOLE_0:def 3;
(f
. e1)
= ((
the_Source_of G2)
. e1) by
A5,
A6,
A11,
FUNCT_4: 13
.= v1 by
A2,
GLIB_000:def 14
.= ((
the_Source_of G2)
. e2) by
A2,
GLIB_000:def 14
.= (f
. e2) by
A5,
A6,
A12,
FUNCT_4: 13;
hence e1
= e2 by
A5,
A11,
A12,
FUNCT_1:def 4;
end;
suppose v1
<> v2;
then e1
DJoins (v1,v2,G) & e2
DJoins (v1,v2,G) by
A2,
Th16;
hence e1
= e2 by
GLIB_000:def 21;
end;
end;
hence thesis by
GLIB_000:def 21;
end;
suppose not V
c= (
the_Vertices_of G);
then G
== G2 by
Def5;
hence thesis by
GLIB_000: 89;
end;
end;
end
theorem ::
GLIB_012:42
Th42: for G2 be
_Graph, V be
Subset of (
the_Vertices_of G2) holds for G1 be
addLoops of G2, V, v1 be
Vertex of G1, v2 be
Vertex of G2 st v1
= v2 & v1
in V holds ex e be
object st e
DJoins (v1,v1,G1) & not e
in (
the_Edges_of G2) & (v1
.edgesIn() )
= ((v2
.edgesIn() )
\/
{e}) & (v1
.edgesOut() )
= ((v2
.edgesOut() )
\/
{e}) & (v1
.edgesInOut() )
= ((v2
.edgesInOut() )
\/
{e})
proof
let G2 be
_Graph, V be
Subset of (
the_Vertices_of G2);
let G1 be
addLoops of G2, V, v1 be
Vertex of G1, v2 be
Vertex of G2;
assume
A1: v1
= v2 & v1
in V;
consider E be
set, f be
one-to-one
Function such that
A2: E
misses (
the_Edges_of G2) & (
the_Edges_of G1)
= ((
the_Edges_of G2)
\/ E) and
A3: (
dom f)
= E & (
rng f)
= V & (
the_Source_of G1)
= ((
the_Source_of G2)
+* f) and
A4: (
the_Target_of G1)
= ((
the_Target_of G2)
+* f) by
Def5;
consider e be
object such that
A5: e
in (
dom f) & (f
. e)
= v1 by
A1,
A3,
FUNCT_1:def 3;
take e;
A6: e
in (
the_Edges_of G1) by
A2,
A3,
A5,
XBOOLE_0:def 3;
A7: ((
the_Source_of G1)
. e)
= v1 by
A3,
A5,
FUNCT_4: 13;
((
the_Target_of G1)
. e)
= v1 by
A4,
A5,
FUNCT_4: 13;
hence
A8: e
DJoins (v1,v1,G1) by
A6,
A7,
GLIB_000:def 14;
thus not e
in (
the_Edges_of G2)
proof
assume e
in (
the_Edges_of G2);
then e
in (E
/\ (
the_Edges_of G2)) by
A3,
A5,
XBOOLE_0:def 4;
hence contradiction by
A2,
XBOOLE_0:def 7;
end;
now
let x be
object;
hereby
assume x
in (v1
.edgesIn() );
then
consider w be
set such that
A9: x
DJoins (w,v1,G1) by
GLIB_000: 57;
per cases by
A9,
GLIB_006: 71;
suppose
A10: x
DJoins (w,v1,G2);
x is
set by
TARSKI: 1;
then x
in (v2
.edgesIn() ) by
A1,
A10,
GLIB_000: 57;
hence x
in ((v2
.edgesIn() )
\/
{e}) by
XBOOLE_0:def 3;
end;
suppose
A11: not x
in (
the_Edges_of G2);
x
in (
the_Edges_of G1) by
A9,
GLIB_000:def 14;
then
A12: x
in E by
A2,
A11,
XBOOLE_0:def 3;
(f
. x)
= ((
the_Target_of G1)
. x) by
A3,
A4,
A12,
FUNCT_4: 13
.= v1 by
A9,
GLIB_000:def 14;
then x
= e by
A3,
A5,
A12,
FUNCT_1:def 4;
then x
in
{e} by
TARSKI:def 1;
hence x
in ((v2
.edgesIn() )
\/
{e}) by
XBOOLE_0:def 3;
end;
end;
assume x
in ((v2
.edgesIn() )
\/
{e});
per cases by
XBOOLE_0:def 3;
suppose
A13: x
in (v2
.edgesIn() );
G2 is
Subgraph of G1 by
GLIB_006: 57;
then (v2
.edgesIn() )
c= (v1
.edgesIn() ) by
A1,
GLIB_000: 78;
hence x
in (v1
.edgesIn() ) by
A13;
end;
suppose x
in
{e};
then x
= e & e is
set by
TARSKI:def 1;
hence x
in (v1
.edgesIn() ) by
A8,
GLIB_000: 57;
end;
end;
hence
A14: (v1
.edgesIn() )
= ((v2
.edgesIn() )
\/
{e}) by
TARSKI: 2;
now
let x be
object;
hereby
assume x
in (v1
.edgesOut() );
then
consider w be
set such that
A15: x
DJoins (v1,w,G1) by
GLIB_000: 59;
per cases by
A15,
GLIB_006: 71;
suppose
A16: x
DJoins (v1,w,G2);
x is
set by
TARSKI: 1;
then x
in (v2
.edgesOut() ) by
A1,
A16,
GLIB_000: 59;
hence x
in ((v2
.edgesOut() )
\/
{e}) by
XBOOLE_0:def 3;
end;
suppose
A17: not x
in (
the_Edges_of G2);
x
in (
the_Edges_of G1) by
A15,
GLIB_000:def 14;
then
A18: x
in E by
A2,
A17,
XBOOLE_0:def 3;
(f
. x)
= ((
the_Source_of G1)
. x) by
A3,
A18,
FUNCT_4: 13
.= v1 by
A15,
GLIB_000:def 14;
then x
= e by
A3,
A5,
A18,
FUNCT_1:def 4;
then x
in
{e} by
TARSKI:def 1;
hence x
in ((v2
.edgesOut() )
\/
{e}) by
XBOOLE_0:def 3;
end;
end;
assume x
in ((v2
.edgesOut() )
\/
{e});
per cases by
XBOOLE_0:def 3;
suppose
A19: x
in (v2
.edgesOut() );
G2 is
Subgraph of G1 by
GLIB_006: 57;
then (v2
.edgesOut() )
c= (v1
.edgesOut() ) by
A1,
GLIB_000: 78;
hence x
in (v1
.edgesOut() ) by
A19;
end;
suppose x
in
{e};
then x
= e & e is
set by
TARSKI:def 1;
hence x
in (v1
.edgesOut() ) by
A8,
GLIB_000: 59;
end;
end;
hence
A20: (v1
.edgesOut() )
= ((v2
.edgesOut() )
\/
{e}) by
TARSKI: 2;
thus (v1
.edgesInOut() )
= ((v2
.edgesInOut() )
\/
{e}) by
A14,
A20,
XBOOLE_1: 5;
end;
theorem ::
GLIB_012:43
for G2 be
_Graph, V be
Subset of (
the_Vertices_of G2) holds for G1 be
addLoops of G2, V, v1 be
Vertex of G1, v2 be
Vertex of G2 st v1
= v2 & v1
in V holds (v1
.inDegree() )
= ((v2
.inDegree() )
+` 1) & (v1
.outDegree() )
= ((v2
.outDegree() )
+` 1) & (v1
.degree() )
= ((v2
.degree() )
+` 2)
proof
let G2 be
_Graph, V be
Subset of (
the_Vertices_of G2);
let G1 be
addLoops of G2, V, v1 be
Vertex of G1, v2 be
Vertex of G2;
assume v1
= v2 & v1
in V;
then
consider e be
object such that
A1: e
DJoins (v1,v1,G1) & not e
in (
the_Edges_of G2) and
A2: (v1
.edgesIn() )
= ((v2
.edgesIn() )
\/
{e}) and
A3: (v1
.edgesOut() )
= ((v2
.edgesOut() )
\/
{e}) and (v1
.edgesInOut() )
= ((v2
.edgesInOut() )
\/
{e}) by
Th42;
not e
in (v2
.edgesIn() ) by
A1;
hence
A4: (v1
.inDegree() )
= ((v2
.inDegree() )
+` (
card
{e})) by
A2,
CARD_2: 35,
ZFMISC_1: 50
.= ((v2
.inDegree() )
+` 1) by
CARD_1: 30;
not e
in (v2
.edgesOut() ) by
A1;
hence (v1
.outDegree() )
= ((v2
.outDegree() )
+` (
card
{e})) by
A3,
CARD_2: 35,
ZFMISC_1: 50
.= ((v2
.outDegree() )
+` 1) by
CARD_1: 30;
hence (v1
.degree() )
= ((v2
.inDegree() )
+` (1
+` ((v2
.outDegree() )
+` 1))) by
A4,
CARD_2: 19
.= ((v2
.inDegree() )
+` ((v2
.outDegree() )
+` (1
+` 1))) by
CARD_2: 19
.= ((v2
.degree() )
+` 2) by
CARD_2: 19;
end;
theorem ::
GLIB_012:44
for G2 be
_Graph, V be
Subset of (
the_Vertices_of G2) holds for G1 be
addLoops of G2, V, v1 be
Vertex of G1, v2 be
Vertex of G2 st v1
= v2 & not v1
in V holds (v1
.edgesIn() )
= (v2
.edgesIn() ) & (v1
.inDegree() )
= (v2
.inDegree() ) & (v1
.edgesOut() )
= (v2
.edgesOut() ) & (v1
.outDegree() )
= (v2
.outDegree() ) & (v1
.edgesInOut() )
= (v2
.edgesInOut() ) & (v1
.degree() )
= (v2
.degree() )
proof
let G2 be
_Graph, V be
Subset of (
the_Vertices_of G2);
let G1 be
addLoops of G2, V, v1 be
Vertex of G1, v2 be
Vertex of G2;
assume
A1: v1
= v2 & not v1
in V;
consider E be
set, f be
one-to-one
Function such that
A2: E
misses (
the_Edges_of G2) & (
the_Edges_of G1)
= ((
the_Edges_of G2)
\/ E) and
A3: (
dom f)
= E & (
rng f)
= V & (
the_Source_of G1)
= ((
the_Source_of G2)
+* f) and
A4: (
the_Target_of G1)
= ((
the_Target_of G2)
+* f) by
Def5;
A5: G2 is
Subgraph of G1 by
GLIB_006: 57;
then
A6: (v2
.edgesIn() )
c= (v1
.edgesIn() ) by
A1,
GLIB_000: 78;
now
let e be
object;
assume e
in (v1
.edgesIn() );
then
consider x be
set such that
A7: e
DJoins (x,v1,G1) by
GLIB_000: 57;
e
in (
the_Edges_of G2)
proof
assume
A8: not e
in (
the_Edges_of G2);
e
in (
the_Edges_of G1) by
A7,
GLIB_000:def 14;
then
A9: e
in E by
A2,
A8,
XBOOLE_0:def 3;
v1
= ((
the_Target_of G1)
. e) by
A7,
GLIB_000:def 14
.= (f
. e) by
A3,
A4,
A9,
FUNCT_4: 13;
hence contradiction by
A1,
A3,
A9,
FUNCT_1: 3;
end;
hence e
in (v2
.edgesIn() ) by
A1,
A7,
GLIB_006: 71,
GLIB_000: 57;
end;
then (v1
.edgesIn() )
c= (v2
.edgesIn() ) by
TARSKI:def 3;
hence
A10: (v1
.edgesIn() )
= (v2
.edgesIn() ) by
A6,
XBOOLE_0:def 10;
hence (v1
.inDegree() )
= (v2
.inDegree() );
A11: (v2
.edgesOut() )
c= (v1
.edgesOut() ) by
A1,
A5,
GLIB_000: 78;
now
let e be
object;
assume e
in (v1
.edgesOut() );
then
consider x be
set such that
A12: e
DJoins (v1,x,G1) by
GLIB_000: 59;
e
in (
the_Edges_of G2)
proof
assume
A13: not e
in (
the_Edges_of G2);
e
in (
the_Edges_of G1) by
A12,
GLIB_000:def 14;
then
A14: e
in E by
A2,
A13,
XBOOLE_0:def 3;
v1
= ((
the_Source_of G1)
. e) by
A12,
GLIB_000:def 14
.= (f
. e) by
A3,
A14,
FUNCT_4: 13;
hence contradiction by
A1,
A3,
A14,
FUNCT_1: 3;
end;
hence e
in (v2
.edgesOut() ) by
A1,
A12,
GLIB_006: 71,
GLIB_000: 59;
end;
then (v1
.edgesOut() )
c= (v2
.edgesOut() ) by
TARSKI:def 3;
hence
A15: (v1
.edgesOut() )
= (v2
.edgesOut() ) by
A11,
XBOOLE_0:def 10;
hence (v1
.outDegree() )
= (v2
.outDegree() );
thus thesis by
A10,
A15;
end;
begin
definition
let G be
_Graph;
::
GLIB_012:def6
mode
DLGraphComplement of G ->
non-Dmulti
_Graph means
:
Def6: (
the_Vertices_of it )
= (
the_Vertices_of G) & (
the_Edges_of it )
misses (
the_Edges_of G) & for v,w be
Vertex of G holds (ex e1 be
object st e1
DJoins (v,w,G)) iff ( not ex e2 be
object st e2
DJoins (v,w,it ));
existence
proof
set E = {
[(
the_Edges_of G),
[v, w]] where v be
Vertex of G, w be
Vertex of G : not ex e be
object st e
DJoins (v,w,G) };
deffunc
S(
object) = (($1
`2 )
`1 );
consider s be
Function such that
A1: (
dom s)
= E & for x be
object st x
in E holds (s
. x)
=
S(x) from
FUNCT_1:sch 3;
now
let y be
object;
assume y
in (
rng s);
then
consider x be
object such that
A2: x
in (
dom s) & (s
. x)
= y by
FUNCT_1:def 3;
consider v,w be
Vertex of G such that
A3: x
=
[(
the_Edges_of G),
[v, w]] and not ex e be
object st e
DJoins (v,w,G) by
A1,
A2;
y
= ((
[(
the_Edges_of G),
[v, w]]
`2 )
`1 ) by
A1,
A2,
A3
.= v;
hence y
in (
the_Vertices_of G);
end;
then
reconsider s as
Function of E, (
the_Vertices_of G) by
A1,
TARSKI:def 3,
FUNCT_2: 2;
deffunc
T(
object) = (($1
`2 )
`2 );
consider t be
Function such that
A4: (
dom t)
= E & for x be
object st x
in E holds (t
. x)
=
T(x) from
FUNCT_1:sch 3;
now
let y be
object;
assume y
in (
rng t);
then
consider x be
object such that
A5: x
in (
dom t) & (t
. x)
= y by
FUNCT_1:def 3;
consider v,w be
Vertex of G such that
A6: x
=
[(
the_Edges_of G),
[v, w]] and not ex e be
object st e
DJoins (v,w,G) by
A4,
A5;
y
= ((
[(
the_Edges_of G),
[v, w]]
`2 )
`2 ) by
A4,
A5,
A6
.= w;
hence y
in (
the_Vertices_of G);
end;
then
reconsider t as
Function of E, (
the_Vertices_of G) by
A4,
TARSKI:def 3,
FUNCT_2: 2;
set H = (
createGraph ((
the_Vertices_of G),E,s,t));
now
let e1,e2,v1,v2 be
object;
assume
A7: e1
DJoins (v1,v2,H) & e2
DJoins (v1,v2,H);
then e1
in (
the_Edges_of H) by
GLIB_000:def 14;
then
A8: e1
in E by
GLIB_000: 6;
then
consider a,b be
Vertex of G such that
A9: e1
=
[(
the_Edges_of G),
[a, b]] and not ex e be
object st e
DJoins (a,b,G);
A10: v1
= ((
the_Source_of H)
. e1) by
A7,
GLIB_000:def 14
.= (s
. e1) by
GLIB_000: 6
.= ((
[(
the_Edges_of G),
[a, b]]
`2 )
`1 ) by
A1,
A8,
A9
.= a;
A11: v2
= ((
the_Target_of H)
. e1) by
A7,
GLIB_000:def 14
.= (t
. e1) by
GLIB_000: 6
.= ((
[(
the_Edges_of G),
[a, b]]
`2 )
`2 ) by
A4,
A8,
A9
.= b;
e2
in (
the_Edges_of H) by
A7,
GLIB_000:def 14;
then
A12: e2
in E by
GLIB_000: 6;
then
consider c,d be
Vertex of G such that
A13: e2
=
[(
the_Edges_of G),
[c, d]] and not ex e be
object st e
DJoins (c,d,G);
A14: v1
= ((
the_Source_of H)
. e2) by
A7,
GLIB_000:def 14
.= (s
. e2) by
GLIB_000: 6
.= ((
[(
the_Edges_of G),
[c, d]]
`2 )
`1 ) by
A1,
A12,
A13
.= c;
v2
= ((
the_Target_of H)
. e2) by
A7,
GLIB_000:def 14
.= (t
. e2) by
GLIB_000: 6
.= ((
[(
the_Edges_of G),
[c, d]]
`2 )
`2 ) by
A4,
A12,
A13
.= d;
hence e1
= e2 by
A9,
A10,
A11,
A13,
A14;
end;
then
reconsider H as
non-Dmulti
_Graph by
GLIB_000:def 21;
take H;
thus (
the_Vertices_of H)
= (
the_Vertices_of G) by
GLIB_000: 6;
(E
/\ (
the_Edges_of G))
=
{}
proof
assume (E
/\ (
the_Edges_of G))
<>
{} ;
then
consider x be
object such that
A15: x
in (E
/\ (
the_Edges_of G)) by
XBOOLE_0:def 1;
reconsider x as
set by
TARSKI: 1;
x
in E by
A15,
XBOOLE_0:def 4;
then
consider v,w be
Vertex of G such that
A16: x
=
[(
the_Edges_of G),
[v, w]] and not ex e be
object st e
DJoins (v,w,G);
A17: x
in (
the_Edges_of G) by
A15,
XBOOLE_0:def 4;
A18: (
the_Edges_of G)
in
{(
the_Edges_of G)} by
TARSKI:def 1;
x
=
{
{(
the_Edges_of G),
[v, w]},
{(
the_Edges_of G)}} by
A16,
TARSKI:def 5;
then
{(
the_Edges_of G)}
in x by
TARSKI:def 2;
hence contradiction by
A17,
A18,
XREGULAR: 7;
end;
then ((
the_Edges_of H)
/\ (
the_Edges_of G))
=
{} by
GLIB_000: 6;
hence (
the_Edges_of H)
misses (
the_Edges_of G) by
XBOOLE_0:def 7;
let v,w be
Vertex of G;
hereby
given e1 be
object such that
A19: e1
DJoins (v,w,G);
given e2 be
object such that
A20: e2
DJoins (v,w,H);
e2
in (
the_Edges_of H) by
A20,
GLIB_000:def 14;
then
A21: e2
in E by
GLIB_000: 6;
then
consider a,b be
Vertex of G such that
A22: e2
=
[(
the_Edges_of G),
[a, b]] and
A23: not ex e be
object st e
DJoins (a,b,G);
A24: v
= ((
the_Source_of H)
. e2) by
A20,
GLIB_000:def 14
.= (s
. e2) by
GLIB_000: 6
.= ((
[(
the_Edges_of G),
[a, b]]
`2 )
`1 ) by
A1,
A21,
A22
.= a;
w
= ((
the_Target_of H)
. e2) by
A20,
GLIB_000:def 14
.= (t
. e2) by
GLIB_000: 6
.= ((
[(
the_Edges_of G),
[a, b]]
`2 )
`2 ) by
A4,
A21,
A22
.= b;
hence contradiction by
A19,
A23,
A24;
end;
set e2 =
[(
the_Edges_of G),
[v, w]];
now
assume not ex e1 be
object st e1
DJoins (v,w,G);
then
A25: e2
in E;
then
A26: e2
in (
the_Edges_of H) by
GLIB_000: 6;
A27: v
= ((
[(
the_Edges_of G),
[v, w]]
`2 )
`1 )
.= (s
. e2) by
A1,
A25
.= ((
the_Source_of H)
. e2) by
GLIB_000: 6;
w
= ((
[(
the_Edges_of G),
[v, w]]
`2 )
`2 )
.= (t
. e2) by
A4,
A25
.= ((
the_Target_of H)
. e2) by
GLIB_000: 6;
hence e2
DJoins (v,w,H) by
A26,
A27,
GLIB_000:def 14;
end;
hence thesis;
end;
end
theorem ::
GLIB_012:45
Th45: for G1,G2,G3 be
_Graph, G4 be
DLGraphComplement of G1 st G1
== G2 & G3
== G4 holds G3 is
DLGraphComplement of G2
proof
let G1,G2,G3 be
_Graph, G4 be
DLGraphComplement of G1;
assume
A1: G1
== G2 & G3
== G4;
then (
the_Vertices_of G4)
= (
the_Vertices_of G3) & (
the_Edges_of G4)
= (
the_Edges_of G3) by
GLIB_000:def 34;
then (
the_Vertices_of G1)
= (
the_Vertices_of G3) & (
the_Edges_of G3)
misses (
the_Edges_of G1) by
Def6;
then
A2: (
the_Vertices_of G3)
= (
the_Vertices_of G2) & (
the_Edges_of G3)
misses (
the_Edges_of G2) by
A1,
GLIB_000:def 34;
A3: G3 is
non-Dmulti by
A1,
GLIB_000: 89;
now
let v,w be
Vertex of G2;
A4: v is
Vertex of G1 & w is
Vertex of G1 by
A1,
GLIB_000:def 34;
hereby
given e1 be
object such that
A5: e1
DJoins (v,w,G2);
A6: e1
DJoins (v,w,G1) by
A1,
A5,
GLIB_000: 88;
thus not ex e2 be
object st e2
DJoins (v,w,G3)
proof
given e2 be
object such that
A7: e2
DJoins (v,w,G3);
e2
DJoins (v,w,G4) by
A1,
A7,
GLIB_000: 88;
hence contradiction by
A4,
A6,
Def6;
end;
end;
assume
A8: not ex e2 be
object st e2
DJoins (v,w,G3);
not ex e2 be
object st e2
DJoins (v,w,G4)
proof
given e2 be
object such that
A9: e2
DJoins (v,w,G4);
e2
DJoins (v,w,G3) by
A1,
A9,
GLIB_000: 88;
hence contradiction by
A8;
end;
then
consider e1 be
object such that
A10: e1
DJoins (v,w,G1) by
A4,
Def6;
take e1;
thus e1
DJoins (v,w,G2) by
A1,
A10,
GLIB_000: 88;
end;
hence thesis by
A2,
A3,
Def6;
end;
registration
let G be
_Graph;
cluster
plain for
DLGraphComplement of G;
existence
proof
set G1 = the
DLGraphComplement of G;
set G2 = (G1
|
_GraphSelectors );
G1
== G1 & G1
== G2 by
GLIB_009: 9;
then
reconsider G2 as
DLGraphComplement of G by
Th45;
take G2;
thus thesis;
end;
end
theorem ::
GLIB_012:46
Th46: for G1 be
_Graph, G2 be
DLGraphComplement of G1, e1,e2,v,w be
object holds e1
DJoins (v,w,G1) implies not e2
DJoins (v,w,G2)
proof
let G1 be
_Graph, G2 be
DLGraphComplement of G1, e1,e2,v,w be
object;
assume
A1: e1
DJoins (v,w,G1);
then e1
Joins (v,w,G1) by
GLIB_000: 16;
then v
in (
the_Vertices_of G1) & w
in (
the_Vertices_of G1) by
GLIB_000: 13;
hence thesis by
A1,
Def6;
end;
theorem ::
GLIB_012:47
Th47: for G1 be
_Graph, G2 be
removeDParallelEdges of G1 holds for G3 be
DLGraphComplement of G1 holds G3 is
DLGraphComplement of G2
proof
let G1 be
_Graph, G2 be
removeDParallelEdges of G1;
let G3 be
DLGraphComplement of G1;
consider E be
RepDEdgeSelection of G1 such that
A1: G2 is
inducedSubgraph of G1, (
the_Vertices_of G1), E by
GLIB_009:def 8;
(
the_Vertices_of G1)
c= (
the_Vertices_of G1) & (
the_Edges_of G1)
= (G1
.edgesBetween (
the_Vertices_of G1)) by
GLIB_000: 34;
then
A2: (
the_Vertices_of G2)
= (
the_Vertices_of G1) & (
the_Edges_of G2)
= E by
A1,
GLIB_000:def 37;
then
A3: (
the_Vertices_of G3)
= (
the_Vertices_of G2) by
Def6;
(
the_Edges_of G3)
misses (
the_Edges_of G1) by
Def6;
then
A4: (
the_Edges_of G3)
misses (
the_Edges_of G2) by
XBOOLE_1: 63;
now
let v,w be
Vertex of G2;
A5: v is
Vertex of G1 & w is
Vertex of G1 by
GLIB_000:def 33;
reconsider v1 = v, w1 = w as
Vertex of G1 by
GLIB_000:def 33;
hereby
given e2 be
object such that
A6: e2
DJoins (v,w,G2);
A7: e2
DJoins (v,w,G1) by
A6,
GLIB_000: 72;
given e3 be
object such that
A8: e3
DJoins (v,w,G3);
thus contradiction by
A7,
A8,
Th46;
end;
assume not ex e3 be
object st e3
DJoins (v,w,G3);
then
consider e1 be
object such that
A9: e1
DJoins (v,w,G1) by
A5,
Def6;
consider e2 be
object such that
A10: e2
DJoins (v,w,G1) & e2
in E and for e9 be
object st e9
DJoins (v,w,G1) & e9
in E holds e9
= e2 by
A9,
GLIB_009:def 6;
take e2;
thus e2
DJoins (v,w,G2) by
A2,
A10,
GLIB_000: 73;
end;
hence thesis by
A3,
A4,
Def6;
end;
theorem ::
GLIB_012:48
Th48: for G1,G2 be
_Graph holds for G3 be
removeDParallelEdges of G1, G4 be
removeDParallelEdges of G2 holds for G5 be
DLGraphComplement of G1, G6 be
DLGraphComplement of G2 st G4 is G3
-Disomorphic holds G6 is G5
-Disomorphic
proof
let G1,G2 be
_Graph;
let G3 be
removeDParallelEdges of G1, G4 be
removeDParallelEdges of G2;
let G5 be
DLGraphComplement of G1, G6 be
DLGraphComplement of G2;
A1: G5 is
DLGraphComplement of G3 & G6 is
DLGraphComplement of G4 by
Th47;
assume G4 is G3
-Disomorphic;
then
consider f be
directed
PVertexMapping of G3, G4 such that
A2: f is
Disomorphism by
GLIB_011: 50;
A3: (
the_Vertices_of G3)
= (
the_Vertices_of G5) & (
the_Vertices_of G4)
= (
the_Vertices_of G6) by
A1,
Def6;
then
reconsider g = f as
PartFunc of (
the_Vertices_of G5), (
the_Vertices_of G6);
now
let v,w,e be
object;
assume
A4: v
in (
dom g) & w
in (
dom g) & e
DJoins (v,w,G5);
then
A5: not ex e3 be
object st e3
DJoins (v,w,G3) by
A1,
A3,
Def6;
thus ex e6 be
object st e6
DJoins ((g
. v),(g
. w),G6)
proof
assume
A6: not ex e6 be
object st e6
DJoins ((g
. v),(g
. w),G6);
(g
. v)
in (
rng f) & (g
. w)
in (
rng f) by
A4,
FUNCT_1: 3;
then
consider e4 be
object such that
A7: e4
DJoins ((g
. v),(g
. w),G4) by
A1,
A6,
Def6;
consider e3 be
object such that
A8: e3
DJoins (v,w,G3) by
A2,
A4,
A7,
GLIB_011:def 4;
thus contradiction by
A5,
A8;
end;
end;
then
reconsider g as
directed
PVertexMapping of G5, G6 by
GLIB_011: 4;
now
let v,w,e6 be
object;
assume
A9: v
in (
dom g) & w
in (
dom g) & e6
DJoins ((g
. v),(g
. w),G6);
then (g
. v)
in (
rng f) & (g
. w)
in (
rng f) by
FUNCT_1: 3;
then
A10: not ex e4 be
object st e4
DJoins ((g
. v),(g
. w),G4) by
A1,
A9,
Def6;
thus ex e5 be
object st e5
DJoins (v,w,G5)
proof
assume not ex e5 be
object st e5
DJoins (v,w,G5);
then
consider e3 be
object such that
A11: e3
DJoins (v,w,G3) by
A1,
A3,
A9,
Def6;
consider e4 be
object such that
A12: e4
DJoins ((f
. v),(f
. w),G4) by
A9,
A11,
GLIB_011:def 2;
thus contradiction by
A10,
A12;
end;
end;
then g is
Dcontinuous by
GLIB_011:def 4;
hence thesis by
A2,
A3,
GLIB_011: 50;
end;
theorem ::
GLIB_012:49
Th49: for G1 be
_Graph, G2 be G1
-Disomorphic
_Graph holds for G3 be
DLGraphComplement of G1, G4 be
DLGraphComplement of G2 holds G4 is G3
-Disomorphic
proof
let G1 be
_Graph, G2 be G1
-Disomorphic
_Graph;
let G3 be
DLGraphComplement of G1, G4 be
DLGraphComplement of G2;
set G5 = the
removeDParallelEdges of G1;
set G6 = the
removeDParallelEdges of G2;
G6 is G5
-Disomorphic by
GLIB_010: 170;
hence thesis by
Th48;
end;
theorem ::
GLIB_012:50
Th50: for G1 be
_Graph, G2,G3 be
DLGraphComplement of G1 holds G3 is G2
-Disomorphic
proof
let G1 be
_Graph, G2,G3 be
DLGraphComplement of G1;
G1 is G1
-Disomorphic by
GLIB_010: 53;
hence thesis by
Th49;
end;
theorem ::
GLIB_012:51
for G1 be
_Graph, G2 be
reverseEdgeDirections of G1 holds for G3 be
DLGraphComplement of G1, G4 be
reverseEdgeDirections of G3 holds G4 is
DLGraphComplement of G2
proof
let G1 be
_Graph, G2 be
reverseEdgeDirections of G1;
let G3 be
DLGraphComplement of G1, G4 be
reverseEdgeDirections of G3;
A1: (
the_Vertices_of G4)
= (
the_Vertices_of G3) by
GLIB_007: 4
.= (
the_Vertices_of G1) by
Def6
.= (
the_Vertices_of G2) by
GLIB_007: 4;
(
the_Edges_of G3)
misses (
the_Edges_of G1) by
Def6;
then (
the_Edges_of G4)
misses (
the_Edges_of G1) by
GLIB_007: 4;
then
A2: (
the_Edges_of G4)
misses (
the_Edges_of G2) by
GLIB_007: 4;
now
let v,w be
Vertex of G2;
A3: v is
Vertex of G1 & w is
Vertex of G1 by
GLIB_007: 4;
hereby
given e2 be
object such that
A4: e2
DJoins (v,w,G2);
e2
in (
the_Edges_of G2) by
A4,
GLIB_000:def 14;
then e2
in (
the_Edges_of G1) by
GLIB_007: 4;
then
A5: e2
DJoins (w,v,G1) by
A4,
GLIB_007: 7;
given e4 be
object such that
A6: e4
DJoins (v,w,G4);
e4
in (
the_Edges_of G4) by
A6,
GLIB_000:def 14;
then e4
in (
the_Edges_of G3) by
GLIB_007: 4;
then e4
DJoins (w,v,G3) by
A6,
GLIB_007: 7;
hence contradiction by
A5,
Th46;
end;
assume
A7: not ex e4 be
object st e4
DJoins (v,w,G4);
not ex e3 be
object st e3
DJoins (w,v,G3)
proof
given e3 be
object such that
A8: e3
DJoins (w,v,G3);
e3
in (
the_Edges_of G3) by
A8,
GLIB_000:def 14;
then e3
DJoins (v,w,G4) by
A8,
GLIB_007: 7;
hence contradiction by
A7;
end;
then
consider e1 be
object such that
A9: e1
DJoins (w,v,G1) by
A3,
Def6;
take e1;
e1
in (
the_Edges_of G1) by
A9,
GLIB_000:def 14;
hence e1
DJoins (v,w,G2) by
A9,
GLIB_007: 7;
end;
hence thesis by
A1,
A2,
Def6;
end;
theorem ::
GLIB_012:52
Th52: for G1 be
_Graph, V be non
empty
Subset of (
the_Vertices_of G1) holds for G2 be
inducedSubgraph of G1, V holds for G3 be
DLGraphComplement of G1, G4 be
inducedSubgraph of G3, V holds G4 is
DLGraphComplement of G2
proof
let G1 be
_Graph, V be non
empty
Subset of (
the_Vertices_of G1);
let G2 be
inducedSubgraph of G1, V;
let G3 be
DLGraphComplement of G1, G4 be
inducedSubgraph of G3, V;
A1: V is non
empty
Subset of (
the_Vertices_of G3) by
Def6;
then
A2: (
the_Vertices_of G4)
= V by
GLIB_000:def 37
.= (
the_Vertices_of G2) by
GLIB_000:def 37;
A3: (
the_Edges_of G4)
misses (
the_Edges_of G2)
proof
assume (
the_Edges_of G4)
meets (
the_Edges_of G2);
then
consider e be
object such that
A4: e
in (
the_Edges_of G4) & e
in (
the_Edges_of G2) by
XBOOLE_0: 3;
A5: e
in ((
the_Edges_of G1)
\/ (
the_Edges_of G3)) by
A4,
XBOOLE_0:def 3;
(
the_Edges_of G3)
misses (
the_Edges_of G1) by
Def6;
hence contradiction by
A4,
A5,
XBOOLE_0: 5;
end;
now
let v,w be
Vertex of G2;
hereby
given e2 be
object such that
A6: e2
DJoins (v,w,G2);
A7: e2
DJoins (v,w,G1) by
A6,
GLIB_000: 72;
given e4 be
object such that
A8: e4
DJoins (v,w,G4);
e4
DJoins (v,w,G3) by
A8,
GLIB_000: 72;
hence contradiction by
A7,
Th46;
end;
assume
A9: not ex e4 be
object st e4
DJoins (v,w,G4);
ex e1 be
object st e1
DJoins (v,w,G1)
proof
assume
A10: not ex e1 be
object st e1
DJoins (v,w,G1);
(
the_Vertices_of G2)
c= (
the_Vertices_of G1);
then v is
Vertex of G1 & w is
Vertex of G1 by
TARSKI:def 3;
then
consider e3 be
object such that
A11: e3
DJoins (v,w,G3) by
A10,
Def6;
A12: e3
Joins (v,w,G3) by
A11,
GLIB_000: 16;
(
the_Vertices_of G2)
= V by
GLIB_000:def 37;
then e3
in (G3
.edgesBetween V) by
A12,
GLIB_000: 32;
then e3
in (
the_Edges_of G4) & e3 is
set by
A1,
GLIB_000:def 37;
then e3
DJoins (v,w,G4) by
A11,
GLIB_000: 73;
hence contradiction by
A9;
end;
then
consider e1 be
object such that
A13: e1
DJoins (v,w,G1);
take e1;
A14: e1
Joins (v,w,G1) by
A13,
GLIB_000: 16;
(
the_Vertices_of G2)
= V by
GLIB_000:def 37;
then e1
in (G1
.edgesBetween V) by
A14,
GLIB_000: 32;
then e1
in (
the_Edges_of G2) & e1 is
set by
GLIB_000:def 37;
hence e1
DJoins (v,w,G2) by
A13,
GLIB_000: 73;
end;
hence thesis by
A2,
A3,
Def6;
end;
theorem ::
GLIB_012:53
for G1 be
_Graph, V be
proper
Subset of (
the_Vertices_of G1) holds for G2 be
removeVertices of G1, V holds for G3 be
DLGraphComplement of G1, G4 be
removeVertices of G3, V holds G4 is
DLGraphComplement of G2
proof
let G1 be
_Graph, V be
proper
Subset of (
the_Vertices_of G1);
let G2 be
removeVertices of G1, V;
let G3 be
DLGraphComplement of G1, G4 be
removeVertices of G3, V;
((
the_Vertices_of G1)
\ V) is non
empty
Subset of (
the_Vertices_of G1) & ((
the_Vertices_of G1)
\ V)
= ((
the_Vertices_of G3)
\ V) by
Def6,
XBOOLE_1: 105,
GLIBPRE0: 6;
hence thesis by
Th52;
end;
theorem ::
GLIB_012:54
for G1 be
non-Dmulti
_Graph, G2 be
DLGraphComplement of G1 holds G1 is
DLGraphComplement of G2
proof
let G1 be
non-Dmulti
_Graph, G2 be
DLGraphComplement of G1;
A1: (
the_Vertices_of G1)
= (
the_Vertices_of G2) & (
the_Edges_of G1)
misses (
the_Edges_of G2) by
Def6;
now
let v,w be
Vertex of G2;
v is
Vertex of G1 & w is
Vertex of G1 by
Def6;
hence (ex e2 be
object st e2
DJoins (v,w,G2)) iff ( not ex e1 be
object st e1
DJoins (v,w,G1)) by
Def6;
end;
hence thesis by
A1,
Def6;
end;
theorem ::
GLIB_012:55
Th55: for G1 be
_Graph, G2 be
DLGraphComplement of G1 holds (G1
.order() )
= (G2
.order() ) by
Def6;
theorem ::
GLIB_012:56
Th56: for G1 be
_Graph, G2 be
DLGraphComplement of G1 holds (G1 is
_trivial iff G2 is
_trivial) & (G1 is
loopfull iff G2 is
loopless) & (G1 is
loopless iff G2 is
loopfull)
proof
let G1 be
_Graph, G2 be
DLGraphComplement of G1;
hereby
assume G1 is
_trivial;
then 1
= (G1
.order() ) by
GLIB_000: 26
.= (G2
.order() ) by
Th55;
hence G2 is
_trivial by
GLIB_000: 26;
end;
hereby
assume G2 is
_trivial;
then 1
= (G2
.order() ) by
GLIB_000: 26
.= (G1
.order() ) by
Th55;
hence G1 is
_trivial by
GLIB_000: 26;
end;
hereby
assume
A1: G1 is
loopfull;
now
let v be
object;
given e2 be
object such that
A2: e2
DJoins (v,v,G2);
e2
Joins (v,v,G2) by
A2,
GLIB_000: 16;
then v
in (
the_Vertices_of G2) by
GLIB_000: 13;
then v
in (
the_Vertices_of G1) by
Def6;
then
consider e1 be
object such that
A3: e1
DJoins (v,v,G1) by
A1,
Th1;
thus contradiction by
A2,
A3,
Th46;
end;
hence G2 is
loopless by
GLIB_009: 17;
end;
hereby
assume
A4: G2 is
loopless;
now
let v be
Vertex of G1;
assume not ex e1 be
object st e1
DJoins (v,v,G1);
then ex e2 be
object st e2
DJoins (v,v,G2) by
Def6;
hence contradiction by
A4,
GLIB_009: 17;
end;
hence G1 is
loopfull by
Th1;
end;
hereby
assume
A5: G1 is
loopless;
now
let v be
Vertex of G2;
A6: v is
Vertex of G1 by
Def6;
assume not ex e2 be
object st e2
DJoins (v,v,G2);
then ex e1 be
object st e1
DJoins (v,v,G1) by
A6,
Def6;
hence contradiction by
A5,
GLIB_009: 17;
end;
hence G2 is
loopfull by
Th1;
end;
hereby
assume
A7: G2 is
loopfull;
now
let v be
object;
given e1 be
object such that
A8: e1
DJoins (v,v,G1);
e1
Joins (v,v,G1) by
A8,
GLIB_000: 16;
then v
in (
the_Vertices_of G1) by
GLIB_000: 13;
then v
in (
the_Vertices_of G2) by
Def6;
then
consider e2 be
object such that
A9: e2
DJoins (v,v,G2) by
A7,
Th1;
thus contradiction by
A8,
A9,
Th46;
end;
hence G1 is
loopless by
GLIB_009: 17;
end;
end;
registration
let G be
_trivial
_Graph;
cluster ->
_trivial for
DLGraphComplement of G;
coherence by
Th56;
end
registration
let G be non
_trivial
_Graph;
cluster -> non
_trivial for
DLGraphComplement of G;
coherence by
Th56;
end
registration
let G be
loopfull
_Graph;
cluster ->
loopless for
DLGraphComplement of G;
coherence by
Th56;
end
registration
let G be non
loopfull
_Graph;
cluster -> non
loopless for
DLGraphComplement of G;
coherence by
Th56;
end
registration
let G be
loopless
_Graph;
cluster ->
loopfull for
DLGraphComplement of G;
coherence by
Th56;
end
registration
let G be non
loopless
_Graph;
cluster -> non
loopfull for
DLGraphComplement of G;
coherence by
Th56;
end
theorem ::
GLIB_012:57
Th57: for G1 be
_Graph, G2 be
DLGraphComplement of G1 st (
the_Edges_of G1)
= (G1
.loops() ) holds G2 is
complete
proof
let G1 be
_Graph, G2 be
DLGraphComplement of G1;
assume
A1: (
the_Edges_of G1)
= (G1
.loops() );
now
let v,w be
Vertex of G2;
A2: v is
Vertex of G1 & w is
Vertex of G1 by
Def6;
assume
A3: v
<> w;
not ex e1 be
object st e1
DJoins (v,w,G1)
proof
given e1 be
object such that
A4: e1
DJoins (v,w,G1);
e1
Joins (v,w,G1) by
A4,
GLIB_000: 16;
hence contradiction by
A1,
A3,
A4,
GLIB_009: 46,
GLIB_000:def 14;
end;
then
consider e2 be
object such that
A5: e2
DJoins (v,w,G2) by
A2,
Def6;
e2
Joins (v,w,G2) by
A5,
GLIB_000: 16;
hence (v,w)
are_adjacent by
CHORD:def 3;
end;
hence thesis by
CHORD:def 6;
end;
registration
let G be
edgeless
_Graph;
cluster ->
complete for
DLGraphComplement of G;
coherence
proof
let G2 be
DLGraphComplement of G;
(
the_Edges_of G)
=
{} & (G
.loops() )
=
{} ;
hence thesis by
Th57;
end;
end
registration
let G be non
connected
_Graph;
cluster ->
connected for
DLGraphComplement of G;
coherence
proof
let G2 be
DLGraphComplement of G;
consider w1,w2 be
Vertex of G such that
A1: for W be
Walk of G holds not W
is_Walk_from (w1,w2) by
GLIB_002:def 1;
not ex e be
object st e
DJoins (w1,w2,G)
proof
given e be
object such that
A2: e
DJoins (w1,w2,G);
e
Joins (w1,w2,G) by
A2,
GLIB_000: 16;
then (G
.walkOf (w1,e,w2))
is_Walk_from (w1,w2) by
GLIB_001: 15;
hence contradiction by
A1;
end;
then
consider e be
object such that
A3: e
DJoins (w1,w2,G2) by
Def6;
now
let v1,v2 be
Vertex of G2;
reconsider u1 = v1, u2 = v2 as
Vertex of G by
Def6;
per cases ;
suppose
A4: (ex e1 be
object st e1
DJoins (v1,w1,G)) & (ex e2 be
object st e2
DJoins (v2,w2,G));
then
consider e1 be
object such that
A5: e1
DJoins (v1,w1,G);
consider e2 be
object such that
A6: e2
DJoins (v2,w2,G) by
A4;
A7: e1
Joins (w1,v1,G) by
A5,
GLIB_000: 16;
A8: e2
Joins (v2,w2,G) by
A6,
GLIB_000: 16;
not ex e3 be
object st e3
DJoins (u1,w2,G)
proof
given e3 be
object such that
A9: e3
DJoins (u1,w2,G);
set W2 = (G
.walkOf (v1,e3,w2));
e3
Joins (v1,w2,G) by
A9,
GLIB_000: 16;
then
A10: W2
is_Walk_from (v1,w2) by
GLIB_001: 15;
set W1 = (G
.walkOf (w1,e1,v1));
W1
is_Walk_from (w1,v1) by
A7,
GLIB_001: 15;
then (W1
.append W2)
is_Walk_from (w1,w2) by
A10,
GLIB_001: 31;
hence contradiction by
A1;
end;
then
consider e3 be
object such that
A11: e3
DJoins (u1,w2,G2) by
Def6;
A12: e3
Joins (v1,w2,G2) by
A11,
GLIB_000: 16;
not ex e4 be
object st e4
DJoins (w1,u2,G)
proof
given e4 be
object such that
A13: e4
DJoins (w1,u2,G);
set W1 = (G
.walkOf (w1,e4,u2));
e4
Joins (w1,v2,G) by
A13,
GLIB_000: 16;
then
A14: W1
is_Walk_from (w1,v2) by
GLIB_001: 15;
set W2 = (G
.walkOf (v2,e2,w2));
W2
is_Walk_from (v2,w2) by
A8,
GLIB_001: 15;
then (W1
.append W2)
is_Walk_from (w1,w2) by
A14,
GLIB_001: 31;
hence contradiction by
A1;
end;
then
consider e4 be
object such that
A15: e4
DJoins (w1,u2,G2) by
Def6;
A16: e4
Joins (w1,v2,G2) by
A15,
GLIB_000: 16;
set W1 = (G2
.walkOf (v1,e3,w2)), W2 = (G2
.walkOf (w2,e,w1)), W3 = (G2
.walkOf (w1,e4,v2));
reconsider W = ((W1
.append W2)
.append W3) as
Walk of G2;
take W;
A17: W1
is_Walk_from (v1,w2) by
A12,
GLIB_001: 15;
e
Joins (w2,w1,G2) by
A3,
GLIB_000: 16;
then W2
is_Walk_from (w2,w1) by
GLIB_001: 15;
then
A18: (W1
.append W2)
is_Walk_from (v1,w1) by
A17,
GLIB_001: 31;
W3
is_Walk_from (w1,v2) by
A16,
GLIB_001: 15;
hence W
is_Walk_from (v1,v2) by
A18,
GLIB_001: 31;
end;
suppose
A19: ( not ex e1 be
object st e1
DJoins (v1,w1,G)) & (ex e2 be
object st e2
DJoins (v2,w2,G));
then
consider e2 be
object such that
A20: e2
DJoins (v2,w2,G);
A21: e2
Joins (v2,w2,G) by
A20,
GLIB_000: 16;
consider e3 be
object such that
A22: e3
DJoins (u1,w1,G2) by
A19,
Def6;
A23: e3
Joins (v1,w1,G2) by
A22,
GLIB_000: 16;
not ex e4 be
object st e4
DJoins (w1,u2,G)
proof
given e4 be
object such that
A24: e4
DJoins (w1,u2,G);
set W1 = (G
.walkOf (w1,e4,u2));
e4
Joins (w1,v2,G) by
A24,
GLIB_000: 16;
then
A25: W1
is_Walk_from (w1,v2) by
GLIB_001: 15;
set W2 = (G
.walkOf (v2,e2,w2));
W2
is_Walk_from (v2,w2) by
A21,
GLIB_001: 15;
then (W1
.append W2)
is_Walk_from (w1,w2) by
A25,
GLIB_001: 31;
hence contradiction by
A1;
end;
then
consider e4 be
object such that
A26: e4
DJoins (w1,u2,G2) by
Def6;
A27: e4
Joins (w1,v2,G2) by
A26,
GLIB_000: 16;
set W1 = (G2
.walkOf (v1,e3,w1)), W2 = (G2
.walkOf (w1,e4,v2));
reconsider W = (W1
.append W2) as
Walk of G2;
take W;
A28: W1
is_Walk_from (v1,w1) by
A23,
GLIB_001: 15;
W2
is_Walk_from (w1,v2) by
A27,
GLIB_001: 15;
hence W
is_Walk_from (v1,v2) by
A28,
GLIB_001: 31;
end;
suppose
A29: (ex e1 be
object st e1
DJoins (v1,w1,G)) & ( not ex e2 be
object st e2
DJoins (v2,w2,G));
then
consider e1 be
object such that
A30: e1
DJoins (v1,w1,G);
A31: e1
Joins (w1,v1,G) by
A30,
GLIB_000: 16;
not ex e3 be
object st e3
DJoins (u1,w2,G)
proof
given e3 be
object such that
A32: e3
DJoins (u1,w2,G);
set W2 = (G
.walkOf (v1,e3,w2));
e3
Joins (v1,w2,G) by
A32,
GLIB_000: 16;
then
A33: W2
is_Walk_from (v1,w2) by
GLIB_001: 15;
set W1 = (G
.walkOf (w1,e1,v1));
W1
is_Walk_from (w1,v1) by
A31,
GLIB_001: 15;
then (W1
.append W2)
is_Walk_from (w1,w2) by
A33,
GLIB_001: 31;
hence contradiction by
A1;
end;
then
consider e3 be
object such that
A34: e3
DJoins (u1,w2,G2) by
Def6;
A35: e3
Joins (v1,w2,G2) by
A34,
GLIB_000: 16;
consider e4 be
object such that
A36: e4
DJoins (u2,w2,G2) by
A29,
Def6;
A37: e4
Joins (w2,v2,G2) by
A36,
GLIB_000: 16;
set W1 = (G2
.walkOf (v1,e3,w2)), W2 = (G2
.walkOf (w2,e4,v2));
reconsider W = (W1
.append W2) as
Walk of G2;
take W;
A38: W1
is_Walk_from (v1,w2) by
A35,
GLIB_001: 15;
W2
is_Walk_from (w2,v2) by
A37,
GLIB_001: 15;
hence W
is_Walk_from (v1,v2) by
A38,
GLIB_001: 31;
end;
suppose
A39: ( not ex e1 be
object st e1
DJoins (v1,w1,G)) & ( not ex e2 be
object st e2
DJoins (v2,w2,G));
then
consider e3 be
object such that
A40: e3
DJoins (u1,w1,G2) by
Def6;
A41: e3
Joins (v1,w1,G2) by
A40,
GLIB_000: 16;
consider e4 be
object such that
A42: e4
DJoins (u2,w2,G2) by
A39,
Def6;
A43: e4
Joins (w2,v2,G2) by
A42,
GLIB_000: 16;
set W1 = (G2
.walkOf (v1,e3,w1)), W2 = (G2
.walkOf (w1,e,w2)), W3 = (G2
.walkOf (w2,e4,v2));
reconsider W = ((W1
.append W2)
.append W3) as
Walk of G2;
take W;
A44: W1
is_Walk_from (v1,w1) by
A41,
GLIB_001: 15;
e
Joins (w1,w2,G2) by
A3,
GLIB_000: 16;
then W2
is_Walk_from (w1,w2) by
GLIB_001: 15;
then
A45: (W1
.append W2)
is_Walk_from (v1,w2) by
A44,
GLIB_001: 31;
W3
is_Walk_from (w2,v2) by
A43,
GLIB_001: 15;
hence W
is_Walk_from (v1,v2) by
A45,
GLIB_001: 31;
end;
end;
hence thesis by
GLIB_002:def 1;
end;
end
theorem ::
GLIB_012:58
for G1 be
_Graph, G2 be
DLGraphComplement of G1 holds for v1 be
Vertex of G1, v2 be
Vertex of G2 st v1
= v2 holds (v1 is
isolated implies v2 is non
isolated) & (v1 is
endvertex implies v2 is non
endvertex)
proof
let G1 be
_Graph, G2 be
DLGraphComplement of G1;
let v1 be
Vertex of G1, v2 be
Vertex of G2;
assume
A1: v1
= v2;
hereby
assume
A2: v1 is
isolated;
not ex e1 be
object st e1
DJoins (v1,v1,G1)
proof
given e1 be
object such that
A3: e1
DJoins (v1,v1,G1);
e1
Joins (v1,v1,G1) by
A3,
GLIB_000: 16;
hence contradiction by
A2,
GLIBPRE0: 21;
end;
then
consider e2 be
object such that
A4: e2
DJoins (v1,v1,G2) by
Def6;
e2
Joins (v2,v2,G2) by
A1,
A4,
GLIB_000: 16;
hence v2 is non
isolated by
GLIBPRE0: 21;
end;
hereby
assume
A5: v1 is
endvertex;
not ex e1 be
object st e1
DJoins (v1,v1,G1)
proof
given e1 be
object such that
A6: e1
DJoins (v1,v1,G1);
e1
Joins (v1,v1,G1) by
A6,
GLIB_000: 16;
hence contradiction by
A5,
GLIBPRE0: 24;
end;
then
consider e2 be
object such that
A7: e2
DJoins (v1,v1,G2) by
Def6;
e2
Joins (v2,v2,G2) by
A1,
A7,
GLIB_000: 16;
hence v2 is non
endvertex by
GLIBPRE0: 24;
end;
end;
theorem ::
GLIB_012:59
for G1 be
_Graph, G2 be
DLGraphComplement of G1 holds for v,w be
Vertex of G1 holds ( not ex e be
object st e
Joins (v,w,G1)) implies (ex e be
object st e
Joins (v,w,G2))
proof
let G1 be
_Graph, G2 be
DLGraphComplement of G1;
let v,w be
Vertex of G1;
assume
A1: not ex e be
object st e
Joins (v,w,G1);
not ex e be
object st e
DJoins (v,w,G1)
proof
given e be
object such that
A2: e
DJoins (v,w,G1);
e
Joins (v,w,G1) by
A2,
GLIB_000: 16;
hence contradiction by
A1;
end;
then
consider e be
object such that
A3: e
DJoins (v,w,G2) by
Def6;
take e;
thus e
Joins (v,w,G2) by
A3,
GLIB_000: 16;
end;
theorem ::
GLIB_012:60
Th60: for G1 be
_Graph, G2 be
DLGraphComplement of G1 holds for v1 be
Vertex of G1, v2 be
Vertex of G2 st v1
= v2 holds (v2
.inNeighbors() )
= ((
the_Vertices_of G2)
\ (v1
.inNeighbors() )) & (v2
.outNeighbors() )
= ((
the_Vertices_of G2)
\ (v1
.outNeighbors() ))
proof
let G1 be
_Graph, G2 be
DLGraphComplement of G1;
let v1 be
Vertex of G1, v2 be
Vertex of G2;
assume
A1: v1
= v2;
now
let x be
object;
hereby
assume x
in (v2
.inNeighbors() );
then
consider e be
object such that
A2: e
DJoins (x,v2,G2) by
GLIB_000: 69;
e
Joins (x,v2,G2) by
A2,
GLIB_000: 16;
then
A3: x
in (
the_Vertices_of G2) by
GLIB_000: 13;
then
reconsider w = x as
Vertex of G1 by
Def6;
not ex e0 be
object st e0
DJoins (w,v1,G1) by
A1,
A2,
Def6;
then not x
in (v1
.inNeighbors() ) by
GLIB_000: 69;
hence x
in ((
the_Vertices_of G2)
\ (v1
.inNeighbors() )) by
A3,
XBOOLE_0:def 5;
end;
assume x
in ((
the_Vertices_of G2)
\ (v1
.inNeighbors() ));
then
A4: x
in (
the_Vertices_of G2) & not x
in (v1
.inNeighbors() ) by
XBOOLE_0:def 5;
then
reconsider w = x as
Vertex of G1 by
Def6;
not ex e0 be
object st e0
DJoins (w,v1,G1) by
A4,
GLIB_000: 69;
then
consider e be
object such that
A5: e
DJoins (w,v1,G2) by
Def6;
thus x
in (v2
.inNeighbors() ) by
A1,
A5,
GLIB_000: 69;
end;
hence (v2
.inNeighbors() )
= ((
the_Vertices_of G2)
\ (v1
.inNeighbors() )) by
TARSKI: 2;
now
let x be
object;
hereby
assume x
in (v2
.outNeighbors() );
then
consider e be
object such that
A6: e
DJoins (v2,x,G2) by
GLIB_000: 70;
e
Joins (v2,x,G2) by
A6,
GLIB_000: 16;
then
A7: x
in (
the_Vertices_of G2) by
GLIB_000: 13;
then
reconsider w = x as
Vertex of G1 by
Def6;
not ex e0 be
object st e0
DJoins (v1,w,G1) by
A1,
A6,
Def6;
then not x
in (v1
.outNeighbors() ) by
GLIB_000: 70;
hence x
in ((
the_Vertices_of G2)
\ (v1
.outNeighbors() )) by
A7,
XBOOLE_0:def 5;
end;
assume x
in ((
the_Vertices_of G2)
\ (v1
.outNeighbors() ));
then
A8: x
in (
the_Vertices_of G2) & not x
in (v1
.outNeighbors() ) by
XBOOLE_0:def 5;
then
reconsider w = x as
Vertex of G1 by
Def6;
not ex e0 be
object st e0
DJoins (v1,w,G1) by
A8,
GLIB_000: 70;
then
consider e be
object such that
A9: e
DJoins (v1,w,G2) by
Def6;
thus x
in (v2
.outNeighbors() ) by
A1,
A9,
GLIB_000: 70;
end;
hence (v2
.outNeighbors() )
= ((
the_Vertices_of G2)
\ (v1
.outNeighbors() )) by
TARSKI: 2;
end;
theorem ::
GLIB_012:61
for G1 be
_Graph, G2 be
DLGraphComplement of G1 holds for v1 be
Vertex of G1, v2 be
Vertex of G2 st v1
= v2 & v1 is
isolated holds (v2
.inNeighbors() )
= (
the_Vertices_of G2) & (v2
.outNeighbors() )
= (
the_Vertices_of G2) & (v2
.allNeighbors() )
= (
the_Vertices_of G2)
proof
let G1 be
_Graph, G2 be
DLGraphComplement of G1;
let v1 be
Vertex of G1, v2 be
Vertex of G2;
assume
A1: v1
= v2 & v1 is
isolated;
then (v1
.allNeighbors() )
=
{} by
GLIB_008: 7;
then
A2: (v1
.inNeighbors() )
=
{} & (v1
.outNeighbors() )
=
{} ;
hence
A3: (v2
.inNeighbors() )
= ((
the_Vertices_of G2)
\
{} ) by
A1,
Th60
.= (
the_Vertices_of G2);
thus (v2
.outNeighbors() )
= ((
the_Vertices_of G2)
\
{} ) by
A1,
A2,
Th60
.= (
the_Vertices_of G2);
hence (v2
.allNeighbors() )
= (
the_Vertices_of G2) by
A3;
end;
begin
definition
let G be
_Graph;
::
GLIB_012:def7
mode
LGraphComplement of G ->
non-multi
_Graph means
:
Def7: (
the_Vertices_of it )
= (
the_Vertices_of G) & (
the_Edges_of it )
misses (
the_Edges_of G) & for v,w be
Vertex of G holds (ex e1 be
object st e1
Joins (v,w,G)) iff ( not ex e2 be
object st e2
Joins (v,w,it ));
existence
proof
set E = {
[(
the_Edges_of G),
{v, w}] where v be
Vertex of G, w be
Vertex of G : not ex e be
object st e
Joins (v,w,G) };
deffunc
S(
object) = the
Element of (
Segm ($1
`2 ));
consider s be
Function such that
A1: (
dom s)
= E & for x be
object st x
in E holds (s
. x)
=
S(x) from
FUNCT_1:sch 3;
now
let y be
object;
assume y
in (
rng s);
then
consider x be
object such that
A2: x
in (
dom s) & (s
. x)
= y by
FUNCT_1:def 3;
consider v,w be
Vertex of G such that
A3: x
=
[(
the_Edges_of G),
{v, w}] and not ex e be
object st e
Joins (v,w,G) by
A1,
A2;
y
=
S(x) by
A1,
A2
.= the
Element of
{v, w} by
A3;
hence y
in (
the_Vertices_of G);
end;
then
reconsider s as
Function of E, (
the_Vertices_of G) by
A1,
TARSKI:def 3,
FUNCT_2: 2;
deffunc
T(
object) = (
IFEQ (((
Segm ($1
`2 ))
\
{
S($1)}),
{} ,
S($1), the
Element of ((
Segm ($1
`2 ))
\
{
S($1)})));
A4: for x,y be
object st x
<> y holds
T([)
= the
Element of (
{x, y}
\
{ the
Element of
{x, y}}) by
FUNCOP_1:def 8,
GLIBPRE0: 3;
A5: for x be
object holds
T([)
= the
Element of
{x, x}
proof
let x be
object;
A6: (
{x, x}
\
{ the
Element of
{x, x}})
=
{} by
GLIBPRE0: 3;
thus
T([)
= the
Element of
{x, x} by
A6,
FUNCOP_1:def 8;
end;
consider t be
Function such that
A7: (
dom t)
= E & for x be
object st x
in E holds (t
. x)
=
T(x) from
FUNCT_1:sch 3;
now
let y be
object;
assume y
in (
rng t);
then
consider x be
object such that
A8: x
in (
dom t) & (t
. x)
= y by
FUNCT_1:def 3;
consider v,w be
Vertex of G such that
A9: x
=
[(
the_Edges_of G),
{v, w}] and not ex e be
object st e
Joins (v,w,G) by
A7,
A8;
per cases ;
suppose
A10: v
<> w;
y
=
T([) by
A7,
A8,
A9
.= the
Element of (
{v, w}
\
{ the
Element of
{v, w}}) by
A4,
A10;
then y
= v or y
= w by
A10,
GLIBPRE0: 4;
hence y
in (
the_Vertices_of G);
end;
suppose
A11: v
= w;
y
=
T([) by
A7,
A8,
A9
.= the
Element of
{v, v} by
A5,
A11;
hence y
in (
the_Vertices_of G);
end;
end;
then
reconsider t as
Function of E, (
the_Vertices_of G) by
A7,
TARSKI:def 3,
FUNCT_2: 2;
set H = (
createGraph ((
the_Vertices_of G),E,s,t));
now
let e1,e2,v1,v2 be
object;
assume
A12: e1
Joins (v1,v2,H) & e2
Joins (v1,v2,H);
then e1
in (
the_Edges_of H) by
GLIB_000:def 13;
then
A13: e1
in E by
GLIB_000: 6;
then
consider a,b be
Vertex of G such that
A14: e1
=
[(
the_Edges_of G),
{a, b}] and not ex e be
object st e
Joins (a,b,G);
e2
in (
the_Edges_of H) by
A12,
GLIB_000:def 13;
then
A15: e2
in E by
GLIB_000: 6;
then
consider c,d be
Vertex of G such that
A16: e2
=
[(
the_Edges_of G),
{c, d}] and not ex e be
object st e
Joins (c,d,G);
per cases ;
suppose
A17: a
<> b & c
<> d;
per cases by
A12,
GLIB_000: 16;
suppose
A18: e1
DJoins (v1,v2,H) & e2
DJoins (v1,v2,H);
A19: v1
= ((
the_Source_of H)
. e1) by
A18,
GLIB_000:def 14
.= (s
. e1) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{a, b}]
`2 )) by
A1,
A13,
A14
.= the
Element of
{a, b};
A20: v2
= ((
the_Target_of H)
. e1) by
A18,
GLIB_000:def 14
.= (t
. e1) by
GLIB_000: 6
.=
T(e1) by
A7,
A13
.= the
Element of (
{a, b}
\
{ the
Element of
{a, b}}) by
A4,
A17,
A14;
A21: v1
= ((
the_Source_of H)
. e2) by
A18,
GLIB_000:def 14
.= (s
. e2) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{c, d}]
`2 )) by
A1,
A15,
A16
.= the
Element of
{c, d};
v2
= ((
the_Target_of H)
. e2) by
A18,
GLIB_000:def 14
.= (t
. e2) by
GLIB_000: 6
.=
T(e2) by
A7,
A15
.= the
Element of (
{c, d}
\
{ the
Element of
{c, d}}) by
A4,
A17,
A16;
then
A22: v1
= c & v2
= d or v1
= d & v2
= c by
A17,
A21,
GLIBPRE0: 4;
v1
= a & v2
= b or v1
= b & v2
= a by
A17,
A19,
A20,
GLIBPRE0: 4;
hence e1
= e2 by
A14,
A16,
A22;
end;
suppose
A23: e1
DJoins (v1,v2,H) & e2
DJoins (v2,v1,H);
A24: v1
= ((
the_Source_of H)
. e1) by
A23,
GLIB_000:def 14
.= (s
. e1) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{a, b}]
`2 )) by
A1,
A13,
A14
.= the
Element of
{a, b};
A25: v2
= ((
the_Target_of H)
. e1) by
A23,
GLIB_000:def 14
.= (t
. e1) by
GLIB_000: 6
.=
T(e1) by
A7,
A13
.= the
Element of (
{a, b}
\
{ the
Element of
{a, b}}) by
A4,
A17,
A14;
A26: v1
= ((
the_Target_of H)
. e2) by
A23,
GLIB_000:def 14
.= (t
. e2) by
GLIB_000: 6
.=
T(e2) by
A7,
A15
.= the
Element of (
{c, d}
\
{ the
Element of
{c, d}}) by
A4,
A17,
A16;
v2
= ((
the_Source_of H)
. e2) by
A23,
GLIB_000:def 14
.= (s
. e2) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{c, d}]
`2 )) by
A1,
A15,
A16
.= the
Element of
{c, d};
then
A27: v1
= c & v2
= d or v1
= d & v2
= c by
A17,
A26,
GLIBPRE0: 4;
v1
= a & v2
= b or v1
= b & v2
= a by
A17,
A24,
A25,
GLIBPRE0: 4;
hence e1
= e2 by
A14,
A16,
A27;
end;
suppose
A28: e1
DJoins (v2,v1,H) & e2
DJoins (v2,v1,H);
A29: v1
= ((
the_Target_of H)
. e1) by
A28,
GLIB_000:def 14
.= (t
. e1) by
GLIB_000: 6
.=
T(e1) by
A7,
A13
.= the
Element of (
{a, b}
\
{ the
Element of
{a, b}}) by
A4,
A17,
A14;
A30: v2
= ((
the_Source_of H)
. e1) by
A28,
GLIB_000:def 14
.= (s
. e1) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{a, b}]
`2 )) by
A1,
A13,
A14
.= the
Element of
{a, b};
A31: v1
= ((
the_Target_of H)
. e2) by
A28,
GLIB_000:def 14
.= (t
. e2) by
GLIB_000: 6
.=
T(e2) by
A7,
A15
.= the
Element of (
{c, d}
\
{ the
Element of
{c, d}}) by
A4,
A17,
A16;
v2
= ((
the_Source_of H)
. e2) by
A28,
GLIB_000:def 14
.= (s
. e2) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{c, d}]
`2 )) by
A1,
A15,
A16
.= the
Element of
{c, d};
then
A32: v1
= c & v2
= d or v1
= d & v2
= c by
A17,
A31,
GLIBPRE0: 4;
v1
= a & v2
= b or v1
= b & v2
= a by
A17,
A29,
A30,
GLIBPRE0: 4;
hence e1
= e2 by
A14,
A16,
A32;
end;
suppose
A33: e1
DJoins (v2,v1,H) & e2
DJoins (v1,v2,H);
A34: v1
= ((
the_Target_of H)
. e1) by
A33,
GLIB_000:def 14
.= (t
. e1) by
GLIB_000: 6
.=
T(e1) by
A7,
A13
.= the
Element of (
{a, b}
\
{ the
Element of
{a, b}}) by
A4,
A17,
A14;
A35: v2
= ((
the_Source_of H)
. e1) by
A33,
GLIB_000:def 14
.= (s
. e1) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{a, b}]
`2 )) by
A1,
A13,
A14
.= the
Element of
{a, b};
A36: v1
= ((
the_Source_of H)
. e2) by
A33,
GLIB_000:def 14
.= (s
. e2) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{c, d}]
`2 )) by
A1,
A15,
A16
.= the
Element of
{c, d};
v2
= ((
the_Target_of H)
. e2) by
A33,
GLIB_000:def 14
.= (t
. e2) by
GLIB_000: 6
.=
T(e2) by
A7,
A15
.= the
Element of (
{c, d}
\
{ the
Element of
{c, d}}) by
A4,
A17,
A16;
then
A37: v1
= c & v2
= d or v1
= d & v2
= c by
A17,
A36,
GLIBPRE0: 4;
v1
= a & v2
= b or v1
= b & v2
= a by
A17,
A34,
A35,
GLIBPRE0: 4;
hence e1
= e2 by
A14,
A16,
A37;
end;
end;
suppose
A38: a
<> b & c
= d;
per cases by
A12,
GLIB_000: 16;
suppose
A39: e1
DJoins (v1,v2,H) & e2
DJoins (v1,v2,H);
A40: v1
= ((
the_Source_of H)
. e1) by
A39,
GLIB_000:def 14
.= (s
. e1) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{a, b}]
`2 )) by
A1,
A13,
A14
.= the
Element of
{a, b};
A41: v2
= ((
the_Target_of H)
. e1) by
A39,
GLIB_000:def 14
.= (t
. e1) by
GLIB_000: 6
.=
T(e1) by
A7,
A13
.= the
Element of (
{a, b}
\
{ the
Element of
{a, b}}) by
A4,
A38,
A14;
A42: v1
= ((
the_Source_of H)
. e2) by
A39,
GLIB_000:def 14
.= (s
. e2) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{c, d}]
`2 )) by
A1,
A15,
A16
.= the
Element of
{c, d};
A43: v2
= ((
the_Target_of H)
. e2) by
A39,
GLIB_000:def 14
.= (t
. e2) by
GLIB_000: 6
.=
T(e2) by
A7,
A15
.= the
Element of
{c, d} by
A5,
A38,
A16;
v1
= a & v2
= b or v1
= b & v2
= a by
A38,
A40,
A41,
GLIBPRE0: 4;
hence e1
= e2 by
A38,
A42,
A43;
end;
suppose
A44: e1
DJoins (v1,v2,H) & e2
DJoins (v2,v1,H);
A45: v1
= ((
the_Source_of H)
. e1) by
A44,
GLIB_000:def 14
.= (s
. e1) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{a, b}]
`2 )) by
A1,
A13,
A14
.= the
Element of
{a, b};
A46: v2
= ((
the_Target_of H)
. e1) by
A44,
GLIB_000:def 14
.= (t
. e1) by
GLIB_000: 6
.=
T(e1) by
A7,
A13
.= the
Element of (
{a, b}
\
{ the
Element of
{a, b}}) by
A4,
A38,
A14;
A47: v1
= ((
the_Target_of H)
. e2) by
A44,
GLIB_000:def 14
.= (t
. e2) by
GLIB_000: 6
.=
T(e2) by
A7,
A15
.= the
Element of
{c, d} by
A5,
A38,
A16;
A48: v2
= ((
the_Source_of H)
. e2) by
A44,
GLIB_000:def 14
.= (s
. e2) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{c, d}]
`2 )) by
A1,
A15,
A16
.= the
Element of
{c, d};
v1
= a & v2
= b or v1
= b & v2
= a by
A38,
A45,
A46,
GLIBPRE0: 4;
hence e1
= e2 by
A38,
A47,
A48;
end;
suppose
A49: e1
DJoins (v2,v1,H) & e2
DJoins (v2,v1,H);
A50: v1
= ((
the_Target_of H)
. e1) by
A49,
GLIB_000:def 14
.= (t
. e1) by
GLIB_000: 6
.=
T(e1) by
A7,
A13
.= the
Element of (
{a, b}
\
{ the
Element of
{a, b}}) by
A4,
A38,
A14;
A51: v2
= ((
the_Source_of H)
. e1) by
A49,
GLIB_000:def 14
.= (s
. e1) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{a, b}]
`2 )) by
A1,
A13,
A14
.= the
Element of
{a, b};
A52: v1
= ((
the_Target_of H)
. e2) by
A49,
GLIB_000:def 14
.= (t
. e2) by
GLIB_000: 6
.=
T(e2) by
A7,
A15
.= the
Element of
{c, d} by
A5,
A38,
A16;
A53: v2
= ((
the_Source_of H)
. e2) by
A49,
GLIB_000:def 14
.= (s
. e2) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{c, d}]
`2 )) by
A1,
A15,
A16
.= the
Element of
{c, d};
v1
= a & v2
= b or v1
= b & v2
= a by
A38,
A50,
A51,
GLIBPRE0: 4;
hence e1
= e2 by
A38,
A52,
A53;
end;
suppose
A54: e1
DJoins (v2,v1,H) & e2
DJoins (v1,v2,H);
A55: v1
= ((
the_Target_of H)
. e1) by
A54,
GLIB_000:def 14
.= (t
. e1) by
GLIB_000: 6
.=
T(e1) by
A7,
A13
.= the
Element of (
{a, b}
\
{ the
Element of
{a, b}}) by
A4,
A38,
A14;
A56: v2
= ((
the_Source_of H)
. e1) by
A54,
GLIB_000:def 14
.= (s
. e1) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{a, b}]
`2 )) by
A1,
A13,
A14
.= the
Element of
{a, b};
A57: v1
= ((
the_Source_of H)
. e2) by
A54,
GLIB_000:def 14
.= (s
. e2) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{c, d}]
`2 )) by
A1,
A15,
A16
.= the
Element of
{c, d};
A58: v2
= ((
the_Target_of H)
. e2) by
A54,
GLIB_000:def 14
.= (t
. e2) by
GLIB_000: 6
.=
T(e2) by
A7,
A15
.= the
Element of
{c, d} by
A5,
A38,
A16;
v1
= a & v2
= b or v1
= b & v2
= a by
A38,
A55,
A56,
GLIBPRE0: 4;
hence e1
= e2 by
A38,
A57,
A58;
end;
end;
suppose
A59: a
= b & c
<> d;
per cases by
A12,
GLIB_000: 16;
suppose
A60: e1
DJoins (v1,v2,H) & e2
DJoins (v1,v2,H);
A61: v1
= ((
the_Source_of H)
. e1) by
A60,
GLIB_000:def 14
.= (s
. e1) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{a, b}]
`2 )) by
A1,
A13,
A14
.= the
Element of
{a, b};
A62: v2
= ((
the_Target_of H)
. e1) by
A60,
GLIB_000:def 14
.= (t
. e1) by
GLIB_000: 6
.=
T(e1) by
A7,
A13
.= the
Element of
{a, b} by
A5,
A59,
A14;
A63: v1
= ((
the_Source_of H)
. e2) by
A60,
GLIB_000:def 14
.= (s
. e2) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{c, d}]
`2 )) by
A1,
A15,
A16
.= the
Element of
{c, d};
v2
= ((
the_Target_of H)
. e2) by
A60,
GLIB_000:def 14
.= (t
. e2) by
GLIB_000: 6
.=
T(e2) by
A7,
A15
.= the
Element of (
{c, d}
\
{ the
Element of
{c, d}}) by
A4,
A59,
A16;
then v1
= c & v2
= d or v1
= d & v2
= c by
A59,
A63,
GLIBPRE0: 4;
hence e1
= e2 by
A59,
A61,
A62;
end;
suppose
A64: e1
DJoins (v1,v2,H) & e2
DJoins (v2,v1,H);
A65: v1
= ((
the_Source_of H)
. e1) by
A64,
GLIB_000:def 14
.= (s
. e1) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{a, b}]
`2 )) by
A1,
A13,
A14
.= the
Element of
{a, b};
A66: v2
= ((
the_Target_of H)
. e1) by
A64,
GLIB_000:def 14
.= (t
. e1) by
GLIB_000: 6
.=
T(e1) by
A7,
A13
.= the
Element of
{a, b} by
A5,
A59,
A14;
A67: v1
= ((
the_Target_of H)
. e2) by
A64,
GLIB_000:def 14
.= (t
. e2) by
GLIB_000: 6
.=
T(e2) by
A7,
A15
.= the
Element of (
{c, d}
\
{ the
Element of
{c, d}}) by
A4,
A59,
A16;
v2
= ((
the_Source_of H)
. e2) by
A64,
GLIB_000:def 14
.= (s
. e2) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{c, d}]
`2 )) by
A1,
A15,
A16
.= the
Element of
{c, d};
then v1
= c & v2
= d or v1
= d & v2
= c by
A59,
A67,
GLIBPRE0: 4;
hence e1
= e2 by
A59,
A65,
A66;
end;
suppose
A68: e1
DJoins (v2,v1,H) & e2
DJoins (v2,v1,H);
A69: v1
= ((
the_Target_of H)
. e1) by
A68,
GLIB_000:def 14
.= (t
. e1) by
GLIB_000: 6
.=
T(e1) by
A7,
A13
.= the
Element of
{a, b} by
A5,
A59,
A14;
A70: v2
= ((
the_Source_of H)
. e1) by
A68,
GLIB_000:def 14
.= (s
. e1) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{a, b}]
`2 )) by
A1,
A13,
A14
.= the
Element of
{a, b};
A71: v1
= ((
the_Target_of H)
. e2) by
A68,
GLIB_000:def 14
.= (t
. e2) by
GLIB_000: 6
.=
T(e2) by
A7,
A15
.= the
Element of (
{c, d}
\
{ the
Element of
{c, d}}) by
A4,
A59,
A16;
v2
= ((
the_Source_of H)
. e2) by
A68,
GLIB_000:def 14
.= (s
. e2) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{c, d}]
`2 )) by
A1,
A15,
A16
.= the
Element of
{c, d};
then v1
= c & v2
= d or v1
= d & v2
= c by
A59,
A71,
GLIBPRE0: 4;
hence e1
= e2 by
A59,
A69,
A70;
end;
suppose
A72: e1
DJoins (v2,v1,H) & e2
DJoins (v1,v2,H);
A73: v1
= ((
the_Target_of H)
. e1) by
A72,
GLIB_000:def 14
.= (t
. e1) by
GLIB_000: 6
.=
T(e1) by
A7,
A13
.= the
Element of
{a, b} by
A5,
A59,
A14;
A74: v2
= ((
the_Source_of H)
. e1) by
A72,
GLIB_000:def 14
.= (s
. e1) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{a, b}]
`2 )) by
A1,
A13,
A14
.= the
Element of
{a, b};
A75: v1
= ((
the_Source_of H)
. e2) by
A72,
GLIB_000:def 14
.= (s
. e2) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{c, d}]
`2 )) by
A1,
A15,
A16
.= the
Element of
{c, d};
v2
= ((
the_Target_of H)
. e2) by
A72,
GLIB_000:def 14
.= (t
. e2) by
GLIB_000: 6
.=
T(e2) by
A7,
A15
.= the
Element of (
{c, d}
\
{ the
Element of
{c, d}}) by
A4,
A59,
A16;
then v1
= c & v2
= d or v1
= d & v2
= c by
A59,
A75,
GLIBPRE0: 4;
hence e1
= e2 by
A59,
A73,
A74;
end;
end;
suppose
A76: a
= b & c
= d;
A77:
{a, a}
=
{a} &
{c, c}
=
{c} by
ENUMSET1: 29;
per cases by
A12,
GLIB_000: 16;
suppose
A78: e1
DJoins (v1,v2,H) & e2
DJoins (v1,v2,H);
A79: v1
= ((
the_Source_of H)
. e1) by
A78,
GLIB_000:def 14
.= (s
. e1) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{a, b}]
`2 )) by
A1,
A13,
A14
.= a by
A76,
A77,
TARSKI:def 1;
v1
= ((
the_Source_of H)
. e2) by
A78,
GLIB_000:def 14
.= (s
. e2) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{c, d}]
`2 )) by
A1,
A15,
A16
.= c by
A76,
A77,
TARSKI:def 1;
hence e1
= e2 by
A14,
A16,
A76,
A79;
end;
suppose
A80: e1
DJoins (v1,v2,H) & e2
DJoins (v2,v1,H);
A81: v1
= ((
the_Source_of H)
. e1) by
A80,
GLIB_000:def 14
.= (s
. e1) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{a, b}]
`2 )) by
A1,
A13,
A14
.= a by
A76,
A77,
TARSKI:def 1;
v1
= ((
the_Target_of H)
. e2) by
A80,
GLIB_000:def 14
.= (t
. e2) by
GLIB_000: 6
.=
T(e2) by
A7,
A15
.= the
Element of
{c, d} by
A5,
A76,
A16
.= c by
A76,
A77,
TARSKI:def 1;
hence e1
= e2 by
A14,
A16,
A76,
A81;
end;
suppose
A82: e1
DJoins (v2,v1,H) & e2
DJoins (v2,v1,H);
A83: v1
= ((
the_Target_of H)
. e1) by
A82,
GLIB_000:def 14
.= (t
. e1) by
GLIB_000: 6
.=
T(e1) by
A7,
A13
.= the
Element of
{a, b} by
A5,
A76,
A14
.= a by
A76,
A77,
TARSKI:def 1;
v1
= ((
the_Target_of H)
. e2) by
A82,
GLIB_000:def 14
.= (t
. e2) by
GLIB_000: 6
.=
T(e2) by
A7,
A15
.= the
Element of
{c, d} by
A5,
A76,
A16
.= c by
A76,
A77,
TARSKI:def 1;
hence e1
= e2 by
A14,
A16,
A76,
A83;
end;
suppose
A84: e1
DJoins (v2,v1,H) & e2
DJoins (v1,v2,H);
A85: v1
= ((
the_Target_of H)
. e1) by
A84,
GLIB_000:def 14
.= (t
. e1) by
GLIB_000: 6
.=
T(e1) by
A7,
A13
.= the
Element of
{a, b} by
A5,
A76,
A14
.= a by
A76,
A77,
TARSKI:def 1;
v1
= ((
the_Source_of H)
. e2) by
A84,
GLIB_000:def 14
.= (s
. e2) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{c, d}]
`2 )) by
A1,
A15,
A16
.= c by
A76,
A77,
TARSKI:def 1;
hence e1
= e2 by
A14,
A16,
A76,
A85;
end;
end;
end;
then
reconsider H as
non-multi
_Graph by
GLIB_000:def 20;
take H;
thus (
the_Vertices_of H)
= (
the_Vertices_of G) by
GLIB_000: 6;
(E
/\ (
the_Edges_of G))
=
{}
proof
assume (E
/\ (
the_Edges_of G))
<>
{} ;
then
consider x be
object such that
A86: x
in (E
/\ (
the_Edges_of G)) by
XBOOLE_0:def 1;
reconsider x as
set by
TARSKI: 1;
x
in E by
A86,
XBOOLE_0:def 4;
then
consider v,w be
Vertex of G such that
A87: x
=
[(
the_Edges_of G),
{v, w}] and not ex e be
object st e
Joins (v,w,G);
A88: x
in (
the_Edges_of G) by
A86,
XBOOLE_0:def 4;
A89: (
the_Edges_of G)
in
{(
the_Edges_of G)} by
TARSKI:def 1;
x
=
{
{(
the_Edges_of G),
{v, w}},
{(
the_Edges_of G)}} by
A87,
TARSKI:def 5;
then
{(
the_Edges_of G)}
in x by
TARSKI:def 2;
hence contradiction by
A88,
A89,
XREGULAR: 7;
end;
then ((
the_Edges_of H)
/\ (
the_Edges_of G))
=
{} by
GLIB_000: 6;
hence (
the_Edges_of H)
misses (
the_Edges_of G) by
XBOOLE_0:def 7;
let v,w be
Vertex of G;
hereby
given e1 be
object such that
A90: e1
Joins (v,w,G);
given e2 be
object such that
A91: e2
Joins (v,w,H);
e2
in (
the_Edges_of H) by
A91,
GLIB_000:def 13;
then
A92: e2
in E by
GLIB_000: 6;
then
consider a,b be
Vertex of G such that
A93: e2
=
[(
the_Edges_of G),
{a, b}] and
A94: not ex e be
object st e
Joins (a,b,G);
per cases ;
suppose
A95: a
<> b;
per cases by
A91,
GLIB_000: 16;
suppose
A96: e2
DJoins (v,w,H);
A97: v
= ((
the_Source_of H)
. e2) by
A96,
GLIB_000:def 14
.= (s
. e2) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{a, b}]
`2 )) by
A1,
A92,
A93
.= the
Element of
{a, b};
w
= ((
the_Target_of H)
. e2) by
A96,
GLIB_000:def 14
.= (t
. e2) by
GLIB_000: 6
.=
T(e2) by
A7,
A92
.= the
Element of (
{a, b}
\
{ the
Element of
{a, b}}) by
A4,
A93,
A95;
then v
= a & w
= b or v
= b & w
= a by
A95,
A97,
GLIBPRE0: 4;
hence contradiction by
A90,
A94,
GLIB_000: 14;
end;
suppose
A98: e2
DJoins (w,v,H);
A99: v
= ((
the_Target_of H)
. e2) by
A98,
GLIB_000:def 14
.= (t
. e2) by
GLIB_000: 6
.=
T(e2) by
A7,
A92
.= the
Element of (
{a, b}
\
{ the
Element of
{a, b}}) by
A4,
A93,
A95;
w
= ((
the_Source_of H)
. e2) by
A98,
GLIB_000:def 14
.= (s
. e2) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{a, b}]
`2 )) by
A1,
A92,
A93
.= the
Element of
{a, b};
then v
= a & w
= b or v
= b & w
= a by
A95,
A99,
GLIBPRE0: 4;
hence contradiction by
A90,
A94,
GLIB_000: 14;
end;
end;
suppose
A100: a
= b;
A101:
{a, a}
=
{a} by
ENUMSET1: 29;
per cases by
A91,
GLIB_000: 16;
suppose
A102: e2
DJoins (v,w,H);
A103: v
= ((
the_Source_of H)
. e2) by
A102,
GLIB_000:def 14
.= (s
. e2) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{a, b}]
`2 )) by
A1,
A92,
A93
.= a by
A100,
A101,
TARSKI:def 1;
w
= ((
the_Target_of H)
. e2) by
A102,
GLIB_000:def 14
.= (t
. e2) by
GLIB_000: 6
.=
T(e2) by
A7,
A92
.= the
Element of
{a, b} by
A5,
A93,
A100
.= b by
A100,
A101,
TARSKI:def 1;
hence contradiction by
A90,
A94,
A103;
end;
suppose
A104: e2
DJoins (w,v,H);
A105: v
= ((
the_Target_of H)
. e2) by
A104,
GLIB_000:def 14
.= (t
. e2) by
GLIB_000: 6
.=
T(e2) by
A7,
A92
.= the
Element of
{a, b} by
A5,
A93,
A100
.= a by
A100,
A101,
TARSKI:def 1;
w
= ((
the_Source_of H)
. e2) by
A104,
GLIB_000:def 14
.= (s
. e2) by
GLIB_000: 6
.= the
Element of (
Segm (
[(
the_Edges_of G),
{a, b}]
`2 )) by
A1,
A92,
A93
.= b by
A100,
A101,
TARSKI:def 1;
hence contradiction by
A90,
A94,
A105;
end;
end;
end;
set e2 =
[(
the_Edges_of G),
{v, w}];
now
assume not ex e1 be
object st e1
Joins (v,w,G);
then
A106: e2
in E;
then
A107: e2
in (
the_Edges_of H) by
GLIB_000: 6;
per cases ;
suppose
A108: v
<> w;
the
Element of
{v, w}
= the
Element of
{v, w} & the
Element of (
{v, w}
\
{ the
Element of
{v, w}})
= the
Element of (
{v, w}
\
{ the
Element of
{v, w}});
per cases by
A108,
GLIBPRE0: 4;
suppose
A109: v
= the
Element of
{v, w} & w
= the
Element of (
{v, w}
\
{ the
Element of
{v, w}});
A110: v
= the
Element of (
Segm (
[(
the_Edges_of G),
{v, w}]
`2 )) by
A109
.= (s
. e2) by
A1,
A106
.= ((
the_Source_of H)
. e2) by
GLIB_000: 6;
w
=
T(e2) by
A4,
A108,
A109
.= (t
. e2) by
A7,
A106
.= ((
the_Target_of H)
. e2) by
GLIB_000: 6;
hence e2
Joins (v,w,H) by
A107,
A110,
GLIB_000:def 13;
end;
suppose
A111: w
= the
Element of
{v, w} & v
= the
Element of (
{v, w}
\
{ the
Element of
{v, w}});
A112: w
= the
Element of (
Segm (
[(
the_Edges_of G),
{v, w}]
`2 )) by
A111
.= (s
. e2) by
A1,
A106
.= ((
the_Source_of H)
. e2) by
GLIB_000: 6;
v
=
T(e2) by
A4,
A108,
A111
.= (t
. e2) by
A7,
A106
.= ((
the_Target_of H)
. e2) by
GLIB_000: 6;
hence e2
Joins (v,w,H) by
A107,
A112,
GLIB_000:def 13;
end;
end;
suppose
A113: v
= w;
A114:
{v, v}
=
{v} by
ENUMSET1: 29;
A115: v
= the
Element of (
Segm (
[(
the_Edges_of G),
{v, w}]
`2 )) by
A113,
A114,
TARSKI:def 1
.= (s
. e2) by
A1,
A106
.= ((
the_Source_of H)
. e2) by
GLIB_000: 6;
w
= the
Element of (
Segm (
[(
the_Edges_of G),
{v, w}]
`2 )) by
A113,
A114,
TARSKI:def 1
.=
T(e2) by
A5,
A113
.= (t
. e2) by
A7,
A106
.= ((
the_Target_of H)
. e2) by
GLIB_000: 6;
hence e2
Joins (v,w,H) by
A107,
A115,
GLIB_000:def 13;
end;
end;
hence thesis;
end;
end
theorem ::
GLIB_012:62
Th62: for G1,G2,G3 be
_Graph, G4 be
LGraphComplement of G1 st G1
== G2 & G3
== G4 holds G3 is
LGraphComplement of G2
proof
let G1,G2,G3 be
_Graph, G4 be
LGraphComplement of G1;
assume
A1: G1
== G2 & G3
== G4;
then (
the_Vertices_of G4)
= (
the_Vertices_of G3) & (
the_Edges_of G4)
= (
the_Edges_of G3) by
GLIB_000:def 34;
then (
the_Vertices_of G1)
= (
the_Vertices_of G3) & (
the_Edges_of G3)
misses (
the_Edges_of G1) by
Def7;
then
A2: (
the_Vertices_of G3)
= (
the_Vertices_of G2) & (
the_Edges_of G3)
misses (
the_Edges_of G2) by
A1,
GLIB_000:def 34;
A3: G3 is
non-multi by
A1,
GLIB_000: 89;
now
let v,w be
Vertex of G2;
A4: v is
Vertex of G1 & w is
Vertex of G1 by
A1,
GLIB_000:def 34;
hereby
given e1 be
object such that
A5: e1
Joins (v,w,G2);
e1
Joins (v,w,G1) by
A1,
A5,
GLIB_000: 88;
then
A6: not ex e2 be
object st e2
Joins (v,w,G4) by
A4,
Def7;
thus not ex e2 be
object st e2
Joins (v,w,G3)
proof
given e2 be
object such that
A7: e2
Joins (v,w,G3);
e2
Joins (v,w,G4) by
A1,
A7,
GLIB_000: 88;
hence contradiction by
A6;
end;
end;
assume
A8: not ex e2 be
object st e2
Joins (v,w,G3);
not ex e2 be
object st e2
Joins (v,w,G4)
proof
given e2 be
object such that
A9: e2
Joins (v,w,G4);
e2
Joins (v,w,G3) by
A1,
A9,
GLIB_000: 88;
hence contradiction by
A8;
end;
then
consider e1 be
object such that
A10: e1
Joins (v,w,G1) by
A4,
Def7;
take e1;
thus e1
Joins (v,w,G2) by
A1,
A10,
GLIB_000: 88;
end;
hence thesis by
A2,
A3,
Def7;
end;
registration
let G be
_Graph;
cluster
plain for
LGraphComplement of G;
existence
proof
set G1 = the
LGraphComplement of G;
set G2 = (G1
|
_GraphSelectors );
G1
== G1 & G1
== G2 by
GLIB_009: 9;
then
reconsider G2 as
LGraphComplement of G by
Th62;
take G2;
thus thesis;
end;
end
theorem ::
GLIB_012:63
for G1 be
_Graph, G2 be
non-multi
_Graph holds G2 is
LGraphComplement of G1 iff (
the_Vertices_of G2)
= (
the_Vertices_of G1) & (
the_Edges_of G2)
misses (
the_Edges_of G1) & for v1,w1 be
Vertex of G1, v2,w2 be
Vertex of G2 st v1
= v2 & w1
= w2 holds (v1,w1)
are_adjacent iff not (v2,w2)
are_adjacent
proof
let G1 be
_Graph, G2 be
non-multi
_Graph;
hereby
assume
A1: G2 is
LGraphComplement of G1;
hence (
the_Vertices_of G2)
= (
the_Vertices_of G1) & (
the_Edges_of G2)
misses (
the_Edges_of G1) by
Def7;
let v1,w1 be
Vertex of G1, v2,w2 be
Vertex of G2;
assume
A2: v1
= v2 & w1
= w2;
hereby
assume (v1,w1)
are_adjacent ;
then ex e1 be
object st e1
Joins (v1,w1,G1) by
CHORD:def 3;
then not ex e2 be
object st e2
Joins (v1,w1,G2) by
A1,
Def7;
hence not (v2,w2)
are_adjacent by
A2,
CHORD:def 3;
end;
assume not (v2,w2)
are_adjacent ;
then not ex e2 be
object st e2
Joins (v1,w1,G2) by
A2,
CHORD:def 3;
then ex e1 be
object st e1
Joins (v1,w1,G1) by
A1,
Def7;
hence (v1,w1)
are_adjacent by
CHORD:def 3;
end;
assume that
A3: (
the_Vertices_of G2)
= (
the_Vertices_of G1) & (
the_Edges_of G2)
misses (
the_Edges_of G1) and
A4: for v1,w1 be
Vertex of G1, v2,w2 be
Vertex of G2 st v1
= v2 & w1
= w2 holds (v1,w1)
are_adjacent iff not (v2,w2)
are_adjacent ;
now
let v1,w1 be
Vertex of G1;
reconsider v2 = v1, w2 = w1 as
Vertex of G2 by
A3;
hereby
assume ex e1 be
object st e1
Joins (v1,w1,G1);
then (v1,w1)
are_adjacent by
CHORD:def 3;
then not (v2,w2)
are_adjacent by
A4;
hence not ex e2 be
object st e2
Joins (v1,w1,G2) by
CHORD:def 3;
end;
assume not ex e2 be
object st e2
Joins (v1,w1,G2);
then not (v2,w2)
are_adjacent by
CHORD:def 3;
then (v1,w1)
are_adjacent by
A4;
hence ex e1 be
object st e1
Joins (v1,w1,G1) by
CHORD:def 3;
end;
hence thesis by
A3,
Def7;
end;
theorem ::
GLIB_012:64
Th64: for G1 be
_Graph, G2 be
LGraphComplement of G1, e1,e2,v,w be
object holds e1
Joins (v,w,G1) implies not e2
Joins (v,w,G2)
proof
let G1 be
_Graph, G2 be
LGraphComplement of G1, e1,e2,v,w be
object;
assume
A1: e1
Joins (v,w,G1);
then v
in (
the_Vertices_of G1) & w
in (
the_Vertices_of G1) by
GLIB_000: 13;
hence thesis by
A1,
Def7;
end;
theorem ::
GLIB_012:65
Th65: for G1 be
_Graph, G2 be
removeParallelEdges of G1 holds for G3 be
LGraphComplement of G1 holds G3 is
LGraphComplement of G2
proof
let G1 be
_Graph, G2 be
removeParallelEdges of G1;
let G3 be
LGraphComplement of G1;
consider E be
RepEdgeSelection of G1 such that
A1: G2 is
inducedSubgraph of G1, (
the_Vertices_of G1), E by
GLIB_009:def 7;
(
the_Vertices_of G1)
c= (
the_Vertices_of G1) & (
the_Edges_of G1)
= (G1
.edgesBetween (
the_Vertices_of G1)) by
GLIB_000: 34;
then
A2: (
the_Vertices_of G2)
= (
the_Vertices_of G1) & (
the_Edges_of G2)
= E by
A1,
GLIB_000:def 37;
then
A3: (
the_Vertices_of G3)
= (
the_Vertices_of G2) by
Def7;
(
the_Edges_of G3)
misses (
the_Edges_of G1) by
Def7;
then
A4: (
the_Edges_of G3)
misses (
the_Edges_of G2) by
XBOOLE_1: 63;
now
let v,w be
Vertex of G2;
A5: v is
Vertex of G1 & w is
Vertex of G1 by
GLIB_000:def 33;
reconsider v1 = v, w1 = w as
Vertex of G1 by
GLIB_000:def 33;
hereby
given e2 be
object such that
A6: e2
Joins (v,w,G2);
A7: e2
Joins (v,w,G1) by
A6,
GLIB_000: 72;
given e3 be
object such that
A8: e3
Joins (v,w,G3);
thus contradiction by
A7,
A8,
Th64;
end;
assume not ex e3 be
object st e3
Joins (v,w,G3);
then
consider e1 be
object such that
A9: e1
Joins (v,w,G1) by
A5,
Def7;
consider e2 be
object such that
A10: e2
Joins (v,w,G1) & e2
in E and for e9 be
object st e9
Joins (v,w,G1) & e9
in E holds e9
= e2 by
A9,
GLIB_009:def 5;
take e2;
thus e2
Joins (v,w,G2) by
A2,
A10,
GLIB_000: 73;
end;
hence thesis by
A3,
A4,
Def7;
end;
theorem ::
GLIB_012:66
Th66: for G1,G2 be
_Graph holds for G3 be
removeParallelEdges of G1, G4 be
removeParallelEdges of G2 holds for G5 be
LGraphComplement of G1, G6 be
LGraphComplement of G2 st G4 is G3
-isomorphic holds G6 is G5
-isomorphic
proof
let G1,G2 be
_Graph;
let G3 be
removeParallelEdges of G1, G4 be
removeParallelEdges of G2;
let G5 be
LGraphComplement of G1, G6 be
LGraphComplement of G2;
A1: G5 is
LGraphComplement of G3 & G6 is
LGraphComplement of G4 by
Th65;
assume G4 is G3
-isomorphic;
then
consider f be
PVertexMapping of G3, G4 such that
A2: f is
isomorphism by
GLIB_011: 49;
A3: (
the_Vertices_of G3)
= (
the_Vertices_of G5) & (
the_Vertices_of G4)
= (
the_Vertices_of G6) by
A1,
Def7;
then
reconsider g = f as
PartFunc of (
the_Vertices_of G5), (
the_Vertices_of G6);
now
let v,w,e be
object;
assume
A4: v
in (
dom g) & w
in (
dom g) & e
Joins (v,w,G5);
then
A5: not ex e3 be
object st e3
Joins (v,w,G3) by
A1,
A3,
Def7;
thus ex e6 be
object st e6
Joins ((g
. v),(g
. w),G6)
proof
assume
A6: not ex e6 be
object st e6
Joins ((g
. v),(g
. w),G6);
(g
. v)
in (
rng f) & (g
. w)
in (
rng f) by
A4,
FUNCT_1: 3;
then
consider e4 be
object such that
A7: e4
Joins ((g
. v),(g
. w),G4) by
A1,
A6,
Def7;
consider e3 be
object such that
A8: e3
Joins (v,w,G3) by
A2,
A4,
A7,
GLIB_011: 2;
thus contradiction by
A5,
A8;
end;
end;
then
reconsider g as
PVertexMapping of G5, G6 by
GLIB_011: 1;
now
let v,w,e6 be
object;
assume
A9: v
in (
dom g) & w
in (
dom g) & e6
Joins ((g
. v),(g
. w),G6);
(g
. v)
in (
rng f) & (g
. w)
in (
rng f) by
A9,
FUNCT_1: 3;
then
A10: not ex e4 be
object st e4
Joins ((g
. v),(g
. w),G4) by
A1,
A9,
Def7;
thus ex e5 be
object st e5
Joins (v,w,G5)
proof
assume not ex e5 be
object st e5
Joins (v,w,G5);
then
consider e3 be
object such that
A11: e3
Joins (v,w,G3) by
A1,
A3,
A9,
Def7;
consider e4 be
object such that
A12: e4
Joins ((f
. v),(f
. w),G4) by
A9,
A11,
GLIB_011: 1;
thus contradiction by
A10,
A12;
end;
end;
then g is
continuous by
GLIB_011: 2;
hence thesis by
A2,
A3,
GLIB_011: 49;
end;
theorem ::
GLIB_012:67
Th67: for G1 be
_Graph, G2 be G1
-isomorphic
_Graph holds for G3 be
LGraphComplement of G1, G4 be
LGraphComplement of G2 holds G4 is G3
-isomorphic
proof
let G1 be
_Graph, G2 be G1
-isomorphic
_Graph;
let G3 be
LGraphComplement of G1, G4 be
LGraphComplement of G2;
set G5 = the
removeParallelEdges of G1;
set G6 = the
removeParallelEdges of G2;
G6 is G5
-isomorphic by
GLIB_010: 168;
hence thesis by
Th66;
end;
theorem ::
GLIB_012:68
Th68: for G1 be
_Graph, G2,G3 be
LGraphComplement of G1 holds G3 is G2
-isomorphic
proof
let G1 be
_Graph, G2,G3 be
LGraphComplement of G1;
G1 is G1
-isomorphic by
GLIB_010: 53;
hence thesis by
Th67;
end;
theorem ::
GLIB_012:69
Th69: for G1 be
_Graph, V be non
empty
Subset of (
the_Vertices_of G1) holds for G2 be
inducedSubgraph of G1, V holds for G3 be
LGraphComplement of G1, G4 be
inducedSubgraph of G3, V holds G4 is
LGraphComplement of G2
proof
let G1 be
_Graph, V be non
empty
Subset of (
the_Vertices_of G1);
let G2 be
inducedSubgraph of G1, V;
let G3 be
LGraphComplement of G1, G4 be
inducedSubgraph of G3, V;
A1: V is non
empty
Subset of (
the_Vertices_of G3) by
Def7;
then
A2: (
the_Vertices_of G4)
= V by
GLIB_000:def 37
.= (
the_Vertices_of G2) by
GLIB_000:def 37;
A3: (
the_Edges_of G4)
misses (
the_Edges_of G2)
proof
assume (
the_Edges_of G4)
meets (
the_Edges_of G2);
then
consider e be
object such that
A4: e
in (
the_Edges_of G4) & e
in (
the_Edges_of G2) by
XBOOLE_0: 3;
A5: e
in ((
the_Edges_of G1)
\/ (
the_Edges_of G3)) by
A4,
XBOOLE_0:def 3;
(
the_Edges_of G3)
misses (
the_Edges_of G1) by
Def7;
hence contradiction by
A4,
A5,
XBOOLE_0: 5;
end;
now
let v,w be
Vertex of G2;
hereby
given e2 be
object such that
A6: e2
Joins (v,w,G2);
A7: e2
Joins (v,w,G1) by
A6,
GLIB_000: 72;
given e4 be
object such that
A8: e4
Joins (v,w,G4);
e4
Joins (v,w,G3) by
A8,
GLIB_000: 72;
hence contradiction by
A7,
Th64;
end;
assume
A9: not ex e4 be
object st e4
Joins (v,w,G4);
ex e1 be
object st e1
Joins (v,w,G1)
proof
assume
A10: not ex e1 be
object st e1
Joins (v,w,G1);
(
the_Vertices_of G2)
c= (
the_Vertices_of G1);
then v is
Vertex of G1 & w is
Vertex of G1 by
TARSKI:def 3;
then
consider e3 be
object such that
A11: e3
Joins (v,w,G3) by
A10,
Def7;
(
the_Vertices_of G2)
= V by
GLIB_000:def 37;
then e3
in (G3
.edgesBetween V) by
A11,
GLIB_000: 32;
then e3
in (
the_Edges_of G4) & e3 is
set by
A1,
GLIB_000:def 37;
then e3
Joins (v,w,G4) by
A11,
GLIB_000: 73;
hence contradiction by
A9;
end;
then
consider e1 be
object such that
A12: e1
Joins (v,w,G1);
take e1;
(
the_Vertices_of G2)
= V by
GLIB_000:def 37;
then e1
in (G1
.edgesBetween V) by
A12,
GLIB_000: 32;
then e1
in (
the_Edges_of G2) & e1 is
set by
GLIB_000:def 37;
hence e1
Joins (v,w,G2) by
A12,
GLIB_000: 73;
end;
hence thesis by
A2,
A3,
Def7;
end;
theorem ::
GLIB_012:70
for G1 be
_Graph, V be
proper
Subset of (
the_Vertices_of G1) holds for G2 be
removeVertices of G1, V holds for G3 be
LGraphComplement of G1, G4 be
removeVertices of G3, V holds G4 is
LGraphComplement of G2
proof
let G1 be
_Graph, V be
proper
Subset of (
the_Vertices_of G1);
let G2 be
removeVertices of G1, V;
let G3 be
LGraphComplement of G1, G4 be
removeVertices of G3, V;
((
the_Vertices_of G1)
\ V) is non
empty
Subset of (
the_Vertices_of G1) & ((
the_Vertices_of G1)
\ V)
= ((
the_Vertices_of G3)
\ V) by
Def7,
XBOOLE_1: 105,
GLIBPRE0: 6;
hence thesis by
Th69;
end;
theorem ::
GLIB_012:71
for G1 be
non-multi
_Graph, G2 be
LGraphComplement of G1 holds G1 is
LGraphComplement of G2
proof
let G1 be
non-multi
_Graph, G2 be
LGraphComplement of G1;
A1: (
the_Vertices_of G1)
= (
the_Vertices_of G2) & (
the_Edges_of G1)
misses (
the_Edges_of G2) by
Def7;
now
let v,w be
Vertex of G2;
v is
Vertex of G1 & w is
Vertex of G1 by
Def7;
hence (ex e2 be
object st e2
Joins (v,w,G2)) iff ( not ex e1 be
object st e1
Joins (v,w,G1)) by
Def7;
end;
hence thesis by
A1,
Def7;
end;
theorem ::
GLIB_012:72
Th72: for G1 be
_Graph, G2 be
LGraphComplement of G1 holds (G1
.order() )
= (G2
.order() ) by
Def7;
theorem ::
GLIB_012:73
Th73: for G1 be
_Graph, G2 be
LGraphComplement of G1 holds (G1 is
_trivial iff G2 is
_trivial) & (G1 is
loopfull iff G2 is
loopless) & (G1 is
loopless iff G2 is
loopfull)
proof
let G1 be
_Graph, G2 be
LGraphComplement of G1;
hereby
assume G1 is
_trivial;
then 1
= (G1
.order() ) by
GLIB_000: 26
.= (G2
.order() ) by
Th72;
hence G2 is
_trivial by
GLIB_000: 26;
end;
hereby
assume G2 is
_trivial;
then 1
= (G2
.order() ) by
GLIB_000: 26
.= (G1
.order() ) by
Th72;
hence G1 is
_trivial by
GLIB_000: 26;
end;
hereby
assume
A1: G1 is
loopfull;
now
let v be
object;
given e2 be
object such that
A2: e2
Joins (v,v,G2);
v
in (
the_Vertices_of G2) by
A2,
GLIB_000: 13;
then v
in (
the_Vertices_of G1) by
Def7;
then
consider e1 be
object such that
A3: e1
Joins (v,v,G1) by
A1;
thus contradiction by
A2,
A3,
Th64;
end;
hence G2 is
loopless by
GLIB_000: 18;
end;
hereby
assume
A4: G2 is
loopless;
now
let v be
Vertex of G1;
assume not ex e1 be
object st e1
Joins (v,v,G1);
then ex e2 be
object st e2
Joins (v,v,G2) by
Def7;
hence contradiction by
A4,
GLIB_000: 18;
end;
hence G1 is
loopfull;
end;
hereby
assume
A5: G1 is
loopless;
now
let v be
Vertex of G2;
A6: v is
Vertex of G1 by
Def7;
assume not ex e2 be
object st e2
Joins (v,v,G2);
then ex e1 be
object st e1
Joins (v,v,G1) by
A6,
Def7;
hence contradiction by
A5,
GLIB_000: 18;
end;
hence G2 is
loopfull;
end;
hereby
assume
A7: G2 is
loopfull;
now
let v be
object;
given e1 be
object such that
A8: e1
Joins (v,v,G1);
v
in (
the_Vertices_of G1) by
A8,
GLIB_000: 13;
then v
in (
the_Vertices_of G2) by
Def7;
then
consider e2 be
object such that
A9: e2
Joins (v,v,G2) by
A7;
thus contradiction by
A8,
A9,
Th64;
end;
hence G1 is
loopless by
GLIB_000: 18;
end;
end;
registration
let G be
_trivial
_Graph;
cluster ->
_trivial for
LGraphComplement of G;
coherence by
Th73;
end
registration
let G be non
_trivial
_Graph;
cluster -> non
_trivial for
LGraphComplement of G;
coherence by
Th73;
end
registration
let G be
loopfull
_Graph;
cluster ->
loopless for
LGraphComplement of G;
coherence by
Th73;
end
registration
let G be non
loopfull
_Graph;
cluster -> non
loopless for
LGraphComplement of G;
coherence by
Th73;
end
registration
let G be
loopless
_Graph;
cluster ->
loopfull for
LGraphComplement of G;
coherence by
Th73;
end
registration
let G be non
loopless
_Graph;
cluster -> non
loopfull for
LGraphComplement of G;
coherence by
Th73;
end
theorem ::
GLIB_012:74
Th74: for G1 be
_Graph, G2 be
LGraphComplement of G1 st (
the_Edges_of G1)
= (G1
.loops() ) holds G2 is
complete
proof
let G1 be
_Graph, G2 be
LGraphComplement of G1;
assume
A1: (
the_Edges_of G1)
= (G1
.loops() );
now
let v,w be
Vertex of G2;
A2: v is
Vertex of G1 & w is
Vertex of G1 by
Def7;
assume
A3: v
<> w;
not ex e1 be
object st e1
Joins (v,w,G1)
proof
given e1 be
object such that
A4: e1
Joins (v,w,G1);
not e1
in (G1
.loops() ) by
A3,
A4,
GLIB_009: 46;
hence contradiction by
A1,
A4,
GLIB_000:def 13;
end;
then
consider e2 be
object such that
A5: e2
Joins (v,w,G2) by
A2,
Def7;
thus (v,w)
are_adjacent by
A5,
CHORD:def 3;
end;
hence thesis by
CHORD:def 6;
end;
registration
let G be
edgeless
_Graph;
cluster ->
complete for
LGraphComplement of G;
coherence
proof
let G2 be
LGraphComplement of G;
(
the_Edges_of G)
=
{} & (G
.loops() )
=
{} ;
hence thesis by
Th74;
end;
end
theorem ::
GLIB_012:75
Th75: for G1 be
complete
_Graph, G2 be
LGraphComplement of G1 holds (
the_Edges_of G2)
= (G2
.loops() )
proof
let G1 be
complete
_Graph, G2 be
LGraphComplement of G1;
now
let e be
object;
set v = ((
the_Source_of G2)
. e), w = ((
the_Target_of G2)
. e);
assume e
in (
the_Edges_of G2);
then
A1: e
Joins (v,w,G2) by
GLIB_000:def 13;
v
= w
proof
assume
A2: v
<> w;
v is
Vertex of G2 & w is
Vertex of G2 by
A1,
GLIB_000: 13;
then
reconsider v0 = v, w0 = w as
Vertex of G1 by
Def7;
ex e0 be
object st e0
Joins (v0,w0,G1) by
A2,
CHORD:def 3,
CHORD:def 6;
hence contradiction by
A1,
Th64;
end;
hence e
in (G2
.loops() ) by
A1,
GLIB_009:def 2;
end;
then (
the_Edges_of G2)
c= (G2
.loops() ) by
TARSKI:def 3;
hence thesis by
XBOOLE_0:def 10;
end;
registration
let G be
complete
loopfull
_Graph;
cluster ->
edgeless for
LGraphComplement of G;
coherence
proof
let G2 be
LGraphComplement of G;
(
the_Edges_of G2)
= (G2
.loops() ) by
Th75
.=
{} ;
hence thesis;
end;
end
registration
let G be non
connected
_Graph;
cluster ->
connected for
LGraphComplement of G;
coherence
proof
let G2 be
LGraphComplement of G;
consider w1,w2 be
Vertex of G such that
A1: for W be
Walk of G holds not W
is_Walk_from (w1,w2) by
GLIB_002:def 1;
not ex e be
object st e
Joins (w1,w2,G)
proof
given e be
object such that
A2: e
Joins (w1,w2,G);
(G
.walkOf (w1,e,w2))
is_Walk_from (w1,w2) by
A2,
GLIB_001: 15;
hence contradiction by
A1;
end;
then
consider e be
object such that
A3: e
Joins (w1,w2,G2) by
Def7;
now
let v1,v2 be
Vertex of G2;
reconsider u1 = v1, u2 = v2 as
Vertex of G by
Def7;
per cases ;
suppose
A4: (ex e1 be
object st e1
Joins (v1,w1,G)) & (ex e2 be
object st e2
Joins (v2,w2,G));
then
consider e1 be
object such that
A5: e1
Joins (v1,w1,G);
consider e2 be
object such that
A6: e2
Joins (v2,w2,G) by
A4;
not ex e3 be
object st e3
Joins (u1,w2,G)
proof
given e3 be
object such that
A7: e3
Joins (u1,w2,G);
set W2 = (G
.walkOf (v1,e3,w2));
A8: W2
is_Walk_from (v1,w2) by
A7,
GLIB_001: 15;
set W1 = (G
.walkOf (w1,e1,v1));
e1
Joins (w1,v1,G) by
A5,
GLIB_000: 14;
then W1
is_Walk_from (w1,v1) by
GLIB_001: 15;
then (W1
.append W2)
is_Walk_from (w1,w2) by
A8,
GLIB_001: 31;
hence contradiction by
A1;
end;
then
consider e3 be
object such that
A9: e3
Joins (u1,w2,G2) by
Def7;
not ex e4 be
object st e4
Joins (w1,u2,G)
proof
given e4 be
object such that
A10: e4
Joins (w1,u2,G);
set W1 = (G
.walkOf (w1,e4,u2));
A11: W1
is_Walk_from (w1,v2) by
A10,
GLIB_001: 15;
set W2 = (G
.walkOf (v2,e2,w2));
W2
is_Walk_from (v2,w2) by
A6,
GLIB_001: 15;
then (W1
.append W2)
is_Walk_from (w1,w2) by
A11,
GLIB_001: 31;
hence contradiction by
A1;
end;
then
consider e4 be
object such that
A12: e4
Joins (w1,u2,G2) by
Def7;
set W1 = (G2
.walkOf (v1,e3,w2)), W2 = (G2
.walkOf (w2,e,w1)), W3 = (G2
.walkOf (w1,e4,v2));
reconsider W = ((W1
.append W2)
.append W3) as
Walk of G2;
take W;
A13: W1
is_Walk_from (v1,w2) by
A9,
GLIB_001: 15;
e
Joins (w2,w1,G2) by
A3,
GLIB_000: 14;
then W2
is_Walk_from (w2,w1) by
GLIB_001: 15;
then
A14: (W1
.append W2)
is_Walk_from (v1,w1) by
A13,
GLIB_001: 31;
W3
is_Walk_from (w1,v2) by
A12,
GLIB_001: 15;
hence W
is_Walk_from (v1,v2) by
A14,
GLIB_001: 31;
end;
suppose
A15: ( not ex e1 be
object st e1
Joins (v1,w1,G)) & (ex e2 be
object st e2
Joins (v2,w2,G));
then
consider e2 be
object such that
A16: e2
Joins (v2,w2,G);
consider e3 be
object such that
A17: e3
Joins (u1,w1,G2) by
A15,
Def7;
not ex e4 be
object st e4
Joins (w1,u2,G)
proof
given e4 be
object such that
A18: e4
Joins (w1,u2,G);
set W1 = (G
.walkOf (w1,e4,u2));
A19: W1
is_Walk_from (w1,v2) by
A18,
GLIB_001: 15;
set W2 = (G
.walkOf (v2,e2,w2));
W2
is_Walk_from (v2,w2) by
A16,
GLIB_001: 15;
then (W1
.append W2)
is_Walk_from (w1,w2) by
A19,
GLIB_001: 31;
hence contradiction by
A1;
end;
then
consider e4 be
object such that
A20: e4
Joins (w1,u2,G2) by
Def7;
set W1 = (G2
.walkOf (v1,e3,w1)), W2 = (G2
.walkOf (w1,e4,v2));
reconsider W = (W1
.append W2) as
Walk of G2;
take W;
A21: W1
is_Walk_from (v1,w1) by
A17,
GLIB_001: 15;
W2
is_Walk_from (w1,v2) by
A20,
GLIB_001: 15;
hence W
is_Walk_from (v1,v2) by
A21,
GLIB_001: 31;
end;
suppose
A22: (ex e1 be
object st e1
Joins (v1,w1,G)) & ( not ex e2 be
object st e2
Joins (v2,w2,G));
then
consider e1 be
object such that
A23: e1
Joins (v1,w1,G);
not ex e3 be
object st e3
Joins (u1,w2,G)
proof
given e3 be
object such that
A24: e3
Joins (u1,w2,G);
set W2 = (G
.walkOf (v1,e3,w2));
A25: W2
is_Walk_from (v1,w2) by
A24,
GLIB_001: 15;
set W1 = (G
.walkOf (w1,e1,v1));
e1
Joins (w1,v1,G) by
A23,
GLIB_000: 14;
then W1
is_Walk_from (w1,v1) by
GLIB_001: 15;
then (W1
.append W2)
is_Walk_from (w1,w2) by
A25,
GLIB_001: 31;
hence contradiction by
A1;
end;
then
consider e3 be
object such that
A26: e3
Joins (u1,w2,G2) by
Def7;
consider e4 be
object such that
A27: e4
Joins (u2,w2,G2) by
A22,
Def7;
set W1 = (G2
.walkOf (v1,e3,w2)), W2 = (G2
.walkOf (w2,e4,v2));
reconsider W = (W1
.append W2) as
Walk of G2;
take W;
A28: W1
is_Walk_from (v1,w2) by
A26,
GLIB_001: 15;
e4
Joins (w2,v2,G2) by
A27,
GLIB_000: 14;
then W2
is_Walk_from (w2,v2) by
GLIB_001: 15;
hence W
is_Walk_from (v1,v2) by
A28,
GLIB_001: 31;
end;
suppose
A29: ( not ex e1 be
object st e1
Joins (v1,w1,G)) & ( not ex e2 be
object st e2
Joins (v2,w2,G));
then
consider e3 be
object such that
A30: e3
Joins (u1,w1,G2) by
Def7;
consider e4 be
object such that
A31: e4
Joins (u2,w2,G2) by
A29,
Def7;
set W1 = (G2
.walkOf (v1,e3,w1)), W2 = (G2
.walkOf (w1,e,w2)), W3 = (G2
.walkOf (w2,e4,v2));
reconsider W = ((W1
.append W2)
.append W3) as
Walk of G2;
take W;
A32: W1
is_Walk_from (v1,w1) by
A30,
GLIB_001: 15;
W2
is_Walk_from (w1,w2) by
A3,
GLIB_001: 15;
then
A33: (W1
.append W2)
is_Walk_from (v1,w2) by
A32,
GLIB_001: 31;
e4
Joins (w2,v2,G2) by
A31,
GLIB_000: 14;
then W3
is_Walk_from (w2,v2) by
GLIB_001: 15;
hence W
is_Walk_from (v1,v2) by
A33,
GLIB_001: 31;
end;
end;
hence thesis by
GLIB_002:def 1;
end;
end
theorem ::
GLIB_012:76
for G1 be
_Graph, G2 be
LGraphComplement of G1 holds for v1 be
Vertex of G1, v2 be
Vertex of G2 st v1
= v2 holds (v1 is
isolated implies v2 is non
isolated) & (v1 is
endvertex implies v2 is non
endvertex)
proof
let G1 be
_Graph, G2 be
LGraphComplement of G1;
let v1 be
Vertex of G1, v2 be
Vertex of G2;
assume
A1: v1
= v2;
hereby
assume v1 is
isolated;
then not ex e1 be
object st e1
Joins (v1,v1,G1) by
GLIBPRE0: 21;
then
consider e2 be
object such that
A2: e2
Joins (v1,v1,G2) by
Def7;
thus v2 is non
isolated by
A1,
A2,
GLIBPRE0: 21;
end;
hereby
assume v1 is
endvertex;
then not ex e1 be
object st e1
Joins (v1,v1,G1) by
GLIBPRE0: 24;
then
consider e2 be
object such that
A3: e2
Joins (v1,v1,G2) by
Def7;
thus v2 is non
endvertex by
A1,
A3,
GLIBPRE0: 24;
end;
end;
theorem ::
GLIB_012:77
Th77: for G1 be
_Graph, G2 be
LGraphComplement of G1 holds for v1 be
Vertex of G1, v2 be
Vertex of G2 st v1
= v2 holds (v2
.allNeighbors() )
= ((
the_Vertices_of G2)
\ (v1
.allNeighbors() ))
proof
let G1 be
_Graph, G2 be
LGraphComplement of G1;
let v1 be
Vertex of G1, v2 be
Vertex of G2;
assume
A1: v1
= v2;
now
let x be
object;
hereby
assume x
in (v2
.allNeighbors() );
then
consider e be
object such that
A2: e
Joins (v2,x,G2) by
GLIB_000: 71;
A3: x
in (
the_Vertices_of G2) by
A2,
GLIB_000: 13;
then
reconsider w = x as
Vertex of G1 by
Def7;
not ex e0 be
object st e0
Joins (v1,w,G1) by
A1,
A2,
Def7;
then not x
in (v1
.allNeighbors() ) by
GLIB_000: 71;
hence x
in ((
the_Vertices_of G2)
\ (v1
.allNeighbors() )) by
A3,
XBOOLE_0:def 5;
end;
assume x
in ((
the_Vertices_of G2)
\ (v1
.allNeighbors() ));
then
A4: x
in (
the_Vertices_of G2) & not x
in (v1
.allNeighbors() ) by
XBOOLE_0:def 5;
then
reconsider w = x as
Vertex of G1 by
Def7;
not ex e0 be
object st e0
Joins (v1,w,G1) by
A4,
GLIB_000: 71;
then
consider e be
object such that
A5: e
Joins (v1,w,G2) by
Def7;
thus x
in (v2
.allNeighbors() ) by
A1,
A5,
GLIB_000: 71;
end;
hence (v2
.allNeighbors() )
= ((
the_Vertices_of G2)
\ (v1
.allNeighbors() )) by
TARSKI: 2;
end;
theorem ::
GLIB_012:78
for G1 be
_Graph, G2 be
LGraphComplement of G1 holds for v1 be
Vertex of G1, v2 be
Vertex of G2 st v1
= v2 & v1 is
isolated holds (v2
.allNeighbors() )
= (
the_Vertices_of G2)
proof
let G1 be
_Graph, G2 be
LGraphComplement of G1;
let v1 be
Vertex of G1, v2 be
Vertex of G2;
assume
A1: v1
= v2 & v1 is
isolated;
then (v1
.allNeighbors() )
=
{} by
GLIB_008: 7;
hence (v2
.allNeighbors() )
= ((
the_Vertices_of G2)
\
{} ) by
A1,
Th77
.= (
the_Vertices_of G2);
end;
begin
definition
let G be
_Graph;
::
GLIB_012:def8
mode
DGraphComplement of G ->
Dsimple
_Graph means
:
Def8: ex G9 be
DLGraphComplement of G st it is
removeLoops of G9;
existence
proof
set G1 = the
DLGraphComplement of G;
take the
removeLoops of G1;
thus thesis;
end;
end
theorem ::
GLIB_012:79
Th79: for G1,G2,G3 be
_Graph, G4 be
DGraphComplement of G1 st G1
== G2 & G3
== G4 holds G3 is
DGraphComplement of G2
proof
let G1,G2,G3 be
_Graph, G4 be
DGraphComplement of G1;
assume
A1: G1
== G2 & G3
== G4;
consider G9 be
DLGraphComplement of G1 such that
A2: G4 is
removeLoops of G9 by
Def8;
G9 is
DLGraphComplement of G2 & G3 is
removeLoops of G9 by
A1,
A2,
Th45,
GLIB_009: 59;
hence thesis by
Def8;
end;
registration
let G be
_Graph;
cluster
plain for
DGraphComplement of G;
existence
proof
set G1 = the
DGraphComplement of G;
set G2 = (G1
|
_GraphSelectors );
G1
== G1 & G1
== G2 by
GLIB_009: 9;
then
reconsider G2 as
DGraphComplement of G by
Th79;
take G2;
thus thesis;
end;
end
theorem ::
GLIB_012:80
Th80: for G1 be
_Graph, G2 be
Dsimple
_Graph holds G2 is
DGraphComplement of G1 iff (
the_Vertices_of G2)
= (
the_Vertices_of G1) & (
the_Edges_of G2)
misses (
the_Edges_of G1) & for v,w be
Vertex of G1 st v
<> w holds (ex e1 be
object st e1
DJoins (v,w,G1)) iff ( not ex e2 be
object st e2
DJoins (v,w,G2))
proof
let G1 be
_Graph, G2 be
Dsimple
_Graph;
hereby
assume G2 is
DGraphComplement of G1;
then
consider G9 be
DLGraphComplement of G1 such that
A1: G2 is
removeLoops of G9 by
Def8;
thus (
the_Vertices_of G2)
= (
the_Vertices_of G9) by
A1,
GLIB_000:def 33
.= (
the_Vertices_of G1) by
Def6;
A2: (
the_Edges_of G2)
c= (
the_Edges_of G9) by
A1,
GLIB_000:def 32;
(
the_Edges_of G9)
misses (
the_Edges_of G1) by
Def6;
hence (
the_Edges_of G2)
misses (
the_Edges_of G1) by
A2,
XBOOLE_1: 63;
let v,w be
Vertex of G1;
assume
A3: v
<> w;
hereby
given e1 be
object such that
A4: e1
DJoins (v,w,G1);
given e2 be
object such that
A5: e2
DJoins (v,w,G2);
e2
DJoins (v,w,G9) by
A1,
A5,
GLIB_000: 72;
hence contradiction by
A4,
Th46;
end;
assume
A6: not ex e2 be
object st e2
DJoins (v,w,G2);
not ex e9 be
object st e9
DJoins (v,w,G9)
proof
given e9 be
object such that
A7: e9
DJoins (v,w,G9);
A8: e9
in (
the_Edges_of G9) by
A7,
GLIB_000:def 14;
e9
Joins (v,w,G9) by
A7,
GLIB_000: 16;
then not e9
in (G9
.loops() ) by
A3,
GLIB_009: 46;
then e9
in ((
the_Edges_of G9)
\ (G9
.loops() )) by
A8,
XBOOLE_0:def 5;
then
A9: e9
in (
the_Edges_of G2) by
A1,
GLIB_000: 53;
e9
DJoins (v,w,G2) by
A1,
A7,
A9,
GLIB_000: 73;
hence contradiction by
A6;
end;
hence ex e1 be
object st e1
DJoins (v,w,G1) by
Def6;
end;
assume that
A10: (
the_Vertices_of G2)
= (
the_Vertices_of G1) & (
the_Edges_of G2)
misses (
the_Edges_of G1) and
A11: for v,w be
Vertex of G1 st v
<> w holds (ex e1 be
object st e1
DJoins (v,w,G1)) iff ( not ex e2 be
object st e2
DJoins (v,w,G2));
per cases ;
suppose
A12: G1 is non
loopfull;
defpred
P[
object] means not ex e be
object st e
Joins ($1,$1,G1);
consider V be
Subset of (
the_Vertices_of G2) such that
A13: for x be
set holds x
in V iff x
in (
the_Vertices_of G2) &
P[x] from
SUBSET_1:sch 1;
A14: V is non
empty by
A10,
A12,
A13;
set E = the set of all
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, v] where v be
Element of V;
deffunc
F(
object) = ($1
`2 );
consider f be
Function such that
A15: (
dom f)
= E & for x be
object st x
in E holds (f
. x)
=
F(x) from
FUNCT_1:sch 3;
now
let x1,x2 be
object;
assume
A16: x1
in (
dom f) & x2
in (
dom f) & (f
. x1)
= (f
. x2);
then
consider v1 be
Element of V such that
A17: x1
=
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, v1] by
A15;
consider v2 be
Element of V such that
A18: x2
=
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, v2] by
A15,
A16;
v1
= (
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, v1]
`2 )
.= (f
. x1) by
A15,
A16,
A17
.= (
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, v2]
`2 ) by
A15,
A16,
A18
.= v2;
hence x1
= x2 by
A17,
A18;
end;
then
reconsider f as
one-to-one
Function by
FUNCT_1:def 4;
now
let y be
object;
hereby
assume y
in (
rng f);
then
consider x be
object such that
A19: x
in (
dom f) & (f
. x)
= y by
FUNCT_1:def 3;
consider v be
Element of V such that
A20: x
=
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, v] by
A15,
A19;
y
= (
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, v]
`2 ) by
A15,
A19,
A20
.= v;
hence y
in V by
A14;
end;
set x =
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, y];
assume y
in V;
then
A21: x
in E;
then (f
. x)
= (
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, y]
`2 ) by
A15
.= y;
hence y
in (
rng f) by
A15,
A21,
FUNCT_1: 3;
end;
then
A22: (
rng f)
= V by
TARSKI: 2;
A23: E
misses (
the_Edges_of G1)
proof
assume E
meets (
the_Edges_of G1);
then
consider e be
object such that
A24: e
in E & e
in (
the_Edges_of G1) by
XBOOLE_0: 3;
reconsider e as
set by
TARSKI: 1;
consider v be
Element of V such that
A25: e
=
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, v] by
A24;
A26: e
=
{
{
{(
the_Edges_of G1), (
the_Edges_of G2)}, v},
{
{(
the_Edges_of G1), (
the_Edges_of G2)}}} by
A25,
TARSKI:def 5;
A27: (
the_Edges_of G1)
in
{(
the_Edges_of G1), (
the_Edges_of G2)} by
TARSKI:def 2;
A28:
{(
the_Edges_of G1), (
the_Edges_of G2)}
in
{
{(
the_Edges_of G1), (
the_Edges_of G2)}} by
TARSKI:def 1;
{
{(
the_Edges_of G1), (
the_Edges_of G2)}}
in e by
A26,
TARSKI:def 2;
hence contradiction by
A24,
A27,
A28,
XREGULAR: 8;
end;
A29: E
misses (
the_Edges_of G2)
proof
assume E
meets (
the_Edges_of G2);
then
consider e be
object such that
A30: e
in E & e
in (
the_Edges_of G2) by
XBOOLE_0: 3;
reconsider e as
set by
TARSKI: 1;
consider v be
Element of V such that
A31: e
=
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, v] by
A30;
A32: e
=
{
{
{(
the_Edges_of G1), (
the_Edges_of G2)}, v},
{
{(
the_Edges_of G1), (
the_Edges_of G2)}}} by
A31,
TARSKI:def 5;
A33: (
the_Edges_of G2)
in
{(
the_Edges_of G1), (
the_Edges_of G2)} by
TARSKI:def 2;
A34:
{(
the_Edges_of G1), (
the_Edges_of G2)}
in
{
{(
the_Edges_of G1), (
the_Edges_of G2)}} by
TARSKI:def 1;
{
{(
the_Edges_of G1), (
the_Edges_of G2)}}
in e by
A32,
TARSKI:def 2;
hence contradiction by
A30,
A33,
A34,
XREGULAR: 8;
end;
set s = ((
the_Source_of G2)
+* f);
now
thus (
dom s)
= ((
dom (
the_Source_of G2))
\/ (
dom f)) by
FUNCT_4:def 1
.= ((
the_Edges_of G2)
\/ E) by
A15,
FUNCT_2:def 1;
A35: (
rng s)
c= ((
rng (
the_Source_of G2))
\/ (
rng f)) by
FUNCT_4: 17;
((
rng (
the_Source_of G2))
\/ (
rng f))
c= (
the_Vertices_of G2) by
A22,
XBOOLE_1: 8;
hence (
rng s)
c= (
the_Vertices_of G2) by
A35,
XBOOLE_1: 1;
end;
then
reconsider s as
Function of ((
the_Edges_of G2)
\/ E), (
the_Vertices_of G2) by
FUNCT_2: 2;
set t = ((
the_Target_of G2)
+* f);
now
thus (
dom t)
= ((
dom (
the_Target_of G2))
\/ (
dom f)) by
FUNCT_4:def 1
.= ((
the_Edges_of G2)
\/ E) by
A15,
FUNCT_2:def 1;
A36: (
rng t)
c= ((
rng (
the_Target_of G2))
\/ (
rng f)) by
FUNCT_4: 17;
((
rng (
the_Target_of G2))
\/ (
rng f))
c= (
the_Vertices_of G2) by
A22,
XBOOLE_1: 8;
hence (
rng t)
c= (
the_Vertices_of G2) by
A36,
XBOOLE_1: 1;
end;
then
reconsider t as
Function of ((
the_Edges_of G2)
\/ E), (
the_Vertices_of G2) by
FUNCT_2: 2;
set G9 = (
createGraph ((
the_Vertices_of G2),((
the_Edges_of G2)
\/ E),s,t));
now
now
thus (
the_Vertices_of G2)
c= (
the_Vertices_of G9) by
GLIB_000: 6;
(
the_Edges_of G9)
= ((
the_Edges_of G2)
\/ E) by
GLIB_000: 6;
hence (
the_Edges_of G2)
c= (
the_Edges_of G9) by
XBOOLE_1: 7;
let e be
set;
assume
A37: e
in (
the_Edges_of G2);
then e
in ((
the_Edges_of G2)
\/ E) by
XBOOLE_0:def 3;
then
A38: not e
in (
dom f) by
A15,
A29,
A37,
XBOOLE_0: 5;
hence ((
the_Source_of G2)
. e)
= (((
the_Source_of G2)
+* f)
. e) by
FUNCT_4: 11
.= ((
the_Source_of G9)
. e) by
GLIB_000: 6;
thus ((
the_Target_of G2)
. e)
= (((
the_Target_of G2)
+* f)
. e) by
A38,
FUNCT_4: 11
.= ((
the_Target_of G9)
. e) by
GLIB_000: 6;
end;
hence G9 is
Supergraph of G2 by
GLIB_006:def 9;
thus (
the_Vertices_of G9)
= (
the_Vertices_of G2) by
GLIB_000: 6;
reconsider E as
set;
reconsider f as
one-to-one
Function;
take E, f;
thus E
misses (
the_Edges_of G2) by
A29;
thus (
the_Edges_of G9)
= ((
the_Edges_of G2)
\/ E) by
GLIB_000: 6;
thus (
dom f)
= E by
A15;
thus (
rng f)
= V by
A22;
thus (
the_Source_of G9)
= ((
the_Source_of G2)
+* f) by
GLIB_000: 6;
thus (
the_Target_of G9)
= ((
the_Target_of G2)
+* f) by
GLIB_000: 6;
end;
then
A39: G9 is
addLoops of G2, V by
Def5;
then G2
== the
removeLoops of G9 by
Th26;
then
A40: G2 is
removeLoops of G9 by
GLIB_009: 59;
A41: G9 is
non-Dmulti by
A39;
now
thus (
the_Vertices_of G9)
= (
the_Vertices_of G1) by
A10,
A40,
GLIB_000:def 33;
A42: (
the_Edges_of G9)
= ((
the_Edges_of G2)
\/ E) by
GLIB_000: 6;
hence (
the_Edges_of G9)
misses (
the_Edges_of G1) by
A10,
A23,
XBOOLE_1: 70;
let v,w be
Vertex of G1;
hereby
given e1 be
object such that
A43: e1
DJoins (v,w,G1);
given e2 be
object such that
A44: e2
DJoins (v,w,G9);
per cases by
A39,
A44,
GLIB_006: 71;
suppose
A45: e2
DJoins (v,w,G2);
then v
<> w by
GLIB_009: 17;
hence contradiction by
A11,
A43,
A45;
end;
suppose
A46: not e2
in (
the_Edges_of G2);
e2
in (
the_Edges_of G9) by
A44,
GLIB_000:def 14;
then
A47: e2
in E by
A42,
A46,
XBOOLE_0:def 3;
then
consider u be
Element of V such that
A48: e2
=
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, u];
A49: not ex e be
object st e
Joins (u,u,G1) by
A13,
A14;
A50: v
= ((
the_Source_of G9)
. e2) by
A44,
GLIB_000:def 14
.= (s
. e2) by
GLIB_000: 6
.= (f
. e2) by
A15,
A47,
FUNCT_4: 13
.= (
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, u]
`2 ) by
A15,
A47,
A48
.= u;
A51: w
= ((
the_Target_of G9)
. e2) by
A44,
GLIB_000:def 14
.= (t
. e2) by
GLIB_000: 6
.= (f
. e2) by
A15,
A47,
FUNCT_4: 13
.= (
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, u]
`2 ) by
A15,
A47,
A48
.= u;
e1
Joins (v,w,G1) by
A43,
GLIB_000: 16;
hence contradiction by
A49,
A50,
A51;
end;
end;
assume
A52: not ex e2 be
object st e2
DJoins (v,w,G9);
assume
A53: not ex e1 be
object st e1
DJoins (v,w,G1);
per cases ;
suppose
A54: v
<> w;
not ex e2 be
object st e2
DJoins (v,w,G2) by
A39,
A52,
GLIB_006: 70;
hence contradiction by
A11,
A53,
A54;
end;
suppose
A55: v
= w;
set e =
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, v];
A56: not ex e1 be
object st e1
Joins (v,v,G1)
proof
given e1 be
object such that
A57: e1
Joins (v,v,G1);
e1
DJoins (v,v,G1) by
A57,
GLIB_000: 16;
hence contradiction by
A53,
A55;
end;
v
in V by
A10,
A13,
A56;
then
A58: e
in E;
then
A59: e
in (
the_Edges_of G9) by
A42,
XBOOLE_0:def 3;
A60: ((
the_Source_of G9)
. e)
= (s
. e) by
GLIB_000: 6
.= (f
. e) by
A15,
A58,
FUNCT_4: 13
.= (e
`2 ) by
A15,
A58
.= v;
((
the_Target_of G9)
. e)
= (t
. e) by
GLIB_000: 6
.= (f
. e) by
A15,
A58,
FUNCT_4: 13
.= (e
`2 ) by
A15,
A58
.= v;
hence contradiction by
A52,
A55,
A59,
A60,
GLIB_000:def 14;
end;
end;
then G9 is
DLGraphComplement of G1 by
A41,
Def6;
hence thesis by
A40,
Def8;
end;
suppose
A61: G1 is
loopfull;
now
let v,w be
Vertex of G1;
hereby
given e1 be
object such that
A62: e1
DJoins (v,w,G1);
per cases ;
suppose v
<> w;
hence not ex e2 be
object st e2
DJoins (v,w,G2) by
A11,
A62;
end;
suppose v
= w;
hence not ex e2 be
object st e2
DJoins (v,w,G2) by
GLIB_009: 17;
end;
end;
assume
A63: not ex e2 be
object st e2
DJoins (v,w,G2);
per cases ;
suppose v
<> w;
hence ex e1 be
object st e1
DJoins (v,w,G1) by
A11,
A63;
end;
suppose v
= w;
hence ex e1 be
object st e1
DJoins (v,w,G1) by
A61,
Th1;
end;
end;
then
A64: G2 is
DLGraphComplement of G1 by
A10,
Def6;
G2 is
removeLoops of G2 by
GLIB_009: 58;
hence thesis by
A64,
Def8;
end;
end;
theorem ::
GLIB_012:81
Th81: for G1 be
_Graph, G2 be
DGraphComplement of G1, e1,e2,v,w be
object holds e1
DJoins (v,w,G1) implies not e2
DJoins (v,w,G2)
proof
let G1 be
_Graph, G2 be
DGraphComplement of G1;
let e1,e2,v,w be
object;
assume
A1: e1
DJoins (v,w,G1);
per cases ;
suppose
A2: v
<> w;
e1
Joins (v,w,G1) by
A1,
GLIB_000: 16;
then v is
Vertex of G1 & w is
Vertex of G1 by
GLIB_000: 13;
hence thesis by
A1,
A2,
Th80;
end;
suppose v
= w;
hence thesis by
GLIB_009: 17;
end;
end;
theorem ::
GLIB_012:82
Th82: for G1 be
_Graph, G2 be
DSimpleGraph of G1 holds for G3 be
DGraphComplement of G1 holds G3 is
DGraphComplement of G2
proof
let G1 be
_Graph, G2 be
DSimpleGraph of G1;
let G3 be
DGraphComplement of G1;
consider E be
RepDEdgeSelection of G1 such that
A1: G2 is
inducedSubgraph of G1, (
the_Vertices_of G1), (E
\ (G1
.loops() )) by
GLIB_009:def 10;
(
the_Vertices_of G1)
c= (
the_Vertices_of G1) & (
the_Edges_of G1)
= (G1
.edgesBetween (
the_Vertices_of G1)) by
GLIB_000: 34;
then
A2: (
the_Vertices_of G2)
= (
the_Vertices_of G1) & (
the_Edges_of G2)
= (E
\ (G1
.loops() )) by
A1,
GLIB_000:def 37;
then
A3: (
the_Vertices_of G3)
= (
the_Vertices_of G2) by
Th80;
(
the_Edges_of G3)
misses (
the_Edges_of G1) by
Th80;
then
A4: (
the_Edges_of G3)
misses (
the_Edges_of G2) by
XBOOLE_1: 63;
now
let v,w be
Vertex of G2;
assume
A5: v
<> w;
A6: v is
Vertex of G1 & w is
Vertex of G1 by
GLIB_000:def 33;
reconsider v1 = v, w1 = w as
Vertex of G1 by
GLIB_000:def 33;
hereby
given e2 be
object such that
A7: e2
DJoins (v,w,G2);
A8: e2
DJoins (v,w,G1) by
A7,
GLIB_000: 72;
given e3 be
object such that
A9: e3
DJoins (v,w,G3);
thus contradiction by
A8,
A9,
Th81;
end;
assume not ex e3 be
object st e3
DJoins (v,w,G3);
then
consider e1 be
object such that
A10: e1
DJoins (v,w,G1) by
A6,
A5,
Th80;
consider e2 be
object such that
A11: e2
DJoins (v,w,G1) & e2
in E and for e9 be
object st e9
DJoins (v,w,G1) & e9
in E holds e9
= e2 by
A10,
GLIB_009:def 6;
take e2;
e2
Joins (v,w,G1) by
A11,
GLIB_000: 16;
then not e2
in (G1
.loops() ) by
A5,
GLIB_009: 46;
then e2
in (
the_Edges_of G2) by
A2,
A11,
XBOOLE_0:def 5;
hence e2
DJoins (v,w,G2) by
A11,
GLIB_000: 73;
end;
hence thesis by
A3,
A4,
Th80;
end;
theorem ::
GLIB_012:83
Th83: for G1,G2 be
_Graph holds for G3 be
DSimpleGraph of G1, G4 be
DSimpleGraph of G2 holds for G5 be
DGraphComplement of G1, G6 be
DGraphComplement of G2 st G4 is G3
-Disomorphic holds G6 is G5
-Disomorphic
proof
let G1,G2 be
_Graph;
let G3 be
DSimpleGraph of G1, G4 be
DSimpleGraph of G2;
let G5 be
DGraphComplement of G1, G6 be
DGraphComplement of G2;
A1: G5 is
DGraphComplement of G3 & G6 is
DGraphComplement of G4 by
Th82;
assume G4 is G3
-Disomorphic;
then
consider f be
directed
PVertexMapping of G3, G4 such that
A2: f is
Disomorphism by
GLIB_011: 50;
A3: (
the_Vertices_of G3)
= (
the_Vertices_of G5) & (
the_Vertices_of G4)
= (
the_Vertices_of G6) by
A1,
Th80;
then
reconsider g = f as
PartFunc of (
the_Vertices_of G5), (
the_Vertices_of G6);
now
let v,w,e be
object;
assume
A4: v
in (
dom g) & w
in (
dom g) & e
DJoins (v,w,G5);
then
A5: v
<> w by
GLIB_009: 17;
then
A6: (g
. v)
<> (g
. w) by
A2,
A4,
FUNCT_1:def 4;
A7: not ex e3 be
object st e3
DJoins (v,w,G3) by
A1,
A3,
A4,
A5,
Th80;
thus ex e6 be
object st e6
DJoins ((g
. v),(g
. w),G6)
proof
assume
A8: not ex e6 be
object st e6
DJoins ((g
. v),(g
. w),G6);
(g
. v)
in (
rng f) & (g
. w)
in (
rng f) by
A4,
FUNCT_1: 3;
then
consider e4 be
object such that
A9: e4
DJoins ((g
. v),(g
. w),G4) by
A1,
A6,
A8,
Th80;
consider e3 be
object such that
A10: e3
DJoins (v,w,G3) by
A2,
A4,
A9,
GLIB_011:def 4;
thus contradiction by
A7,
A10;
end;
end;
then
reconsider g as
directed
PVertexMapping of G5, G6 by
GLIB_011: 4;
now
let v,w,e6 be
object;
assume
A11: v
in (
dom g) & w
in (
dom g) & e6
DJoins ((g
. v),(g
. w),G6);
A12: (g
. v)
<> (g
. w) by
A11,
GLIB_009: 17;
(g
. v)
in (
rng f) & (g
. w)
in (
rng f) by
A11,
FUNCT_1: 3;
then
A13: not ex e4 be
object st e4
DJoins ((g
. v),(g
. w),G4) by
A1,
A11,
A12,
Th80;
thus ex e5 be
object st e5
DJoins (v,w,G5)
proof
assume not ex e5 be
object st e5
DJoins (v,w,G5);
then
consider e3 be
object such that
A14: e3
DJoins (v,w,G3) by
A1,
A3,
A11,
A12,
Th80;
consider e4 be
object such that
A15: e4
DJoins ((f
. v),(f
. w),G4) by
A11,
A14,
GLIB_011:def 2;
thus contradiction by
A13,
A15;
end;
end;
then g is
Dcontinuous by
GLIB_011:def 4;
hence thesis by
A2,
A3,
GLIB_011: 50;
end;
theorem ::
GLIB_012:84
Th84: for G1 be
_Graph, G2 be G1
-Disomorphic
_Graph holds for G3 be
DGraphComplement of G1, G4 be
DGraphComplement of G2 holds G4 is G3
-Disomorphic
proof
let G1 be
_Graph, G2 be G1
-Disomorphic
_Graph;
let G3 be
DGraphComplement of G1, G4 be
DGraphComplement of G2;
set G5 = the
DSimpleGraph of G1;
set G6 = the
DSimpleGraph of G2;
G6 is G5
-Disomorphic by
GLIB_010: 174;
hence thesis by
Th83;
end;
theorem ::
GLIB_012:85
Th85: for G1 be
_Graph, G2,G3 be
DGraphComplement of G1 holds G3 is G2
-Disomorphic
proof
let G1 be
_Graph, G2,G3 be
DGraphComplement of G1;
G1 is G1
-Disomorphic by
GLIB_010: 53;
hence thesis by
Th84;
end;
theorem ::
GLIB_012:86
for G1 be
_Graph, G2 be
reverseEdgeDirections of G1 holds for G3 be
DGraphComplement of G1, G4 be
reverseEdgeDirections of G3 holds G4 is
DGraphComplement of G2
proof
let G1 be
_Graph, G2 be
reverseEdgeDirections of G1;
let G3 be
DGraphComplement of G1, G4 be
reverseEdgeDirections of G3;
A1: (
the_Vertices_of G4)
= (
the_Vertices_of G3) by
GLIB_007: 4
.= (
the_Vertices_of G1) by
Th80
.= (
the_Vertices_of G2) by
GLIB_007: 4;
(
the_Edges_of G3)
misses (
the_Edges_of G1) by
Th80;
then (
the_Edges_of G4)
misses (
the_Edges_of G1) by
GLIB_007: 4;
then
A2: (
the_Edges_of G4)
misses (
the_Edges_of G2) by
GLIB_007: 4;
now
let v,w be
Vertex of G2;
assume
A3: v
<> w;
A4: v is
Vertex of G1 & w is
Vertex of G1 by
GLIB_007: 4;
hereby
given e2 be
object such that
A5: e2
DJoins (v,w,G2);
e2
in (
the_Edges_of G2) by
A5,
GLIB_000:def 14;
then e2
in (
the_Edges_of G1) by
GLIB_007: 4;
then
A6: e2
DJoins (w,v,G1) by
A5,
GLIB_007: 7;
given e4 be
object such that
A7: e4
DJoins (v,w,G4);
e4
in (
the_Edges_of G4) by
A7,
GLIB_000:def 14;
then e4
in (
the_Edges_of G3) by
GLIB_007: 4;
then e4
DJoins (w,v,G3) by
A7,
GLIB_007: 7;
hence contradiction by
A6,
Th81;
end;
assume
A8: not ex e4 be
object st e4
DJoins (v,w,G4);
not ex e3 be
object st e3
DJoins (w,v,G3)
proof
given e3 be
object such that
A9: e3
DJoins (w,v,G3);
e3
in (
the_Edges_of G3) by
A9,
GLIB_000:def 14;
then e3
DJoins (v,w,G4) by
A9,
GLIB_007: 7;
hence contradiction by
A8;
end;
then
consider e1 be
object such that
A10: e1
DJoins (w,v,G1) by
A3,
A4,
Th80;
take e1;
e1
in (
the_Edges_of G1) by
A10,
GLIB_000:def 14;
hence e1
DJoins (v,w,G2) by
A10,
GLIB_007: 7;
end;
hence thesis by
A1,
A2,
Th80;
end;
theorem ::
GLIB_012:87
Th87: for G1 be
_Graph, V be non
empty
Subset of (
the_Vertices_of G1) holds for G2 be
inducedSubgraph of G1, V holds for G3 be
DGraphComplement of G1, G4 be
inducedSubgraph of G3, V holds G4 is
DGraphComplement of G2
proof
let G1 be
_Graph, V be non
empty
Subset of (
the_Vertices_of G1);
let G2 be
inducedSubgraph of G1, V;
let G3 be
DGraphComplement of G1, G4 be
inducedSubgraph of G3, V;
A1: V is non
empty
Subset of (
the_Vertices_of G3) by
Th80;
then
A2: (
the_Vertices_of G4)
= V by
GLIB_000:def 37
.= (
the_Vertices_of G2) by
GLIB_000:def 37;
A3: (
the_Edges_of G4)
misses (
the_Edges_of G2)
proof
assume (
the_Edges_of G4)
meets (
the_Edges_of G2);
then
consider e be
object such that
A4: e
in (
the_Edges_of G4) & e
in (
the_Edges_of G2) by
XBOOLE_0: 3;
A5: e
in ((
the_Edges_of G1)
\/ (
the_Edges_of G3)) by
A4,
XBOOLE_0:def 3;
(
the_Edges_of G3)
misses (
the_Edges_of G1) by
Th80;
hence contradiction by
A4,
A5,
XBOOLE_0: 5;
end;
now
let v,w be
Vertex of G2;
assume
A6: v
<> w;
hereby
given e2 be
object such that
A7: e2
DJoins (v,w,G2);
A8: e2
DJoins (v,w,G1) by
A7,
GLIB_000: 72;
given e4 be
object such that
A9: e4
DJoins (v,w,G4);
e4
DJoins (v,w,G3) by
A9,
GLIB_000: 72;
hence contradiction by
A8,
Th81;
end;
assume
A10: not ex e4 be
object st e4
DJoins (v,w,G4);
ex e1 be
object st e1
DJoins (v,w,G1)
proof
assume
A11: not ex e1 be
object st e1
DJoins (v,w,G1);
(
the_Vertices_of G2)
c= (
the_Vertices_of G1);
then v is
Vertex of G1 & w is
Vertex of G1 by
TARSKI:def 3;
then
consider e3 be
object such that
A12: e3
DJoins (v,w,G3) by
A6,
A11,
Th80;
A13: e3
Joins (v,w,G3) by
A12,
GLIB_000: 16;
(
the_Vertices_of G2)
= V by
GLIB_000:def 37;
then e3
in (G3
.edgesBetween V) by
A13,
GLIB_000: 32;
then e3
in (
the_Edges_of G4) & e3 is
set by
A1,
GLIB_000:def 37;
then e3
DJoins (v,w,G4) by
A12,
GLIB_000: 73;
hence contradiction by
A10;
end;
then
consider e1 be
object such that
A14: e1
DJoins (v,w,G1);
take e1;
A15: e1
Joins (v,w,G1) by
A14,
GLIB_000: 16;
(
the_Vertices_of G2)
= V by
GLIB_000:def 37;
then e1
in (G1
.edgesBetween V) by
A15,
GLIB_000: 32;
then e1
in (
the_Edges_of G2) & e1 is
set by
GLIB_000:def 37;
hence e1
DJoins (v,w,G2) by
A14,
GLIB_000: 73;
end;
hence thesis by
A2,
A3,
Th80;
end;
theorem ::
GLIB_012:88
for G1 be
_Graph, V be
proper
Subset of (
the_Vertices_of G1) holds for G2 be
removeVertices of G1, V holds for G3 be
DGraphComplement of G1, G4 be
removeVertices of G3, V holds G4 is
DGraphComplement of G2
proof
let G1 be
_Graph, V be
proper
Subset of (
the_Vertices_of G1);
let G2 be
removeVertices of G1, V;
let G3 be
DGraphComplement of G1, G4 be
removeVertices of G3, V;
((
the_Vertices_of G1)
\ V) is non
empty
Subset of (
the_Vertices_of G1) & ((
the_Vertices_of G1)
\ V)
= ((
the_Vertices_of G3)
\ V) by
Th80,
XBOOLE_1: 105,
GLIBPRE0: 6;
hence thesis by
Th87;
end;
theorem ::
GLIB_012:89
for G1 be
Dsimple
_Graph, G2 be
DGraphComplement of G1 holds G1 is
DGraphComplement of G2
proof
let G1 be
Dsimple
_Graph, G2 be
DGraphComplement of G1;
A1: (
the_Vertices_of G1)
= (
the_Vertices_of G2) & (
the_Edges_of G1)
misses (
the_Edges_of G2) by
Th80;
now
let v,w be
Vertex of G2;
assume
A2: v
<> w;
v is
Vertex of G1 & w is
Vertex of G1 by
Th80;
hence (ex e2 be
object st e2
DJoins (v,w,G2)) iff ( not ex e1 be
object st e1
DJoins (v,w,G1)) by
A2,
Th80;
end;
hence thesis by
A1,
Th80;
end;
theorem ::
GLIB_012:90
Th90: for G1 be
_Graph, G2 be
DGraphComplement of G1 holds (G1
.order() )
= (G2
.order() ) by
Th80;
theorem ::
GLIB_012:91
Th91: for G1 be
_Graph, G2 be
DGraphComplement of G1 holds G1 is
_trivial iff G2 is
_trivial
proof
let G1 be
_Graph, G2 be
DGraphComplement of G1;
hereby
assume G1 is
_trivial;
then 1
= (G1
.order() ) by
GLIB_000: 26
.= (G2
.order() ) by
Th90;
hence G2 is
_trivial by
GLIB_000: 26;
end;
hereby
assume G2 is
_trivial;
then 1
= (G2
.order() ) by
GLIB_000: 26
.= (G1
.order() ) by
Th90;
hence G1 is
_trivial by
GLIB_000: 26;
end;
end;
registration
let G be
_trivial
_Graph;
cluster ->
_trivial for
DGraphComplement of G;
coherence by
Th91;
end
registration
let G be non
_trivial
_Graph;
cluster -> non
_trivial for
DGraphComplement of G;
coherence by
Th91;
end
theorem ::
GLIB_012:92
Th92: for G1 be
_Graph, G2 be
DGraphComplement of G1 st (
the_Edges_of G1)
= (G1
.loops() ) holds G2 is
complete
proof
let G1 be
_Graph, G2 be
DGraphComplement of G1;
assume
A1: (
the_Edges_of G1)
= (G1
.loops() );
now
let v,w be
Vertex of G2;
A2: v is
Vertex of G1 & w is
Vertex of G1 by
Th80;
assume
A3: v
<> w;
not ex e1 be
object st e1
DJoins (v,w,G1)
proof
given e1 be
object such that
A4: e1
DJoins (v,w,G1);
e1
Joins (v,w,G1) by
A4,
GLIB_000: 16;
hence contradiction by
A1,
A3,
A4,
GLIB_009: 46,
GLIB_000:def 14;
end;
then
consider e2 be
object such that
A5: e2
DJoins (v,w,G2) by
A2,
A3,
Th80;
e2
Joins (v,w,G2) by
A5,
GLIB_000: 16;
hence (v,w)
are_adjacent by
CHORD:def 3;
end;
hence thesis by
CHORD:def 6;
end;
registration
let G be
edgeless
_Graph;
cluster ->
complete for
DGraphComplement of G;
coherence
proof
let G2 be
DGraphComplement of G;
(
the_Edges_of G)
=
{} & (G
.loops() )
=
{} ;
hence thesis by
Th92;
end;
end
registration
let G be
_trivial
edgeless
_Graph;
cluster ->
edgeless for
DGraphComplement of G;
coherence ;
end
registration
let G be non
connected
_Graph;
cluster ->
connected for
DGraphComplement of G;
coherence
proof
let G2 be
DGraphComplement of G;
consider G9 be
DLGraphComplement of G such that
A1: G2 is
removeLoops of G9 by
Def8;
thus thesis by
A1;
end;
end
theorem ::
GLIB_012:93
for G1 be non
_trivial
_Graph, G2 be
DGraphComplement of G1 holds for v1 be
Vertex of G1, v2 be
Vertex of G2 st v1
= v2 holds v1 is
isolated implies v2 is non
isolated
proof
let G1 be non
_trivial
_Graph, G2 be
DGraphComplement of G1;
let v1 be
Vertex of G1, v2 be
Vertex of G2;
assume
A1: v1
= v2;
assume
A2: v1 is
isolated;
set v9 = the
Element of ((
the_Vertices_of G1)
\
{v1});
((
the_Vertices_of G1)
\
{v1})
<>
{} by
GLIB_000: 20;
then
A3: v9
in ((
the_Vertices_of G1)
\
{v1});
then
reconsider v9 as
Vertex of G1;
A4: v9
<> v1 by
A3,
ZFMISC_1: 56;
not ex e be
object st e
DJoins (v1,v9,G1) by
A2,
GLIBPRE0: 22;
then ex e be
object st e
DJoins (v1,v9,G2) by
A4,
Th80;
hence v2 is non
isolated by
A1,
GLIBPRE0: 22;
end;
theorem ::
GLIB_012:94
for G1 be
_Graph, G2 be
DGraphComplement of G1 holds for v1 be
Vertex of G1, v2 be
Vertex of G2 st v1
= v2 & 3
c= (G1
.order() ) holds v1 is
endvertex implies v2 is non
endvertex
proof
let G1 be
_Graph, G2 be
DGraphComplement of G1;
let v1 be
Vertex of G1, v2 be
Vertex of G2;
assume
A1: v1
= v2 & 3
c= (G1
.order() );
assume v1 is
endvertex;
then
consider u,w be
Vertex of G1 such that
A2: u
<> v1 & w
<> v1 & u
<> w & (u,v1)
are_adjacent & not (v1,w)
are_adjacent by
A1,
GLIBPRE0: 97;
not ex e be
object st e
DJoins (v1,w,G1)
proof
given e be
object such that
A3: e
DJoins (v1,w,G1);
e
Joins (v1,w,G1) by
A3,
GLIB_000: 16;
hence contradiction by
A2,
CHORD:def 3;
end;
then
consider e1 be
object such that
A4: e1
DJoins (v1,w,G2) by
A2,
Th80;
not ex e be
object st e
DJoins (w,v1,G1)
proof
given e be
object such that
A5: e
DJoins (w,v1,G1);
e
Joins (v1,w,G1) by
A5,
GLIB_000: 16;
hence contradiction by
A2,
CHORD:def 3;
end;
then
consider e2 be
object such that
A6: e2
DJoins (w,v1,G2) by
A2,
Th80;
A7: e1
<> e2 by
A2,
A4,
A6,
GLIB_009: 6;
reconsider w as
Vertex of G2 by
Th80;
reconsider e1, e2 as
set by
TARSKI: 1;
e1
Joins (v2,w,G2) & e2
Joins (v2,w,G2) by
A1,
A4,
A6,
GLIB_000: 16;
then e1
in (v2
.edgesInOut() ) & e2
in (v2
.edgesInOut() ) by
GLIB_000: 64;
then
A8:
{e1, e2}
c= (v2
.edgesInOut() ) by
ZFMISC_1: 32;
assume v2 is
endvertex;
then
consider e9 be
object such that
A9: (v2
.edgesInOut() )
=
{e9} & not e9
Joins (v2,v2,G2) by
GLIB_000:def 51;
e1
= e9 & e2
= e9 by
A8,
A9,
ZFMISC_1: 20;
hence contradiction by
A7;
end;
theorem ::
GLIB_012:95
Th95: for G1 be
_Graph, G2 be
DGraphComplement of G1 holds for v1 be
Vertex of G1, v2 be
Vertex of G2 st v1
= v2 holds (v2
.inNeighbors() )
= ((
the_Vertices_of G2)
\ ((v1
.inNeighbors() )
\/
{v2})) & (v2
.outNeighbors() )
= ((
the_Vertices_of G2)
\ ((v1
.outNeighbors() )
\/
{v2}))
proof
let G1 be
_Graph, G2 be
DGraphComplement of G1;
let v1 be
Vertex of G1, v2 be
Vertex of G2;
assume
A1: v1
= v2;
consider G9 be
DLGraphComplement of G1 such that
A2: G2 is
removeLoops of G9 by
Def8;
reconsider v9 = v1 as
Vertex of G9 by
Def6;
thus (v2
.inNeighbors() )
= ((v9
.inNeighbors() )
\
{v2}) by
A1,
A2,
GLIBPRE0: 65
.= (((
the_Vertices_of G9)
\ (v1
.inNeighbors() ))
\
{v2}) by
Th60
.= ((
the_Vertices_of G9)
\ ((v1
.inNeighbors() )
\/
{v2})) by
XBOOLE_1: 41
.= ((
the_Vertices_of G2)
\ ((v1
.inNeighbors() )
\/
{v2})) by
A2,
GLIB_000: 53;
thus (v2
.outNeighbors() )
= ((v9
.outNeighbors() )
\
{v2}) by
A1,
A2,
GLIBPRE0: 65
.= (((
the_Vertices_of G9)
\ (v1
.outNeighbors() ))
\
{v2}) by
Th60
.= ((
the_Vertices_of G9)
\ ((v1
.outNeighbors() )
\/
{v2})) by
XBOOLE_1: 41
.= ((
the_Vertices_of G2)
\ ((v1
.outNeighbors() )
\/
{v2})) by
A2,
GLIB_000: 53;
end;
theorem ::
GLIB_012:96
for G1 be
_Graph, G2 be
DGraphComplement of G1 holds for v1 be
Vertex of G1, v2 be
Vertex of G2 st v1
= v2 & v1 is
isolated holds (v2
.inNeighbors() )
= ((
the_Vertices_of G2)
\
{v2}) & (v2
.outNeighbors() )
= ((
the_Vertices_of G2)
\
{v2}) & (v2
.allNeighbors() )
= ((
the_Vertices_of G2)
\
{v2})
proof
let G1 be
_Graph, G2 be
DGraphComplement of G1;
let v1 be
Vertex of G1, v2 be
Vertex of G2;
assume
A1: v1
= v2 & v1 is
isolated;
then (v1
.allNeighbors() )
=
{} by
GLIB_008: 7;
then
A2: (v1
.inNeighbors() )
=
{} & (v1
.outNeighbors() )
=
{} ;
thus
A3: (v2
.inNeighbors() )
= ((
the_Vertices_of G2)
\ (
{}
\/
{v2})) by
A1,
A2,
Th95
.= ((
the_Vertices_of G2)
\
{v2});
thus (v2
.outNeighbors() )
= ((
the_Vertices_of G2)
\ (
{}
\/
{v2})) by
A1,
A2,
Th95
.= ((
the_Vertices_of G2)
\
{v2});
hence thesis by
A3;
end;
begin
definition
let G be
_Graph;
::
GLIB_012:def9
mode
GraphComplement of G ->
simple
_Graph means
:
Def9: ex G9 be
LGraphComplement of G st it is
removeLoops of G9;
existence
proof
set G1 = the
LGraphComplement of G;
take the
removeLoops of G1;
thus thesis;
end;
end
theorem ::
GLIB_012:97
Th97: for G1,G2,G3 be
_Graph, G4 be
GraphComplement of G1 st G1
== G2 & G3
== G4 holds G3 is
GraphComplement of G2
proof
let G1,G2,G3 be
_Graph, G4 be
GraphComplement of G1;
assume
A1: G1
== G2 & G3
== G4;
consider G9 be
LGraphComplement of G1 such that
A2: G4 is
removeLoops of G9 by
Def9;
G9 is
LGraphComplement of G2 & G3 is
removeLoops of G9 by
A1,
A2,
Th62,
GLIB_009: 59;
hence thesis by
Def9;
end;
registration
let G be
_Graph;
cluster
plain for
GraphComplement of G;
existence
proof
set G1 = the
GraphComplement of G;
set G2 = (G1
|
_GraphSelectors );
G1
== G1 & G1
== G2 by
GLIB_009: 9;
then
reconsider G2 as
GraphComplement of G by
Th97;
take G2;
thus thesis;
end;
end
theorem ::
GLIB_012:98
Th98: for G1 be
_Graph, G2 be
simple
_Graph holds G2 is
GraphComplement of G1 iff (
the_Vertices_of G2)
= (
the_Vertices_of G1) & (
the_Edges_of G2)
misses (
the_Edges_of G1) & for v,w be
Vertex of G1 st v
<> w holds (ex e1 be
object st e1
Joins (v,w,G1)) iff ( not ex e2 be
object st e2
Joins (v,w,G2))
proof
let G1 be
_Graph, G2 be
simple
_Graph;
hereby
assume G2 is
GraphComplement of G1;
then
consider G9 be
LGraphComplement of G1 such that
A1: G2 is
removeLoops of G9 by
Def9;
thus (
the_Vertices_of G2)
= (
the_Vertices_of G9) by
A1,
GLIB_000:def 33
.= (
the_Vertices_of G1) by
Def7;
A2: (
the_Edges_of G2)
c= (
the_Edges_of G9) by
A1,
GLIB_000:def 32;
(
the_Edges_of G9)
misses (
the_Edges_of G1) by
Def7;
hence (
the_Edges_of G2)
misses (
the_Edges_of G1) by
A2,
XBOOLE_1: 63;
let v,w be
Vertex of G1;
assume
A3: v
<> w;
hereby
given e1 be
object such that
A4: e1
Joins (v,w,G1);
given e2 be
object such that
A5: e2
Joins (v,w,G2);
e2
Joins (v,w,G9) by
A1,
A5,
GLIB_000: 72;
hence contradiction by
A4,
Th64;
end;
assume
A6: not ex e2 be
object st e2
Joins (v,w,G2);
not ex e9 be
object st e9
Joins (v,w,G9)
proof
given e9 be
object such that
A7: e9
Joins (v,w,G9);
A8: e9
in (
the_Edges_of G9) by
A7,
GLIB_000:def 13;
not e9
in (G9
.loops() ) by
A3,
A7,
GLIB_009: 46;
then e9
in ((
the_Edges_of G9)
\ (G9
.loops() )) by
A8,
XBOOLE_0:def 5;
then
A9: e9
in (
the_Edges_of G2) by
A1,
GLIB_000: 53;
e9
Joins (v,w,G2) by
A1,
A7,
A9,
GLIB_000: 73;
hence contradiction by
A6;
end;
hence ex e1 be
object st e1
Joins (v,w,G1) by
Def7;
end;
assume that
A10: (
the_Vertices_of G2)
= (
the_Vertices_of G1) & (
the_Edges_of G2)
misses (
the_Edges_of G1) and
A11: for v,w be
Vertex of G1 st v
<> w holds (ex e1 be
object st e1
Joins (v,w,G1)) iff ( not ex e2 be
object st e2
Joins (v,w,G2));
per cases ;
suppose
A12: G1 is non
loopfull;
defpred
P[
object] means not ex e be
object st e
Joins ($1,$1,G1);
consider V be
Subset of (
the_Vertices_of G2) such that
A13: for x be
set holds x
in V iff x
in (
the_Vertices_of G2) &
P[x] from
SUBSET_1:sch 1;
A14: V is non
empty by
A10,
A12,
A13;
set E = the set of all
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, v] where v be
Element of V;
deffunc
F(
object) = ($1
`2 );
consider f be
Function such that
A15: (
dom f)
= E & for x be
object st x
in E holds (f
. x)
=
F(x) from
FUNCT_1:sch 3;
now
let x1,x2 be
object;
assume
A16: x1
in (
dom f) & x2
in (
dom f) & (f
. x1)
= (f
. x2);
then
consider v1 be
Element of V such that
A17: x1
=
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, v1] by
A15;
consider v2 be
Element of V such that
A18: x2
=
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, v2] by
A15,
A16;
v1
= (
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, v1]
`2 )
.= (f
. x1) by
A15,
A16,
A17
.= (
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, v2]
`2 ) by
A15,
A16,
A18
.= v2;
hence x1
= x2 by
A17,
A18;
end;
then
reconsider f as
one-to-one
Function by
FUNCT_1:def 4;
now
let y be
object;
hereby
assume y
in (
rng f);
then
consider x be
object such that
A19: x
in (
dom f) & (f
. x)
= y by
FUNCT_1:def 3;
consider v be
Element of V such that
A20: x
=
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, v] by
A15,
A19;
y
= (
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, v]
`2 ) by
A15,
A19,
A20
.= v;
hence y
in V by
A14;
end;
set x =
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, y];
assume y
in V;
then
A21: x
in E;
then (f
. x)
= (
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, y]
`2 ) by
A15
.= y;
hence y
in (
rng f) by
A15,
A21,
FUNCT_1: 3;
end;
then
A22: (
rng f)
= V by
TARSKI: 2;
A23: E
misses (
the_Edges_of G1)
proof
assume E
meets (
the_Edges_of G1);
then
consider e be
object such that
A24: e
in E & e
in (
the_Edges_of G1) by
XBOOLE_0: 3;
reconsider e as
set by
TARSKI: 1;
consider v be
Element of V such that
A25: e
=
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, v] by
A24;
A26: e
=
{
{
{(
the_Edges_of G1), (
the_Edges_of G2)}, v},
{
{(
the_Edges_of G1), (
the_Edges_of G2)}}} by
A25,
TARSKI:def 5;
A27: (
the_Edges_of G1)
in
{(
the_Edges_of G1), (
the_Edges_of G2)} by
TARSKI:def 2;
A28:
{(
the_Edges_of G1), (
the_Edges_of G2)}
in
{
{(
the_Edges_of G1), (
the_Edges_of G2)}} by
TARSKI:def 1;
{
{(
the_Edges_of G1), (
the_Edges_of G2)}}
in e by
A26,
TARSKI:def 2;
hence contradiction by
A24,
A27,
A28,
XREGULAR: 8;
end;
A29: E
misses (
the_Edges_of G2)
proof
assume E
meets (
the_Edges_of G2);
then
consider e be
object such that
A30: e
in E & e
in (
the_Edges_of G2) by
XBOOLE_0: 3;
reconsider e as
set by
TARSKI: 1;
consider v be
Element of V such that
A31: e
=
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, v] by
A30;
A32: e
=
{
{
{(
the_Edges_of G1), (
the_Edges_of G2)}, v},
{
{(
the_Edges_of G1), (
the_Edges_of G2)}}} by
A31,
TARSKI:def 5;
A33: (
the_Edges_of G2)
in
{(
the_Edges_of G1), (
the_Edges_of G2)} by
TARSKI:def 2;
A34:
{(
the_Edges_of G1), (
the_Edges_of G2)}
in
{
{(
the_Edges_of G1), (
the_Edges_of G2)}} by
TARSKI:def 1;
{
{(
the_Edges_of G1), (
the_Edges_of G2)}}
in e by
A32,
TARSKI:def 2;
hence contradiction by
A30,
A33,
A34,
XREGULAR: 8;
end;
set s = ((
the_Source_of G2)
+* f);
now
thus (
dom s)
= ((
dom (
the_Source_of G2))
\/ (
dom f)) by
FUNCT_4:def 1
.= ((
the_Edges_of G2)
\/ E) by
A15,
FUNCT_2:def 1;
A35: (
rng s)
c= ((
rng (
the_Source_of G2))
\/ (
rng f)) by
FUNCT_4: 17;
((
rng (
the_Source_of G2))
\/ (
rng f))
c= (
the_Vertices_of G2) by
A22,
XBOOLE_1: 8;
hence (
rng s)
c= (
the_Vertices_of G2) by
A35,
XBOOLE_1: 1;
end;
then
reconsider s as
Function of ((
the_Edges_of G2)
\/ E), (
the_Vertices_of G2) by
FUNCT_2: 2;
set t = ((
the_Target_of G2)
+* f);
now
thus (
dom t)
= ((
dom (
the_Target_of G2))
\/ (
dom f)) by
FUNCT_4:def 1
.= ((
the_Edges_of G2)
\/ E) by
A15,
FUNCT_2:def 1;
A36: (
rng t)
c= ((
rng (
the_Target_of G2))
\/ (
rng f)) by
FUNCT_4: 17;
((
rng (
the_Target_of G2))
\/ (
rng f))
c= (
the_Vertices_of G2) by
A22,
XBOOLE_1: 8;
hence (
rng t)
c= (
the_Vertices_of G2) by
A36,
XBOOLE_1: 1;
end;
then
reconsider t as
Function of ((
the_Edges_of G2)
\/ E), (
the_Vertices_of G2) by
FUNCT_2: 2;
set G9 = (
createGraph ((
the_Vertices_of G2),((
the_Edges_of G2)
\/ E),s,t));
now
now
thus (
the_Vertices_of G2)
c= (
the_Vertices_of G9) by
GLIB_000: 6;
(
the_Edges_of G9)
= ((
the_Edges_of G2)
\/ E) by
GLIB_000: 6;
hence (
the_Edges_of G2)
c= (
the_Edges_of G9) by
XBOOLE_1: 7;
let e be
set;
assume
A37: e
in (
the_Edges_of G2);
then e
in ((
the_Edges_of G2)
\/ E) by
XBOOLE_0:def 3;
then
A38: not e
in (
dom f) by
A15,
A29,
A37,
XBOOLE_0: 5;
hence ((
the_Source_of G2)
. e)
= (((
the_Source_of G2)
+* f)
. e) by
FUNCT_4: 11
.= ((
the_Source_of G9)
. e) by
GLIB_000: 6;
thus ((
the_Target_of G2)
. e)
= (((
the_Target_of G2)
+* f)
. e) by
A38,
FUNCT_4: 11
.= ((
the_Target_of G9)
. e) by
GLIB_000: 6;
end;
hence G9 is
Supergraph of G2 by
GLIB_006:def 9;
thus (
the_Vertices_of G9)
= (
the_Vertices_of G2) by
GLIB_000: 6;
reconsider E as
set;
reconsider f as
one-to-one
Function;
take E, f;
thus E
misses (
the_Edges_of G2) by
A29;
thus (
the_Edges_of G9)
= ((
the_Edges_of G2)
\/ E) by
GLIB_000: 6;
thus (
dom f)
= E by
A15;
thus (
rng f)
= V by
A22;
thus (
the_Source_of G9)
= ((
the_Source_of G2)
+* f) by
GLIB_000: 6;
thus (
the_Target_of G9)
= ((
the_Target_of G2)
+* f) by
GLIB_000: 6;
end;
then
A39: G9 is
addLoops of G2, V by
Def5;
then G2
== the
removeLoops of G9 by
Th26;
then
A40: G2 is
removeLoops of G9 by
GLIB_009: 59;
A41: G9 is
non-multi by
A39;
now
thus (
the_Vertices_of G9)
= (
the_Vertices_of G1) by
A10,
A40,
GLIB_000:def 33;
A42: (
the_Edges_of G9)
= ((
the_Edges_of G2)
\/ E) by
GLIB_000: 6;
hence (
the_Edges_of G9)
misses (
the_Edges_of G1) by
A10,
A23,
XBOOLE_1: 70;
let v,w be
Vertex of G1;
hereby
given e1 be
object such that
A43: e1
Joins (v,w,G1);
given e2 be
object such that
A44: e2
Joins (v,w,G9);
per cases by
A39,
A44,
GLIB_006: 72;
suppose
A45: e2
Joins (v,w,G2);
then v
<> w by
GLIB_000: 18;
hence contradiction by
A11,
A43,
A45;
end;
suppose
A46: not e2
in (
the_Edges_of G2);
e2
in (
the_Edges_of G9) by
A44,
GLIB_000:def 13;
then
A47: e2
in E by
A42,
A46,
XBOOLE_0:def 3;
then
consider u be
Element of V such that
A48: e2
=
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, u];
A49: not ex e be
object st e
Joins (u,u,G1) by
A13,
A14;
A50: ((
the_Source_of G9)
. e2)
= (s
. e2) by
GLIB_000: 6
.= (f
. e2) by
A15,
A47,
FUNCT_4: 13
.= (
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, u]
`2 ) by
A15,
A47,
A48
.= u;
((
the_Target_of G9)
. e2)
= (t
. e2) by
GLIB_000: 6
.= (f
. e2) by
A15,
A47,
FUNCT_4: 13
.= (
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, u]
`2 ) by
A15,
A47,
A48
.= u;
then v
= u & w
= u by
A44,
A50,
GLIB_000:def 13;
hence contradiction by
A43,
A49;
end;
end;
assume
A51: not ex e2 be
object st e2
Joins (v,w,G9);
assume
A52: not ex e1 be
object st e1
Joins (v,w,G1);
per cases ;
suppose
A53: v
<> w;
not ex e2 be
object st e2
Joins (v,w,G2) by
A39,
A51,
GLIB_006: 70;
hence contradiction by
A11,
A52,
A53;
end;
suppose
A54: v
= w;
set e =
[
{(
the_Edges_of G1), (
the_Edges_of G2)}, v];
A55: not ex e1 be
object st e1
Joins (v,v,G1) by
A52,
A54;
v
in V by
A10,
A13,
A55;
then
A56: e
in E;
then
A57: e
in (
the_Edges_of G9) by
A42,
XBOOLE_0:def 3;
A58: ((
the_Source_of G9)
. e)
= (s
. e) by
GLIB_000: 6
.= (f
. e) by
A15,
A56,
FUNCT_4: 13
.= (e
`2 ) by
A15,
A56
.= v;
((
the_Target_of G9)
. e)
= (t
. e) by
GLIB_000: 6
.= (f
. e) by
A15,
A56,
FUNCT_4: 13
.= (e
`2 ) by
A15,
A56
.= v;
then e
Joins (v,w,G9) by
A54,
A57,
A58,
GLIB_000:def 13;
hence contradiction by
A51;
end;
end;
then G9 is
LGraphComplement of G1 by
A41,
Def7;
hence thesis by
A40,
Def9;
end;
suppose
A59: G1 is
loopfull;
now
let v,w be
Vertex of G1;
hereby
given e1 be
object such that
A60: e1
Joins (v,w,G1);
per cases ;
suppose v
<> w;
hence not ex e2 be
object st e2
Joins (v,w,G2) by
A11,
A60;
end;
suppose v
= w;
hence not ex e2 be
object st e2
Joins (v,w,G2) by
GLIB_000: 18;
end;
end;
assume
A61: not ex e2 be
object st e2
Joins (v,w,G2);
per cases ;
suppose v
<> w;
hence ex e1 be
object st e1
Joins (v,w,G1) by
A11,
A61;
end;
suppose v
= w;
hence ex e1 be
object st e1
Joins (v,w,G1) by
A59;
end;
end;
then
A62: G2 is
LGraphComplement of G1 by
A10,
Def7;
G2 is
removeLoops of G2 by
GLIB_009: 58;
hence thesis by
A62,
Def9;
end;
end;
theorem ::
GLIB_012:99
Th99: for G1 be
_Graph, G2 be
simple
_Graph holds G2 is
GraphComplement of G1 iff (
the_Vertices_of G2)
= (
the_Vertices_of G1) & (
the_Edges_of G2)
misses (
the_Edges_of G1) & for v1,w1 be
Vertex of G1, v2,w2 be
Vertex of G2 st v1
= v2 & w1
= w2 & v1
<> w1 holds (v1,w1)
are_adjacent iff not (v2,w2)
are_adjacent
proof
let G1 be
_Graph, G2 be
simple
_Graph;
hereby
assume
A1: G2 is
GraphComplement of G1;
hence (
the_Vertices_of G2)
= (
the_Vertices_of G1) & (
the_Edges_of G2)
misses (
the_Edges_of G1) by
Th98;
let v1,w1 be
Vertex of G1, v2,w2 be
Vertex of G2;
assume
A2: v1
= v2 & w1
= w2 & v1
<> w1;
hereby
assume (v1,w1)
are_adjacent ;
then ex e1 be
object st e1
Joins (v1,w1,G1) by
CHORD:def 3;
then not ex e2 be
object st e2
Joins (v1,w1,G2) by
A1,
A2,
Th98;
hence not (v2,w2)
are_adjacent by
A2,
CHORD:def 3;
end;
assume not (v2,w2)
are_adjacent ;
then not ex e2 be
object st e2
Joins (v1,w1,G2) by
A2,
CHORD:def 3;
then ex e1 be
object st e1
Joins (v1,w1,G1) by
A1,
A2,
Th98;
hence (v1,w1)
are_adjacent by
CHORD:def 3;
end;
assume that
A3: (
the_Vertices_of G2)
= (
the_Vertices_of G1) & (
the_Edges_of G2)
misses (
the_Edges_of G1) and
A4: for v1,w1 be
Vertex of G1, v2,w2 be
Vertex of G2 st v1
= v2 & w1
= w2 & v1
<> w1 holds (v1,w1)
are_adjacent iff not (v2,w2)
are_adjacent ;
now
let v1,w1 be
Vertex of G1;
assume
A5: v1
<> w1;
reconsider v2 = v1, w2 = w1 as
Vertex of G2 by
A3;
hereby
assume ex e1 be
object st e1
Joins (v1,w1,G1);
then (v1,w1)
are_adjacent by
CHORD:def 3;
then not (v2,w2)
are_adjacent by
A5,
A4;
hence not ex e2 be
object st e2
Joins (v1,w1,G2) by
CHORD:def 3;
end;
assume not ex e2 be
object st e2
Joins (v1,w1,G2);
then not (v2,w2)
are_adjacent by
CHORD:def 3;
then (v1,w1)
are_adjacent by
A5,
A4;
hence ex e1 be
object st e1
Joins (v1,w1,G1) by
CHORD:def 3;
end;
hence thesis by
A3,
Th98;
end;
theorem ::
GLIB_012:100
Th100: for G1 be
_Graph, G2 be
GraphComplement of G1, e1,e2,v,w be
object holds e1
Joins (v,w,G1) implies not e2
Joins (v,w,G2)
proof
let G1 be
_Graph, G2 be
GraphComplement of G1, e1,e2,v,w be
object;
assume
A1: e1
Joins (v,w,G1);
per cases ;
suppose
A2: v
<> w;
v
in (
the_Vertices_of G1) & w
in (
the_Vertices_of G1) by
A1,
GLIB_000: 13;
hence thesis by
A1,
A2,
Th98;
end;
suppose v
= w;
hence thesis by
GLIB_000: 18;
end;
end;
theorem ::
GLIB_012:101
Th101: for G1 be
_Graph, G2 be
SimpleGraph of G1 holds for G3 be
GraphComplement of G1 holds G3 is
GraphComplement of G2
proof
let G1 be
_Graph, G2 be
SimpleGraph of G1, G3 be
GraphComplement of G1;
consider E be
RepEdgeSelection of G1 such that
A1: G2 is
inducedSubgraph of G1, (
the_Vertices_of G1), (E
\ (G1
.loops() )) by
GLIB_009:def 9;
(
the_Vertices_of G1)
c= (
the_Vertices_of G1) & (
the_Edges_of G1)
= (G1
.edgesBetween (
the_Vertices_of G1)) by
GLIB_000: 34;
then
A2: (
the_Vertices_of G2)
= (
the_Vertices_of G1) & (
the_Edges_of G2)
= (E
\ (G1
.loops() )) by
A1,
GLIB_000:def 37;
then
A3: (
the_Vertices_of G3)
= (
the_Vertices_of G2) by
Th98;
(
the_Edges_of G3)
misses (
the_Edges_of G1) by
Th98;
then
A4: (
the_Edges_of G3)
misses (
the_Edges_of G2) by
XBOOLE_1: 63;
now
let v,w be
Vertex of G2;
assume
A5: v
<> w;
A6: v is
Vertex of G1 & w is
Vertex of G1 by
GLIB_000:def 33;
reconsider v1 = v, w1 = w as
Vertex of G1 by
GLIB_000:def 33;
hereby
given e2 be
object such that
A7: e2
Joins (v,w,G2);
A8: e2
Joins (v,w,G1) by
A7,
GLIB_000: 72;
given e3 be
object such that
A9: e3
Joins (v,w,G3);
thus contradiction by
A8,
A9,
Th100;
end;
assume not ex e3 be
object st e3
Joins (v,w,G3);
then
consider e1 be
object such that
A10: e1
Joins (v,w,G1) by
A6,
A5,
Th98;
consider e2 be
object such that
A11: e2
Joins (v,w,G1) & e2
in E and for e9 be
object st e9
Joins (v,w,G1) & e9
in E holds e9
= e2 by
A10,
GLIB_009:def 5;
take e2;
not e2
in (G1
.loops() ) by
A5,
A11,
GLIB_009: 46;
then e2
in (
the_Edges_of G2) by
A2,
A11,
XBOOLE_0:def 5;
hence e2
Joins (v,w,G2) by
A11,
GLIB_000: 73;
end;
hence thesis by
A3,
A4,
Th98;
end;
theorem ::
GLIB_012:102
Th102: for G1,G2 be
_Graph holds for G3 be
SimpleGraph of G1, G4 be
SimpleGraph of G2 holds for G5 be
GraphComplement of G1, G6 be
GraphComplement of G2 st G4 is G3
-isomorphic holds G6 is G5
-isomorphic
proof
let G1,G2 be
_Graph;
let G3 be
SimpleGraph of G1, G4 be
SimpleGraph of G2;
let G5 be
GraphComplement of G1, G6 be
GraphComplement of G2;
A1: G5 is
GraphComplement of G3 & G6 is
GraphComplement of G4 by
Th101;
assume G4 is G3
-isomorphic;
then
consider f be
PVertexMapping of G3, G4 such that
A2: f is
isomorphism by
GLIB_011: 49;
A3: (
the_Vertices_of G3)
= (
the_Vertices_of G5) & (
the_Vertices_of G4)
= (
the_Vertices_of G6) by
A1,
Th98;
then
reconsider g = f as
PartFunc of (
the_Vertices_of G5), (
the_Vertices_of G6);
now
let v,w,e be
object;
assume
A4: v
in (
dom g) & w
in (
dom g) & e
Joins (v,w,G5);
then
A5: v
<> w by
GLIB_000: 18;
then
A6: (g
. v)
<> (g
. w) by
A2,
A4,
FUNCT_1:def 4;
A7: not ex e3 be
object st e3
Joins (v,w,G3) by
A1,
A3,
A4,
A5,
Th98;
thus ex e6 be
object st e6
Joins ((g
. v),(g
. w),G6)
proof
assume
A8: not ex e6 be
object st e6
Joins ((g
. v),(g
. w),G6);
(g
. v)
in (
rng f) & (g
. w)
in (
rng f) by
A4,
FUNCT_1: 3;
then
consider e4 be
object such that
A9: e4
Joins ((g
. v),(g
. w),G4) by
A1,
A6,
A8,
Th98;
consider e3 be
object such that
A10: e3
Joins (v,w,G3) by
A2,
A4,
A9,
GLIB_011: 2;
thus contradiction by
A7,
A10;
end;
end;
then
reconsider g as
PVertexMapping of G5, G6 by
GLIB_011: 1;
now
let v,w,e6 be
object;
assume
A11: v
in (
dom g) & w
in (
dom g) & e6
Joins ((g
. v),(g
. w),G6);
then
A12: (g
. v)
<> (g
. w) by
GLIB_000: 18;
A13: v
in (
the_Vertices_of G3) & w
in (
the_Vertices_of G3) by
A3,
A11;
(g
. v)
in (
rng f) & (g
. w)
in (
rng f) by
A11,
FUNCT_1: 3;
then
A14: not ex e4 be
object st e4
Joins ((g
. v),(g
. w),G4) by
A1,
A11,
A12,
Th98;
thus ex e5 be
object st e5
Joins (v,w,G5)
proof
assume not ex e5 be
object st e5
Joins (v,w,G5);
then
consider e3 be
object such that
A15: e3
Joins (v,w,G3) by
A1,
A12,
A13,
Th98;
consider e4 be
object such that
A16: e4
Joins ((f
. v),(f
. w),G4) by
A11,
A15,
GLIB_011: 1;
thus contradiction by
A14,
A16;
end;
end;
then g is
continuous by
GLIB_011: 2;
hence thesis by
A2,
A3,
GLIB_011: 49;
end;
theorem ::
GLIB_012:103
Th103: for G1 be
_Graph, G2 be G1
-isomorphic
_Graph holds for G3 be
GraphComplement of G1, G4 be
GraphComplement of G2 holds G4 is G3
-isomorphic
proof
let G1 be
_Graph, G2 be G1
-isomorphic
_Graph;
let G3 be
GraphComplement of G1, G4 be
GraphComplement of G2;
set G5 = the
SimpleGraph of G1;
set G6 = the
SimpleGraph of G2;
G6 is G5
-isomorphic by
GLIB_010: 172;
hence thesis by
Th102;
end;
theorem ::
GLIB_012:104
Th104: for G1 be
_Graph, G2,G3 be
GraphComplement of G1 holds G3 is G2
-isomorphic
proof
let G1 be
_Graph, G2,G3 be
GraphComplement of G1;
G1 is G1
-isomorphic by
GLIB_010: 53;
hence thesis by
Th103;
end;
theorem ::
GLIB_012:105
Th105: for G1 be
_Graph, v be
object, V be
Subset of (
the_Vertices_of G1) holds for G2 be
addAdjVertexAll of G1, v, V holds for G3 be
GraphComplement of G1 st not v
in (
the_Vertices_of G1) & (
the_Edges_of G2)
misses (
the_Edges_of G3) holds ex G4 be
addAdjVertexAll of G3, v, ((
the_Vertices_of G1)
\ V) st G4 is
GraphComplement of G2
proof
let G1 be
_Graph, v be
object, V be
Subset of (
the_Vertices_of G1);
let G2 be
addAdjVertexAll of G1, v, V;
let G3 be
GraphComplement of G1;
assume
A1: not v
in (
the_Vertices_of G1) & (
the_Edges_of G2)
misses (
the_Edges_of G3);
consider E0 be
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 be
object st v1
in V holds ex e1 be
object st e1
in E0 & e1
Joins (v1,v,G2) & for e2 be
object st e2
Joins (v1,v,G2) holds e1
= e2 by
A1,
GLIB_007:def 4;
per cases ;
suppose
A3: ((
the_Vertices_of G1)
\ V)
<>
{} ;
set E = the set of all
[
{(
the_Edges_of G2), (
the_Edges_of G3)}, w] where w be
Element of ((
the_Vertices_of G1)
\ V);
deffunc
S(
object) = ($1
`2 );
consider h be
Function such that
A4: (
dom h)
= E & for x be
object st x
in E holds (h
. x)
=
S(x) from
FUNCT_1:sch 3;
set s = ((
the_Source_of G3)
+* h);
A5: (
dom s)
= ((
dom (
the_Source_of G3))
\/ (
dom h)) by
FUNCT_4:def 1
.= ((
the_Edges_of G3)
\/ E) by
A4,
FUNCT_2:def 1;
now
let y be
object;
hereby
set x =
[
{(
the_Edges_of G2), (
the_Edges_of G3)}, y];
assume y
in ((
the_Vertices_of G1)
\ V);
then
A6: x
in E;
then (h
. x)
= (x
`2 ) by
A4
.= y;
hence y
in (
rng h) by
A4,
A6,
FUNCT_1:def 3;
end;
assume y
in (
rng h);
then
consider x be
object such that
A7: x
in (
dom h) & (h
. x)
= y by
FUNCT_1:def 3;
reconsider x as
set by
TARSKI: 1;
consider w be
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;
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 s)
c= ((
rng (
the_Source_of G3))
\/ (
rng h)) by
FUNCT_4: 17;
then
A11: (
rng s)
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 as
Function of ((
the_Edges_of G3)
\/ E), ((
the_Vertices_of G3)
\/
{v}) by
A5,
A11,
XBOOLE_1: 1,
FUNCT_2: 2;
set t = ((
the_Target_of G3)
+* (E
--> v));
A12: (
dom t)
= ((
dom (
the_Target_of G3))
\/ (
dom (E
--> v))) by
FUNCT_4:def 1
.= ((
the_Edges_of G3)
\/ E) 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 t)
c= ((
rng (
the_Target_of G3))
\/ (
rng (E
--> v))) by
FUNCT_4: 17;
(
rng (E
--> v))
c= ((
the_Vertices_of G3)
\/
{v}) by
A14,
XBOOLE_1: 1;
then ((
rng (
the_Target_of G3))
\/ (
rng (E
--> v)))
c= ((
the_Vertices_of G3)
\/
{v}) by
A13,
XBOOLE_1: 8;
then
reconsider t as
Function of ((
the_Edges_of G3)
\/ E), ((
the_Vertices_of G3)
\/
{v}) by
A12,
A15,
XBOOLE_1: 1,
FUNCT_2: 2;
A16: E
misses (
the_Edges_of G3)
proof
assume E
meets (
the_Edges_of G3);
then
consider e be
object such that
A17: e
in E & e
in (
the_Edges_of G3) by
XBOOLE_0: 3;
reconsider e as
set by
TARSKI: 1;
consider w be
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;
end;
A21: E
misses (
the_Edges_of G2)
proof
assume E
meets (
the_Edges_of G2);
then
consider e be
object such that
A22: e
in E & e
in (
the_Edges_of G2) by
XBOOLE_0: 3;
reconsider e as
set by
TARSKI: 1;
consider w be
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;
end;
set G4 = (
createGraph (((
the_Vertices_of G3)
\/
{v}),((
the_Edges_of G3)
\/ E),s,t));
now
(
the_Vertices_of G4)
= ((
the_Vertices_of G3)
\/
{v}) by
GLIB_000: 6;
hence (
the_Vertices_of G3)
c= (
the_Vertices_of G4) by
XBOOLE_1: 7;
(
the_Edges_of G4)
= ((
the_Edges_of G3)
\/ E) by
GLIB_000: 6;
hence (
the_Edges_of G3)
c= (
the_Edges_of G4) by
XBOOLE_1: 7;
let e be
set;
assume
A26: e
in (
the_Edges_of G3);
then e
in ((
the_Edges_of G3)
\/ E) by
XBOOLE_0:def 3;
then
A27: not e
in E by
A16,
A26,
XBOOLE_0: 5;
then
A28: not e
in (
dom (E
--> v));
thus ((
the_Source_of G3)
. e)
= (s
. e) by
A4,
A27,
FUNCT_4: 11
.= ((
the_Source_of G4)
. e) by
GLIB_000: 6;
thus ((
the_Target_of G3)
. e)
= (t
. e) by
A28,
FUNCT_4: 11
.= ((
the_Target_of G4)
. e) by
GLIB_000: 6;
end;
then
reconsider G4 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
thus (
the_Vertices_of G4)
= ((
the_Vertices_of G3)
\/
{v}) by
GLIB_000: 6;
hereby
let e be
object;
thus not e
Joins (v,v,G4)
proof
assume
A30: e
Joins (v,v,G4);
per cases by
GLIB_006: 72;
suppose e
Joins (v,v,G3);
then v
in (
the_Vertices_of G3) by
GLIB_000: 13;
hence contradiction by
A1,
Th98;
end;
suppose
A31: not e
in (
the_Edges_of G3);
e
in (
the_Edges_of G4) by
A30,
GLIB_000:def 13;
then e
in ((
the_Edges_of G3)
\/ E) by
GLIB_000: 6;
then
A32: e
in E by
A16,
A31,
XBOOLE_0: 5;
then
consider w be
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) by
GLIB_000: 6
.= (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;
end;
end;
let v1 be
object;
hereby
assume
A34: not v1
in ((
the_Vertices_of G1)
\ V);
assume
A35: e
Joins (v1,v,G4);
per cases by
GLIB_006: 72;
suppose e
Joins (v1,v,G3);
then v
in (
the_Vertices_of G3) by
GLIB_000: 13;
hence contradiction by
A1,
Th98;
end;
suppose
A36: not e
in (
the_Edges_of G3);
e
in (
the_Edges_of G4) by
A35,
GLIB_000:def 13;
then e
in ((
the_Edges_of G3)
\/ E) by
GLIB_000: 6;
then
A37: e
in E by
A36,
XBOOLE_0:def 3;
then
consider w be
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) by
GLIB_000: 6
.= (h
. e) by
A4,
A37,
FUNCT_4: 13
.= (
[
{(
the_Edges_of G2), (
the_Edges_of G3)}, w]
`2 ) by
A4,
A37,
A38
.= w;
per cases by
A35,
GLIB_000:def 13;
suppose w
= v;
then v
in ((
the_Vertices_of G1)
\ V) by
A3;
hence contradiction by
A1;
end;
suppose w
= v1;
hence contradiction by
A3,
A34;
end;
end;
end;
let v2 be
object;
assume
A39: v1
<> v & v2
<> v & e
DJoins (v1,v2,G4);
e
in (
the_Edges_of G3)
proof
assume
A40: not e
in (
the_Edges_of G3);
e
in (
the_Edges_of G4) by
A39,
GLIB_000:def 14;
then e
in ((
the_Edges_of G3)
\/ E) by
GLIB_000: 6;
then
A41: e
in E by
A40,
XBOOLE_0:def 3;
then
A42: e
in (
dom (E
--> v));
((
the_Target_of G4)
. e)
= (t
. e) by
GLIB_000: 6
.= ((E
--> v)
. e) by
A42,
FUNCT_4: 13
.= v by
A41,
FUNCOP_1: 7;
hence contradiction by
A39,
GLIB_000:def 14;
end;
hence e
DJoins (v1,v2,G3) by
A39,
GLIB_006: 71;
end;
take E;
now
let x1,x2 be
object;
assume
A43: x1
in (
dom h) & x2
in (
dom h) & (h
. x1)
= (h
. x2);
then
consider w1 be
Element of ((
the_Vertices_of G1)
\ V) such that
A44: x1
=
[
{(
the_Edges_of G2), (
the_Edges_of G3)}, w1] by
A4;
consider w2 be
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;
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;
thus E
misses (
the_Edges_of G3) by
A16;
thus (
the_Edges_of G4)
= ((
the_Edges_of G3)
\/ E) by
GLIB_000: 6;
let v1 be
object;
assume
A47: v1
in ((
the_Vertices_of G1)
\ V);
set e1 =
[
{(
the_Edges_of G2), (
the_Edges_of G3)}, v1];
take e1;
thus
A48: e1
in E by
A47;
then e1
in ((
the_Edges_of G3)
\/ E) by
XBOOLE_0:def 3;
then
A49: e1
in (
the_Edges_of G4) by
GLIB_000: 6;
A50: e1
in (
dom (E
--> v)) by
A48;
A51: ((
the_Source_of G4)
. e1)
= (s
. e1) by
GLIB_000: 6
.= (h
. e1) by
A4,
A48,
FUNCT_4: 13
.= (e1
`2 ) by
A4,
A48
.= v1;
((
the_Target_of G4)
. e1)
= (t
. e1) by
GLIB_000: 6
.= ((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;
let e2 be
object;
assume
A52: e2
Joins (v1,v,G4);
not e2
Joins (v1,v,G3)
proof
assume e2
Joins (v1,v,G3);
then v
in (
the_Vertices_of G3) by
GLIB_000: 13;
hence contradiction by
A1,
Th98;
end;
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) by
GLIB_000: 6;
then
A54: e2
in E by
A53,
XBOOLE_0:def 3;
then
consider w be
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) by
GLIB_000: 6
.= (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;
then v
in ((
the_Vertices_of G1)
\ V) by
A3,
A56;
hence contradiction by
A1;
end;
hence e1
= e2 by
A55;
end;
then
reconsider G4 as
addAdjVertexAll of G3, v, ((
the_Vertices_of G1)
\ V) by
A29,
GLIB_007:def 4;
take G4;
now
thus (
the_Vertices_of G4)
= ((
the_Vertices_of G3)
\/
{v}) by
GLIB_000: 6
.= ((
the_Vertices_of G1)
\/
{v}) by
Th98
.= (
the_Vertices_of G2) by
A1,
GLIB_007:def 4;
((
the_Edges_of G3)
\/ E)
misses (
the_Edges_of G2) by
A1,
A21,
XBOOLE_1: 70;
hence (
the_Edges_of G4)
misses (
the_Edges_of G2) by
GLIB_000: 6;
let u,w be
Vertex of G2;
assume
A57: u
<> w;
hereby
given e1 be
object such that
A58: e1
Joins (u,w,G2);
per cases by
A58,
GLIB_006: 72;
suppose
A59: e1
Joins (u,w,G1);
then u is
Vertex of G1 & w is
Vertex of G1 by
GLIB_000: 13;
then
A60: not ex e2 be
object st e2
Joins (u,w,G3) by
A57,
A59,
Th98;
u
<> v & w
<> v by
A1,
A59,
GLIB_000: 13;
hence not ex e2 be
object st e2
Joins (u,w,G4) by
A29,
A60,
GLIB_007: 49;
end;
suppose
A61: not e1
in (
the_Edges_of G1);
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 not ex e2 be
object st e2
Joins (u,w,G4)
proof
given e2 be
object such that
A65: e2
Joins (u,w,G4);
A66: not e2
in (
the_Edges_of G3)
proof
assume e2
in (
the_Edges_of G3);
then e2
Joins (u,w,G3) by
A65,
GLIB_006: 72;
then v
in (
the_Vertices_of G3) by
A64,
GLIB_000: 13;
hence contradiction by
A1,
Th98;
end;
e2
in (
the_Edges_of G4) by
A65,
GLIB_000:def 13;
then e2
in ((
the_Edges_of G3)
\/ E) by
GLIB_000: 6;
then
A67: e2
in E by
A66,
XBOOLE_0:def 3;
then
consider x be
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) by
GLIB_000: 6
.= (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;
per cases by
A65,
GLIB_000:def 13;
suppose u
in (
the_Vertices_of G1) & not u
in V;
hence contradiction by
A1,
A63,
TARSKI:def 1;
end;
suppose w
in (
the_Vertices_of G1) & not w
in V;
hence contradiction by
A1,
A63,
TARSKI:def 1;
end;
end;
end;
end;
assume
A69: not ex e2 be
object st e2
Joins (u,w,G4);
A70: not ex e2 be
object st e2
Joins (u,w,G3) by
A69,
GLIB_006: 70;
per cases ;
suppose
A71: u
= v;
A72: not w
in
{v} by
A57,
A71,
TARSKI:def 1;
w
in V
proof
assume
A73: not w
in V;
(
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: e1
in E by
A74;
then
A76: e1
in (
dom (E
--> v));
e1
in ((
the_Edges_of G3)
\/ E) by
A75,
XBOOLE_0:def 3;
then
A77: e1
in (
the_Edges_of G4) by
GLIB_000: 6;
A78: ((
the_Source_of G4)
. e1)
= (s
. e1) by
GLIB_000: 6
.= (h
. e1) by
A4,
A75,
FUNCT_4: 13
.= (
[
{(
the_Edges_of G2), (
the_Edges_of G3)}, w]
`2 ) by
A4,
A75
.= w;
((
the_Target_of G4)
. e1)
= (t
. e1) by
GLIB_000: 6
.= ((E
--> v)
. e1) by
A76,
FUNCT_4: 13
.= v by
A75,
FUNCOP_1: 7;
then e1
Joins (v,w,G4) by
A77,
A78,
GLIB_000:def 13;
hence contradiction by
A69,
A71;
end;
then
consider e1 be
object such that
A79: e1
in E0 & e1
Joins (w,v,G2) and for e2 be
object st e2
Joins (w,v,G2) holds e1
= e2 by
A2;
take e1;
thus e1
Joins (u,w,G2) by
A71,
A79,
GLIB_000: 14;
end;
suppose
A80: w
= v;
A81: not u
in
{v} by
A57,
A80,
TARSKI:def 1;
u
in V
proof
assume
A82: not u
in V;
(
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: e1
in E by
A83;
then
A85: e1
in (
dom (E
--> v));
e1
in ((
the_Edges_of G3)
\/ E) by
A84,
XBOOLE_0:def 3;
then
A86: e1
in (
the_Edges_of G4) by
GLIB_000: 6;
A87: ((
the_Source_of G4)
. e1)
= (s
. e1) by
GLIB_000: 6
.= (h
. e1) by
A4,
A84,
FUNCT_4: 13
.= (
[
{(
the_Edges_of G2), (
the_Edges_of G3)}, u]
`2 ) by
A4,
A84
.= u;
((
the_Target_of G4)
. e1)
= (t
. e1) by
GLIB_000: 6
.= ((E
--> v)
. e1) by
A85,
FUNCT_4: 13
.= v by
A84,
FUNCOP_1: 7;
then e1
Joins (u,v,G4) by
A86,
A87,
GLIB_000:def 13;
hence contradiction by
A69,
A80;
end;
then
consider e1 be
object such that
A88: e1
in E0 & e1
Joins (u,v,G2) and for e2 be
object st e2
Joins (u,v,G2) holds e1
= e2 by
A2;
take e1;
thus e1
Joins (u,w,G2) by
A80,
A88;
end;
suppose u
<> v & w
<> v;
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 be
object such that
A90: e1
Joins (u,w,G1) by
A57,
A70,
Th98;
take e1;
thus e1
Joins (u,w,G2) by
A90,
GLIB_006: 70;
end;
end;
hence thesis by
Th98;
end;
suppose
A91: ((
the_Vertices_of G1)
\ V)
=
{} ;
take G4 = the
addAdjVertexAll of G3, v, ((
the_Vertices_of G1)
\ V);
A92: G4 is
addVertex of G3, v by
A91,
GLIB_007: 55;
now
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;
(
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;
let u,w be
Vertex of G2;
assume
A93: u
<> w;
hereby
given e1 be
object such that
A94: e1
Joins (u,w,G2);
per cases by
A94,
GLIB_006: 72;
suppose
A95: e1
Joins (u,w,G1);
then u is
Vertex of G1 & w is
Vertex of G1 by
GLIB_000: 13;
then not ex e2 be
object st e2
Joins (u,w,G3) by
A93,
A95,
Th98;
hence not ex e2 be
object st e2
Joins (u,w,G4) by
A92,
GLIB_006: 87;
end;
suppose
A96: not e1
in (
the_Edges_of G1);
A97: (
the_Edges_of G2)
= ((
the_Edges_of G1)
\/ (G2
.edgesBetween (V,
{v}))) by
A1,
GLIB_007: 59;
e1
in (
the_Edges_of G2) by
A94,
GLIB_000:def 13;
then e1
in (G2
.edgesBetween (V,
{v})) by
A96,
A97,
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 u
in V & w
in
{v} or u
in
{v} & w
in V by
A94,
GLIB_000:def 13;
then u
in V & w
= v or u
= v & w
in V by
TARSKI:def 1;
then not u
in (
the_Vertices_of G3) or not w
in (
the_Vertices_of G3) by
A1,
Th98;
then not ex e2 be
object st e2
Joins (u,w,G3) by
GLIB_000: 13;
hence not ex e2 be
object st e2
Joins (u,w,G4) by
A92,
GLIB_006: 87;
end;
end;
assume not ex e2 be
object st e2
Joins (u,w,G4);
then
A98: not ex e2 be
object st 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 ;
suppose
A101: u
= v;
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 be
object such that
A102: e1
in E0 & e1
Joins (w,v,G2) and for e2 be
object st e2
Joins (w,v,G2) holds e1
= e2 by
A2,
A100;
take e1;
thus e1
Joins (u,w,G2) by
A101,
A102,
GLIB_000: 14;
end;
suppose
A103: w
= v;
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 be
object such that
A104: e1
in E0 & e1
Joins (u,v,G2) and for e2 be
object st e2
Joins (u,v,G2) holds e1
= e2 by
A2,
A100;
take e1;
thus e1
Joins (u,w,G2) by
A103,
A104;
end;
suppose u
<> v & w
<> v;
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 be
object such that
A105: e1
Joins (u,w,G1) by
A93,
A98,
Th98;
take e1;
thus e1
Joins (u,w,G2) by
A105,
GLIB_006: 70;
end;
end;
hence thesis by
Th98;
end;
end;
theorem ::
GLIB_012:106
for G1 be
_Graph, v be
object, G2 be
addVertex of G1, v holds for G3 be
GraphComplement of G1 st not v
in (
the_Vertices_of G1) holds ex G4 be
addAdjVertexAll of G3, v st G4 is
GraphComplement of G2
proof
let G1 be
_Graph, v be
object, G2 be
addVertex of G1, v;
let G3 be
GraphComplement of G1;
assume
A1: not v
in (
the_Vertices_of G1);
(
the_Edges_of G1)
misses (
the_Edges_of G3) by
Th98;
then
A2: (
the_Edges_of G2)
misses (
the_Edges_of G3) by
GLIB_006:def 10;
{} is
Subset of (
the_Vertices_of G1) & G2 is
addAdjVertexAll of G1, v,
{} by
XBOOLE_1: 2,
GLIBPRE0: 53;
then
consider G4 be
addAdjVertexAll of G3, v, ((
the_Vertices_of G1)
\
{} ) such that
A3: G4 is
GraphComplement of G2 by
A1,
A2,
Th105;
reconsider G4 as
addAdjVertexAll of G3, v by
Th98;
take G4;
thus thesis by
A3;
end;
theorem ::
GLIB_012:107
for G1 be
_Graph, v be
object, G2 be
addAdjVertexAll of G1, v holds for G3 be
GraphComplement of G1, G4 be
addVertex of G3, v st not v
in (
the_Vertices_of G1) & (
the_Edges_of G2)
misses (
the_Edges_of G3) holds G4 is
GraphComplement of G2
proof
let G1 be
_Graph, v be
object, G2 be
addAdjVertexAll of G1, v;
let G3 be
GraphComplement of G1, G4 be
addVertex of G3, v;
assume
A1: not v
in (
the_Vertices_of G1) & (
the_Edges_of G2)
misses (
the_Edges_of G3);
(
the_Vertices_of G1)
c= (
the_Vertices_of G1);
then
consider G9 be
addAdjVertexAll of G3, v, ((
the_Vertices_of G1)
\ (
the_Vertices_of G1)) such that
A2: G9 is
GraphComplement of G2 by
A1,
Th105;
((
the_Vertices_of G1)
\ (
the_Vertices_of G1))
=
{} by
XBOOLE_1: 37;
then G9 is
addVertex of G3, v by
GLIB_007: 55;
then G4
== G9 by
GLIB_006: 77;
hence thesis by
A2,
Th97;
end;
theorem ::
GLIB_012:108
Th108: for G1 be
_Graph, V be non
empty
Subset of (
the_Vertices_of G1) holds for G2 be
inducedSubgraph of G1, V holds for G3 be
GraphComplement of G1, G4 be
inducedSubgraph of G3, V holds G4 is
GraphComplement of G2
proof
let G1 be
_Graph, V be non
empty
Subset of (
the_Vertices_of G1);
let G2 be
inducedSubgraph of G1, V;
let G3 be
GraphComplement of G1, G4 be
inducedSubgraph of G3, V;
A1: V is non
empty
Subset of (
the_Vertices_of G3) by
Th98;
then
A2: (
the_Vertices_of G4)
= V by
GLIB_000:def 37
.= (
the_Vertices_of G2) by
GLIB_000:def 37;
A3: (
the_Edges_of G4)
misses (
the_Edges_of G2)
proof
assume (
the_Edges_of G4)
meets (
the_Edges_of G2);
then
consider e be
object such that
A4: e
in (
the_Edges_of G4) & e
in (
the_Edges_of G2) by
XBOOLE_0: 3;
A5: e
in ((
the_Edges_of G1)
\/ (
the_Edges_of G3)) by
A4,
XBOOLE_0:def 3;
(
the_Edges_of G3)
misses (
the_Edges_of G1) by
Th98;
hence contradiction by
A4,
A5,
XBOOLE_0: 5;
end;
now
let v,w be
Vertex of G2;
assume
A6: v
<> w;
hereby
given e2 be
object such that
A7: e2
Joins (v,w,G2);
A8: e2
Joins (v,w,G1) by
A7,
GLIB_000: 72;
given e4 be
object such that
A9: e4
Joins (v,w,G4);
e4
Joins (v,w,G3) by
A9,
GLIB_000: 72;
hence contradiction by
A8,
Th100;
end;
assume
A10: not ex e4 be
object st e4
Joins (v,w,G4);
ex e1 be
object st e1
Joins (v,w,G1)
proof
assume
A11: not ex e1 be
object st e1
Joins (v,w,G1);
(
the_Vertices_of G2)
c= (
the_Vertices_of G1);
then v is
Vertex of G1 & w is
Vertex of G1 by
TARSKI:def 3;
then
consider e3 be
object such that
A12: e3
Joins (v,w,G3) by
A6,
A11,
Th98;
(
the_Vertices_of G2)
= V by
GLIB_000:def 37;
then e3
in (G3
.edgesBetween V) by
A12,
GLIB_000: 32;
then e3
in (
the_Edges_of G4) & e3 is
set by
A1,
GLIB_000:def 37;
then e3
Joins (v,w,G4) by
A12,
GLIB_000: 73;
hence contradiction by
A10;
end;
then
consider e1 be
object such that
A13: e1
Joins (v,w,G1);
take e1;
(
the_Vertices_of G2)
= V by
GLIB_000:def 37;
then e1
in (G1
.edgesBetween V) by
A13,
GLIB_000: 32;
then e1
in (
the_Edges_of G2) & e1 is
set by
GLIB_000:def 37;
hence e1
Joins (v,w,G2) by
A13,
GLIB_000: 73;
end;
hence thesis by
A2,
A3,
Th98;
end;
theorem ::
GLIB_012:109
for G1 be
_Graph, V be
proper
Subset of (
the_Vertices_of G1) holds for G2 be
removeVertices of G1, V holds for G3 be
GraphComplement of G1, G4 be
removeVertices of G3, V holds G4 is
GraphComplement of G2
proof
let G1 be
_Graph, V be
proper
Subset of (
the_Vertices_of G1);
let G2 be
removeVertices of G1, V;
let G3 be
GraphComplement of G1, G4 be
removeVertices of G3, V;
((
the_Vertices_of G1)
\ V) is non
empty
Subset of (
the_Vertices_of G1) & ((
the_Vertices_of G1)
\ V)
= ((
the_Vertices_of G3)
\ V) by
Th98,
XBOOLE_1: 105,
GLIBPRE0: 6;
hence thesis by
Th108;
end;
theorem ::
GLIB_012:110
Th110: for G1 be
simple
_Graph, G2 be
GraphComplement of G1 holds G1 is
GraphComplement of G2
proof
let G1 be
simple
_Graph, G2 be
GraphComplement of G1;
A1: (
the_Vertices_of G1)
= (
the_Vertices_of G2) & (
the_Edges_of G1)
misses (
the_Edges_of G2) by
Th98;
now
let v,w be
Vertex of G2;
assume
A2: v
<> w;
v is
Vertex of G1 & w is
Vertex of G1 by
Th98;
hence (ex e2 be
object st e2
Joins (v,w,G2)) iff ( not ex e1 be
object st e1
Joins (v,w,G1)) by
A2,
Th98;
end;
hence thesis by
A1,
Th98;
end;
theorem ::
GLIB_012:111
Th111: for G1 be
_Graph, G2 be
GraphComplement of G1 holds (G1
.order() )
= (G2
.order() ) by
Th98;
theorem ::
GLIB_012:112
Th112: for G1 be
_Graph, G2 be
GraphComplement of G1 holds (G1 is
_trivial iff G2 is
_trivial)
proof
let G1 be
_Graph, G2 be
GraphComplement of G1;
hereby
assume G1 is
_trivial;
then 1
= (G1
.order() ) by
GLIB_000: 26
.= (G2
.order() ) by
Th111;
hence G2 is
_trivial by
GLIB_000: 26;
end;
hereby
assume G2 is
_trivial;
then 1
= (G2
.order() ) by
GLIB_000: 26
.= (G1
.order() ) by
Th111;
hence G1 is
_trivial by
GLIB_000: 26;
end;
end;
registration
let G be
_trivial
_Graph;
cluster ->
_trivial for
GraphComplement of G;
coherence by
Th112;
end
registration
let G be non
_trivial
_Graph;
cluster -> non
_trivial for
GraphComplement of G;
coherence by
Th112;
end
theorem ::
GLIB_012:113
Th113: for G1 be
_Graph, G2 be
GraphComplement of G1 holds (G1 is
complete iff G2 is
edgeless) & ((
the_Edges_of G1)
= (G1
.loops() ) iff G2 is
complete)
proof
let G1 be
_Graph, G2 be
GraphComplement of G1;
hereby
assume
A1: G1 is
complete;
now
let v2,w2 be
Vertex of G2;
assume
A2: v2
<> w2;
reconsider v1 = v2, w1 = w2 as
Vertex of G1 by
Th99;
(v1,w1)
are_adjacent by
A1,
A2,
CHORD:def 6;
hence not (v2,w2)
are_adjacent by
A2,
Th99;
end;
hence G2 is
edgeless by
GLIBPRE0: 62;
end;
hereby
assume
A3: G2 is
edgeless;
now
let v1,w1 be
Vertex of G1;
assume
A4: v1
<> w1;
reconsider v2 = v1, w2 = w1 as
Vertex of G2 by
Th99;
not (v2,w2)
are_adjacent by
A3,
A4,
GLIBPRE0: 62;
hence (v1,w1)
are_adjacent by
A4,
Th99;
end;
hence G1 is
complete by
CHORD:def 6;
end;
hereby
assume
A5: (
the_Edges_of G1)
= (G1
.loops() );
now
let v2,w2 be
Vertex of G2;
assume
A6: v2
<> w2;
reconsider v1 = v2, w1 = w2 as
Vertex of G1 by
Th98;
not ex e1 be
object st e1
Joins (v1,w1,G1)
proof
given e1 be
object such that
A7: e1
Joins (v1,w1,G1);
e1
in (G1
.loops() ) by
A5,
A7,
GLIB_000:def 13;
then
consider v9 be
object such that
A8: e1
Joins (v9,v9,G1) by
GLIB_009:def 2;
v1
= v9 & w1
= v9 by
A7,
A8,
GLIB_000: 15;
hence contradiction by
A6;
end;
then ex e2 be
object st e2
Joins (v1,w1,G2) by
A6,
Th98;
hence (v2,w2)
are_adjacent by
CHORD:def 3;
end;
hence G2 is
complete by
CHORD:def 6;
end;
hereby
assume
A9: G2 is
complete;
now
let e be
object;
assume
A10: e
in (
the_Edges_of G1);
then
reconsider v1 = ((
the_Source_of G1)
. e), w1 = ((
the_Target_of G1)
. e) as
Vertex of G1 by
FUNCT_2: 5;
A11: e
Joins (v1,w1,G1) by
A10,
GLIB_000:def 13;
then
A12: (v1,w1)
are_adjacent by
CHORD:def 3;
reconsider v2 = v1, w2 = w1 as
Vertex of G2 by
Th99;
assume not e
in (G1
.loops() );
then
A13: v1
<> w1 by
A11,
GLIB_009:def 2;
then not (v2,w2)
are_adjacent by
A12,
Th99;
hence contradiction by
A9,
A13,
CHORD:def 6;
end;
then (
the_Edges_of G1)
c= (G1
.loops() ) by
TARSKI:def 3;
hence (
the_Edges_of G1)
= (G1
.loops() ) by
XBOOLE_0:def 10;
end;
thus thesis;
end;
registration
let G be
complete
_Graph;
cluster ->
edgeless for
GraphComplement of G;
coherence by
Th113;
end
registration
let G be non
complete
_Graph;
cluster -> non
edgeless for
GraphComplement of G;
coherence by
Th113;
end
registration
let G be
edgeless
_Graph;
cluster ->
complete for
GraphComplement of G;
coherence
proof
(
the_Edges_of G)
=
{} & (G
.loops() )
=
{} ;
hence thesis by
Th113;
end;
end
registration
let G be non
connected
_Graph;
cluster ->
connected for
GraphComplement of G;
coherence
proof
let G2 be
GraphComplement of G;
consider G9 be
LGraphComplement of G such that
A1: G2 is
removeLoops of G9 by
Def9;
thus thesis by
A1;
end;
end
theorem ::
GLIB_012:114
for G1 be non
_trivial
_Graph, G2 be
GraphComplement of G1 holds for v1 be
Vertex of G1, v2 be
Vertex of G2 st v1
= v2 holds v1 is
isolated implies v2 is non
isolated
proof
let G1 be non
_trivial
_Graph, G2 be
GraphComplement of G1;
let v1 be
Vertex of G1, v2 be
Vertex of G2;
assume
A1: v1
= v2;
assume
A2: v1 is
isolated;
set v9 = the
Element of ((
the_Vertices_of G1)
\
{v1});
((
the_Vertices_of G1)
\
{v1})
<>
{} by
GLIB_000: 20;
then
A3: v9
in ((
the_Vertices_of G1)
\
{v1});
then
reconsider v9 as
Vertex of G1;
A4: v9
<> v1 by
A3,
ZFMISC_1: 56;
not ex e be
object st e
Joins (v1,v9,G1) by
A2,
GLIBPRE0: 21;
then ex e be
object st e
Joins (v1,v9,G2) by
A4,
Th98;
hence v2 is non
isolated by
A1,
GLIBPRE0: 21;
end;
theorem ::
GLIB_012:115
Th115: for G1 be
_Graph, G2 be
GraphComplement of G1 holds for v1 be
Vertex of G1, v2 be
Vertex of G2 st v1
= v2 & (G1
.order() )
= 2 holds (v1 is
endvertex implies v2 is
isolated) & (v1 is
isolated implies v2 is
endvertex)
proof
let G1 be
_Graph, G2 be
GraphComplement of G1;
let v1 be
Vertex of G1, v2 be
Vertex of G2;
assume
A1: v1
= v2 & (G1
.order() )
= 2;
then (G2
.order() )
= 2 by
Th111;
then
consider u1,u2 be
object such that
A2: u1
<> u2 & (
the_Vertices_of G2)
=
{u1, u2} by
CARD_2: 60;
A3: (
the_Vertices_of G1)
= (
the_Vertices_of G2) by
Th98;
then
reconsider u1, u2 as
Vertex of G1 by
A2,
TARSKI:def 2;
hereby
assume v1 is
endvertex;
then
consider e1 be
object such that
A4: (v1
.edgesInOut() )
=
{e1} & not e1
Joins (v1,v1,G1) by
GLIB_000:def 51;
e1
in (v1
.edgesInOut() ) by
A4,
TARSKI:def 1;
then
consider v9 be
Vertex of G1 such that
A5: e1
Joins (v1,v9,G1) by
GLIB_000: 64;
A6: v1
<> v9 by
A4,
A5;
v9
in (
the_Vertices_of G1);
then v9
in (
the_Vertices_of G2) by
Th98;
then
A7: v9
= u1 or v9
= u2 by
A2,
TARSKI:def 2;
assume v2 is non
isolated;
then (v2
.edgesInOut() )
<>
{} by
GLIB_000:def 49;
then
consider e2 be
object such that
A8: e2
in (v2
.edgesInOut() ) by
XBOOLE_0:def 1;
consider u be
Vertex of G2 such that
A9: e2
Joins (v2,u,G2) by
A8,
GLIB_000: 64;
per cases by
A2,
TARSKI:def 2;
suppose v2
= u1 & u
= u1;
hence contradiction by
A9,
GLIB_000: 18;
end;
suppose v2
= u1 & u
= u2;
hence contradiction by
A1,
A5,
A6,
A7,
A9,
Th100;
end;
suppose v2
= u2 & u
= u1;
hence contradiction by
A1,
A5,
A6,
A7,
A9,
Th100;
end;
suppose v2
= u2 & u
= u2;
hence contradiction by
A9,
GLIB_000: 18;
end;
end;
assume
A10: v1 is
isolated;
per cases by
A2,
A3,
TARSKI:def 2;
suppose
A11: v1
= u1;
not ex e1 be
object st e1
Joins (v1,u2,G1) by
A10,
GLIBPRE0: 21;
then
consider e2 be
object such that
A12: e2
Joins (v1,u2,G2) by
A2,
A11,
Th98;
for e be
object holds e
in (v2
.edgesInOut() ) iff e
= e2
proof
let e be
object;
hereby
assume e
in (v2
.edgesInOut() );
then
consider v9 be
Vertex of G2 such that
A13: e
Joins (v2,v9,G2) by
GLIB_000: 64;
v9
= u2
proof
assume v9
<> u2;
then v9
= u1 by
A2,
TARSKI:def 2;
hence contradiction by
A1,
A11,
A13,
GLIB_000: 18;
end;
hence e
= e2 by
A1,
A12,
A13,
GLIB_000:def 20;
end;
reconsider w = u2 as
Vertex of G2 by
A2,
TARSKI:def 2;
assume e
= e2;
then e
Joins (v2,w,G2) & e is
set by
A1,
A12,
TARSKI: 1;
hence e
in (v2
.edgesInOut() ) by
GLIB_000: 64;
end;
then (v2
.edgesInOut() )
=
{e2} by
TARSKI:def 1;
hence thesis by
GLIB_000: 18,
GLIB_000:def 51;
end;
suppose
A14: v1
= u2;
not ex e1 be
object st e1
Joins (v1,u1,G1) by
A10,
GLIBPRE0: 21;
then
consider e2 be
object such that
A15: e2
Joins (v1,u1,G2) by
A2,
A14,
Th98;
for e be
object holds e
in (v2
.edgesInOut() ) iff e
= e2
proof
let e be
object;
hereby
assume e
in (v2
.edgesInOut() );
then
consider v9 be
Vertex of G2 such that
A16: e
Joins (v2,v9,G2) by
GLIB_000: 64;
v9
= u1
proof
assume v9
<> u1;
then v9
= u2 by
A2,
TARSKI:def 2;
hence contradiction by
A1,
A14,
A16,
GLIB_000: 18;
end;
hence e
= e2 by
A1,
A15,
A16,
GLIB_000:def 20;
end;
reconsider w = u1 as
Vertex of G2 by
A2,
TARSKI:def 2;
assume e
= e2;
then e
Joins (v2,w,G2) & e is
set by
A1,
A15,
TARSKI: 1;
hence e
in (v2
.edgesInOut() ) by
GLIB_000: 64;
end;
then (v2
.edgesInOut() )
=
{e2} by
TARSKI:def 1;
hence thesis by
GLIB_000: 18,
GLIB_000:def 51;
end;
end;
theorem ::
GLIB_012:116
for G1 be
simple
_Graph, G2 be
GraphComplement of G1 holds for v1 be
Vertex of G1, v2 be
Vertex of G2 st v1
= v2 & (G1
.order() )
= 2 holds (v1 is
endvertex iff v2 is
isolated) & (v1 is
isolated iff v2 is
endvertex)
proof
let G1 be
simple
_Graph, G2 be
GraphComplement of G1;
let v1 be
Vertex of G1, v2 be
Vertex of G2;
assume
A1: v1
= v2 & (G1
.order() )
= 2;
then G1 is
GraphComplement of G2 & (G2
.order() )
= 2 by
Th110,
Th111;
hence thesis by
A1,
Th115;
end;
theorem ::
GLIB_012:117
for G1 be
_Graph, G2 be
GraphComplement of G1 holds for v1 be
Vertex of G1, v2 be
Vertex of G2 st v1
= v2 & 4
c= (G1
.order() ) holds v1 is
endvertex implies v2 is non
endvertex
proof
let G1 be
_Graph, G2 be
GraphComplement of G1;
let v1 be
Vertex of G1, v2 be
Vertex of G2;
assume
A1: v1
= v2 & 4
c= (G1
.order() );
assume v1 is
endvertex;
then
consider x,y,z be
Vertex of G1 such that
A2: v1
<> x & v1
<> y & v1
<> z & x
<> y & x
<> z & y
<> z and
A3: (v1,x)
are_adjacent & not (v1,y)
are_adjacent & not (v1,z)
are_adjacent by
A1,
GLIBPRE0: 98;
reconsider u = y, w = z as
Vertex of G2 by
Th99;
(v2,u)
are_adjacent & (v2,w)
are_adjacent by
A1,
A2,
A3,
Th99;
hence v2 is non
endvertex by
A2,
GLIBPRE0: 96;
end;
theorem ::
GLIB_012:118
Th118: for G1 be
_Graph, G2 be
GraphComplement of G1 holds for v1 be
Vertex of G1, v2 be
Vertex of G2 st v1
= v2 holds (v2
.allNeighbors() )
= ((
the_Vertices_of G2)
\ ((v1
.allNeighbors() )
\/
{v2}))
proof
let G1 be
_Graph, G2 be
GraphComplement of G1;
let v1 be
Vertex of G1, v2 be
Vertex of G2;
assume
A1: v1
= v2;
consider G9 be
LGraphComplement of G1 such that
A2: G2 is
removeLoops of G9 by
Def9;
reconsider v9 = v1 as
Vertex of G9 by
Def7;
thus (v2
.allNeighbors() )
= ((v9
.allNeighbors() )
\
{v2}) by
A1,
A2,
GLIBPRE0: 65
.= (((
the_Vertices_of G9)
\ (v1
.allNeighbors() ))
\
{v2}) by
Th77
.= ((
the_Vertices_of G9)
\ ((v1
.allNeighbors() )
\/
{v2})) by
XBOOLE_1: 41
.= ((
the_Vertices_of G2)
\ ((v1
.allNeighbors() )
\/
{v2})) by
A2,
GLIB_000: 53;
end;
theorem ::
GLIB_012:119
for G1 be
_Graph, G2 be
GraphComplement of G1 holds for v1 be
Vertex of G1, v2 be
Vertex of G2 st v1
= v2 & v1 is
isolated holds (v2
.allNeighbors() )
= ((
the_Vertices_of G2)
\
{v2})
proof
let G1 be
_Graph, G2 be
GraphComplement of G1;
let v1 be
Vertex of G1, v2 be
Vertex of G2;
assume
A1: v1
= v2 & v1 is
isolated;
then (v1
.allNeighbors() )
=
{} by
GLIB_008: 7;
hence (v2
.allNeighbors() )
= ((
the_Vertices_of G2)
\ (
{}
\/
{v2})) by
A1,
Th118
.= ((
the_Vertices_of G2)
\
{v2});
end;
begin
definition
let G be
_Graph;
::
GLIB_012:def10
attr G is
self-DLcomplementary means for H be
DLGraphComplement of G holds H is G
-Disomorphic;
::
GLIB_012:def11
attr G is
self-Lcomplementary means for H be
LGraphComplement of G holds H is G
-isomorphic;
::
GLIB_012:def12
attr G is
self-Dcomplementary means for H be
DGraphComplement of G holds H is G
-Disomorphic;
::
GLIB_012:def13
attr G is
self-complementary means for H be
GraphComplement of G holds H is G
-isomorphic;
end
theorem ::
GLIB_012:120
for G be
_Graph holds G is
self-DLcomplementary iff ex H be
DLGraphComplement of G st H is G
-Disomorphic
proof
let G be
_Graph;
hereby
assume
A1: G is
self-DLcomplementary;
reconsider H = the
DLGraphComplement of G as
DLGraphComplement of G;
take H;
thus H is G
-Disomorphic by
A1;
end;
given H0 be
DLGraphComplement of G such that
A2: H0 is G
-Disomorphic;
let H be
DLGraphComplement of G;
H is H0
-Disomorphic by
Th50;
hence H is G
-Disomorphic by
A2;
end;
theorem ::
GLIB_012:121
for G be
_Graph holds G is
self-Lcomplementary iff ex H be
LGraphComplement of G st H is G
-isomorphic
proof
let G be
_Graph;
hereby
assume
A1: G is
self-Lcomplementary;
reconsider H = the
LGraphComplement of G as
LGraphComplement of G;
take H;
thus H is G
-isomorphic by
A1;
end;
given H0 be
LGraphComplement of G such that
A2: H0 is G
-isomorphic;
let H be
LGraphComplement of G;
H is H0
-isomorphic by
Th68;
hence H is G
-isomorphic by
A2;
end;
theorem ::
GLIB_012:122
for G be
_Graph holds G is
self-Dcomplementary iff ex H be
DGraphComplement of G st H is G
-Disomorphic
proof
let G be
_Graph;
hereby
assume
A1: G is
self-Dcomplementary;
reconsider H = the
DGraphComplement of G as
DGraphComplement of G;
take H;
thus H is G
-Disomorphic by
A1;
end;
given H0 be
DGraphComplement of G such that
A2: H0 is G
-Disomorphic;
let H be
DGraphComplement of G;
H is H0
-Disomorphic by
Th85;
hence H is G
-Disomorphic by
A2;
end;
theorem ::
GLIB_012:123
for G be
_Graph holds G is
self-complementary iff ex H be
GraphComplement of G st H is G
-isomorphic
proof
let G be
_Graph;
hereby
assume
A1: G is
self-complementary;
reconsider H = the
GraphComplement of G as
GraphComplement of G;
take H;
thus H is G
-isomorphic by
A1;
end;
given H0 be
GraphComplement of G such that
A2: H0 is G
-isomorphic;
let H be
GraphComplement of G;
H is H0
-isomorphic by
Th104;
hence H is G
-isomorphic by
A2;
end;
registration
cluster
self-DLcomplementary -> non
loopless non
loopfull
non-Dmulti
connected for
_Graph;
coherence
proof
let G1 be
_Graph;
set G2 = the
DLGraphComplement of G1;
assume G1 is
self-DLcomplementary;
then G2 is G1
-Disomorphic;
then
consider F be
PGraphMapping of G1, G2 such that
A1: F is
Disomorphism by
GLIB_010:def 24;
thus thesis by
A1,
GLIB_010: 89,
GLIB_010: 140,
GLIBPRE0: 81;
end;
cluster
self-Lcomplementary -> non
loopless non
loopfull
non-multi
connected for
_Graph;
coherence
proof
let G1 be
_Graph;
set G2 = the
LGraphComplement of G1;
assume G1 is
self-Lcomplementary;
then G2 is G1
-isomorphic;
then
consider F be
PGraphMapping of G1, G2 such that
A2: F is
isomorphism by
GLIB_010:def 23;
thus thesis by
A2,
GLIB_010: 89,
GLIB_010: 140;
end;
cluster
self-Dcomplementary ->
Dsimple
connected for
_Graph;
coherence
proof
let G1 be
_Graph;
set G2 = the
DGraphComplement of G1;
assume G1 is
self-Dcomplementary;
then G2 is G1
-Disomorphic;
then
consider F be
PGraphMapping of G1, G2 such that
A3: F is
Disomorphism by
GLIB_010:def 24;
thus thesis by
A3,
GLIB_010: 140,
GLIBPRE0: 81;
end;
cluster
self-complementary ->
simple
connected for
_Graph;
coherence
proof
let G1 be
_Graph;
set G2 = the
GraphComplement of G1;
assume G1 is
self-complementary;
then G2 is G1
-isomorphic;
then
consider F be
PGraphMapping of G1, G2 such that
A4: F is
isomorphism by
GLIB_010:def 23;
thus thesis by
A4,
GLIB_010: 89,
GLIB_010: 140;
end;
end
registration
cluster
_trivial
edgeless ->
self-Dcomplementary
self-complementary for
_Graph;
coherence by
GLIB_010: 178;
cluster
self-Dcomplementary
self-complementary ->
_trivial
edgeless for
_Graph;
coherence
proof
let G be
_Graph;
assume
A1: G is
self-Dcomplementary
self-complementary;
set H1 = the
DGraphComplement of G, H2 = the
GraphComplement of G;
H1 is G
-Disomorphic by
A1;
then
consider F1 be
PGraphMapping of G, H1 such that
A2: F1 is
Disomorphism by
GLIB_010:def 24;
H2 is G
-isomorphic by
A1;
then
consider F2 be
PGraphMapping of G, H2 such that
A3: F2 is
isomorphism by
GLIB_010:def 23;
now
let v1,v2 be
Vertex of G;
assume
A4: v1
<> v2;
assume
A5: not (v1,v2)
are_adjacent ;
not ex e be
object st e
DJoins (v1,v2,G)
proof
given e be
object such that
A6: e
DJoins (v1,v2,G);
e
Joins (v1,v2,G) by
A6,
GLIB_000: 16;
hence contradiction by
A5,
CHORD:def 3;
end;
then
consider e1 be
object such that
A7: e1
DJoins (v1,v2,H1) by
A4,
Th80;
not ex e be
object st e
DJoins (v2,v1,G)
proof
given e be
object such that
A8: e
DJoins (v2,v1,G);
e
Joins (v1,v2,G) by
A8,
GLIB_000: 16;
hence contradiction by
A5,
CHORD:def 3;
end;
then
consider e2 be
object such that
A9: e2
DJoins (v2,v1,H1) by
A4,
Th80;
A10: e1
Joins (v1,v2,H1) & e2
Joins (v1,v2,H1) by
A7,
A9,
GLIB_000: 16;
H1 is
non-multi by
A1,
A2,
GLIB_010: 89;
then e1
= e2 by
A10,
GLIB_000:def 20;
hence contradiction by
A4,
A7,
A9,
GLIB_009: 6;
end;
then G is
complete by
CHORD:def 6;
hence thesis by
A3,
GLIB_010: 89;
end;
cluster
self-DLcomplementary -> non
_trivial non
self-Lcomplementary non
self-Dcomplementary non
self-complementary for
_Graph;
coherence
proof
let G be
_Graph;
assume
A11: G is
self-DLcomplementary;
hence
A12: G is non
_trivial;
thus G is non
self-Lcomplementary
proof
assume
A13: G is
self-Lcomplementary;
set H1 = the
DLGraphComplement of G, H2 = the
LGraphComplement of G;
H1 is G
-Disomorphic by
A11;
then
consider F1 be
PGraphMapping of G, H1 such that
A14: F1 is
Disomorphism by
GLIB_010:def 24;
H2 is G
-isomorphic by
A13;
then
consider F2 be
PGraphMapping of G, H2 such that
A15: F2 is
isomorphism by
GLIB_010:def 23;
now
let v1,v2 be
Vertex of G;
assume
A16: v1
<> v2;
assume
A17: not (v1,v2)
are_adjacent ;
not ex e be
object st e
DJoins (v1,v2,G)
proof
given e be
object such that
A18: e
DJoins (v1,v2,G);
e
Joins (v1,v2,G) by
A18,
GLIB_000: 16;
hence contradiction by
A17,
CHORD:def 3;
end;
then
consider e1 be
object such that
A19: e1
DJoins (v1,v2,H1) by
Def6;
not ex e be
object st e
DJoins (v2,v1,G)
proof
given e be
object such that
A20: e
DJoins (v2,v1,G);
e
Joins (v1,v2,G) by
A20,
GLIB_000: 16;
hence contradiction by
A17,
CHORD:def 3;
end;
then
consider e2 be
object such that
A21: e2
DJoins (v2,v1,H1) by
Def6;
A22: e1
Joins (v1,v2,H1) & e2
Joins (v1,v2,H1) by
A19,
A21,
GLIB_000: 16;
H1 is
non-multi by
A13,
A14,
GLIB_010: 89;
then e1
= e2 by
A22,
GLIB_000:def 20;
hence contradiction by
A16,
A19,
A21,
GLIB_009: 6;
end;
then
A23: G is
complete by
CHORD:def 6;
then
A24: (
the_Edges_of H2)
= (H2
.loops() ) by
Th75;
consider v1,v2 be
Vertex of G such that
A25: v1
<> v2 by
A12,
GLIB_000: 21;
consider e be
object such that
A26: e
Joins (v1,v2,G) by
A23,
A25,
CHORD:def 6,
CHORD:def 3;
(
dom (F2
_E ))
= (
the_Edges_of G) & (
dom (F2
_V ))
= (
the_Vertices_of G) by
A15,
GLIB_010:def 11;
then
A27: e
in (
dom (F2
_E )) & v1
in (
dom (F2
_V )) & v2
in (
dom (F2
_V )) by
A26,
GLIB_000:def 13;
then
A28: ((F2
_E )
. e)
Joins (((F2
_V )
. v1),((F2
_V )
. v2),H2) by
A26,
GLIB_010: 4;
((F2
_V )
. v1)
<> ((F2
_V )
. v2) by
A15,
A25,
A27,
FUNCT_1:def 4;
then not ((F2
_E )
. e)
in (H2
.loops() ) by
A28,
GLIB_009: 46;
hence contradiction by
A24,
A28,
GLIB_000:def 13;
end;
thus thesis by
A11;
end;
cluster
self-Lcomplementary -> non
_trivial non
self-DLcomplementary non
self-Dcomplementary non
self-complementary for
_Graph;
coherence ;
end
registration
cluster
self-Dcomplementary
self-complementary for
_Graph;
existence
proof
take the
_trivial
edgeless
_Graph;
thus thesis;
end;
end