let G1 be _Graph; for G2 being G1 -Disomorphic _Graph
for G3 being removeDParallelEdges of G1
for G4 being removeDParallelEdges of G2 holds G4 is G3 -Disomorphic
let G2 be G1 -Disomorphic _Graph; for G3 being removeDParallelEdges of G1
for G4 being removeDParallelEdges of G2 holds G4 is G3 -Disomorphic
let G3 be removeDParallelEdges of G1; for G4 being removeDParallelEdges of G2 holds G4 is G3 -Disomorphic
let G4 be removeDParallelEdges of G2; G4 is G3 -Disomorphic
consider G being PGraphMapping of G1,G2 such that
A1:
G is Disomorphism
by Def24;
reconsider G = G as directed PGraphMapping of G1,G2 by A1;
consider E1 being RepDEdgeSelection of G1 such that
A2:
G3 is inducedSubgraph of G1, the_Vertices_of G1,E1
by GLIB_009:def 8;
consider E2 being RepDEdgeSelection of G2 such that
A3:
G4 is inducedSubgraph of G2, the_Vertices_of G2,E2
by GLIB_009:def 8;
A4:
( G1 .edgesBetween (the_Vertices_of G1) = the_Edges_of G1 & G2 .edgesBetween (the_Vertices_of G2) = the_Edges_of G2 )
by GLIB_000:34;
( the_Vertices_of G1 c= the_Vertices_of G1 & the_Vertices_of G2 c= the_Vertices_of G2 )
;
then A5:
( the_Edges_of G3 = E1 & the_Edges_of G4 = E2 )
by A2, A3, A4, GLIB_000:def 37;
A6:
( the_Vertices_of G3 = the_Vertices_of G1 & the_Vertices_of G4 = the_Vertices_of G2 )
by GLIB_000:def 33;
then reconsider f = G _V as PartFunc of (the_Vertices_of G3),(the_Vertices_of G4) ;
defpred S1[ object , object ] means ( $2 in E2 & [$1,$2] in DEdgeAdjEqRel G2 );
A7:
for x, y1, y2 being object st x in the_Edges_of G2 & S1[x,y1] & S1[x,y2] holds
y1 = y2
proof
let x,
y1,
y2 be
object ;
( x in the_Edges_of G2 & S1[x,y1] & S1[x,y2] implies y1 = y2 )
set v1 =
(the_Source_of G2) . x;
set v2 =
(the_Target_of G2) . x;
assume
x in the_Edges_of G2
;
( not S1[x,y1] or not S1[x,y2] or y1 = y2 )
then A8:
x DJoins (the_Source_of G2) . x,
(the_Target_of G2) . x,
G2
by GLIB_000:def 14;
then consider e being
object such that
(
e DJoins (the_Source_of G2) . x,
(the_Target_of G2) . x,
G2 &
e in E2 )
and A9:
for
e9 being
object st
e9 DJoins (the_Source_of G2) . x,
(the_Target_of G2) . x,
G2 &
e9 in E2 holds
e9 = e
by GLIB_009:def 6;
assume A10:
S1[
x,
y1]
;
( not S1[x,y2] or y1 = y2 )
then consider w1,
w2 being
object such that A11:
(
x DJoins w1,
w2,
G2 &
y1 DJoins w1,
w2,
G2 )
by GLIB_009:def 4;
(
w1 = (the_Source_of G2) . x &
w2 = (the_Target_of G2) . x )
by A8, A11, GLIB_000:125;
then A12:
y1 = e
by A9, A10, A11;
assume A13:
S1[
x,
y2]
;
y1 = y2
then consider u1,
u2 being
object such that A14:
(
x DJoins u1,
u2,
G2 &
y2 DJoins u1,
u2,
G2 )
by GLIB_009:def 4;
(
u1 = (the_Source_of G2) . x &
u2 = (the_Target_of G2) . x )
by A8, A14, GLIB_000:125;
then
y2 DJoins (the_Source_of G2) . x,
(the_Target_of G2) . x,
G2
by A14;
hence
y1 = y2
by A9, A12, A13;
verum
end;
A15:
for x being object st x in the_Edges_of G2 holds
ex y being object st S1[x,y]
proof
let x be
object ;
( x in the_Edges_of G2 implies ex y being object st S1[x,y] )
set v1 =
(the_Source_of G2) . x;
set v2 =
(the_Target_of G2) . x;
assume
x in the_Edges_of G2
;
ex y being object st S1[x,y]
then A16:
x DJoins (the_Source_of G2) . x,
(the_Target_of G2) . x,
G2
by GLIB_000:def 14;
then consider e being
object such that A17:
(
e DJoins (the_Source_of G2) . x,
(the_Target_of G2) . x,
G2 &
e in E2 )
and
for
e9 being
object st
e9 DJoins (the_Source_of G2) . x,
(the_Target_of G2) . x,
G2 &
e9 in E2 holds
e9 = e
by GLIB_009:def 6;
take
e
;
S1[x,e]
thus
S1[
x,
e]
by A16, A17, GLIB_009:def 4;
verum
end;
consider h being Function such that
A18:
dom h = the_Edges_of G2
and
A19:
for x being object st x in the_Edges_of G2 holds
S1[x,h . x]
from FUNCT_1:sch 2(A7, A15);
set g = (h * (G _E)) | E1;
dom h = rng (G _E)
by A1, A18, Def12;
then A20:
( dom (h * (G _E)) = dom (G _E) & rng (h * (G _E)) = rng h )
by RELAT_1:27, RELAT_1:28;
then A21: dom ((h * (G _E)) | E1) =
(dom (G _E)) /\ E1
by RELAT_1:61
.=
(the_Edges_of G1) /\ E1
by A1, Def11
.=
E1
by XBOOLE_1:28
;
now for y being object holds
( ( y in rng ((h * (G _E)) | E1) implies y in E2 ) & ( y in E2 implies y in rng ((h * (G _E)) | E1) ) )let y be
object ;
( ( y in rng ((h * (G _E)) | E1) implies y in E2 ) & ( y in E2 implies y in rng ((h * (G _E)) | E1) ) )hereby ( y in E2 implies y in rng ((h * (G _E)) | E1) )
end; assume A23:
y in E2
;
y in rng ((h * (G _E)) | E1)then A24:
y in the_Edges_of G2
;
set v1 =
(the_Source_of G2) . y;
set v2 =
(the_Target_of G2) . y;
A25:
y DJoins (the_Source_of G2) . y,
(the_Target_of G2) . y,
G2
by A24, GLIB_000:def 14;
then consider e being
object such that
(
e DJoins (the_Source_of G2) . y,
(the_Target_of G2) . y,
G2 &
e in E2 )
and A26:
for
e9 being
object st
e9 DJoins (the_Source_of G2) . y,
(the_Target_of G2) . y,
G2 &
e9 in E2 holds
e9 = e
by GLIB_009:def 6;
y in rng (G _E)
by A1, A24, Def12;
then consider x0 being
object such that A27:
(
x0 in dom (G _E) &
(G _E) . x0 = y )
by FUNCT_1:def 3;
set u1 =
(the_Source_of G1) . x0;
set u2 =
(the_Target_of G1) . x0;
A28:
(
(the_Source_of G1) . x0 in dom (G _V) &
(the_Target_of G1) . x0 in dom (G _V) )
by A27, Th5;
A29:
x0 DJoins (the_Source_of G1) . x0,
(the_Target_of G1) . x0,
G1
by A27, GLIB_000:def 14;
then consider x being
object such that A30:
(
x DJoins (the_Source_of G1) . x0,
(the_Target_of G1) . x0,
G1 &
x in E1 )
and
for
e9 being
object st
e9 DJoins (the_Source_of G1) . x0,
(the_Target_of G1) . x0,
G1 &
e9 in E1 holds
e9 = x
by GLIB_009:def 6;
x in the_Edges_of G1
by A30;
then A31:
x in dom (G _E)
by A1, Def11;
then A32:
(G _E) . x DJoins (G _V) . ((the_Source_of G1) . x0),
(G _V) . ((the_Target_of G1) . x0),
G2
by A28, A30, Def14;
(G _E) . x0 DJoins (G _V) . ((the_Source_of G1) . x0),
(G _V) . ((the_Target_of G1) . x0),
G2
by A27, A28, A29, Def14;
then
(
(G _V) . ((the_Source_of G1) . x0) = (the_Source_of G2) . y &
(G _V) . ((the_Target_of G1) . x0) = (the_Target_of G2) . y )
by A25, A27, GLIB_000:125;
then A33:
(G _E) . x DJoins (the_Source_of G2) . y,
(the_Target_of G2) . y,
G2
by A32;
A34:
(G _E) . x in the_Edges_of G2
by A33, GLIB_000:def 14;
then A35:
(
h . ((G _E) . x) in E2 &
[((G _E) . x),(h . ((G _E) . x))] in DEdgeAdjEqRel G2 )
by A19;
then consider w1,
w2 being
object such that A36:
(
(G _E) . x DJoins w1,
w2,
G2 &
h . ((G _E) . x) DJoins w1,
w2,
G2 )
by GLIB_009:def 4;
(
(the_Source_of G2) . y = w1 &
(the_Target_of G2) . y = w2 )
by A33, A36, GLIB_000:125;
then A37:
(
y = e &
h . ((G _E) . x) = e )
by A23, A25, A26, A35, A36;
A38:
x in dom (h * (G _E))
by A18, A31, A34, FUNCT_1:11;
then A39:
x in dom ((h * (G _E)) | E1)
by A30, RELAT_1:57;
y =
(h * (G _E)) . x
by A37, A38, FUNCT_1:12
.=
((h * (G _E)) | E1) . x
by A30, FUNCT_1:49
;
hence
y in rng ((h * (G _E)) | E1)
by A39, FUNCT_1:def 3;
verum end;
then A40:
rng ((h * (G _E)) | E1) = E2
by TARSKI:2;
then reconsider g = (h * (G _E)) | E1 as PartFunc of (the_Edges_of G3),(the_Edges_of G4) by A5, A21, RELSET_1:4;
now ( ( for e being object st e in dom g holds
( (the_Source_of G3) . e in dom f & (the_Target_of G3) . e in dom f ) ) & ( for e, v, w being object st e in dom g & v in dom f & w in dom f & e DJoins v,w,G3 holds
g . e DJoins f . v,f . w,G4 ) )let e,
v,
w be
object ;
( e in dom g & v in dom f & w in dom f & e DJoins v,w,G3 implies g . e DJoins f . v,f . w,G4 )assume A41:
(
e in dom g &
v in dom f &
w in dom f )
;
( e DJoins v,w,G3 implies g . e DJoins f . v,f . w,G4 )then A42:
(
e in E1 &
e in dom (h * (G _E)) )
by RELAT_1:57;
then A43:
(
e in dom (G _E) &
(G _E) . e in dom h )
by FUNCT_1:11;
assume A44:
e DJoins v,
w,
G3
;
g . e DJoins f . v,f . w,G4
(
v is
set &
w is
set )
by TARSKI:1;
then
e DJoins v,
w,
G1
by A44, GLIB_000:72;
then A45:
(G _E) . e DJoins f . v,
f . w,
G2
by A41, A43, Def14;
A46:
(
h . ((G _E) . e) in E2 &
[((G _E) . e),(h . ((G _E) . e))] in DEdgeAdjEqRel G2 )
by A18, A19, A43;
then consider u1,
u2 being
object such that A47:
(
(G _E) . e DJoins u1,
u2,
G2 &
h . ((G _E) . e) DJoins u1,
u2,
G2 )
by GLIB_009:def 4;
(
u1 = f . v &
u2 = f . w )
by A45, A47, GLIB_000:125;
then
h . ((G _E) . e) DJoins f . v,
f . w,
G2
by A47;
then A48:
h . ((G _E) . e) DJoins f . v,
f . w,
G4
by A5, A46, GLIB_000:73;
g . e =
(h * (G _E)) . e
by A42, FUNCT_1:49
.=
h . ((G _E) . e)
by A42, FUNCT_1:12
;
hence
g . e DJoins f . v,
f . w,
G4
by A48;
verum end;
then reconsider F = [f,g] as directed PGraphMapping of G3,G4 by Th30;
dom f = the_Vertices_of G3
by A1, A6, Def11;
then A49:
F is total
by A5, A21;
rng f = the_Vertices_of G4
by A1, A6, Def12;
then A50:
F is onto
by A5, A40;
now for x1, x2 being object st x1 in dom g & x2 in dom g & g . x1 = g . x2 holds
x1 = x2let x1,
x2 be
object ;
( x1 in dom g & x2 in dom g & g . x1 = g . x2 implies x1 = x2 )assume A51:
(
x1 in dom g &
x2 in dom g &
g . x1 = g . x2 )
;
x1 = x2then A52:
(
x1 in E1 &
x1 in dom (h * (G _E)) &
x2 in E1 &
x2 in dom (h * (G _E)) )
by RELAT_1:57;
then A53:
(
x1 in dom (G _E) &
(G _E) . x1 in dom h &
x2 in dom (G _E) &
(G _E) . x2 in dom h )
by FUNCT_1:11;
then A54:
(
h . ((G _E) . x1) in E2 &
[((G _E) . x1),(h . ((G _E) . x1))] in DEdgeAdjEqRel G2 &
[((G _E) . x2),(h . ((G _E) . x2))] in DEdgeAdjEqRel G2 )
by A18, A19;
then consider v1,
v2 being
object such that A55:
(
(G _E) . x1 DJoins v1,
v2,
G2 &
h . ((G _E) . x1) DJoins v1,
v2,
G2 )
by GLIB_009:def 4;
(G _E) . x1 in rng (G _E)
by A53, FUNCT_1:3;
then
(
(the_Source_of G2) . ((G _E) . x1) in rng (G _V) &
(the_Target_of G2) . ((G _E) . x1) in rng (G _V) )
by Th6;
then A56:
(
v1 in rng (G _V) &
v2 in rng (G _V) )
by A55, GLIB_000:def 14;
then consider u1 being
object such that A57:
(
u1 in dom (G _V) &
(G _V) . u1 = v1 )
by FUNCT_1:def 3;
consider u2 being
object such that A58:
(
u2 in dom (G _V) &
(G _V) . u2 = v2 )
by A56, FUNCT_1:def 3;
A59:
x1 DJoins u1,
u2,
G1
by A1, A53, A55, A57, A58, Def17;
h . ((G _E) . x1) =
(h * (G _E)) . x1
by A52, FUNCT_1:12
.=
g . x2
by A51, A52, FUNCT_1:49
.=
(h * (G _E)) . x2
by A52, FUNCT_1:49
.=
h . ((G _E) . x2)
by A52, FUNCT_1:12
;
then consider w1,
w2 being
object such that A60:
(
(G _E) . x2 DJoins w1,
w2,
G2 &
h . ((G _E) . x1) DJoins w1,
w2,
G2 )
by A54, GLIB_009:def 4;
(
v1 = w1 &
v2 = w2 )
by A55, A60, GLIB_000:125;
then
(G _E) . x2 DJoins v1,
v2,
G2
by A60;
then A61:
x2 DJoins u1,
u2,
G1
by A1, A53, A57, A58, Def17;
then consider e being
object such that
(
e DJoins u1,
u2,
G1 &
e in E1 )
and A62:
for
e9 being
object st
e9 DJoins u1,
u2,
G1 &
e9 in E1 holds
e9 = e
by GLIB_009:def 6;
(
x1 = e &
x2 = e )
by A52, A59, A61, A62;
hence
x1 = x2
;
verum end;
then
F is one-to-one
by A1, FUNCT_1:def 4;
hence
G4 is G3 -Disomorphic
by A49, A50; verum