let G1, G2, G3 be _Graph; for f being PVertexMapping of G1,G2
for g being PVertexMapping of G2,G3 st f is isomorphism & g is isomorphism holds
g * f is isomorphism
let f be PVertexMapping of G1,G2; for g being PVertexMapping of G2,G3 st f is isomorphism & g is isomorphism holds
g * f is isomorphism
let g be PVertexMapping of G2,G3; ( f is isomorphism & g is isomorphism implies g * f is isomorphism )
assume A1:
( f is isomorphism & g is isomorphism )
; g * f is isomorphism
hence
( g * f is total & g * f is one-to-one & g * f is onto )
by FUNCT_2:27; GLIB_011:def 5 for v, w being Vertex of G1 holds card (G1 .edgesBetween ({v},{w})) = card (G3 .edgesBetween ({((g * f) . v)},{((g * f) . w)}))
let v, w be Vertex of G1; card (G1 .edgesBetween ({v},{w})) = card (G3 .edgesBetween ({((g * f) . v)},{((g * f) . w)}))
( 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
; verum