let G be _Graph; :: thesis: for v being Vertex of G holds G .edgesBetween (G .reachableFrom v) = G .edgesInOut (G .reachableFrom v)
let v be Vertex of G; :: thesis: G .edgesBetween (G .reachableFrom v) = G .edgesInOut (G .reachableFrom v)
set R = G .reachableFrom v;
now :: thesis: for x being object st x in G .edgesInOut (G .reachableFrom v) holds
x in G .edgesBetween (G .reachableFrom v)
let x be object ; :: thesis: ( x in G .edgesInOut (G .reachableFrom v) implies x in G .edgesBetween (G .reachableFrom v) )
set Sx = (the_Source_of G) . x;
set Tx = (the_Target_of G) . x;
assume A1: x in G .edgesInOut (G .reachableFrom v) ; :: thesis: x in G .edgesBetween (G .reachableFrom v)
then reconsider Sx = (the_Source_of G) . x, Tx = (the_Target_of G) . x as Vertex of G by FUNCT_2:5;
now :: thesis: x in G .edgesBetween (G .reachableFrom v)
per cases ( Sx in G .reachableFrom v or Tx in G .reachableFrom v ) by A1, GLIB_000:28;
suppose A2: Sx in G .reachableFrom v ; :: thesis: x in G .edgesBetween (G .reachableFrom v)
end;
suppose A7: Tx in G .reachableFrom v ; :: thesis: x in G .edgesBetween (G .reachableFrom v)
end;
end;
end;
hence x in G .edgesBetween (G .reachableFrom v) ; :: thesis: verum
end;
then ( G .edgesBetween (G .reachableFrom v) c= G .edgesInOut (G .reachableFrom v) & G .edgesInOut (G .reachableFrom v) c= G .edgesBetween (G .reachableFrom v) ) by GLIB_000:33;
hence G .edgesBetween (G .reachableFrom v) = G .edgesInOut (G .reachableFrom v) by XBOOLE_0:def 10; :: thesis: verum