glib_011.miz
begin
definition
let G1,G2 be
_Graph;
::
GLIB_011:def1
mode
PVertexMapping of G1,G2 ->
PartFunc of (
the_Vertices_of G1), (
the_Vertices_of G2) means
:
Def1: for v,w be
Vertex of G1 st v
in (
dom it ) & w
in (
dom it ) & (v,w)
are_adjacent holds ((it
/. v),(it
/. w))
are_adjacent ;
existence
proof
take the
empty
PartFunc of (
the_Vertices_of G1), (
the_Vertices_of G2);
thus thesis;
end;
end
theorem ::
GLIB_011:1
Th1: for G1,G2 be
_Graph holds for f be
PartFunc of (
the_Vertices_of G1), (
the_Vertices_of G2) holds f is
PVertexMapping of G1, G2 iff for v,w,e be
object st v
in (
dom f) & w
in (
dom f) & e
Joins (v,w,G1) holds ex e9 be
object st e9
Joins ((f
. v),(f
. w),G2)
proof
let G1,G2 be
_Graph;
let f be
PartFunc of (
the_Vertices_of G1), (
the_Vertices_of G2);
hereby
assume
A1: f is
PVertexMapping of G1, G2;
let v,w,e be
object;
assume
A2: v
in (
dom f) & w
in (
dom f) & e
Joins (v,w,G1);
then
reconsider v0 = v, w0 = w as
Vertex of G1;
(v0,w0)
are_adjacent by
A2,
CHORD:def 3;
then
consider e9 be
object such that
A3: e9
Joins ((f
/. v0),(f
/. w0),G2) by
A1,
A2,
Def1,
CHORD:def 3;
take e9;
(f
/. v0)
= (f
. v) & (f
/. w0)
= (f
. w) by
A2,
PARTFUN1:def 6;
hence e9
Joins ((f
. v),(f
. w),G2) by
A3;
end;
assume
A4: for v,w,e be
object st v
in (
dom f) & w
in (
dom f) & e
Joins (v,w,G1) holds ex e9 be
object st e9
Joins ((f
. v),(f
. w),G2);
let v,w be
Vertex of G1;
assume
A5: v
in (
dom f) & w
in (
dom f);
assume (v,w)
are_adjacent ;
then
consider e be
object such that
A6: e
Joins (v,w,G1) by
CHORD:def 3;
consider e9 be
object such that
A7: e9
Joins ((f
. v),(f
. w),G2) by
A4,
A5,
A6;
(f
/. v)
= (f
. v) & (f
/. w)
= (f
. w) by
A5,
PARTFUN1:def 6;
hence thesis by
A7,
CHORD:def 3;
end;
definition
let G1,G2 be
_Graph, f be
PVertexMapping of G1, G2;
::
GLIB_011:def2
attr f is
directed means
:
Def2: for v,w,e be
object st v
in (
dom f) & w
in (
dom f) & e
DJoins (v,w,G1) holds ex e9 be
object st e9
DJoins ((f
. v),(f
. w),G2);
::
GLIB_011:def3
attr f is
continuous means for v,w be
Vertex of G1 st v
in (
dom f) & w
in (
dom f) & ((f
/. v),(f
/. w))
are_adjacent holds (v,w)
are_adjacent ;
::
GLIB_011:def4
attr f is
Dcontinuous means
:
Def4: for v,w,e9 be
object st v
in (
dom f) & w
in (
dom f) & e9
DJoins ((f
. v),(f
. w),G2) holds ex e be
object st e
DJoins (v,w,G1);
end
theorem ::
GLIB_011:2
Th2: for G1,G2 be
_Graph, f be
PVertexMapping of G1, G2 holds f is
continuous iff for v,w,e9 be
object st v
in (
dom f) & w
in (
dom f) & e9
Joins ((f
. v),(f
. w),G2) holds ex e be
object st e
Joins (v,w,G1)
proof
let G1,G2 be
_Graph;
let f be
PVertexMapping of G1, G2;
hereby
assume
A1: f is
continuous;
let v,w,e9 be
object;
assume
A2: v
in (
dom f) & w
in (
dom f) & e9
Joins ((f
. v),(f
. w),G2);
then
reconsider v0 = v, w0 = w as
Vertex of G1;
(f
/. v0)
= (f
. v) & (f
/. w0)
= (f
. w) by
A2,
PARTFUN1:def 6;
then ((f
/. v0),(f
/. w0))
are_adjacent by
A2,
CHORD:def 3;
then
consider e be
object such that
A3: e
Joins (v0,w0,G1) by
A1,
A2,
CHORD:def 3;
take e;
thus e
Joins (v,w,G1) by
A3;
end;
assume
A4: for v,w,e9 be
object st v
in (
dom f) & w
in (
dom f) & e9
Joins ((f
. v),(f
. w),G2) holds ex e be
object st e
Joins (v,w,G1);
let v,w be
Vertex of G1;
assume
A5: v
in (
dom f) & w
in (
dom f);
assume ((f
/. v),(f
/. w))
are_adjacent ;
then
consider e9 be
object such that
A6: e9
Joins ((f
/. v),(f
/. w),G2) by
CHORD:def 3;
(f
/. v)
= (f
. v) & (f
/. w)
= (f
. w) by
A5,
PARTFUN1:def 6;
then
consider e be
object such that
A7: e
Joins (v,w,G1) by
A4,
A5,
A6;
thus thesis by
A7,
CHORD:def 3;
end;
theorem ::
GLIB_011:3
for G1,G2 be
_Graph, f be
PVertexMapping of G1, G2 holds f is
continuous iff for v,w be
Vertex of G1 st v
in (
dom f) & w
in (
dom f) holds (v,w)
are_adjacent iff ((f
/. v),(f
/. w))
are_adjacent by
Def1;
registration
let G1,G2 be
_Graph;
cluster
Dcontinuous ->
continuous for
PVertexMapping of G1, G2;
coherence
proof
let f be
PVertexMapping of G1, G2;
assume
A1: f is
Dcontinuous;
now
let v,w,e9 be
object;
assume
A2: v
in (
dom f) & w
in (
dom f) & e9
Joins ((f
. v),(f
. w),G2);
per cases by
GLIB_000: 16;
suppose e9
DJoins ((f
. v),(f
. w),G2);
then
consider e be
object such that
A3: e
DJoins (v,w,G1) by
A1,
A2;
take e;
thus e
Joins (v,w,G1) by
A3,
GLIB_000: 16;
end;
suppose e9
DJoins ((f
. w),(f
. v),G2);
then
consider e be
object such that
A4: e
DJoins (w,v,G1) by
A1,
A2;
take e;
thus e
Joins (v,w,G1) by
A4,
GLIB_000: 16;
end;
end;
hence thesis by
Th2;
end;
cluster
empty ->
one-to-one
Dcontinuous
directed
continuous for
PVertexMapping of G1, G2;
coherence ;
cluster
total -> non
empty for
PVertexMapping of G1, G2;
coherence ;
cluster
onto -> non
empty for
PVertexMapping of G1, G2;
coherence
proof
let f be
PVertexMapping of G1, G2;
assume f is
onto;
then (
rng f)
= (
the_Vertices_of G2) by
FUNCT_2:def 3;
hence thesis;
end;
end
registration
let G1 be
simple
_Graph, G2 be
_Graph;
cluster
Dcontinuous ->
directed for
PVertexMapping of G1, G2;
coherence
proof
let f be
PVertexMapping of G1, G2;
assume
A1: f is
Dcontinuous;
let v,w,e be
object;
assume
A2: v
in (
dom f) & w
in (
dom f) & e
DJoins (v,w,G1);
then
A3: e
Joins (v,w,G1) by
GLIB_000: 16;
then
consider e9 be
object such that
A4: e9
Joins ((f
. v),(f
. w),G2) by
A2,
Th1;
take e9;
assume not e9
DJoins ((f
. v),(f
. w),G2);
then e9
DJoins ((f
. w),(f
. v),G2) by
A4,
GLIB_000: 16;
then
consider e0 be
object such that
A5: e0
DJoins (w,v,G1) by
A1,
A2;
e0
Joins (v,w,G1) by
A5,
GLIB_000: 16;
then e
= e0 by
A3,
GLIB_000:def 20;
then ((
the_Source_of G1)
. e)
= w by
A5,
GLIB_000:def 14;
then v
= w by
A2,
GLIB_000:def 14;
hence contradiction by
A3,
GLIB_000: 18;
end;
end
registration
let G1 be
_Graph, G2 be
simple
_Graph;
cluster
directed
continuous ->
Dcontinuous for
PVertexMapping of G1, G2;
coherence
proof
let f be
PVertexMapping of G1, G2;
assume
A1: f is
directed
continuous;
let v,w,e9 be
object;
assume
A2: v
in (
dom f) & w
in (
dom f) & e9
DJoins ((f
. v),(f
. w),G2);
then
A3: e9
Joins ((f
. v),(f
. w),G2) by
GLIB_000: 16;
then
consider e be
object such that
A4: e
Joins (v,w,G1) by
A1,
A2,
Th2;
take e;
assume not e
DJoins (v,w,G1);
then e
DJoins (w,v,G1) by
A4,
GLIB_000: 16;
then
consider e0 be
object such that
A5: e0
DJoins ((f
. w),(f
. v),G2) by
A1,
A2;
e0
Joins ((f
. v),(f
. w),G2) by
A5,
GLIB_000: 16;
then e0
= e9 by
A3,
GLIB_000:def 20;
then ((
the_Source_of G2)
. e9)
= (f
. w) by
A5,
GLIB_000:def 14;
then (f
. w)
= (f
. v) by
A2,
GLIB_000:def 14;
hence contradiction by
A3,
GLIB_000: 18;
end;
end
registration
let G1 be
_trivial
_Graph, G2 be
_Graph;
cluster ->
directed for
PVertexMapping of G1, G2;
coherence
proof
let f be
PVertexMapping of G1, G2;
consider v0 be
Vertex of G1 such that
A1: (
the_Vertices_of G1)
=
{v0} by
GLIB_000: 22;
let v,w,e be
object;
assume
A2: v
in (
dom f) & w
in (
dom f) & e
DJoins (v,w,G1);
then e
Joins (v,w,G1) by
GLIB_000: 16;
then
consider e9 be
object such that
A3: e9
Joins ((f
. v),(f
. w),G2) by
A2,
Th1;
take e9;
v
= v0 & w
= v0 by
A1,
A2,
TARSKI:def 1;
hence e9
DJoins ((f
. v),(f
. w),G2) by
A3,
GLIB_000: 16;
end;
cluster
continuous ->
Dcontinuous for
PVertexMapping of G1, G2;
coherence
proof
let f be
PVertexMapping of G1, G2;
assume
A4: f is
continuous;
consider v0 be
Vertex of G1 such that
A5: (
the_Vertices_of G1)
=
{v0} by
GLIB_000: 22;
let v,w,e9 be
object;
assume
A6: v
in (
dom f) & w
in (
dom f) & e9
DJoins ((f
. v),(f
. w),G2);
then e9
Joins ((f
. v),(f
. w),G2) by
GLIB_000: 16;
then
consider e be
object such that
A7: e
Joins (v,w,G1) by
A4,
A6,
Th2;
take e;
v
= v0 & w
= v0 by
A5,
A6,
TARSKI:def 1;
hence e
DJoins (v,w,G1) by
A7,
GLIB_000: 16;
end;
cluster non
empty ->
total for
PVertexMapping of G1, G2;
coherence
proof
let f be
PVertexMapping of G1, G2;
assume
A8: f is non
empty;
consider v be
Vertex of G1 such that
A9: (
the_Vertices_of G1)
=
{v} by
GLIB_000: 22;
(
dom f)
= (
the_Vertices_of G1) by
A8,
A9,
ZFMISC_1: 33;
hence thesis by
PARTFUN1:def 2;
end;
end
registration
let G1 be
_Graph, G2 be
_trivial
_Graph;
cluster non
empty ->
onto for
PVertexMapping of G1, G2;
coherence
proof
let f be
PVertexMapping of G1, G2;
assume
A1: f is non
empty;
consider v be
Vertex of G2 such that
A2: (
the_Vertices_of G2)
=
{v} by
GLIB_000: 22;
(
rng f)
= (
the_Vertices_of G2) by
A1,
A2,
ZFMISC_1: 33;
hence thesis by
FUNCT_2:def 3;
end;
end
registration
let G1 be
_Graph, G2 be
_trivial
loopless
_Graph;
cluster ->
Dcontinuous
continuous for
PVertexMapping of G1, G2;
coherence
proof
let f be
PVertexMapping of G1, G2;
consider v0 be
Vertex of G2 such that
A1: (
the_Vertices_of G2)
=
{v0} by
GLIB_000: 22;
now
let v,w,e9 be
object;
assume
A2: v
in (
dom f) & w
in (
dom f) & e9
DJoins ((f
. v),(f
. w),G2);
then (f
. v)
in (
rng f) & (f
. w)
in (
rng f) by
FUNCT_1: 3;
then (f
. v)
= v0 & (f
. w)
= v0 by
A1,
TARSKI:def 1;
then e9
Joins (v0,v0,G2) by
A2,
GLIB_000: 16;
hence ex e be
object st e
DJoins (v,w,G1) by
GLIB_000: 18;
end;
hence f is
Dcontinuous;
hence f is
continuous;
end;
end
registration
let G1,G2 be
_Graph;
cluster
empty
one-to-one
directed
continuous
Dcontinuous for
PVertexMapping of G1, G2;
existence
proof
set f = the
empty
PartFunc of (
the_Vertices_of G1), (
the_Vertices_of G2);
for v,w be
Vertex of G1 st v
in (
dom f) & w
in (
dom f) & (v,w)
are_adjacent holds ((f
/. v),(f
/. w))
are_adjacent ;
then
reconsider f as
PVertexMapping of G1, G2 by
Def1;
take f;
thus thesis;
end;
end
theorem ::
GLIB_011:4
for G1,G2 be
_Graph holds for f be
PartFunc of (
the_Vertices_of G1), (
the_Vertices_of G2) holds f is
directed
PVertexMapping of G1, G2 iff for v,w,e be
object st v
in (
dom f) & w
in (
dom f) & e
DJoins (v,w,G1) holds ex e9 be
object st e9
DJoins ((f
. v),(f
. w),G2)
proof
let G1,G2 be
_Graph;
let f be
PartFunc of (
the_Vertices_of G1), (
the_Vertices_of G2);
thus f is
directed
PVertexMapping of G1, G2 implies for v,w,e be
object st v
in (
dom f) & w
in (
dom f) & e
DJoins (v,w,G1) holds ex e9 be
object st e9
DJoins ((f
. v),(f
. w),G2) by
Def2;
assume
A1: for v,w,e be
object st v
in (
dom f) & w
in (
dom f) & e
DJoins (v,w,G1) holds ex e9 be
object st e9
DJoins ((f
. v),(f
. w),G2);
now
let v,w,e be
object;
assume
A2: v
in (
dom f) & w
in (
dom f) & e
Joins (v,w,G1);
per cases by
GLIB_000: 16;
suppose e
DJoins (v,w,G1);
then
consider e9 be
object such that
A3: e9
DJoins ((f
. v),(f
. w),G2) by
A1,
A2;
take e9;
thus e9
Joins ((f
. v),(f
. w),G2) by
A3,
GLIB_000: 16;
end;
suppose e
DJoins (w,v,G1);
then
consider e9 be
object such that
A4: e9
DJoins ((f
. w),(f
. v),G2) by
A1,
A2;
take e9;
thus e9
Joins ((f
. v),(f
. w),G2) by
A4,
GLIB_000: 16;
end;
end;
hence thesis by
A1,
Th1,
Def2;
end;
registration
let G1 be
loopless
_Graph, G2 be
_Graph;
cluster non
empty
one-to-one
directed for
PVertexMapping of G1, G2;
existence
proof
set v1 = the
Vertex of G1, v2 = the
Vertex of G2;
set f = (v1
.--> v2);
f
= (
{v1}
--> v2) by
FUNCOP_1:def 9;
then
reconsider f as
one-to-one
PartFunc of (
the_Vertices_of G1), (
the_Vertices_of G2);
now
let v,w be
Vertex of G1;
assume
A1: v
in (
dom f) & w
in (
dom f) & (v,w)
are_adjacent ;
then v
= v1 & w
= v1 by
FUNCOP_1: 75;
hence ((f
/. v),(f
/. w))
are_adjacent by
A1,
GLIB_009: 39;
end;
then
reconsider f as
PVertexMapping of G1, G2 by
Def1;
take f;
thus f is non
empty
one-to-one;
thus f is
directed
proof
let v,w,e be
object;
assume
A2: v
in (
dom f) & w
in (
dom f) & e
DJoins (v,w,G1);
then v
= v1 & w
= v1 by
FUNCOP_1: 75;
then e
Joins (v1,v1,G1) by
A2,
GLIB_000: 16;
hence thesis by
GLIB_000: 18;
end;
end;
end
registration
let G1,G2 be
loopless
_Graph;
cluster non
empty
one-to-one
directed
continuous
Dcontinuous for
PVertexMapping of G1, G2;
existence
proof
set v1 = the
Vertex of G1, v2 = the
Vertex of G2;
set f = (v1
.--> v2);
f
= (
{v1}
--> v2) by
FUNCOP_1:def 9;
then
reconsider f as
one-to-one
PartFunc of (
the_Vertices_of G1), (
the_Vertices_of G2);
now
let v,w be
Vertex of G1;
assume
A1: v
in (
dom f) & w
in (
dom f) & (v,w)
are_adjacent ;
then v
= v1 & w
= v1 by
FUNCOP_1: 75;
hence ((f
/. v),(f
/. w))
are_adjacent by
A1,
GLIB_009: 39;
end;
then
reconsider f as
PVertexMapping of G1, G2 by
Def1;
take f;
thus f is non
empty
one-to-one;
thus f is
directed
proof
let v,w,e be
object;
assume
A2: v
in (
dom f) & w
in (
dom f) & e
DJoins (v,w,G1);
then v
= v1 & w
= v1 by
FUNCOP_1: 75;
then e
Joins (v1,v1,G1) by
A2,
GLIB_000: 16;
hence thesis by
GLIB_000: 18;
end;
thus f is
continuous
proof
let v,w be
Vertex of G1;
assume
A3: v
in (
dom f) & w
in (
dom f) & ((f
/. v),(f
/. w))
are_adjacent ;
then v
= v1 & w
= v1 by
FUNCOP_1: 75;
hence (v,w)
are_adjacent by
A3,
GLIB_009: 39;
end;
thus f is
Dcontinuous
proof
let v,w,e9 be
object;
assume
A4: v
in (
dom f) & w
in (
dom f) & e9
DJoins ((f
. v),(f
. w),G2);
then v
= v1 & w
= v1 by
FUNCOP_1: 75;
then e9
Joins ((f
. v1),(f
. v1),G2) by
A4,
GLIB_000: 16;
hence thesis by
GLIB_000: 18;
end;
end;
end
registration
let G1,G2 be non
loopless
_Graph;
cluster non
empty
one-to-one
directed
continuous
Dcontinuous for
PVertexMapping of G1, G2;
existence
proof
consider v1 be
object such that
A1: ex e1 be
object st e1
Joins (v1,v1,G1) by
GLIB_000: 18;
reconsider v1 as
Vertex of G1 by
A1,
GLIB_000: 13;
consider v2 be
object such that
A2: ex e2 be
object st e2
Joins (v2,v2,G2) by
GLIB_000: 18;
reconsider v2 as
Vertex of G2 by
A2,
GLIB_000: 13;
set f = (v1
.--> v2);
f
= (
{v1}
--> v2) by
FUNCOP_1:def 9;
then
reconsider f as
one-to-one
PartFunc of (
the_Vertices_of G1), (
the_Vertices_of G2);
now
let v,w be
Vertex of G1;
assume
A3: v
in (
dom f) & w
in (
dom f) & (v,w)
are_adjacent ;
then v
= v1 & w
= v1 by
FUNCOP_1: 75;
then (f
/. v)
= (f
. v1) & (f
/. w)
= (f
. v1) by
A3,
PARTFUN1:def 6;
then (f
/. v)
= v2 & (f
/. w)
= v2 by
FUNCOP_1: 72;
hence ((f
/. v),(f
/. w))
are_adjacent by
A2,
CHORD:def 3;
end;
then
reconsider f as
PVertexMapping of G1, G2 by
Def1;
take f;
thus f is non
empty
one-to-one;
thus f is
directed
proof
let v,w,e be
object;
assume v
in (
dom f) & w
in (
dom f) & e
DJoins (v,w,G1);
then v
= v1 & w
= v1 by
FUNCOP_1: 75;
then
A4: (f
. v)
= v2 & (f
. w)
= v2 by
FUNCOP_1: 72;
then
consider e2 be
object such that
A5: e2
Joins ((f
. v),(f
. w),G2) by
A2;
take e2;
thus thesis by
A4,
A5,
GLIB_000: 16;
end;
thus f is
continuous
proof
let v,w be
Vertex of G1;
assume v
in (
dom f) & w
in (
dom f) & ((f
/. v),(f
/. w))
are_adjacent ;
then v
= v1 & w
= v1 by
FUNCOP_1: 75;
hence (v,w)
are_adjacent by
A1,
CHORD:def 3;
end;
thus f is
Dcontinuous
proof
let v,w,e9 be
object;
assume v
in (
dom f) & w
in (
dom f) & e9
DJoins ((f
. v),(f
. w),G2);
then
A6: v
= v1 & w
= v1 by
FUNCOP_1: 75;
then
consider e1 be
object such that
A7: e1
Joins (v,w,G1) by
A1;
take e1;
thus thesis by
A6,
A7,
GLIB_000: 16;
end;
end;
end
theorem ::
GLIB_011:5
Th5: for G be
_Graph holds (
id (
the_Vertices_of G)) is
directed
continuous
Dcontinuous
PVertexMapping of G, G
proof
let G be
_Graph;
set f = (
id (
the_Vertices_of G));
A1:
now
let v,w,e be
object;
assume
A2: v
in (
dom f) & w
in (
dom f) & e
Joins (v,w,G);
take e;
e
Joins (v,(f
. w),G) by
A2,
FUNCT_1: 18;
hence e
Joins ((f
. v),(f
. w),G) by
A2,
FUNCT_1: 18;
end;
A3:
now
let v,w,e be
object;
assume
A4: v
in (
dom f) & w
in (
dom f) & e
DJoins (v,w,G);
take e;
e
DJoins (v,(f
. w),G) by
A4,
FUNCT_1: 18;
hence e
DJoins ((f
. v),(f
. w),G) by
A4,
FUNCT_1: 18;
end;
A5:
now
let v,w,e be
object;
assume
A6: v
in (
dom f) & w
in (
dom f) & e
Joins ((f
. v),(f
. w),G);
take e;
e
Joins (v,(f
. w),G) by
A6,
FUNCT_1: 18;
hence e
Joins (v,w,G) by
A6,
FUNCT_1: 18;
end;
now
let v,w,e be
object;
assume
A7: v
in (
dom f) & w
in (
dom f) & e
DJoins ((f
. v),(f
. w),G);
take e;
e
DJoins (v,(f
. w),G) by
A7,
FUNCT_1: 18;
hence e
DJoins (v,w,G) by
A7,
FUNCT_1: 18;
end;
hence thesis by
A1,
A3,
A5,
Th1,
Th2,
Def2,
Def4;
end;
theorem ::
GLIB_011:6
for G1,G2 be
_Graph, f be
PVertexMapping of G1, G2 st f is
total holds (G2 is
loopless implies G1 is
loopless) & (G2 is
edgeless implies G1 is
edgeless)
proof
let G1,G2 be
_Graph, f be
PVertexMapping of G1, G2;
assume
A1: f is
total;
hereby
assume
A2: G2 is
loopless;
assume not G1 is
loopless;
then
consider v be
object such that
A3: ex e be
object st e
Joins (v,v,G1) by
GLIB_000: 18;
consider e be
object such that
A4: e
Joins (v,v,G1) by
A3;
v
in (
the_Vertices_of G1) by
A4,
GLIB_000: 13;
then v
in (
dom f) by
A1,
PARTFUN1:def 2;
then
consider e9 be
object such that
A5: e9
Joins ((f
. v),(f
. v),G2) by
A4,
Th1;
thus contradiction by
A2,
A5,
GLIB_000: 18;
end;
hereby
assume
A6: G2 is
edgeless;
assume not G1 is
edgeless;
then
consider e be
object such that
A7: e
in (
the_Edges_of G1) by
XBOOLE_0:def 1;
set v = ((
the_Source_of G1)
. e), w = ((
the_Target_of G1)
. e);
A8: e
Joins (v,w,G1) by
A7,
GLIB_000:def 13;
then v
in (
the_Vertices_of G1) & w
in (
the_Vertices_of G1) by
GLIB_000: 13;
then v
in (
dom f) & w
in (
dom f) by
A1,
FUNCT_2:def 1;
then
consider e9 be
object such that
A9: e9
Joins ((f
. v),(f
. w),G2) by
A8,
Th1;
e9
in (
the_Edges_of G2) by
A9,
GLIB_000:def 13;
hence contradiction by
A6;
end;
end;
theorem ::
GLIB_011:7
for G1,G2 be
_Graph, f be
continuous
PVertexMapping of G1, G2 st f is
onto holds (G1 is
loopless implies G2 is
loopless) & (G1 is
edgeless implies G2 is
edgeless)
proof
let G1,G2 be
_Graph, f be
continuous
PVertexMapping of G1, G2;
assume
A1: f is
onto;
hereby
assume
A2: G1 is
loopless;
assume not G2 is
loopless;
then
consider v be
object such that
A3: ex e be
object st e
Joins (v,v,G2) by
GLIB_000: 18;
consider e be
object such that
A4: e
Joins (v,v,G2) by
A3;
v
in (
the_Vertices_of G2) by
A4,
GLIB_000: 13;
then v
in (
rng f) by
A1,
FUNCT_2:def 3;
then
consider v0 be
object such that
A5: v0
in (
dom f) & (f
. v0)
= v by
FUNCT_1:def 3;
consider e0 be
object such that
A6: e0
Joins (v0,v0,G1) by
A4,
A5,
Th2;
thus contradiction by
A2,
A6,
GLIB_000: 18;
end;
hereby
assume
A7: G1 is
edgeless;
assume not G2 is
edgeless;
then
consider e9 be
object such that
A8: e9
in (
the_Edges_of G2) by
XBOOLE_0:def 1;
set v = ((
the_Source_of G2)
. e9), w = ((
the_Target_of G2)
. e9);
A9: e9
Joins (v,w,G2) by
A8,
GLIB_000:def 13;
then v
in (
the_Vertices_of G2) & w
in (
the_Vertices_of G2) by
GLIB_000: 13;
then
A10: v
in (
rng f) & w
in (
rng f) by
A1,
FUNCT_2:def 3;
then
consider v0 be
object such that
A11: v0
in (
dom f) & (f
. v0)
= v by
FUNCT_1:def 3;
consider w0 be
object such that
A12: w0
in (
dom f) & (f
. w0)
= w by
A10,
FUNCT_1:def 3;
consider e be
object such that
A13: e
Joins (v0,w0,G1) by
A9,
A11,
A12,
Th2;
e
in (
the_Edges_of G1) by
A13,
GLIB_000:def 13;
hence contradiction by
A7;
end;
end;
definition
let G1,G2 be
_Graph, f be
PVertexMapping of G1, G2;
::
GLIB_011:def5
attr f is
isomorphism means f is
total
one-to-one
onto & for v,w be
Vertex of G1 holds (
card (G1
.edgesBetween (
{v},
{w})))
= (
card (G2
.edgesBetween (
{(f
. v)},
{(f
. w)})));
::
GLIB_011:def6
attr f is
Disomorphism means f is
total
one-to-one
onto & for v,w be
Vertex of G1 holds (
card (G1
.edgesDBetween (
{v},
{w})))
= (
card (G2
.edgesDBetween (
{(f
. v)},
{(f
. w)}))) & (
card (G1
.edgesDBetween (
{w},
{v})))
= (
card (G2
.edgesDBetween (
{(f
. w)},
{(f
. v)})));
end
registration
let G1,G2 be
_Graph;
cluster
isomorphism ->
total
one-to-one
onto
continuous for
PVertexMapping of G1, G2;
coherence
proof
let f be
PVertexMapping of G1, G2;
assume
A1: f is
isomorphism;
hence f is
total
one-to-one
onto;
now
let v,w,e9 be
object;
assume
A2: v
in (
dom f) & w
in (
dom f) & e9
Joins ((f
. v),(f
. w),G2);
then
reconsider v0 = v, w0 = w as
Vertex of G1;
(f
. v)
in
{(f
. v)} & (f
. w)
in
{(f
. w)} by
TARSKI:def 1;
then e9
SJoins (
{(f
. v)},
{(f
. w)},G2) by
A2,
GLIB_000: 17;
then e9
in (G2
.edgesBetween (
{(f
. v)},
{(f
. w)})) by
GLIB_000:def 30;
then (
card (G2
.edgesBetween (
{(f
. v0)},
{(f
. w0)})))
<>
0 ;
then (
card (G1
.edgesBetween (
{v0},
{w0})))
<>
0 by
A1;
then (G1
.edgesBetween (
{v0},
{w0}))
<>
{} ;
then
consider e be
object such that
A3: e
in (G1
.edgesBetween (
{v0},
{w0})) by
XBOOLE_0:def 1;
take e;
e
SJoins (
{v},
{w},G1) by
A3,
GLIB_000:def 30;
then e
in (
the_Edges_of G1) & (((
the_Source_of G1)
. e)
in
{v} & ((
the_Target_of G1)
. e)
in
{w} or ((
the_Source_of G1)
. e)
in
{w} & ((
the_Target_of G1)
. e)
in
{v}) by
GLIB_000:def 15;
then e
in (
the_Edges_of G1) & (((
the_Source_of G1)
. e)
= v & ((
the_Target_of G1)
. e)
= w or ((
the_Source_of G1)
. e)
= w & ((
the_Target_of G1)
. e)
= v) by
TARSKI:def 1;
hence e
Joins (v,w,G1) by
GLIB_000:def 13;
end;
hence thesis by
Th2;
end;
cluster
Disomorphism ->
total
one-to-one
onto
isomorphism
continuous
directed
Dcontinuous for
PVertexMapping of G1, G2;
coherence
proof
let f be
PVertexMapping of G1, G2;
assume
A4: f is
Disomorphism;
hence f is
total
one-to-one
onto;
now
let v,w be
Vertex of G1;
per cases ;
suppose
A5: v
<> w;
then
A6: (f
. v)
<> (f
. w) by
A4,
FUNCT_2: 19;
thus (
card (G1
.edgesBetween (
{v},
{w})))
= (
card ((G1
.edgesDBetween (
{v},
{w}))
\/ (G1
.edgesDBetween (
{w},
{v})))) by
A5,
GLIB_009: 14
.= ((
card (G1
.edgesDBetween (
{v},
{w})))
+` (
card (G1
.edgesDBetween (
{w},
{v})))) by
A5,
GLIB_009: 14,
CARD_2: 35
.= ((
card (G1
.edgesDBetween (
{v},
{w})))
+` (
card (G2
.edgesDBetween (
{(f
. w)},
{(f
. v)})))) by
A4
.= ((
card (G2
.edgesDBetween (
{(f
. v)},
{(f
. w)})))
+` (
card (G2
.edgesDBetween (
{(f
. w)},
{(f
. v)})))) by
A4
.= (
card ((G2
.edgesDBetween (
{(f
. v)},
{(f
. w)}))
\/ (G2
.edgesDBetween (
{(f
. w)},
{(f
. v)})))) by
A6,
GLIB_009: 14,
CARD_2: 35
.= (
card (G2
.edgesBetween (
{(f
. v)},
{(f
. w)}))) by
A6,
GLIB_009: 14;
end;
suppose
A7: v
= w;
thus (
card (G1
.edgesBetween (
{v},
{w})))
= (
card (G1
.edgesDBetween (
{v},
{w}))) by
A7,
GLIB_009: 15
.= (
card (G2
.edgesDBetween (
{(f
. v)},
{(f
. w)}))) by
A4
.= (
card (G2
.edgesBetween (
{(f
. v)},
{(f
. w)}))) by
A7,
GLIB_009: 15;
end;
end;
hence f is
isomorphism by
A4;
hence f is
continuous;
now
let v,w,e be
object;
assume
A8: v
in (
dom f) & w
in (
dom f) & e
DJoins (v,w,G1);
then
reconsider v0 = v, w0 = w as
Vertex of G1;
v
in
{v} & w
in
{w} by
TARSKI:def 1;
then e
DSJoins (
{v},
{w},G1) by
A8,
GLIB_009: 7;
then e
in (G1
.edgesDBetween (
{v},
{w})) by
GLIB_000:def 31;
then (
card (G1
.edgesDBetween (
{v0},
{w0})))
<>
0 ;
then (
card (G2
.edgesDBetween (
{(f
. v0)},
{(f
. w0)})))
<>
0 by
A4;
then (G2
.edgesDBetween (
{(f
. v)},
{(f
. w)}))
<>
{} ;
then
consider e9 be
object such that
A9: e9
in (G2
.edgesDBetween (
{(f
. v)},
{(f
. w)})) by
XBOOLE_0:def 1;
take e9;
e9
DSJoins (
{(f
. v)},
{(f
. w)},G2) by
A9,
GLIB_000:def 31;
then e9
in (
the_Edges_of G2) & ((
the_Source_of G2)
. e9)
in
{(f
. v)} & ((
the_Target_of G2)
. e9)
in
{(f
. w)} by
GLIB_000:def 16;
then e9
in (
the_Edges_of G2) & ((
the_Source_of G2)
. e9)
= (f
. v) & ((
the_Target_of G2)
. e9)
= (f
. w) by
TARSKI:def 1;
hence e9
DJoins ((f
. v),(f
. w),G2) by
GLIB_000:def 14;
end;
hence f is
directed;
now
let v,w,e9 be
object;
assume
A10: v
in (
dom f) & w
in (
dom f) & e9
DJoins ((f
. v),(f
. w),G2);
then
reconsider v0 = v, w0 = w as
Vertex of G1;
(f
. v)
in
{(f
. v)} & (f
. w)
in
{(f
. w)} by
TARSKI:def 1;
then e9
DSJoins (
{(f
. v)},
{(f
. w)},G2) by
A10,
GLIB_009: 7;
then e9
in (G2
.edgesDBetween (
{(f
. v)},
{(f
. w)})) by
GLIB_000:def 31;
then (
card (G2
.edgesDBetween (
{(f
. v0)},
{(f
. w0)})))
<>
0 ;
then (
card (G1
.edgesDBetween (
{v0},
{w0})))
<>
0 by
A4;
then (G1
.edgesDBetween (
{v},
{w}))
<>
{} ;
then
consider e be
object such that
A11: e
in (G1
.edgesDBetween (
{v},
{w})) by
XBOOLE_0:def 1;
take e;
e
DSJoins (
{v},
{w},G1) by
A11,
GLIB_000:def 31;
then e
in (
the_Edges_of G1) & ((
the_Source_of G1)
. e)
in
{v} & ((
the_Target_of G1)
. e)
in
{w} by
GLIB_000:def 16;
then e
in (
the_Edges_of G1) & ((
the_Source_of G1)
. e)
= v & ((
the_Target_of G1)
. e)
= w by
TARSKI:def 1;
hence e
DJoins (v,w,G1) by
GLIB_000:def 14;
end;
hence f is
Dcontinuous;
end;
end
theorem ::
GLIB_011:8
Th8: for G1,G2 be
non-multi
_Graph, f be
PVertexMapping of G1, G2 st f is
total
one-to-one
continuous holds for v,w be
Vertex of G1 holds (
card (G1
.edgesBetween (
{v},
{w})))
= (
card (G2
.edgesBetween (
{(f
. v)},
{(f
. w)})))
proof
let G1,G2 be
non-multi
_Graph, f be
PVertexMapping of G1, G2;
assume
A1: f is
total
one-to-one
continuous;
let v,w be
Vertex of G1;
per cases ;
suppose
A2: (G1
.edgesBetween (
{v},
{w}))
=
{} ;
(G2
.edgesBetween (
{(f
. v)},
{(f
. w)}))
=
{}
proof
assume (G2
.edgesBetween (
{(f
. v)},
{(f
. w)}))
<>
{} ;
then
consider e2 be
object such that
A3: (G2
.edgesBetween (
{(f
. v)},
{(f
. w)}))
=
{e2} by
ZFMISC_1: 131;
set v1 = ((
the_Source_of G2)
. e2), v2 = ((
the_Target_of G2)
. e2);
e2
in (G2
.edgesBetween (
{(f
. v)},
{(f
. w)})) by
A3,
TARSKI:def 1;
then e2
SJoins (
{(f
. v)},
{(f
. w)},G2) by
GLIB_000:def 30;
then
A4: e2
in (
the_Edges_of G2) & (v1
in
{(f
. v)} & v2
in
{(f
. w)} or v1
in
{(f
. w)} & v2
in
{(f
. v)}) by
GLIB_000:def 15;
then v1
= (f
. v) & v2
= (f
. w) or v1
= (f
. w) & v2
= (f
. v) by
TARSKI:def 1;
then
A5: e2
Joins ((f
. v),(f
. w),G2) by
A4,
GLIB_000:def 13;
v
in (
the_Vertices_of G1) & w
in (
the_Vertices_of G1) & f is
total by
A1;
then v
in (
dom f) & w
in (
dom f) by
FUNCT_2:def 1;
then
consider e1 be
object such that
A6: e1
Joins (v,w,G1) by
A1,
A5,
Th2;
v
in
{v} & w
in
{w} by
TARSKI:def 1;
then e1
SJoins (
{v},
{w},G1) by
A6,
GLIB_000: 17;
hence contradiction by
A2,
GLIB_000:def 30;
end;
hence (
card (G1
.edgesBetween (
{v},
{w})))
= (
card (G2
.edgesBetween (
{(f
. v)},
{(f
. w)}))) by
A2;
end;
suppose (G1
.edgesBetween (
{v},
{w}))
<>
{} ;
then
consider e1 be
object such that
A7: (G1
.edgesBetween (
{v},
{w}))
=
{e1} by
ZFMISC_1: 131;
set v1 = ((
the_Source_of G1)
. e1), v2 = ((
the_Target_of G1)
. e1);
e1
in (G1
.edgesBetween (
{v},
{w})) by
A7,
TARSKI:def 1;
then e1
SJoins (
{v},
{w},G1) by
GLIB_000:def 30;
then
A8: e1
in (
the_Edges_of G1) & (v1
in
{v} & v2
in
{w} or v1
in
{w} & v2
in
{v}) by
GLIB_000:def 15;
then v1
= v & v2
= w or v1
= w & v2
= v by
TARSKI:def 1;
then
A9: e1
Joins (v,w,G1) by
A8,
GLIB_000:def 13;
v
in (
the_Vertices_of G1) & w
in (
the_Vertices_of G1) & f is
total by
A1;
then v
in (
dom f) & w
in (
dom f) by
FUNCT_2:def 1;
then
consider e2 be
object such that
A10: e2
Joins ((f
. v),(f
. w),G2) by
A9,
Th1;
(f
. v)
in
{(f
. v)} & (f
. w)
in
{(f
. w)} by
TARSKI:def 1;
then e2
SJoins (
{(f
. v)},
{(f
. w)},G2) by
A10,
GLIB_000: 17;
then e2
in (G2
.edgesBetween (
{(f
. v)},
{(f
. w)})) by
GLIB_000:def 30;
then
consider e be
object such that
A11: (G2
.edgesBetween (
{(f
. v)},
{(f
. w)}))
=
{e} by
ZFMISC_1: 131;
(
card (G1
.edgesBetween (
{v},
{w})))
= 1 & (
card (G2
.edgesBetween (
{(f
. v)},
{(f
. w)})))
= 1 by
A7,
A11,
CARD_1: 30;
hence (
card (G1
.edgesBetween (
{v},
{w})))
= (
card (G2
.edgesBetween (
{(f
. v)},
{(f
. w)})));
end;
end;
definition
let G1,G2 be
non-multi
_Graph, f be
PVertexMapping of G1, G2;
:: original:
isomorphism
redefine
::
GLIB_011:def7
attr f is
isomorphism means f is
total
one-to-one
onto
continuous;
compatibility by
Th8;
end
registration
let G1,G2 be
non-multi
_Graph;
cluster
total
one-to-one
onto
continuous ->
isomorphism for
PVertexMapping of G1, G2;
coherence ;
end
theorem ::
GLIB_011:9
Th9: for G1,G2 be
non-Dmulti
_Graph, f be
PVertexMapping of G1, G2 st f is
total
one-to-one
directed
Dcontinuous holds for v,w be
Vertex of G1 holds (
card (G1
.edgesDBetween (
{v},
{w})))
= (
card (G2
.edgesDBetween (
{(f
. v)},
{(f
. w)}))) & (
card (G1
.edgesDBetween (
{w},
{v})))
= (
card (G2
.edgesDBetween (
{(f
. w)},
{(f
. v)})))
proof
let G1,G2 be
non-Dmulti
_Graph, f be
PVertexMapping of G1, G2;
assume
A1: f is
total
one-to-one
directed
Dcontinuous;
let v,w be
Vertex of G1;
hereby
per cases ;
suppose
A2: (G1
.edgesDBetween (
{v},
{w}))
=
{} ;
(G2
.edgesDBetween (
{(f
. v)},
{(f
. w)}))
=
{}
proof
assume (G2
.edgesDBetween (
{(f
. v)},
{(f
. w)}))
<>
{} ;
then
consider e2 be
object such that
A3: (G2
.edgesDBetween (
{(f
. v)},
{(f
. w)}))
=
{e2} by
ZFMISC_1: 131;
set v1 = ((
the_Source_of G2)
. e2), v2 = ((
the_Target_of G2)
. e2);
e2
in (G2
.edgesDBetween (
{(f
. v)},
{(f
. w)})) by
A3,
TARSKI:def 1;
then e2
DSJoins (
{(f
. v)},
{(f
. w)},G2) by
GLIB_000:def 31;
then
A4: e2
in (
the_Edges_of G2) & v1
in
{(f
. v)} & v2
in
{(f
. w)} by
GLIB_000:def 16;
then
A5: v1
= (f
. v) & v2
= (f
. w) by
TARSKI:def 1;
v
in (
the_Vertices_of G1) & w
in (
the_Vertices_of G1) & f is
total by
A1;
then v
in (
dom f) & w
in (
dom f) by
FUNCT_2:def 1;
then
consider e1 be
object such that
A6: e1
DJoins (v,w,G1) by
A1,
A4,
A5,
GLIB_000:def 14;
v
in
{v} & w
in
{w} by
TARSKI:def 1;
then e1
DSJoins (
{v},
{w},G1) by
A6,
GLIB_009: 7;
hence contradiction by
A2,
GLIB_000:def 31;
end;
hence (
card (G1
.edgesDBetween (
{v},
{w})))
= (
card (G2
.edgesDBetween (
{(f
. v)},
{(f
. w)}))) by
A2;
end;
suppose (G1
.edgesDBetween (
{v},
{w}))
<>
{} ;
then
consider e1 be
object such that
A7: (G1
.edgesDBetween (
{v},
{w}))
=
{e1} by
ZFMISC_1: 131;
set v1 = ((
the_Source_of G1)
. e1), v2 = ((
the_Target_of G1)
. e1);
e1
in (G1
.edgesDBetween (
{v},
{w})) by
A7,
TARSKI:def 1;
then e1
DSJoins (
{v},
{w},G1) by
GLIB_000:def 31;
then
A8: e1
in (
the_Edges_of G1) & v1
in
{v} & v2
in
{w} by
GLIB_000:def 16;
then v1
= v & v2
= w by
TARSKI:def 1;
then
A9: e1
DJoins (v,w,G1) by
A8,
GLIB_000:def 14;
v
in (
the_Vertices_of G1) & w
in (
the_Vertices_of G1) & f is
total by
A1;
then v
in (
dom f) & w
in (
dom f) by
FUNCT_2:def 1;
then
consider e2 be
object such that
A10: e2
DJoins ((f
. v),(f
. w),G2) by
A1,
A9;
(f
. v)
in
{(f
. v)} & (f
. w)
in
{(f
. w)} by
TARSKI:def 1;
then e2
DSJoins (
{(f
. v)},
{(f
. w)},G2) by
A10,
GLIB_009: 7;
then e2
in (G2
.edgesDBetween (
{(f
. v)},
{(f
. w)})) by
GLIB_000:def 31;
then
consider e be
object such that
A11: (G2
.edgesDBetween (
{(f
. v)},
{(f
. w)}))
=
{e} by
ZFMISC_1: 131;
(
card (G1
.edgesDBetween (
{v},
{w})))
= 1 & (
card (G2
.edgesDBetween (
{(f
. v)},
{(f
. w)})))
= 1 by
A7,
A11,
CARD_1: 30;
hence (
card (G1
.edgesDBetween (
{v},
{w})))
= (
card (G2
.edgesDBetween (
{(f
. v)},
{(f
. w)})));
end;
end;
per cases ;
suppose
A12: (G1
.edgesDBetween (
{w},
{v}))
=
{} ;
(G2
.edgesDBetween (
{(f
. w)},
{(f
. v)}))
=
{}
proof
assume (G2
.edgesDBetween (
{(f
. w)},
{(f
. v)}))
<>
{} ;
then
consider e2 be
object such that
A13: (G2
.edgesDBetween (
{(f
. w)},
{(f
. v)}))
=
{e2} by
ZFMISC_1: 131;
set v1 = ((
the_Source_of G2)
. e2), v2 = ((
the_Target_of G2)
. e2);
e2
in (G2
.edgesDBetween (
{(f
. w)},
{(f
. v)})) by
A13,
TARSKI:def 1;
then e2
DSJoins (
{(f
. w)},
{(f
. v)},G2) by
GLIB_000:def 31;
then
A14: e2
in (
the_Edges_of G2) & v1
in
{(f
. w)} & v2
in
{(f
. v)} by
GLIB_000:def 16;
then
A15: v1
= (f
. w) & v2
= (f
. v) by
TARSKI:def 1;
v
in (
the_Vertices_of G1) & w
in (
the_Vertices_of G1) & f is
total by
A1;
then v
in (
dom f) & w
in (
dom f) by
FUNCT_2:def 1;
then
consider e1 be
object such that
A16: e1
DJoins (w,v,G1) by
A1,
A14,
A15,
GLIB_000:def 14;
v
in
{v} & w
in
{w} by
TARSKI:def 1;
then e1
DSJoins (
{w},
{v},G1) by
A16,
GLIB_009: 7;
hence contradiction by
A12,
GLIB_000:def 31;
end;
hence (
card (G1
.edgesDBetween (
{w},
{v})))
= (
card (G2
.edgesDBetween (
{(f
. w)},
{(f
. v)}))) by
A12;
end;
suppose (G1
.edgesDBetween (
{w},
{v}))
<>
{} ;
then
consider e1 be
object such that
A17: (G1
.edgesDBetween (
{w},
{v}))
=
{e1} by
ZFMISC_1: 131;
set v1 = ((
the_Source_of G1)
. e1), v2 = ((
the_Target_of G1)
. e1);
e1
in (G1
.edgesDBetween (
{w},
{v})) by
A17,
TARSKI:def 1;
then e1
DSJoins (
{w},
{v},G1) by
GLIB_000:def 31;
then
A18: e1
in (
the_Edges_of G1) & v1
in
{w} & v2
in
{v} by
GLIB_000:def 16;
then v1
= w & v2
= v by
TARSKI:def 1;
then
A19: e1
DJoins (w,v,G1) by
A18,
GLIB_000:def 14;
v
in (
the_Vertices_of G1) & w
in (
the_Vertices_of G1) & f is
total by
A1;
then v
in (
dom f) & w
in (
dom f) by
FUNCT_2:def 1;
then
consider e2 be
object such that
A20: e2
DJoins ((f
. w),(f
. v),G2) by
A1,
A19;
(f
. v)
in
{(f
. v)} & (f
. w)
in
{(f
. w)} by
TARSKI:def 1;
then e2
DSJoins (
{(f
. w)},
{(f
. v)},G2) by
A20,
GLIB_009: 7;
then e2
in (G2
.edgesDBetween (
{(f
. w)},
{(f
. v)})) by
GLIB_000:def 31;
then
consider e be
object such that
A21: (G2
.edgesDBetween (
{(f
. w)},
{(f
. v)}))
=
{e} by
ZFMISC_1: 131;
(
card (G1
.edgesDBetween (
{w},
{v})))
= 1 & (
card (G2
.edgesDBetween (
{(f
. w)},
{(f
. v)})))
= 1 by
A17,
A21,
CARD_1: 30;
hence (
card (G1
.edgesDBetween (
{w},
{v})))
= (
card (G2
.edgesDBetween (
{(f
. w)},
{(f
. v)})));
end;
end;
definition
let G1,G2 be
non-Dmulti
_Graph, f be
PVertexMapping of G1, G2;
:: original:
Disomorphism
redefine
::
GLIB_011:def8
attr f is
Disomorphism means f is
total
one-to-one
onto
directed
Dcontinuous;
compatibility by
Th9;
end
registration
let G1,G2 be
non-Dmulti
_Graph;
cluster
total
one-to-one
onto
directed
Dcontinuous ->
Disomorphism for
PVertexMapping of G1, G2;
coherence ;
end
registration
let G be
_Graph;
cluster
Disomorphism
isomorphism for
PVertexMapping of G, G;
existence
proof
reconsider f = (
id (
the_Vertices_of G)) as
PVertexMapping of G, G by
Th5;
take f;
thus f is
Disomorphism;
thus f is
isomorphism;
end;
end
theorem ::
GLIB_011:10
for G be
_Graph holds (
id (
the_Vertices_of G)) is
Disomorphism
isomorphism
PVertexMapping of G, G
proof
let G be
_Graph;
reconsider f = (
id (
the_Vertices_of G)) as
PVertexMapping of G, G by
Th5;
f is
Disomorphism;
hence thesis;
end;
definition
let G1,G2 be
_Graph, f be
PVertexMapping of G1, G2;
::
GLIB_011:def9
attr f is
invertible means f is
one-to-one
continuous;
end
registration
let G1,G2 be
_Graph;
cluster
invertible ->
one-to-one
continuous for
PVertexMapping of G1, G2;
coherence ;
cluster
one-to-one
continuous ->
invertible for
PVertexMapping of G1, G2;
coherence ;
cluster
isomorphism ->
invertible for
PVertexMapping of G1, G2;
coherence ;
cluster
Disomorphism ->
invertible for
PVertexMapping of G1, G2;
coherence ;
cluster
empty
invertible for
PVertexMapping of G1, G2;
existence
proof
take the
empty
one-to-one
continuous
PVertexMapping of G1, G2;
thus thesis;
end;
end
registration
let G1,G2 be
loopless
_Graph;
cluster non
empty
directed
invertible for
PVertexMapping of G1, G2;
existence
proof
take the non
empty
directed
one-to-one
continuous
PVertexMapping of G1, G2;
thus thesis;
end;
end
registration
let G1,G2 be non
loopless
_Graph;
cluster non
empty
directed
invertible for
PVertexMapping of G1, G2;
existence
proof
take the non
empty
directed
one-to-one
continuous
PVertexMapping of G1, G2;
thus thesis;
end;
end
definition
let G1,G2 be
_Graph, f be
invertible
PVertexMapping of G1, G2;
:: original:
"
redefine
func f
" ->
PVertexMapping of G2, G1 ;
coherence
proof
now
let v,w,e be
object;
assume
A1: v
in (
dom (f
" )) & w
in (
dom (f
" )) & e
Joins (v,w,G2);
then
A2: v
in (
rng f) & w
in (
rng f) by
FUNCT_1: 33;
then
consider v0 be
object such that
A3: v0
in (
dom f) & (f
. v0)
= v by
FUNCT_1:def 3;
consider w0 be
object such that
A4: w0
in (
dom f) & (f
. w0)
= w by
A2,
FUNCT_1:def 3;
consider e0 be
object such that
A5: e0
Joins (v0,w0,G1) by
A1,
A3,
A4,
Th2;
take e0;
((f
" )
. v)
= v0 & ((f
" )
. w)
= w0 by
A3,
A4,
FUNCT_1: 34;
hence e0
Joins (((f
" )
. v),((f
" )
. w),G1) by
A5;
end;
hence thesis by
Th1;
end;
end
registration
let G1,G2 be
_Graph, f be
invertible
PVertexMapping of G1, G2;
cluster (f
" ) ->
one-to-one
continuous
invertible;
coherence
proof
let g be
PVertexMapping of G2, G1;
assume
A1: g
= (f
" );
hence
A2: g is
one-to-one;
now
let v,w,e9 be
object;
assume v
in (
dom g);
then v
in (
rng f) by
A1,
FUNCT_1: 33;
then
consider v0 be
object such that
A3: v0
in (
dom f) & (f
. v0)
= v by
FUNCT_1:def 3;
assume w
in (
dom g);
then w
in (
rng f) by
A1,
FUNCT_1: 33;
then
consider w0 be
object such that
A4: w0
in (
dom f) & (f
. w0)
= w by
FUNCT_1:def 3;
assume e9
Joins ((g
. v),(g
. w),G1);
then e9
Joins (v0,(g
. (f
. w0)),G1) by
A1,
A3,
A4,
FUNCT_1: 34;
then e9
Joins (v0,w0,G1) by
A1,
A4,
FUNCT_1: 34;
then
consider e be
object such that
A5: e
Joins ((f
. v0),(f
. w0),G2) by
A3,
A4,
Th1;
take e;
thus e
Joins (v,w,G2) by
A3,
A4,
A5;
end;
hence g is
continuous
invertible by
A2,
Th2;
end;
end
definition
let G1,G2,G3 be
_Graph;
let f be
PVertexMapping of G1, G2, g be
PVertexMapping of G2, G3;
:: original:
*
redefine
func g
* f ->
PVertexMapping of G1, G3 ;
coherence
proof
now
let v,w,e be
object;
assume
A1: v
in (
dom (g
* f)) & w
in (
dom (g
* f)) & e
Joins (v,w,G1);
then
A2: v
in (
dom f) & w
in (
dom f) & (f
. v)
in (
dom g) & (f
. w)
in (
dom g) by
FUNCT_1: 11;
then
consider e8 be
object such that
A3: e8
Joins ((f
. v),(f
. w),G2) by
A1,
Th1;
consider e9 be
object such that
A4: e9
Joins ((g
. (f
. v)),(g
. (f
. w)),G3) by
A2,
A3,
Th1;
take e9;
((g
* f)
. v)
= (g
. (f
. v)) & ((g
* f)
. w)
= (g
. (f
. w)) by
A1,
FUNCT_1: 12;
hence e9
Joins (((g
* f)
. v),((g
* f)
. w),G3) by
A4;
end;
hence thesis by
Th1;
end;
end
theorem ::
GLIB_011:11
for G1,G2,G3 be
_Graph holds for f be
PVertexMapping of G1, G2, g be
PVertexMapping of G2, G3 st f is
continuous & g is
continuous holds (g
* f) is
continuous
proof
let G1,G2,G3 be
_Graph;
let f be
PVertexMapping of G1, G2, g be
PVertexMapping of G2, G3;
assume
A1: f is
continuous & g is
continuous;
now
let v,w,e9 be
object;
assume
A2: v
in (
dom (g
* f)) & w
in (
dom (g
* f)) & e9
Joins (((g
* f)
. v),((g
* f)
. w),G3);
then e9
Joins ((g
. (f
. v)),((g
* f)
. w),G3) by
FUNCT_1: 12;
then
A3: e9
Joins ((g
. (f
. v)),(g
. (f
. w)),G3) by
A2,
FUNCT_1: 12;
(f
. v)
in (
dom g) & (f
. w)
in (
dom g) by
A2,
FUNCT_1: 11;
then
consider e8 be
object such that
A4: e8
Joins ((f
. v),(f
. w),G2) by
A1,
A3,
Th2;
v
in (
dom f) & w
in (
dom f) by
A2,
FUNCT_1: 11;
then
consider e be
object such that
A5: e
Joins (v,w,G1) by
A1,
A4,
Th2;
take e;
thus e
Joins (v,w,G1) by
A5;
end;
hence thesis by
Th2;
end;
theorem ::
GLIB_011:12
for G1,G2,G3 be
_Graph holds for f be
PVertexMapping of G1, G2, g be
PVertexMapping of G2, G3 st f is
directed & g is
directed holds (g
* f) is
directed
proof
let G1,G2,G3 be
_Graph;
let f be
PVertexMapping of G1, G2, g be
PVertexMapping of G2, G3;
assume
A1: f is
directed & g is
directed;
now
let v,w,e9 be
object;
assume
A2: v
in (
dom (g
* f)) & w
in (
dom (g
* f)) & e9
DJoins (v,w,G1);
then v
in (
dom f) & w
in (
dom f) by
FUNCT_1: 11;
then
consider e8 be
object such that
A3: e8
DJoins ((f
. v),(f
. w),G2) by
A1,
A2;
(f
. v)
in (
dom g) & (f
. w)
in (
dom g) by
A2,
FUNCT_1: 11;
then
consider e be
object such that
A4: e
DJoins ((g
. (f
. v)),(g
. (f
. w)),G3) by
A1,
A3;
take e;
e
DJoins (((g
* f)
. v),(g
. (f
. w)),G3) by
A2,
A4,
FUNCT_1: 12;
hence e
DJoins (((g
* f)
. v),((g
* f)
. w),G3) by
A2,
FUNCT_1: 12;
end;
hence thesis;
end;
theorem ::
GLIB_011:13
for G1,G2,G3 be
_Graph holds for f be
PVertexMapping of G1, G2, g be
PVertexMapping of G2, G3 st f is
Dcontinuous & g is
Dcontinuous holds (g
* f) is
Dcontinuous
proof
let G1,G2,G3 be
_Graph;
let f be
PVertexMapping of G1, G2, g be
PVertexMapping of G2, G3;
assume
A1: f is
Dcontinuous & g is
Dcontinuous;
now
let v,w,e9 be
object;
assume
A2: v
in (
dom (g
* f)) & w
in (
dom (g
* f)) & e9
DJoins (((g
* f)
. v),((g
* f)
. w),G3);
then e9
DJoins ((g
. (f
. v)),((g
* f)
. w),G3) by
FUNCT_1: 12;
then
A3: e9
DJoins ((g
. (f
. v)),(g
. (f
. w)),G3) by
A2,
FUNCT_1: 12;
(f
. v)
in (
dom g) & (f
. w)
in (
dom g) by
A2,
FUNCT_1: 11;
then
consider e8 be
object such that
A4: e8
DJoins ((f
. v),(f
. w),G2) by
A1,
A3;
v
in (
dom f) & w
in (
dom f) by
A2,
FUNCT_1: 11;
then
consider e be
object such that
A5: e
DJoins (v,w,G1) by
A1,
A4;
take e;
thus e
DJoins (v,w,G1) by
A5;
end;
hence thesis;
end;
theorem ::
GLIB_011:14
for G1,G2,G3 be
_Graph holds for f be
PVertexMapping of G1, G2, g be
PVertexMapping of G2, G3 st f is
isomorphism & g is
isomorphism holds (g
* f) is
isomorphism
proof
let G1,G2,G3 be
_Graph;
let f be
PVertexMapping of G1, G2, g be
PVertexMapping of G2, G3;
assume
A1: f is
isomorphism & g is
isomorphism;
hence (g
* f) is
total
one-to-one
onto by
FUNCT_2: 27;
let v,w be
Vertex of G1;
v
in (
the_Vertices_of G1) & w
in (
the_Vertices_of G1);
then
A2: v
in (
dom f) & w
in (
dom f) by
A1,
PARTFUN1:def 2;
then
A3: (f
. v)
in (
rng f) & (f
. w)
in (
rng f) by
FUNCT_1: 3;
thus (
card (G1
.edgesBetween (
{v},
{w})))
= (
card (G2
.edgesBetween (
{(f
. v)},
{(f
. w)}))) by
A1
.= (
card (G3
.edgesBetween (
{(g
. (f
. v))},
{(g
. (f
. w))}))) by
A1,
A3
.= (
card (G3
.edgesBetween (
{((g
* f)
. v)},
{(g
. (f
. w))}))) by
A2,
FUNCT_1: 13
.= (
card (G3
.edgesBetween (
{((g
* f)
. v)},
{((g
* f)
. w)}))) by
A2,
FUNCT_1: 13;
end;
theorem ::
GLIB_011:15
for G1,G2,G3 be
_Graph holds for f be
PVertexMapping of G1, G2, g be
PVertexMapping of G2, G3 st f is
Disomorphism & g is
Disomorphism holds (g
* f) is
Disomorphism
proof
let G1,G2,G3 be
_Graph;
let f be
PVertexMapping of G1, G2, g be
PVertexMapping of G2, G3;
assume
A1: f is
Disomorphism & g is
Disomorphism;
hence (g
* f) is
total
one-to-one
onto by
FUNCT_2: 27;
let v,w be
Vertex of G1;
v
in (
the_Vertices_of G1) & w
in (
the_Vertices_of G1);
then
A2: v
in (
dom f) & w
in (
dom f) by
A1,
PARTFUN1:def 2;
then
A3: (f
. v)
in (
rng f) & (f
. w)
in (
rng f) by
FUNCT_1: 3;
thus (
card (G1
.edgesDBetween (
{v},
{w})))
= (
card (G2
.edgesDBetween (
{(f
. v)},
{(f
. w)}))) by
A1
.= (
card (G3
.edgesDBetween (
{(g
. (f
. v))},
{(g
. (f
. w))}))) by
A1,
A3
.= (
card (G3
.edgesDBetween (
{((g
* f)
. v)},
{(g
. (f
. w))}))) by
A2,
FUNCT_1: 13
.= (
card (G3
.edgesDBetween (
{((g
* f)
. v)},
{((g
* f)
. w)}))) by
A2,
FUNCT_1: 13;
thus (
card (G1
.edgesDBetween (
{w},
{v})))
= (
card (G2
.edgesDBetween (
{(f
. w)},
{(f
. v)}))) by
A1
.= (
card (G3
.edgesDBetween (
{(g
. (f
. w))},
{(g
. (f
. v))}))) by
A1,
A3
.= (
card (G3
.edgesDBetween (
{((g
* f)
. w)},
{(g
. (f
. v))}))) by
A2,
FUNCT_1: 13
.= (
card (G3
.edgesDBetween (
{((g
* f)
. w)},
{((g
* f)
. v)}))) by
A2,
FUNCT_1: 13;
end;
begin
theorem ::
GLIB_011:16
Th16: for G1,G2 be
_Graph, F be
PGraphMapping of G1, G2 st for v,w be
Vertex of G1 st v
in (
dom (F
_V )) & w
in (
dom (F
_V )) & (v,w)
are_adjacent holds ex e be
object st e
in (
dom (F
_E )) & e
Joins (v,w,G1) holds (F
_V ) is
PVertexMapping of G1, G2
proof
let G1,G2 be
_Graph, F be
PGraphMapping of G1, G2;
assume
A1: for v,w be
Vertex of G1 st v
in (
dom (F
_V )) & w
in (
dom (F
_V )) & (v,w)
are_adjacent holds ex e be
object st e
in (
dom (F
_E )) & e
Joins (v,w,G1);
let v,w be
Vertex of G1;
assume
A2: v
in (
dom (F
_V )) & w
in (
dom (F
_V )) & (v,w)
are_adjacent ;
then
consider e be
object such that
A3: e
in (
dom (F
_E )) & e
Joins (v,w,G1) by
A1;
A4: ((F
_V )
/. v)
= ((F
_V )
. v) & ((F
_V )
/. w)
= ((F
_V )
. w) by
A2,
PARTFUN1:def 6;
((F
_E )
. e)
Joins (((F
_V )
. v),((F
_V )
. w),G2) by
A2,
A3,
GLIB_010: 4;
hence (((F
_V )
/. v),((F
_V )
/. w))
are_adjacent by
A4,
CHORD:def 3;
end;
theorem ::
GLIB_011:17
Th17: for G1,G2 be
_Graph, F be
PGraphMapping of G1, G2 st (
dom (F
_E ))
= (
the_Edges_of G1) holds (F
_V ) is
PVertexMapping of G1, G2
proof
let G1,G2 be
_Graph, F be
PGraphMapping of G1, G2;
assume
A1: (
dom (F
_E ))
= (
the_Edges_of G1);
now
let v,w be
Vertex of G1;
assume v
in (
dom (F
_V )) & w
in (
dom (F
_V )) & (v,w)
are_adjacent ;
then
consider e be
object such that
A2: e
Joins (v,w,G1) by
CHORD:def 3;
take e;
thus e
in (
dom (F
_E )) by
A1,
A2,
GLIB_000:def 13;
thus e
Joins (v,w,G1) by
A2;
end;
hence thesis by
Th16;
end;
theorem ::
GLIB_011:18
Th18: for G1,G2 be
_Graph, F be
PGraphMapping of G1, G2 st F is
total holds (F
_V ) is
PVertexMapping of G1, G2
proof
let G1,G2 be
_Graph, F be
PGraphMapping of G1, G2;
assume F is
total;
then (
dom (F
_E ))
= (
the_Edges_of G1) by
GLIB_010:def 11;
hence thesis by
Th17;
end;
theorem ::
GLIB_011:19
Th19: for G1,G2 be
_Graph, F be
directed
PGraphMapping of G1, G2 st for v,w be
object st v
in (
dom (F
_V )) & w
in (
dom (F
_V )) & ex e be
object st e
DJoins (v,w,G1) holds ex e be
object st e
in (
dom (F
_E )) & e
DJoins (v,w,G1) holds (F
_V ) is
directed
PVertexMapping of G1, G2
proof
let G1,G2 be
_Graph, F be
directed
PGraphMapping of G1, G2;
assume
A1: for v,w be
object st v
in (
dom (F
_V )) & w
in (
dom (F
_V )) & ex e be
object st e
DJoins (v,w,G1) holds ex e be
object st e
in (
dom (F
_E )) & e
DJoins (v,w,G1);
now
let v,w,e be
object;
assume
A2: v
in (
dom (F
_V )) & w
in (
dom (F
_V )) & e
Joins (v,w,G1);
per cases by
GLIB_000: 16;
suppose e
DJoins (v,w,G1);
then
consider e0 be
object such that
A3: e0
in (
dom (F
_E )) & e0
DJoins (v,w,G1) by
A1,
A2;
reconsider e9 = ((F
_E )
. e0) as
object;
take e9;
e0
Joins (v,w,G1) by
A3,
GLIB_000: 16;
hence e9
Joins (((F
_V )
. v),((F
_V )
. w),G2) by
A2,
A3,
GLIB_010: 4;
end;
suppose e
DJoins (w,v,G1);
then
consider e0 be
object such that
A4: e0
in (
dom (F
_E )) & e0
DJoins (w,v,G1) by
A1,
A2;
reconsider e9 = ((F
_E )
. e0) as
object;
take e9;
e0
Joins (v,w,G1) by
A4,
GLIB_000: 16;
hence e9
Joins (((F
_V )
. v),((F
_V )
. w),G2) by
A2,
A4,
GLIB_010: 4;
end;
end;
then
A5: (F
_V ) is
PVertexMapping of G1, G2 by
Th1;
now
let v,w,e be
object;
assume
A6: v
in (
dom (F
_V )) & w
in (
dom (F
_V )) & e
DJoins (v,w,G1);
then
consider e0 be
object such that
A7: e0
in (
dom (F
_E )) & e0
DJoins (v,w,G1) by
A1;
reconsider e9 = ((F
_E )
. e0) as
object;
take e9;
thus e9
DJoins (((F
_V )
. v),((F
_V )
. w),G2) by
A6,
A7,
GLIB_010:def 14;
end;
hence thesis by
A5,
Def2;
end;
theorem ::
GLIB_011:20
Th20: for G1,G2 be
_Graph, F be
directed
PGraphMapping of G1, G2 st (
dom (F
_E ))
= (
the_Edges_of G1) holds (F
_V ) is
directed
PVertexMapping of G1, G2
proof
let G1,G2 be
_Graph, F be
directed
PGraphMapping of G1, G2;
assume
A1: (
dom (F
_E ))
= (
the_Edges_of G1);
for v,w be
object st v
in (
dom (F
_V )) & w
in (
dom (F
_V )) holds (ex e be
object st e
DJoins (v,w,G1)) implies (ex e be
object st e
in (
dom (F
_E )) & e
DJoins (v,w,G1)) by
A1,
GLIB_000:def 14;
hence thesis by
Th19;
end;
theorem ::
GLIB_011:21
Th21: for G1,G2 be
_Graph, F be
directed
PGraphMapping of G1, G2 st F is
total holds (F
_V ) is
directed
PVertexMapping of G1, G2
proof
let G1,G2 be
_Graph, F be
directed
PGraphMapping of G1, G2;
assume F is
total;
then (
dom (F
_E ))
= (
the_Edges_of G1) by
GLIB_010:def 11;
hence thesis by
Th20;
end;
theorem ::
GLIB_011:22
Th22: for G1,G2 be
_Graph, F be
semi-continuous
PGraphMapping of G1, G2 st (F
_V ) is
PVertexMapping of G1, G2 & for v,w be
Vertex of G1 st v
in (
dom (F
_V )) & w
in (
dom (F
_V )) & (((F
_V )
/. v),((F
_V )
/. w))
are_adjacent holds ex e9 be
object st e9
in (
rng (F
_E )) & e9
Joins (((F
_V )
. v),((F
_V )
. w),G2) holds (F
_V ) is
continuous
PVertexMapping of G1, G2
proof
let G1,G2 be
_Graph, F be
semi-continuous
PGraphMapping of G1, G2;
assume that
A1: (F
_V ) is
PVertexMapping of G1, G2 and
A2: for v,w be
Vertex of G1 st v
in (
dom (F
_V )) & w
in (
dom (F
_V )) & (((F
_V )
/. v),((F
_V )
/. w))
are_adjacent holds ex e9 be
object st e9
in (
rng (F
_E )) & e9
Joins (((F
_V )
. v),((F
_V )
. w),G2);
reconsider f = (F
_V ) as
PVertexMapping of G1, G2 by
A1;
now
let v,w,e9 be
object;
assume
A3: v
in (
dom f) & w
in (
dom f) & e9
Joins ((f
. v),(f
. w),G2);
then e9
Joins ((f
/. v),(f
. w),G2) by
PARTFUN1:def 6;
then e9
Joins ((f
/. v),(f
/. w),G2) by
A3,
PARTFUN1:def 6;
then
consider e8 be
object such that
A4: e8
in (
rng (F
_E )) & e8
Joins ((f
. v),(f
. w),G2) by
A2,
A3,
CHORD:def 3;
consider e be
object such that
A5: e
in (
dom (F
_E )) & ((F
_E )
. e)
= e8 by
A4,
FUNCT_1:def 3;
take e;
thus e
Joins (v,w,G1) by
A3,
A4,
A5,
GLIB_010:def 15;
end;
hence thesis by
Th2;
end;
theorem ::
GLIB_011:23
Th23: for G1,G2 be
_Graph, F be
semi-continuous
PGraphMapping of G1, G2 st (
dom (F
_E ))
= (
the_Edges_of G1) & (
rng (F
_E ))
= (
the_Edges_of G2) holds (F
_V ) is
continuous
PVertexMapping of G1, G2
proof
let G1,G2 be
_Graph, F be
semi-continuous
PGraphMapping of G1, G2;
assume
A1: (
dom (F
_E ))
= (
the_Edges_of G1) & (
rng (F
_E ))
= (
the_Edges_of G2);
then
A2: (F
_V ) is
PVertexMapping of G1, G2 by
Th17;
now
let v,w be
Vertex of G1;
assume
A3: v
in (
dom (F
_V )) & w
in (
dom (F
_V )) & (((F
_V )
/. v),((F
_V )
/. w))
are_adjacent ;
then
consider e be
object such that
A4: e
Joins (((F
_V )
/. v),((F
_V )
/. w),G2) by
CHORD:def 3;
take e;
thus e
in (
rng (F
_E )) by
A1,
A4,
GLIB_000:def 13;
e
Joins (((F
_V )
. v),((F
_V )
/. w),G2) by
A3,
A4,
PARTFUN1:def 6;
hence e
Joins (((F
_V )
. v),((F
_V )
. w),G2) by
A3,
PARTFUN1:def 6;
end;
hence thesis by
A2,
Th22;
end;
theorem ::
GLIB_011:24
for G1,G2 be
_Graph, F be
semi-continuous
PGraphMapping of G1, G2 st F is
total
onto holds (F
_V ) is
continuous
PVertexMapping of G1, G2
proof
let G1,G2 be
_Graph, F be
semi-continuous
PGraphMapping of G1, G2;
assume F is
total
onto;
then (
dom (F
_E ))
= (
the_Edges_of G1) & (
rng (F
_E ))
= (
the_Edges_of G2) by
GLIB_010:def 11,
GLIB_010:def 12;
hence thesis by
Th23;
end;
Lm1: for x be
object, f be
Function st x
in (
dom f) holds (f
.:
{x})
=
{(f
. x)}
proof
let x be
object, f be
Function;
assume
A1: x
in (
dom f);
thus (f
.:
{x})
= (
Im (f,x)) by
RELAT_1:def 16
.=
{(f
. x)} by
A1,
FUNCT_1: 59;
end;
theorem ::
GLIB_011:25
Th25: for G1,G2 be
_Graph, F be
PGraphMapping of G1, G2 st F is
isomorphism holds ex f be
PVertexMapping of G1, G2 st (F
_V )
= f & f is
isomorphism
proof
let G1,G2 be
_Graph, F be
PGraphMapping of G1, G2;
assume
A1: F is
isomorphism;
then
reconsider f = (F
_V ) as
PVertexMapping of G1, G2 by
Th18;
take f;
thus (F
_V )
= f;
A2: (
dom f)
= (
the_Vertices_of G1) by
A1,
GLIB_010:def 11;
hence f is
total by
PARTFUN1:def 2;
thus f is
one-to-one by
A1;
(
rng f)
= (
the_Vertices_of G2) by
A1,
GLIB_010:def 12;
hence f is
onto by
FUNCT_2:def 3;
let v,w be
Vertex of G1;
(
card (G1
.edgesBetween (
{v},
{w})))
= (
card (G2
.edgesBetween (((F
_V )
.:
{v}),((F
_V )
.:
{w})))) by
A1,
GLIB_010: 86
.= (
card (G2
.edgesBetween (((F
_V )
.:
{v}),
{((F
_V )
. w)}))) by
A2,
Lm1
.= (
card (G2
.edgesBetween (
{(f
. v)},
{(f
. w)}))) by
A2,
Lm1;
hence thesis;
end;
theorem ::
GLIB_011:26
Th26: for G1,G2 be
_Graph, F be
PGraphMapping of G1, G2 st F is
Disomorphism holds ex f be
directed
PVertexMapping of G1, G2 st (F
_V )
= f & f is
Disomorphism
proof
let G1,G2 be
_Graph, F be
PGraphMapping of G1, G2;
assume
A1: F is
Disomorphism;
then
reconsider f = (F
_V ) as
directed
PVertexMapping of G1, G2 by
Th21;
take f;
thus (F
_V )
= f;
A2: (
dom f)
= (
the_Vertices_of G1) by
A1,
GLIB_010:def 11;
hence f is
total by
PARTFUN1:def 2;
thus f is
one-to-one by
A1;
(
rng f)
= (
the_Vertices_of G2) by
A1,
GLIB_010:def 12;
hence f is
onto by
FUNCT_2:def 3;
let v,w be
Vertex of G1;
A3: (
card (G1
.edgesDBetween (
{v},
{w})))
= (
card (G2
.edgesDBetween (((F
_V )
.:
{v}),((F
_V )
.:
{w})))) by
A1,
GLIB_010: 88
.= (
card (G2
.edgesDBetween (((F
_V )
.:
{v}),
{((F
_V )
. w)}))) by
A2,
Lm1
.= (
card (G2
.edgesDBetween (
{(f
. v)},
{(f
. w)}))) by
A2,
Lm1;
(
card (G1
.edgesDBetween (
{w},
{v})))
= (
card (G2
.edgesDBetween (((F
_V )
.:
{w}),((F
_V )
.:
{v})))) by
A1,
GLIB_010: 88
.= (
card (G2
.edgesDBetween (((F
_V )
.:
{w}),
{((F
_V )
. v)}))) by
A2,
Lm1
.= (
card (G2
.edgesDBetween (
{(f
. w)},
{(f
. v)}))) by
A2,
Lm1;
hence thesis by
A3;
end;
theorem ::
GLIB_011:27
Th27: for G1,G2 be
_Graph, f be
PVertexMapping of G1, G2 holds for E1 be
RepEdgeSelection of G1, E2 be
RepEdgeSelection of G2 holds ex F be
PGraphMapping of G1, G2 st (F
_V )
= f & (
dom (F
_E ))
= (E1
/\ (G1
.edgesBetween (
dom f))) & (
rng (F
_E ))
c= (E2
/\ (G2
.edgesBetween (
rng f)))
proof
let G1,G2 be
_Graph, f be
PVertexMapping of G1, G2;
let E1 be
RepEdgeSelection of G1, E2 be
RepEdgeSelection of G2;
defpred
P[
object,
object] means ex v,w be
object st v
in (
dom f) & w
in (
dom f) & $1
in E1 & $2
in E2 & $1
Joins (v,w,G1) & $2
Joins ((f
. v),(f
. w),G2);
A1: for e1,e2,e3 be
object st e1
in (E1
/\ (G1
.edgesBetween (
dom f))) &
P[e1, e2] &
P[e1, e3] holds e2
= e3
proof
let e1,e2,e3 be
object;
assume
A2: e1
in (E1
/\ (G1
.edgesBetween (
dom f))) &
P[e1, e2] &
P[e1, e3];
then
consider v2,w2 be
object such that
A3: v2
in (
dom f) & w2
in (
dom f) & e1
in E1 & e2
in E2 & e1
Joins (v2,w2,G1) & e2
Joins ((f
. v2),(f
. w2),G2);
consider v3,w3 be
object such that
A4: v3
in (
dom f) & w3
in (
dom f) & e1
in E1 & e3
in E2 & e1
Joins (v3,w3,G1) & e3
Joins ((f
. v3),(f
. w3),G2) by
A2;
v2
= v3 & w2
= w3 or v2
= w3 & w2
= v3 by
A3,
A4,
GLIB_000: 15;
then (f
. v2)
= (f
. v3) & (f
. w2)
= (f
. w3) or (f
. v2)
= (f
. w3) & (f
. w2)
= (f
. v3);
then
A5: e3
Joins ((f
. v2),(f
. w2),G2) by
A4,
GLIB_000: 14;
then
consider e0 be
object such that e0
Joins ((f
. v2),(f
. w2),G2) & e0
in E2 and
A6: for e9 be
object st e9
Joins ((f
. v2),(f
. w2),G2) & e9
in E2 holds e9
= e0 by
GLIB_009:def 5;
e2
= e0 & e3
= e0 by
A3,
A4,
A5,
A6;
hence e2
= e3;
end;
A7: for e1 be
object st e1
in (E1
/\ (G1
.edgesBetween (
dom f))) holds ex e2 be
object st
P[e1, e2]
proof
let e1 be
object;
set v = ((
the_Source_of G1)
. e1), w = ((
the_Target_of G1)
. e1);
assume
A8: e1
in (E1
/\ (G1
.edgesBetween (
dom f)));
then e1
in (G1
.edgesBetween (
dom f)) by
XBOOLE_0:def 4;
then
A9: e1
in (
the_Edges_of G1) & v
in (
dom f) & w
in (
dom f) by
GLIB_000: 31;
then
A10: e1
Joins (v,w,G1) by
GLIB_000:def 13;
then
consider e0 be
object such that
A11: e0
Joins ((f
. v),(f
. w),G2) by
A9,
Th1;
consider e2 be
object such that
A12: e2
Joins ((f
. v),(f
. w),G2) & e2
in E2 and for e9 be
object st e9
Joins ((f
. v),(f
. w),G2) & e9
in E2 holds e9
= e2 by
A11,
GLIB_009:def 5;
take e2, v, w;
thus v
in (
dom f) & w
in (
dom f) & e1
in E1 by
A8,
A9,
XBOOLE_0:def 4;
thus e2
in E2 & e1
Joins (v,w,G1) & e2
Joins ((f
. v),(f
. w),G2) by
A10,
A12;
end;
consider g be
Function such that
A13: (
dom g)
= (E1
/\ (G1
.edgesBetween (
dom f))) and
A14: for e1 be
object st e1
in (E1
/\ (G1
.edgesBetween (
dom f))) holds
P[e1, (g
. e1)] from
FUNCT_1:sch 2(
A1,
A7);
for y be
object holds y
in (
rng g) implies y
in (E2
/\ (G2
.edgesBetween (
rng f)))
proof
let y be
object;
assume y
in (
rng g);
then
consider x be
object such that
A15: x
in (
dom g) & (g
. x)
= y by
FUNCT_1:def 3;
consider v,w be
object such that
A16: v
in (
dom f) & w
in (
dom f) & x
in E1 & (g
. x)
in E2 and
A17: x
Joins (v,w,G1) & (g
. x)
Joins ((f
. v),(f
. w),G2) by
A13,
A14,
A15;
(f
. v)
in (
rng f) & (f
. w)
in (
rng f) by
A16,
FUNCT_1: 3;
then ((
the_Source_of G2)
. y)
in (
rng f) & ((
the_Target_of G2)
. y)
in (
rng f) & y
in (
the_Edges_of G2) by
A15,
A17,
GLIB_000:def 13;
then y
in (G2
.edgesBetween (
rng f)) by
GLIB_000: 31;
hence y
in (E2
/\ (G2
.edgesBetween (
rng f))) by
A15,
A16,
XBOOLE_0:def 4;
end;
then
A18: (
rng g)
c= (E2
/\ (G2
.edgesBetween (
rng f))) by
TARSKI:def 3;
(
rng g)
c= (
the_Edges_of G2) by
A18,
XBOOLE_1: 1;
then
reconsider g as
PartFunc of (
the_Edges_of G1), (
the_Edges_of G2) by
A13,
RELSET_1: 4;
now
hereby
let e be
object;
assume e
in (
dom g);
then
consider v,w be
object such that
A19: v
in (
dom f) & w
in (
dom f) & e
in E1 & (g
. e)
in E2 & e
Joins (v,w,G1) & (g
. e)
Joins ((f
. v),(f
. w),G2) by
A13,
A14;
thus ((
the_Source_of G1)
. e)
in (
dom f) & ((
the_Target_of G1)
. e)
in (
dom f) by
A19,
GLIB_000:def 13;
end;
let e,v,w be
object;
assume e
in (
dom g) & v
in (
dom f) & w
in (
dom f);
then
consider v0,w0 be
object such that
A20: v0
in (
dom f) & w0
in (
dom f) & e
in E1 & (g
. e)
in E2 & e
Joins (v0,w0,G1) & (g
. e)
Joins ((f
. v0),(f
. w0),G2) by
A13,
A14;
assume e
Joins (v,w,G1);
then v
= v0 & w
= w0 or v
= w0 & w
= v0 by
A20,
GLIB_000: 15;
hence (g
. e)
Joins ((f
. v),(f
. w),G2) by
A20,
GLIB_000: 14;
end;
then
reconsider F =
[f, g] as
PGraphMapping of G1, G2 by
GLIB_010: 8;
take F;
thus thesis by
A13,
A18;
end;
definition
let G1,G2 be
non-multi
_Graph, f be
PVertexMapping of G1, G2;
::
GLIB_011:def10
func
PVM2PGM (f) ->
PGraphMapping of G1, G2 means
:
Def10: (it
_V )
= f & (
dom (it
_E ))
= (G1
.edgesBetween (
dom f)) & (
rng (it
_E ))
c= (G2
.edgesBetween (
rng f));
existence
proof
set E1 = the
RepEdgeSelection of G1, E2 = the
RepEdgeSelection of G2;
consider F be
PGraphMapping of G1, G2 such that
A1: (F
_V )
= f & (
dom (F
_E ))
= (E1
/\ (G1
.edgesBetween (
dom f))) & (
rng (F
_E ))
c= (E2
/\ (G2
.edgesBetween (
rng f))) by
Th27;
take F;
thus (F
_V )
= f by
A1;
A2: E1
= (
the_Edges_of G1) & E2
= (
the_Edges_of G2) by
GLIB_009: 74;
hence (
dom (F
_E ))
= (G1
.edgesBetween (
dom f)) by
A1,
XBOOLE_1: 28;
thus (
rng (F
_E ))
c= (G2
.edgesBetween (
rng f)) by
A1,
A2,
XBOOLE_1: 28;
end;
uniqueness by
GLIB_010: 40;
end
theorem ::
GLIB_011:28
Th28: for G1,G2 be
non-multi
_Graph holds for f be
PVertexMapping of G1, G2 holds ((
PVM2PGM f)
_V )
= f by
Def10;
registration
let G1,G2 be
non-multi
_Graph, f be
PVertexMapping of G1, G2;
reduce ((
PVM2PGM f)
_V ) to f;
reducibility by
Th28;
end
theorem ::
GLIB_011:29
Th29: for G1,G2 be
_Graph, f be
directed
PVertexMapping of G1, G2 holds for E1 be
RepDEdgeSelection of G1, E2 be
RepDEdgeSelection of G2 holds ex F be
directed
PGraphMapping of G1, G2 st (F
_V )
= f & (
dom (F
_E ))
= (E1
/\ (G1
.edgesBetween (
dom f))) & (
rng (F
_E ))
c= (E2
/\ (G2
.edgesBetween (
rng f)))
proof
let G1,G2 be
_Graph, f be
directed
PVertexMapping of G1, G2;
let E1 be
RepDEdgeSelection of G1, E2 be
RepDEdgeSelection of G2;
defpred
P[
object,
object] means ex v,w be
object st v
in (
dom f) & w
in (
dom f) & $1
in E1 & $2
in E2 & $1
DJoins (v,w,G1) & $2
DJoins ((f
. v),(f
. w),G2);
A1: for e1,e2,e3 be
object st e1
in (E1
/\ (G1
.edgesBetween (
dom f))) &
P[e1, e2] &
P[e1, e3] holds e2
= e3
proof
let e1,e2,e3 be
object;
assume
A2: e1
in (E1
/\ (G1
.edgesBetween (
dom f))) &
P[e1, e2] &
P[e1, e3];
then
consider v2,w2 be
object such that
A3: v2
in (
dom f) & w2
in (
dom f) & e1
in E1 & e2
in E2 & e1
DJoins (v2,w2,G1) & e2
DJoins ((f
. v2),(f
. w2),G2);
consider v3,w3 be
object such that
A4: v3
in (
dom f) & w3
in (
dom f) & e1
in E1 & e3
in E2 & e1
DJoins (v3,w3,G1) & e3
DJoins ((f
. v3),(f
. w3),G2) by
A2;
A5: v2
= v3 & w2
= w3 by
A3,
A4,
GLIB_009: 6;
then
consider e0 be
object such that e0
DJoins ((f
. v2),(f
. w2),G2) & e0
in E2 and
A6: for e9 be
object st e9
DJoins ((f
. v2),(f
. w2),G2) & e9
in E2 holds e9
= e0 by
A4,
GLIB_009:def 6;
e2
= e0 & e3
= e0 by
A3,
A4,
A5,
A6;
hence e2
= e3;
end;
A7: for e1 be
object st e1
in (E1
/\ (G1
.edgesBetween (
dom f))) holds ex e2 be
object st
P[e1, e2]
proof
let e1 be
object;
set v = ((
the_Source_of G1)
. e1), w = ((
the_Target_of G1)
. e1);
assume
A8: e1
in (E1
/\ (G1
.edgesBetween (
dom f)));
then e1
in (G1
.edgesBetween (
dom f)) by
XBOOLE_0:def 4;
then
A9: e1
in (
the_Edges_of G1) & v
in (
dom f) & w
in (
dom f) by
GLIB_000: 31;
then
A10: e1
DJoins (v,w,G1) by
GLIB_000:def 14;
then
consider e0 be
object such that
A11: e0
DJoins ((f
. v),(f
. w),G2) by
A9,
Def2;
consider e2 be
object such that
A12: e2
DJoins ((f
. v),(f
. w),G2) & e2
in E2 and for e9 be
object st e9
DJoins ((f
. v),(f
. w),G2) & e9
in E2 holds e9
= e2 by
A11,
GLIB_009:def 6;
take e2, v, w;
thus v
in (
dom f) & w
in (
dom f) & e1
in E1 by
A8,
A9,
XBOOLE_0:def 4;
thus e2
in E2 & e1
DJoins (v,w,G1) & e2
DJoins ((f
. v),(f
. w),G2) by
A10,
A12;
end;
consider g be
Function such that
A13: (
dom g)
= (E1
/\ (G1
.edgesBetween (
dom f))) and
A14: for e1 be
object st e1
in (E1
/\ (G1
.edgesBetween (
dom f))) holds
P[e1, (g
. e1)] from
FUNCT_1:sch 2(
A1,
A7);
for y be
object holds y
in (
rng g) implies y
in (E2
/\ (G2
.edgesBetween (
rng f)))
proof
let y be
object;
assume y
in (
rng g);
then
consider x be
object such that
A15: x
in (
dom g) & (g
. x)
= y by
FUNCT_1:def 3;
consider v,w be
object such that
A16: v
in (
dom f) & w
in (
dom f) & x
in E1 & (g
. x)
in E2 and
A17: x
DJoins (v,w,G1) & (g
. x)
DJoins ((f
. v),(f
. w),G2) by
A13,
A14,
A15;
(f
. v)
in (
rng f) & (f
. w)
in (
rng f) by
A16,
FUNCT_1: 3;
then ((
the_Source_of G2)
. y)
in (
rng f) & ((
the_Target_of G2)
. y)
in (
rng f) & y
in (
the_Edges_of G2) by
A15,
A17,
GLIB_000:def 14;
then y
in (G2
.edgesBetween (
rng f)) by
GLIB_000: 31;
hence y
in (E2
/\ (G2
.edgesBetween (
rng f))) by
A15,
A16,
XBOOLE_0:def 4;
end;
then
A18: (
rng g)
c= (E2
/\ (G2
.edgesBetween (
rng f))) by
TARSKI:def 3;
(
rng g)
c= (
the_Edges_of G2) by
A18,
XBOOLE_1: 1;
then
reconsider g as
PartFunc of (
the_Edges_of G1), (
the_Edges_of G2) by
A13,
RELSET_1: 4;
now
hereby
let e be
object;
assume e
in (
dom g);
then
consider v,w be
object such that
A19: v
in (
dom f) & w
in (
dom f) & e
in E1 & (g
. e)
in E2 & e
DJoins (v,w,G1) & (g
. e)
DJoins ((f
. v),(f
. w),G2) by
A13,
A14;
thus ((
the_Source_of G1)
. e)
in (
dom f) & ((
the_Target_of G1)
. e)
in (
dom f) by
A19,
GLIB_000:def 14;
end;
let e,v,w be
object;
assume e
in (
dom g) & v
in (
dom f) & w
in (
dom f);
then
consider v0,w0 be
object such that v0
in (
dom f) & w0
in (
dom f) & e
in E1 & (g
. e)
in E2 and
A20: e
DJoins (v0,w0,G1) & (g
. e)
DJoins ((f
. v0),(f
. w0),G2) by
A13,
A14;
assume e
DJoins (v,w,G1);
then v
= v0 & w
= w0 by
A20,
GLIB_009: 6;
hence (g
. e)
DJoins ((f
. v),(f
. w),G2) by
A20;
end;
then
reconsider F =
[f, g] as
directed
PGraphMapping of G1, G2 by
GLIB_010: 30;
take F;
thus thesis by
A13,
A18;
end;
definition
let G1,G2 be
non-Dmulti
_Graph;
let f be
directed
PVertexMapping of G1, G2;
::
GLIB_011:def11
func
DPVM2PGM (f) ->
directed
PGraphMapping of G1, G2 means
:
Def11: (it
_V )
= f & (
dom (it
_E ))
= (G1
.edgesBetween (
dom f)) & (
rng (it
_E ))
c= (G2
.edgesBetween (
rng f));
existence
proof
set E1 = the
RepDEdgeSelection of G1, E2 = the
RepDEdgeSelection of G2;
consider F be
directed
PGraphMapping of G1, G2 such that
A1: (F
_V )
= f & (
dom (F
_E ))
= (E1
/\ (G1
.edgesBetween (
dom f))) & (
rng (F
_E ))
c= (E2
/\ (G2
.edgesBetween (
rng f))) by
Th29;
take F;
thus (F
_V )
= f by
A1;
A2: E1
= (
the_Edges_of G1) & E2
= (
the_Edges_of G2) by
GLIB_009: 76;
hence (
dom (F
_E ))
= (G1
.edgesBetween (
dom f)) by
A1,
XBOOLE_1: 28;
thus (
rng (F
_E ))
c= (G2
.edgesBetween (
rng f)) by
A1,
A2,
XBOOLE_1: 28;
end;
uniqueness by
GLIB_010: 41;
end
theorem ::
GLIB_011:30
Th30: for G1,G2 be
non-Dmulti
_Graph holds for f be
directed
PVertexMapping of G1, G2 holds ((
DPVM2PGM f)
_V )
= f by
Def11;
registration
let G1,G2 be
non-Dmulti
_Graph;
let f be
directed
PVertexMapping of G1, G2;
reduce ((
DPVM2PGM f)
_V ) to f;
reducibility by
Th30;
end
theorem ::
GLIB_011:31
for G1,G2 be
non-multi
_Graph holds for f be
directed
PVertexMapping of G1, G2 holds (
PVM2PGM f)
= (
DPVM2PGM f)
proof
let G1,G2 be
non-multi
_Graph;
let f be
directed
PVertexMapping of G1, G2;
A1: ((
PVM2PGM f)
_V )
= f & ((
DPVM2PGM f)
_V )
= f;
(
dom ((
PVM2PGM f)
_E ))
= (G1
.edgesBetween (
dom f)) & (
dom ((
DPVM2PGM f)
_E ))
= (G1
.edgesBetween (
dom f)) by
Def10,
Def11;
hence thesis by
A1,
GLIB_010: 40;
end;
theorem ::
GLIB_011:32
Th32: for G1,G2 be
non-multi
_Graph, f be
PVertexMapping of G1, G2 st f is
total holds (
PVM2PGM f) is
total
proof
let G1,G2 be
non-multi
_Graph, f be
PVertexMapping of G1, G2;
assume f is
total;
then
A1: (
dom f)
= (
the_Vertices_of G1) by
PARTFUN1:def 2;
A2: (
dom ((
PVM2PGM f)
_E ))
= (G1
.edgesBetween (
dom f)) by
Def10
.= (
the_Edges_of G1) by
A1,
GLIB_000: 34;
((
PVM2PGM f)
_V )
= f;
hence thesis by
A1,
A2,
GLIB_010:def 11;
end;
theorem ::
GLIB_011:33
Th33: for G1,G2 be
non-Dmulti
_Graph, f be
directed
PVertexMapping of G1, G2 st f is
total holds (
DPVM2PGM f) is
total
proof
let G1,G2 be
non-Dmulti
_Graph, f be
directed
PVertexMapping of G1, G2;
assume f is
total;
then
A1: (
dom f)
= (
the_Vertices_of G1) by
PARTFUN1:def 2;
A2: (
dom ((
DPVM2PGM f)
_E ))
= (G1
.edgesBetween (
dom f)) by
Def11
.= (
the_Edges_of G1) by
A1,
GLIB_000: 34;
((
DPVM2PGM f)
_V )
= f;
hence thesis by
A1,
A2,
GLIB_010:def 11;
end;
theorem ::
GLIB_011:34
Th34: for G1,G2 be
non-multi
_Graph, f be
PVertexMapping of G1, G2 st f is
one-to-one holds (
PVM2PGM f) is
one-to-one
proof
let G1,G2 be
non-multi
_Graph, f be
PVertexMapping of G1, G2;
assume
A1: f is
one-to-one;
then
A2: ((
PVM2PGM f)
_V ) is
one-to-one;
set g = ((
PVM2PGM f)
_E );
for x1,x2 be
object st x1
in (
dom g) & x2
in (
dom g) & (g
. x1)
= (g
. x2) holds x1
= x2
proof
let x1,x2 be
object;
set v1 = ((
the_Source_of G1)
. x1), w1 = ((
the_Target_of G1)
. x1), v2 = ((
the_Source_of G1)
. x2), w2 = ((
the_Target_of G1)
. x2);
assume
A3: x1
in (
dom g) & x2
in (
dom g) & (g
. x1)
= (g
. x2);
then x1
in (G1
.edgesBetween (
dom f)) by
Def10;
then
A4: x1
in (
the_Edges_of G1) & v1
in (
dom f) & w1
in (
dom f) by
GLIB_000: 31;
then
A5: x1
Joins (v1,w1,G1) by
GLIB_000:def 13;
then (g
. x1)
Joins ((((
PVM2PGM f)
_V )
. v1),(((
PVM2PGM f)
_V )
. w1),G2) by
A3,
A4,
GLIB_010: 4;
then
A6: (g
. x1)
Joins ((f
. v1),(f
. w1),G2);
x2
in (G1
.edgesBetween (
dom f)) by
A3,
Def10;
then
A7: x2
in (
the_Edges_of G1) & v2
in (
dom f) & w2
in (
dom f) by
GLIB_000: 31;
then
A8: x2
Joins (v2,w2,G1) by
GLIB_000:def 13;
then (g
. x2)
Joins ((((
PVM2PGM f)
_V )
. v2),(((
PVM2PGM f)
_V )
. w2),G2) by
A3,
A7,
GLIB_010: 4;
per cases by
A3,
A6,
GLIB_000: 15;
suppose (f
. v1)
= (f
. v2) & (f
. w1)
= (f
. w2);
then v1
= v2 & w1
= w2 by
A1,
A4,
A7,
FUNCT_1:def 4;
hence x1
= x2 by
A5,
A8,
GLIB_000:def 20;
end;
suppose (f
. v1)
= (f
. w2) & (f
. w1)
= (f
. v2);
then v1
= w2 & w1
= v2 by
A1,
A4,
A7,
FUNCT_1:def 4;
then x2
Joins (v1,w1,G1) by
A8,
GLIB_000: 14;
hence x1
= x2 by
A5,
GLIB_000:def 20;
end;
end;
then g is
one-to-one by
FUNCT_1:def 4;
hence thesis by
A2,
GLIB_010:def 13;
end;
theorem ::
GLIB_011:35
Th35: for G1,G2 be
non-Dmulti
_Graph, f be
directed
PVertexMapping of G1, G2 st f is
one-to-one holds (
DPVM2PGM f) is
one-to-one
proof
let G1,G2 be
non-Dmulti
_Graph, f be
directed
PVertexMapping of G1, G2;
assume
A1: f is
one-to-one;
then
A2: ((
DPVM2PGM f)
_V ) is
one-to-one;
set g = ((
DPVM2PGM f)
_E );
for x1,x2 be
object st x1
in (
dom g) & x2
in (
dom g) & (g
. x1)
= (g
. x2) holds x1
= x2
proof
let x1,x2 be
object;
set v1 = ((
the_Source_of G1)
. x1), w1 = ((
the_Target_of G1)
. x1), v2 = ((
the_Source_of G1)
. x2), w2 = ((
the_Target_of G1)
. x2);
assume
A3: x1
in (
dom g) & x2
in (
dom g) & (g
. x1)
= (g
. x2);
then x1
in (G1
.edgesBetween (
dom f)) by
Def11;
then
A4: x1
in (
the_Edges_of G1) & v1
in (
dom f) & w1
in (
dom f) by
GLIB_000: 31;
then
A5: x1
DJoins (v1,w1,G1) by
GLIB_000:def 14;
then (g
. x1)
DJoins ((((
DPVM2PGM f)
_V )
. v1),(((
DPVM2PGM f)
_V )
. w1),G2) by
A3,
A4,
GLIB_010:def 14;
then
A6: (g
. x1)
DJoins ((f
. v1),(f
. w1),G2);
x2
in (G1
.edgesBetween (
dom f)) by
A3,
Def11;
then
A7: x2
in (
the_Edges_of G1) & v2
in (
dom f) & w2
in (
dom f) by
GLIB_000: 31;
then
A8: x2
DJoins (v2,w2,G1) by
GLIB_000:def 14;
then (g
. x2)
DJoins ((((
DPVM2PGM f)
_V )
. v2),(((
DPVM2PGM f)
_V )
. w2),G2) by
A3,
A7,
GLIB_010:def 14;
then (f
. v1)
= (f
. v2) & (f
. w1)
= (f
. w2) by
A3,
A6,
GLIB_009: 6;
then v1
= v2 & w1
= w2 by
A1,
A4,
A7,
FUNCT_1:def 4;
hence x1
= x2 by
A5,
A8,
GLIB_000:def 21;
end;
then g is
one-to-one by
FUNCT_1:def 4;
hence thesis by
A2,
GLIB_010:def 13;
end;
theorem ::
GLIB_011:36
Th36: for G1,G2 be
non-multi
_Graph, f be
PVertexMapping of G1, G2 st f is
onto
continuous holds (
PVM2PGM f) is
onto
proof
let G1,G2 be
non-multi
_Graph, f be
PVertexMapping of G1, G2;
assume
A1: f is
onto
continuous;
then
A2: (
rng ((
PVM2PGM f)
_V ))
= (
the_Vertices_of G2) by
FUNCT_2:def 3;
set g = ((
PVM2PGM f)
_E );
for e be
object st e
in (
the_Edges_of G2) holds e
in (
rng g)
proof
let e be
object;
set v2 = ((
the_Source_of G2)
. e), w2 = ((
the_Target_of G2)
. e);
assume e
in (
the_Edges_of G2);
then e
in (G2
.edgesBetween (
the_Vertices_of G2)) by
GLIB_000: 34;
then e
in (G2
.edgesBetween (
rng f)) by
A1,
FUNCT_2:def 3;
then
A3: e
in (
the_Edges_of G2) & v2
in (
rng f) & w2
in (
rng f) by
GLIB_000: 31;
consider v1 be
object such that
A4: v1
in (
dom f) & (f
. v1)
= v2 by
A3,
FUNCT_1:def 3;
consider w1 be
object such that
A5: w1
in (
dom f) & (f
. w1)
= w2 by
A3,
FUNCT_1:def 3;
A6: e
Joins ((f
. v1),(f
. w1),G2) by
A3,
A4,
A5,
GLIB_000:def 13;
then
consider e0 be
object such that
A7: e0
Joins (v1,w1,G1) by
A1,
A4,
A5,
Th2;
e0
in (G1
.edgesBetween (
dom f)) by
A4,
A5,
A7,
GLIB_000: 32;
then
A8: e0
in (
dom g) by
Def10;
then (g
. e0)
Joins ((((
PVM2PGM f)
_V )
. v1),(((
PVM2PGM f)
_V )
. w1),G2) by
A4,
A5,
A7,
GLIB_010: 4;
then (g
. e0)
= e by
A6,
GLIB_000:def 20;
hence e
in (
rng g) by
A8,
FUNCT_1:def 3;
end;
then (
the_Edges_of G2)
c= (
rng g) by
TARSKI:def 3;
then (
rng g)
= (
the_Edges_of G2) by
XBOOLE_0:def 10;
hence thesis by
A2,
GLIB_010:def 12;
end;
theorem ::
GLIB_011:37
Th37: for G1,G2 be
non-Dmulti
_Graph, f be
directed
PVertexMapping of G1, G2 st f is
onto
Dcontinuous holds (
DPVM2PGM f) is
onto
proof
let G1,G2 be
non-Dmulti
_Graph, f be
directed
PVertexMapping of G1, G2;
assume
A1: f is
onto
Dcontinuous;
then
A2: (
rng ((
DPVM2PGM f)
_V ))
= (
the_Vertices_of G2) by
FUNCT_2:def 3;
set g = ((
DPVM2PGM f)
_E );
for e be
object st e
in (
the_Edges_of G2) holds e
in (
rng g)
proof
let e be
object;
set v2 = ((
the_Source_of G2)
. e), w2 = ((
the_Target_of G2)
. e);
assume e
in (
the_Edges_of G2);
then e
in (G2
.edgesBetween (
the_Vertices_of G2)) by
GLIB_000: 34;
then e
in (G2
.edgesBetween (
rng f)) by
A1,
FUNCT_2:def 3;
then
A3: e
in (
the_Edges_of G2) & v2
in (
rng f) & w2
in (
rng f) by
GLIB_000: 31;
consider v1 be
object such that
A4: v1
in (
dom f) & (f
. v1)
= v2 by
A3,
FUNCT_1:def 3;
consider w1 be
object such that
A5: w1
in (
dom f) & (f
. w1)
= w2 by
A3,
FUNCT_1:def 3;
e
DJoins (v2,w2,G2) by
A3,
GLIB_000:def 14;
then
A6: e
DJoins ((f
. v1),(f
. w1),G2) by
A4,
A5;
then
consider e0 be
object such that
A7: e0
DJoins (v1,w1,G1) by
A1,
A4,
A5;
e0
Joins (v1,w1,G1) by
A7,
GLIB_000: 16;
then e0
in (G1
.edgesBetween (
dom f)) by
A4,
A5,
GLIB_000: 32;
then
A8: e0
in (
dom g) by
Def11;
then (g
. e0)
DJoins ((((
DPVM2PGM f)
_V )
. v1),(((
DPVM2PGM f)
_V )
. w1),G2) by
A4,
A5,
A7,
GLIB_010:def 14;
then (g
. e0)
= e by
A6,
GLIB_000:def 21;
hence e
in (
rng g) by
A8,
FUNCT_1:def 3;
end;
then (
the_Edges_of G2)
c= (
rng g) by
TARSKI:def 3;
then (
rng g)
= (
the_Edges_of G2) by
XBOOLE_0:def 10;
hence thesis by
A2,
GLIB_010:def 12;
end;
theorem ::
GLIB_011:38
for G1,G2 be
non-multi
_Graph, f be
PVertexMapping of G1, G2 st f is
continuous
one-to-one holds (
PVM2PGM f) is
semi-continuous
proof
let G1,G2 be
non-multi
_Graph, f be
PVertexMapping of G1, G2;
assume
A1: f is
continuous
one-to-one;
set g = ((
PVM2PGM f)
_E );
now
let e,v,w be
object;
assume
A2: e
in (
dom g) & v
in (
dom ((
PVM2PGM f)
_V )) & w
in (
dom ((
PVM2PGM f)
_V ));
assume
A3: (g
. e)
Joins ((((
PVM2PGM f)
_V )
. v),(((
PVM2PGM f)
_V )
. w),G2);
then (g
. e)
Joins ((f
. v),(f
. w),G2);
then
consider e0 be
object such that
A4: e0
Joins (v,w,G1) by
A1,
A2,
Th2;
e0
in (G1
.edgesBetween (
dom f)) by
A2,
A4,
GLIB_000: 32;
then
A5: e0
in (
dom g) by
Def10;
then (g
. e0)
Joins ((((
PVM2PGM f)
_V )
. v),(((
PVM2PGM f)
_V )
. w),G2) by
A2,
A4,
GLIB_010: 4;
then
A6: (g
. e0)
= (g
. e) by
A3,
GLIB_000:def 20;
(
PVM2PGM f) is
one-to-one by
A1,
Th34;
hence e
Joins (v,w,G1) by
A2,
A4,
A5,
A6,
FUNCT_1:def 4;
end;
hence thesis by
GLIB_010:def 15;
end;
theorem ::
GLIB_011:39
Th39: for G1,G2 be
non-multi
_Graph, f be
PVertexMapping of G1, G2 st f is
continuous holds (
PVM2PGM f) is
continuous
proof
let G1,G2 be
non-multi
_Graph, f be
PVertexMapping of G1, G2;
assume
A1: f is
continuous;
now
let e9,v,w be
object;
assume
A2: v
in (
dom ((
PVM2PGM f)
_V )) & w
in (
dom ((
PVM2PGM f)
_V ));
assume
A3: e9
Joins ((((
PVM2PGM f)
_V )
. v),(((
PVM2PGM f)
_V )
. w),G2);
then
consider e be
object such that
A4: e
Joins (v,w,G1) by
A1,
A2,
Th2;
take e;
thus e
Joins (v,w,G1) by
A4;
e
in (G1
.edgesBetween (
dom ((
PVM2PGM f)
_V ))) by
A2,
A4,
GLIB_000: 32;
hence e
in (
dom ((
PVM2PGM f)
_E )) by
Def10;
then (((
PVM2PGM f)
_E )
. e)
Joins ((((
PVM2PGM f)
_V )
. v),(((
PVM2PGM f)
_V )
. w),G2) by
A2,
A4,
GLIB_010: 4;
hence (((
PVM2PGM f)
_E )
. e)
= e9 by
A3,
GLIB_000:def 20;
end;
hence thesis by
GLIB_010:def 16;
end;
theorem ::
GLIB_011:40
for G1,G2 be
non-Dmulti
_Graph, f be
directed
PVertexMapping of G1, G2 st f is
one-to-one holds (
DPVM2PGM f) is
semi-Dcontinuous
semi-continuous
proof
let G1,G2 be
non-Dmulti
_Graph, f be
directed
PVertexMapping of G1, G2;
assume f is
one-to-one;
then (
DPVM2PGM f) is
one-to-one by
Th35;
hence thesis;
end;
theorem ::
GLIB_011:41
Th41: for G1,G2 be
non-Dmulti
_Graph, f be
directed
PVertexMapping of G1, G2 st f is
Dcontinuous holds (
DPVM2PGM f) is
Dcontinuous
proof
let G1,G2 be
non-Dmulti
_Graph, f be
directed
PVertexMapping of G1, G2;
assume
A1: f is
Dcontinuous;
now
let e9,v,w be
object;
assume
A2: v
in (
dom ((
DPVM2PGM f)
_V )) & w
in (
dom ((
DPVM2PGM f)
_V ));
then
reconsider v0 = v, w0 = w as
Vertex of G1;
assume
A3: e9
DJoins ((((
DPVM2PGM f)
_V )
. v),(((
DPVM2PGM f)
_V )
. w),G2);
then
consider e be
object such that
A4: e
DJoins (v,w,G1) by
A1,
A2;
take e;
thus e
DJoins (v,w,G1) by
A4;
e
Joins (v,w,G1) by
A4,
GLIB_000: 16;
then e
in (G1
.edgesBetween (
dom ((
DPVM2PGM f)
_V ))) by
A2,
GLIB_000: 32;
hence e
in (
dom ((
DPVM2PGM f)
_E )) by
Def11;
then (((
DPVM2PGM f)
_E )
. e)
DJoins ((((
DPVM2PGM f)
_V )
. v),(((
DPVM2PGM f)
_V )
. w),G2) by
A2,
A4,
GLIB_010:def 14;
hence (((
DPVM2PGM f)
_E )
. e)
= e9 by
A3,
GLIB_000:def 21;
end;
hence thesis by
GLIB_010:def 18;
end;
theorem ::
GLIB_011:42
for G1,G2 be
non-multi
_Graph, f be
PVertexMapping of G1, G2 st f is
one-to-one holds (
PVM2PGM f) is
one-to-one by
Th34;
theorem ::
GLIB_011:43
for G1,G2 be
non-Dmulti
_Graph, f be
directed
PVertexMapping of G1, G2 st f is
one-to-one holds (
DPVM2PGM f) is
one-to-one by
Th35;
theorem ::
GLIB_011:44
for G1,G2 be
non-multi
_Graph, f be
PVertexMapping of G1, G2 st f is
total
one-to-one holds (
PVM2PGM f) is
weak_SG-embedding
proof
let G1,G2 be
non-multi
_Graph, f be
PVertexMapping of G1, G2;
assume f is
total
one-to-one;
then (
PVM2PGM f) is
total
one-to-one by
Th32,
Th34;
hence thesis;
end;
theorem ::
GLIB_011:45
for G1,G2 be
non-Dmulti
_Graph, f be
directed
PVertexMapping of G1, G2 st f is
total
one-to-one holds (
DPVM2PGM f) is
weak_SG-embedding
proof
let G1,G2 be
non-Dmulti
_Graph, f be
directed
PVertexMapping of G1, G2;
assume f is
total
one-to-one;
then (
DPVM2PGM f) is
total
one-to-one by
Th33,
Th35;
hence thesis;
end;
theorem ::
GLIB_011:46
for G1,G2 be
non-multi
_Graph, f be
PVertexMapping of G1, G2 st f is
total
one-to-one
continuous holds (
PVM2PGM f) is
strong_SG-embedding
proof
let G1,G2 be
non-multi
_Graph, f be
PVertexMapping of G1, G2;
assume f is
total
one-to-one
continuous;
then (
PVM2PGM f) is
total
one-to-one
continuous by
Th32,
Th34,
Th39;
hence thesis;
end;
theorem ::
GLIB_011:47
Th47: for G1,G2 be
non-multi
_Graph, f be
PVertexMapping of G1, G2 st f is
isomorphism holds (
PVM2PGM f) is
isomorphism
proof
let G1,G2 be
non-multi
_Graph, f be
PVertexMapping of G1, G2;
assume f is
isomorphism;
then (
PVM2PGM f) is
total
one-to-one
onto by
Th32,
Th34,
Th36;
hence thesis;
end;
theorem ::
GLIB_011:48
Th48: for G1,G2 be
non-Dmulti
_Graph, f be
directed
PVertexMapping of G1, G2 st f is
Disomorphism holds (
DPVM2PGM f) is
Disomorphism
proof
let G1,G2 be
non-Dmulti
_Graph, f be
directed
PVertexMapping of G1, G2;
assume f is
Disomorphism;
then (
DPVM2PGM f) is
total
one-to-one
onto
Dcontinuous by
Th33,
Th35,
Th37,
Th41;
hence thesis;
end;
theorem ::
GLIB_011:49
for G1,G2 be
non-multi
_Graph holds G2 is G1
-isomorphic iff ex f be
PVertexMapping of G1, G2 st f is
isomorphism
proof
let G1,G2 be
non-multi
_Graph;
hereby
assume G2 is G1
-isomorphic;
then
consider F be
PGraphMapping of G1, G2 such that
A1: F is
isomorphism by
GLIB_010:def 23;
consider f be
PVertexMapping of G1, G2 such that
A2: (F
_V )
= f & f is
isomorphism by
A1,
Th25;
take f;
thus f is
isomorphism by
A2;
end;
given f be
PVertexMapping of G1, G2 such that
A3: f is
isomorphism;
(
PVM2PGM f) is
isomorphism by
A3,
Th47;
hence thesis by
GLIB_010:def 23;
end;
theorem ::
GLIB_011:50
for G1,G2 be
non-Dmulti
_Graph holds G2 is G1
-Disomorphic iff ex f be
directed
PVertexMapping of G1, G2 st f is
Disomorphism
proof
let G1,G2 be
non-Dmulti
_Graph;
hereby
assume G2 is G1
-Disomorphic;
then
consider F be
PGraphMapping of G1, G2 such that
A1: F is
Disomorphism by
GLIB_010:def 24;
consider f be
directed
PVertexMapping of G1, G2 such that
A2: (F
_V )
= f & f is
Disomorphism by
A1,
Th26;
take f;
thus f is
Disomorphism by
A2;
end;
given f be
directed
PVertexMapping of G1, G2 such that
A3: f is
Disomorphism;
(
DPVM2PGM f) is
Disomorphism by
A3,
Th48;
hence thesis by
GLIB_010:def 24;
end;