let G1 be _finite _Graph; :: thesis: for e being set
for G2 being removeEdge of G1,e holds G1 .numComponents() c= G2 .numComponents()

let e be set ; :: thesis: for G2 being removeEdge of G1,e holds G1 .numComponents() c= G2 .numComponents()
let G2 be removeEdge of G1,e; :: thesis: G1 .numComponents() c= G2 .numComponents()
per cases ( e in the_Edges_of G1 or not e in the_Edges_of G1 ) ;
suppose A1: e in the_Edges_of G1 ; :: thesis: G1 .numComponents() c= G2 .numComponents()
set w1 = (the_Source_of G1) . e;
set w2 = (the_Target_of G1) . e;
reconsider w1 = (the_Source_of G1) . e, w2 = (the_Target_of G1) . e as Vertex of G1 by A1, FUNCT_2:5;
A2: G1 is addEdge of G2,w1,e,w2 by A1, Th37;
reconsider v1 = w1, v2 = w2 as Vertex of G2 by GLIB_000:51;
reconsider G1 = G1 as addEdge of G2,v1,e,v2 by A2;
A3: the_Edges_of G2 = (the_Edges_of G1) \ {e} by GLIB_000:51;
e in {e} by TARSKI:def 1;
then A4: not e in the_Edges_of G2 by A3, XBOOLE_0:def 5;
set V1 = G2 .reachableFrom v1;
set V2 = G2 .reachableFrom v2;
per cases ( not v2 in G2 .reachableFrom v1 or v2 in G2 .reachableFrom v1 ) ;
suppose A5: not v2 in G2 .reachableFrom v1 ; :: thesis: G1 .numComponents() c= G2 .numComponents()
end;
end;
end;
suppose not e in the_Edges_of G1 ; :: thesis: G1 .numComponents() c= G2 .numComponents()
end;
end;