Lm1:
not OrderingSelector in _GraphSelectors
by GLIB_000:def 5, GLIB_000:1, ENUMSET1:def 2;
Lm2:
for G1, G2 being _Graph ex f, g being Function st
( [{},{}] = [f,g] & dom f c= the_Vertices_of G1 & rng f c= the_Vertices_of G2 & dom g c= the_Edges_of G1 & rng g c= the_Edges_of G2 & ( for e being object st e in dom g holds
( (the_Source_of G1) . e in dom f & (the_Target_of G1) . e in dom f ) ) & ( for e, v, w being object st e in dom g & v in dom f & w in dom f holds
( e Joins v,w,G1 iff g . e Joins f . v,f . w,G2 ) ) & ( for e, v, w being object st e in dom g & v in dom f & w in dom f & e Joins v,w,G1 holds
g . e Joins f . v,f . w,G2 ) )
::
deftheorem Def8 defines
PGraphMapping GLIB_010:def 8 :
for G1, G2 being _Graph
for b3 being object holds
( b3 is PGraphMapping of G1,G2 iff ex f, g being Function st
( b3 = [f,g] & dom f c= the_Vertices_of G1 & rng f c= the_Vertices_of G2 & dom g c= the_Edges_of G1 & rng g c= the_Edges_of G2 & ( for e being object st e in dom g holds
( (the_Source_of G1) . e in dom f & (the_Target_of G1) . e in dom f ) ) & ( for e, v, w being object st e in dom g & v in dom f & w in dom f & e Joins v,w,G1 holds
g . e Joins f . v,f . w,G2 ) ) );
Lm3:
for G1, G2 being _Graph holds [{},{}] is PGraphMapping of G1,G2
theorem Th8:
for
G1,
G2 being
_Graph for
f being
PartFunc of
(the_Vertices_of G1),
(the_Vertices_of G2) for
g being
PartFunc of
(the_Edges_of G1),
(the_Edges_of G2) st ( for
e being
object st
e in dom g holds
(
(the_Source_of G1) . e in dom f &
(the_Target_of G1) . e in dom f ) ) & ( for
e,
v,
w being
object st
e in dom g &
v in dom f &
w in dom f &
e Joins v,
w,
G1 holds
g . e Joins f . v,
f . w,
G2 ) holds
[f,g] is
PGraphMapping of
G1,
G2
registration
let G1,
G2 be
_Graph;
coherence
for b1 being PGraphMapping of G1,G2 st b1 is one-to-one holds
b1 is semi-continuous
by Th17;
coherence
for b1 being PGraphMapping of G1,G2 st b1 is one-to-one & b1 is directed holds
b1 is semi-Dcontinuous
by Th18;
coherence
for b1 being PGraphMapping of G1,G2 st b1 is one-to-one & b1 is onto holds
b1 is continuous
by Th21;
coherence
for b1 being PGraphMapping of G1,G2 st b1 is directed & b1 is one-to-one & b1 is onto holds
b1 is Dcontinuous
by Th22;
coherence
for b1 being PGraphMapping of G1,G2 st b1 is semi-continuous & b1 is onto holds
b1 is continuous
by Th19;
coherence
for b1 being PGraphMapping of G1,G2 st b1 is semi-Dcontinuous holds
( b1 is directed & b1 is semi-continuous )
coherence
for b1 being PGraphMapping of G1,G2 st b1 is semi-Dcontinuous & b1 is onto holds
b1 is Dcontinuous
by Th20;
coherence
for b1 being PGraphMapping of G1,G2 st b1 is Dcontinuous holds
b1 is continuous
coherence
for b1 being PGraphMapping of G1,G2 st b1 is Dcontinuous & b1 is one-to-one holds
( b1 is directed & b1 is semi-Dcontinuous )
by Th25, Th24;
coherence
for b1 being PGraphMapping of G1,G2 st b1 is empty holds
( b1 is one-to-one & b1 is Dcontinuous & b1 is directed & b1 is continuous )
;
coherence
for b1 being PGraphMapping of G1,G2 st b1 is total holds
not b1 is empty
;
coherence
for b1 being PGraphMapping of G1,G2 st b1 is onto holds
not b1 is empty
;
end;
theorem Th30:
for
G1,
G2 being
_Graph for
f being
PartFunc of
(the_Vertices_of G1),
(the_Vertices_of G2) for
g being
PartFunc of
(the_Edges_of G1),
(the_Edges_of G2) st ( for
e being
object st
e in dom g holds
(
(the_Source_of G1) . e in dom f &
(the_Target_of G1) . 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,
G1 holds
g . e DJoins f . v,
f . w,
G2 ) holds
[f,g] is
directed PGraphMapping of
G1,
G2
theorem Th31:
for
G1,
G2 being
_Graph for
f being
PartFunc of
(the_Vertices_of G1),
(the_Vertices_of G2) for
g being
PartFunc of
(the_Edges_of G1),
(the_Edges_of G2) st ( for
e being
object st
e in dom g holds
(
(the_Source_of G1) . e in dom f &
(the_Target_of G1) . e in dom f ) ) & ( for
e,
v,
w being
object st
e in dom g &
v in dom f &
w in dom f holds
(
e Joins v,
w,
G1 iff
g . e Joins f . v,
f . w,
G2 ) ) holds
[f,g] is
semi-continuous PGraphMapping of
G1,
G2
theorem
for
G1,
G2 being
_Graph for
f being
PartFunc of
(the_Vertices_of G1),
(the_Vertices_of G2) for
g being
PartFunc of
(the_Edges_of G1),
(the_Edges_of G2) st ( for
e being
object st
e in dom g holds
(
(the_Source_of G1) . e in dom f &
(the_Target_of G1) . e in dom f ) ) & ( for
e,
v,
w being
object st
e in dom g &
v in dom f &
w in dom f holds
(
e DJoins v,
w,
G1 iff
g . e DJoins f . v,
f . w,
G2 ) ) holds
[f,g] is
semi-Dcontinuous PGraphMapping of
G1,
G2
registration
let G1,
G2 be
_Graph;
coherence
for b1 being PGraphMapping of G1,G2 st b1 is weak_SG-embedding holds
( b1 is total & not b1 is empty & b1 is one-to-one & b1 is semi-continuous )
;
coherence
for b1 being PGraphMapping of G1,G2 st b1 is total & b1 is one-to-one holds
b1 is weak_SG-embedding
;
coherence
for b1 being PGraphMapping of G1,G2 st b1 is strong_SG-embedding holds
( b1 is total & not b1 is empty & b1 is one-to-one & b1 is continuous & b1 is weak_SG-embedding )
;
coherence
for b1 being PGraphMapping of G1,G2 st b1 is total & b1 is one-to-one & b1 is continuous holds
b1 is strong_SG-embedding
;
coherence
for b1 being PGraphMapping of G1,G2 st b1 is weak_SG-embedding & b1 is continuous holds
b1 is strong_SG-embedding
;
coherence
for b1 being PGraphMapping of G1,G2 st b1 is isomorphism holds
( b1 is onto & b1 is semi-continuous & b1 is continuous & b1 is total & not b1 is empty & b1 is one-to-one & b1 is weak_SG-embedding & b1 is strong_SG-embedding )
;
coherence
for b1 being PGraphMapping of G1,G2 st b1 is total & b1 is one-to-one & b1 is onto & b1 is continuous holds
b1 is isomorphism
;
coherence
for b1 being PGraphMapping of G1,G2 st b1 is strong_SG-embedding & b1 is onto holds
b1 is isomorphism
;
coherence
for b1 being PGraphMapping of G1,G2 st b1 is weak_SG-embedding & b1 is continuous & b1 is onto holds
b1 is isomorphism
;
coherence
for b1 being PGraphMapping of G1,G2 st b1 is Disomorphism holds
( b1 is directed & b1 is isomorphism & b1 is continuous & b1 is total & not b1 is empty & b1 is semi-Dcontinuous & b1 is semi-continuous & b1 is one-to-one & b1 is weak_SG-embedding & b1 is strong_SG-embedding )
;
coherence
for b1 being PGraphMapping of G1,G2 st b1 is directed & b1 is isomorphism holds
( b1 is Dcontinuous & b1 is Disomorphism )
;
end;
definition
let G1,
G2 be
_Graph;
let F be
PGraphMapping of
G1,
G2;
coherence
the plain inducedSubgraph of G1, dom (F _V), dom (F _E) is inducedSubgraph of G1, dom (F _V), dom (F _E)
;
coherence
the plain inducedSubgraph of G2, rng (F _V), rng (F _E) is inducedSubgraph of G2, rng (F _V), rng (F _E)
;
end;
Lm4:
for G1, G2 being _Graph
for F being non empty one-to-one PGraphMapping of G1,G2 holds card ((dom F) .loops()) c= card ((rng F) .loops())
Lm5:
for G1, G2 being _Graph
for F being non empty one-to-one PGraphMapping of G1,G2
for W2 being b3 -valued Walk of G2 holds
( (F _V) * ((F " W2) .vertexSeq()) = W2 .vertexSeq() & (F _E) * ((F " W2) .edgeSeq()) = W2 .edgeSeq() )
theorem Th152:
for
G3,
G4 being
_Graph for
v1,
v3 being
Vertex of
G3 for
v2,
v4 being
Vertex of
G4 for
e1,
e2 being
object for
G1 being
addEdge of
G3,
v1,
e1,
v3 for
G2 being
addEdge of
G4,
v2,
e2,
v4 for
F0 being
PGraphMapping of
G3,
G4 st not
e1 in the_Edges_of G3 & not
e2 in the_Edges_of G4 &
v1 in dom (F0 _V) &
v3 in dom (F0 _V) & ( (
(F0 _V) . v1 = v2 &
(F0 _V) . v3 = v4 ) or (
(F0 _V) . v1 = v4 &
(F0 _V) . v3 = v2 ) ) holds
ex
F being
PGraphMapping of
G1,
G2 st
(
F = [(F0 _V),((F0 _E) +* (e1 .--> e2))] & (
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 ) )
theorem
for
G3,
G4 being
_Graph for
v1,
v3 being
Vertex of
G3 for
v2,
v4 being
Vertex of
G4 for
e1,
e2 being
object for
G1 being
addEdge of
G3,
v1,
e1,
v3 for
G2 being
addEdge of
G4,
v2,
e2,
v4 for
F0 being
PGraphMapping of
G3,
G4 st not
e1 in the_Edges_of G3 & not
e2 in the_Edges_of G4 &
v1 in dom (F0 _V) &
v3 in dom (F0 _V) & ( (
(F0 _V) . v1 = v2 &
(F0 _V) . v3 = v4 ) or (
(F0 _V) . v1 = v4 &
(F0 _V) . v3 = v2 ) ) holds
ex
F being
PGraphMapping of
G1,
G2 st
(
F = [(F0 _V),((F0 _E) +* (e1 .--> e2))] & (
F0 is
weak_SG-embedding implies
F is
weak_SG-embedding ) & (
F0 is
isomorphism implies
F is
isomorphism ) )
theorem Th154:
for
G3,
G4 being
_Graph for
v1,
v3 being
Vertex of
G3 for
v2,
v4 being
Vertex of
G4 for
e1,
e2 being
object for
G1 being
addEdge of
G3,
v1,
e1,
v3 for
G2 being
addEdge of
G4,
v2,
e2,
v4 for
F0 being
PGraphMapping of
G3,
G4 st not
e1 in the_Edges_of G3 & not
e2 in the_Edges_of G4 &
v1 in dom (F0 _V) &
v3 in dom (F0 _V) &
(F0 _V) . v1 = v2 &
(F0 _V) . v3 = v4 holds
ex
F being
PGraphMapping of
G1,
G2 st
(
F = [(F0 _V),((F0 _E) +* (e1 .--> e2))] & (
F0 is
directed implies
F is
directed ) & (
F0 is
Disomorphism implies
F is
Disomorphism ) )
theorem Th155:
for
G3,
G4 being
_Graph for
v3 being
Vertex of
G3 for
v4 being
Vertex of
G4 for
e1,
e2,
v1,
v2 being
object for
G1 being
addAdjVertex of
G3,
v1,
e1,
v3 for
G2 being
addAdjVertex of
G4,
v2,
e2,
v4 for
F0 being
PGraphMapping of
G3,
G4 st not
e1 in the_Edges_of G3 & not
e2 in the_Edges_of G4 & not
v1 in the_Vertices_of G3 & not
v2 in the_Vertices_of G4 &
v3 in dom (F0 _V) &
(F0 _V) . v3 = v4 holds
ex
F being
PGraphMapping of
G1,
G2 st
(
F = [((F0 _V) +* (v1 .--> v2)),((F0 _E) +* (e1 .--> e2))] & (
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 ) )
theorem
for
G3,
G4 being
_Graph for
v3 being
Vertex of
G3 for
v4 being
Vertex of
G4 for
e1,
e2,
v1,
v2 being
object for
G1 being
addAdjVertex of
G3,
v1,
e1,
v3 for
G2 being
addAdjVertex of
G4,
v2,
e2,
v4 for
F0 being
PGraphMapping of
G3,
G4 st not
e1 in the_Edges_of G3 & not
e2 in the_Edges_of G4 & not
v1 in the_Vertices_of G3 & not
v2 in the_Vertices_of G4 &
v3 in dom (F0 _V) &
(F0 _V) . v3 = v4 holds
ex
F being
PGraphMapping of
G1,
G2 st
(
F = [((F0 _V) +* (v1 .--> v2)),((F0 _E) +* (e1 .--> e2))] & (
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 ) )
theorem Th157:
for
G3,
G4 being
_Graph for
v3 being
Vertex of
G3 for
v4 being
Vertex of
G4 for
e1,
e2,
v1,
v2 being
object for
G1 being
addAdjVertex of
G3,
v3,
e1,
v1 for
G2 being
addAdjVertex of
G4,
v4,
e2,
v2 for
F0 being
PGraphMapping of
G3,
G4 st not
e1 in the_Edges_of G3 & not
e2 in the_Edges_of G4 & not
v1 in the_Vertices_of G3 & not
v2 in the_Vertices_of G4 &
v3 in dom (F0 _V) &
(F0 _V) . v3 = v4 holds
ex
F being
PGraphMapping of
G1,
G2 st
(
F = [((F0 _V) +* (v1 .--> v2)),((F0 _E) +* (e1 .--> e2))] & (
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 ) )
theorem
for
G3,
G4 being
_Graph for
v3 being
Vertex of
G3 for
v4 being
Vertex of
G4 for
e1,
e2,
v1,
v2 being
object for
G1 being
addAdjVertex of
G3,
v3,
e1,
v1 for
G2 being
addAdjVertex of
G4,
v4,
e2,
v2 for
F0 being
PGraphMapping of
G3,
G4 st not
e1 in the_Edges_of G3 & not
e2 in the_Edges_of G4 & not
v1 in the_Vertices_of G3 & not
v2 in the_Vertices_of G4 &
v3 in dom (F0 _V) &
(F0 _V) . v3 = v4 holds
ex
F being
PGraphMapping of
G1,
G2 st
(
F = [((F0 _V) +* (v1 .--> v2)),((F0 _E) +* (e1 .--> e2))] & (
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 ) )
theorem
for
G3,
G4 being
_Graph for
v3 being
Vertex of
G3 for
v4 being
Vertex of
G4 for
e1,
e2,
v1,
v2 being
object for
G1 being
addAdjVertex of
G3,
v1,
e1,
v3 for
G2 being
addAdjVertex of
G4,
v4,
e2,
v2 for
F0 being
PGraphMapping of
G3,
G4 st not
e1 in the_Edges_of G3 & not
e2 in the_Edges_of G4 & not
v1 in the_Vertices_of G3 & not
v2 in the_Vertices_of G4 &
v3 in dom (F0 _V) &
(F0 _V) . v3 = v4 holds
ex
F being
PGraphMapping of
G1,
G2 st
(
F = [((F0 _V) +* (v1 .--> v2)),((F0 _E) +* (e1 .--> e2))] & (
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
weak_SG-embedding implies
F is
weak_SG-embedding ) & (
F0 is
isomorphism implies
F is
isomorphism ) )
theorem
for
G3,
G4 being
_Graph for
v3 being
Vertex of
G3 for
v4 being
Vertex of
G4 for
e1,
e2,
v1,
v2 being
object for
G1 being
addAdjVertex of
G3,
v3,
e1,
v1 for
G2 being
addAdjVertex of
G4,
v2,
e2,
v4 for
F0 being
PGraphMapping of
G3,
G4 st not
e1 in the_Edges_of G3 & not
e2 in the_Edges_of G4 & not
v1 in the_Vertices_of G3 & not
v2 in the_Vertices_of G4 &
v3 in dom (F0 _V) &
(F0 _V) . v3 = v4 holds
ex
F being
PGraphMapping of
G1,
G2 st
(
F = [((F0 _V) +* (v1 .--> v2)),((F0 _E) +* (e1 .--> e2))] & (
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
weak_SG-embedding implies
F is
weak_SG-embedding ) & (
F0 is
isomorphism implies
F is
isomorphism ) )