let G1, G2 be _Graph; ( G1 == G2 implies ( ( G1 is _finite implies G2 is _finite ) & ( G1 is loopless implies G2 is loopless ) & ( G1 is _trivial implies G2 is _trivial ) & ( G1 is non-multi implies G2 is non-multi ) & ( G1 is non-Dmulti implies G2 is non-Dmulti ) & ( G1 is simple implies G2 is simple ) & ( G1 is Dsimple implies G2 is Dsimple ) ) )
assume A1:
G1 == G2
; ( ( G1 is _finite implies G2 is _finite ) & ( G1 is loopless implies G2 is loopless ) & ( G1 is _trivial implies G2 is _trivial ) & ( G1 is non-multi implies G2 is non-multi ) & ( G1 is non-Dmulti implies G2 is non-Dmulti ) & ( G1 is simple implies G2 is simple ) & ( G1 is Dsimple implies G2 is Dsimple ) )
then A2:
the_Edges_of G1 = the_Edges_of G2
;
the_Vertices_of G1 = the_Vertices_of G2
by A1;
hence
( G1 is _finite implies G2 is _finite )
by A2; ( ( G1 is loopless implies G2 is loopless ) & ( G1 is _trivial implies G2 is _trivial ) & ( G1 is non-multi implies G2 is non-multi ) & ( G1 is non-Dmulti implies G2 is non-Dmulti ) & ( G1 is simple implies G2 is simple ) & ( G1 is Dsimple implies G2 is Dsimple ) )
A3:
( the_Source_of G1 = the_Source_of G2 & the_Target_of G1 = the_Target_of G2 )
by A1;
A4:
( G1 is loopless implies G2 is loopless )
by A2, A3;
hence
( G1 is loopless implies G2 is loopless )
; ( ( G1 is _trivial implies G2 is _trivial ) & ( G1 is non-multi implies G2 is non-multi ) & ( G1 is non-Dmulti implies G2 is non-Dmulti ) & ( G1 is simple implies G2 is simple ) & ( G1 is Dsimple implies G2 is Dsimple ) )
thus
( G1 is _trivial implies G2 is _trivial )
by A1; ( ( G1 is non-multi implies G2 is non-multi ) & ( G1 is non-Dmulti implies G2 is non-Dmulti ) & ( G1 is simple implies G2 is simple ) & ( G1 is Dsimple implies G2 is Dsimple ) )
A5:
now ( G1 is non-multi implies G2 is non-multi )assume A6:
G1 is
non-multi
;
G2 is non-multi now for e1, e2, v1, v2 being object st e1 Joins v1,v2,G2 & e2 Joins v1,v2,G2 holds
e1 = e2let e1,
e2,
v1,
v2 be
object ;
( e1 Joins v1,v2,G2 & e2 Joins v1,v2,G2 implies e1 = e2 )assume
(
e1 Joins v1,
v2,
G2 &
e2 Joins v1,
v2,
G2 )
;
e1 = e2then
(
e1 Joins v1,
v2,
G1 &
e2 Joins v1,
v2,
G1 )
by A1;
hence
e1 = e2
by A6;
verum end; hence
G2 is
non-multi
;
verum end;
hence
( G1 is non-multi implies G2 is non-multi )
; ( ( G1 is non-Dmulti implies G2 is non-Dmulti ) & ( G1 is simple implies G2 is simple ) & ( G1 is Dsimple implies G2 is Dsimple ) )
A7:
now ( G1 is non-Dmulti implies G2 is non-Dmulti )assume A8:
G1 is
non-Dmulti
;
G2 is non-Dmulti now for e1, e2, v1, v2 being object st e1 DJoins v1,v2,G2 & e2 DJoins v1,v2,G2 holds
e1 = e2let e1,
e2,
v1,
v2 be
object ;
( e1 DJoins v1,v2,G2 & e2 DJoins v1,v2,G2 implies e1 = e2 )assume
(
e1 DJoins v1,
v2,
G2 &
e2 DJoins v1,
v2,
G2 )
;
e1 = e2then
(
e1 DJoins v1,
v2,
G1 &
e2 DJoins v1,
v2,
G1 )
by A1;
hence
e1 = e2
by A8;
verum end; hence
G2 is
non-Dmulti
;
verum end;
hence
( G1 is non-Dmulti implies G2 is non-Dmulti )
; ( ( G1 is simple implies G2 is simple ) & ( G1 is Dsimple implies G2 is Dsimple ) )
thus
( G1 is simple implies G2 is simple )
by A4, A5; ( G1 is Dsimple implies G2 is Dsimple )
thus
( G1 is Dsimple implies G2 is Dsimple )
by A4, A7; verum