let G be finite real-weighted WGraph; :: thesis: for EL being FF:ELabeling of
for source, sink being set
for V being Subset of (the_Vertices_of G) st EL has_valid_flow_from source,sink & source in V & not sink in V holds
EL .flow source,sink = (Sum (EL | (G .edgesDBetween V,((the_Vertices_of G) \ V)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V),V)))

let EL be FF:ELabeling of ; :: thesis: for source, sink being set
for V being Subset of (the_Vertices_of G) st EL has_valid_flow_from source,sink & source in V & not sink in V holds
EL .flow source,sink = (Sum (EL | (G .edgesDBetween V,((the_Vertices_of G) \ V)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V),V)))

let source, sink be set ; :: thesis: for V being Subset of (the_Vertices_of G) st EL has_valid_flow_from source,sink & source in V & not sink in V holds
EL .flow source,sink = (Sum (EL | (G .edgesDBetween V,((the_Vertices_of G) \ V)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V),V)))

let V be Subset of (the_Vertices_of G); :: thesis: ( EL has_valid_flow_from source,sink & source in V & not sink in V implies EL .flow source,sink = (Sum (EL | (G .edgesDBetween V,((the_Vertices_of G) \ V)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V),V))) )
assume A1: ( EL has_valid_flow_from source,sink & source in V & not sink in V ) ; :: thesis: EL .flow source,sink = (Sum (EL | (G .edgesDBetween V,((the_Vertices_of G) \ V)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V),V)))
set VG = the_Vertices_of G;
set SG = the_Source_of G;
set TG = the_Target_of G;
defpred S1[ Nat] means for V being Subset of (the_Vertices_of G) st card ((the_Vertices_of G) \ V) = $1 & source in V & not sink in V holds
EL .flow source,sink = (Sum (EL | (G .edgesDBetween V,((the_Vertices_of G) \ V)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V),V)));
now
let V be Subset of (the_Vertices_of G); :: thesis: ( card ((the_Vertices_of G) \ V) = 1 & source in V & not sink in V implies EL .flow source,sink = (Sum (EL | (G .edgesDBetween V,((the_Vertices_of G) \ V)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V),V))) )
assume A2: ( card ((the_Vertices_of G) \ V) = 1 & source in V & not sink in V ) ; :: thesis: EL .flow source,sink = (Sum (EL | (G .edgesDBetween V,((the_Vertices_of G) \ V)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V),V)))
then consider v being set such that
A3: (the_Vertices_of G) \ V = {v} by CARD_2:60;
sink is Vertex of G by A1, Def7;
then sink in (the_Vertices_of G) \ V by A2, XBOOLE_0:def 5;
then A4: v = sink by A3, TARSKI:def 1;
A5: now
let x be set ; :: thesis: ( ( x in (the_Vertices_of G) \ {sink} implies x in V ) & ( x in V implies x in (the_Vertices_of G) \ {sink} ) )
hereby :: thesis: ( x in V implies x in (the_Vertices_of G) \ {sink} ) end;
assume A6: x in V ; :: thesis: x in (the_Vertices_of G) \ {sink}
then not x in {sink} by A2, TARSKI:def 1;
hence x in (the_Vertices_of G) \ {sink} by A6, XBOOLE_0:def 5; :: thesis: verum
end;
then A7: V = (the_Vertices_of G) \ {sink} by TARSKI:2;
set ESS = G .edgesDBetween {sink},{sink};
reconsider EIN = (G .edgesInto {sink}) \ (G .edgesDBetween {sink},{sink}) as Subset of (the_Edges_of G) ;
reconsider EOUT = (G .edgesOutOf {sink}) \ (G .edgesDBetween {sink},{sink}) as Subset of (the_Edges_of G) ;
set EESS = EL | (G .edgesDBetween {sink},{sink});
now
let e be set ; :: thesis: ( ( e in G .edgesDBetween V,((the_Vertices_of G) \ V) implies e in EIN ) & ( e in EIN implies e in G .edgesDBetween V,((the_Vertices_of G) \ V) ) )
assume A10: e in EIN ; :: thesis: e in G .edgesDBetween V,((the_Vertices_of G) \ V)
then A11: ( e in G .edgesInto {sink} & not e in G .edgesDBetween {sink},{sink} ) by XBOOLE_0:def 5;
(G .edgesInto {sink}) \ (G .edgesDBetween {sink},{sink}) is Subset of (G .edgesInto {sink}) ;
then A12: ( e in the_Edges_of G & (the_Target_of G) . e in {sink} ) by A10, GLIB_000:def 28;
then e DSJoins V,{sink},G by A12, GLIB_000:def 18;
hence e in G .edgesDBetween V,((the_Vertices_of G) \ V) by A3, A4, GLIB_000:def 33; :: thesis: verum
end;
then A14: G .edgesDBetween V,((the_Vertices_of G) \ V) = EIN by TARSKI:2;
now end;
then A15: G .edgesDBetween {sink},{sink} c= G .edgesInto {sink} by TARSKI:def 3;
A16: (G .edgesDBetween {sink},{sink}) \/ EIN = (G .edgesInto {sink}) \/ (G .edgesDBetween {sink},{sink}) by XBOOLE_1:39
.= G .edgesInto {sink} by A15, XBOOLE_1:12 ;
A17: ( dom (EL | (G .edgesInto {sink})) = G .edgesInto {sink} & dom (EL | (G .edgesDBetween {sink},{sink})) = G .edgesDBetween {sink},{sink} & dom (EL | EIN) = EIN & dom (EL | EOUT) = EOUT & dom (EL | (G .edgesOutOf {sink})) = G .edgesOutOf {sink} ) by PARTFUN1:def 4;
then A18: dom ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EIN)) = (G .edgesDBetween {sink},{sink}) \/ EIN by FUNCT_4:def 1;
now
let e be set ; :: thesis: ( e in dom (EL | (G .edgesInto {sink})) implies (EL | (G .edgesInto {sink})) . e = ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EIN)) . e )
assume A19: e in dom (EL | (G .edgesInto {sink})) ; :: thesis: (EL | (G .edgesInto {sink})) . e = ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EIN)) . e
then A20: e in G .edgesInto {sink} by PARTFUN1:def 4;
now
per cases ( e in G .edgesDBetween {sink},{sink} or not e in G .edgesDBetween {sink},{sink} ) ;
suppose A21: e in G .edgesDBetween {sink},{sink} ; :: thesis: ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EIN)) . e = EL . e
then not e in EIN by XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EIN)) . e = (EL | (G .edgesDBetween {sink},{sink})) . e by A17, FUNCT_4:12
.= EL . e by A17, A21, FUNCT_1:70 ;
:: thesis: verum
end;
suppose not e in G .edgesDBetween {sink},{sink} ; :: thesis: ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EIN)) . e = EL . e
then A22: e in EIN by A20, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EIN)) . e = (EL | EIN) . e by A17, FUNCT_4:14
.= EL . e by A17, A22, FUNCT_1:70 ;
:: thesis: verum
end;
end;
end;
hence (EL | (G .edgesInto {sink})) . e = ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EIN)) . e by A19, FUNCT_1:70; :: thesis: verum
end;
then A23: Sum (EL | (G .edgesInto {sink})) = (Sum (EL | EIN)) + (Sum (EL | (G .edgesDBetween {sink},{sink}))) by A16, A17, A18, FUNCT_1:9, GLIB_004:3;
now
let e be set ; :: thesis: ( ( e in G .edgesDBetween ((the_Vertices_of G) \ V),V implies e in EOUT ) & ( e in EOUT implies e in G .edgesDBetween ((the_Vertices_of G) \ V),V ) )
assume A26: e in EOUT ; :: thesis: e in G .edgesDBetween ((the_Vertices_of G) \ V),V
then A27: ( e in G .edgesOutOf {sink} & not e in G .edgesDBetween {sink},{sink} ) by XBOOLE_0:def 5;
(G .edgesOutOf {sink}) \ (G .edgesDBetween {sink},{sink}) is Subset of (G .edgesOutOf {sink}) ;
then A28: ( e in the_Edges_of G & (the_Source_of G) . e in {sink} ) by A26, GLIB_000:def 29;
then e DSJoins (the_Vertices_of G) \ V,V,G by A3, A4, A28, GLIB_000:def 18;
hence e in G .edgesDBetween ((the_Vertices_of G) \ V),V by GLIB_000:def 33; :: thesis: verum
end;
then A30: G .edgesDBetween ((the_Vertices_of G) \ V),V = EOUT by TARSKI:2;
now end;
then A31: G .edgesDBetween {sink},{sink} c= G .edgesOutOf {sink} by TARSKI:def 3;
(G .edgesDBetween {sink},{sink}) \/ EOUT = (G .edgesOutOf {sink}) \/ (G .edgesDBetween {sink},{sink}) by XBOOLE_1:39
.= G .edgesOutOf {sink} by A31, XBOOLE_1:12 ;
then A32: dom ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EOUT)) = G .edgesOutOf {sink} by A17, FUNCT_4:def 1;
now
let e be set ; :: thesis: ( e in dom (EL | (G .edgesOutOf {sink})) implies (EL | (G .edgesOutOf {sink})) . e = ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EOUT)) . e )
assume A33: e in dom (EL | (G .edgesOutOf {sink})) ; :: thesis: (EL | (G .edgesOutOf {sink})) . e = ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EOUT)) . e
then A34: e in G .edgesOutOf {sink} by PARTFUN1:def 4;
now
per cases ( e in G .edgesDBetween {sink},{sink} or not e in G .edgesDBetween {sink},{sink} ) ;
suppose A35: e in G .edgesDBetween {sink},{sink} ; :: thesis: ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EOUT)) . e = EL . e
then not e in EOUT by XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EOUT)) . e = (EL | (G .edgesDBetween {sink},{sink})) . e by A17, FUNCT_4:12
.= EL . e by A17, A35, FUNCT_1:70 ;
:: thesis: verum
end;
suppose not e in G .edgesDBetween {sink},{sink} ; :: thesis: ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EOUT)) . e = EL . e
then A36: e in EOUT by A34, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EOUT)) . e = (EL | EOUT) . e by A17, FUNCT_4:14
.= EL . e by A17, A36, FUNCT_1:70 ;
:: thesis: verum
end;
end;
end;
hence (EL | (G .edgesOutOf {sink})) . e = ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EOUT)) . e by A33, FUNCT_1:70; :: thesis: verum
end;
then Sum (EL | (G .edgesOutOf {sink})) = (Sum (EL | EOUT)) + (Sum (EL | (G .edgesDBetween {sink},{sink}))) by A17, A32, FUNCT_1:9, GLIB_004:3;
then EL .flow source,sink = ((Sum (EL | EIN)) + (Sum (EL | (G .edgesDBetween {sink},{sink})))) - ((Sum (EL | (G .edgesDBetween {sink},{sink}))) + (Sum (EL | EOUT))) by A1, A23, Def8
.= (Sum (EL | EIN)) - (Sum (EL | EOUT)) ;
hence EL .flow source,sink = (Sum (EL | (G .edgesDBetween V,((the_Vertices_of G) \ V)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V),V))) by A14, A30; :: thesis: verum
end;
then A37: S1[1] ;
A38: now
let n be non empty Nat; :: thesis: ( S1[n] implies S1[n + 1] )
assume A39: S1[n] ; :: thesis: S1[n + 1]
now
let V2 be Subset of (the_Vertices_of G); :: thesis: ( card ((the_Vertices_of G) \ V2) = n + 1 & source in V2 & not sink in V2 implies EL .flow source,sink = (Sum (EL | (G .edgesDBetween V2,((the_Vertices_of G) \ V2)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V2),V2))) )
assume A40: ( card ((the_Vertices_of G) \ V2) = n + 1 & source in V2 & not sink in V2 ) ; :: thesis: EL .flow source,sink = (Sum (EL | (G .edgesDBetween V2,((the_Vertices_of G) \ V2)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V2),V2)))
set x = choose (((the_Vertices_of G) \ V2) \ {sink});
A41: V2 \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))} is Subset of V2 ;
sink is Vertex of G by A1, Def7;
then sink in (the_Vertices_of G) \ V2 by A40, XBOOLE_0:def 5;
then {sink} c= (the_Vertices_of G) \ V2 by ZFMISC_1:37;
then card (((the_Vertices_of G) \ V2) \ {sink}) = (n + 1) - (card {sink}) by A40, CARD_2:63
.= (n + 1) - 1 by CARD_1:50
.= n ;
then A42: ( choose (((the_Vertices_of G) \ V2) \ {sink}) in (the_Vertices_of G) \ V2 & not choose (((the_Vertices_of G) \ V2) \ {sink}) in {sink} ) by CARD_1:47, XBOOLE_0:def 5;
then A43: ( choose (((the_Vertices_of G) \ V2) \ {sink}) in the_Vertices_of G & not choose (((the_Vertices_of G) \ V2) \ {sink}) in V2 ) by XBOOLE_0:def 5;
set V1 = V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))};
set EV1V1a = G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}));
set EV1V1b = G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))});
set EV2X = G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))};
set EXV2 = G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2;
set EXV1c = G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}));
set EV1Xd = G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))};
{(choose (((the_Vertices_of G) \ V2) \ {sink}))} c= the_Vertices_of G by A42, ZFMISC_1:37;
then reconsider V1 = V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))} as Subset of (the_Vertices_of G) by XBOOLE_1:8;
A44: (the_Vertices_of G) \ V1 = ((the_Vertices_of G) \ V2) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by XBOOLE_1:41;
{(choose (((the_Vertices_of G) \ V2) \ {sink}))} c= (the_Vertices_of G) \ V2 by A42, ZFMISC_1:37;
then A45: card ((the_Vertices_of G) \ V1) = (card ((the_Vertices_of G) \ V2)) - (card {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by A44, CARD_2:63
.= (n + 1) - 1 by A40, CARD_1:50
.= n ;
A46: source in V1 by A40, XBOOLE_0:def 3;
A47: choose (((the_Vertices_of G) \ V2) \ {sink}) <> sink by A42, TARSKI:def 1;
then not sink in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by TARSKI:def 1;
then not sink in V1 by A40, XBOOLE_0:def 3;
then A48: EL .flow source,sink = (Sum (EL | (G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) by A39, A45, A46;
now
let e be set ; :: thesis: ( ( e in G .edgesDBetween V2,((the_Vertices_of G) \ V2) implies e in ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) ) & ( e in ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) implies e in G .edgesDBetween V2,((the_Vertices_of G) \ V2) ) )
hereby :: thesis: ( e in ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) implies e in G .edgesDBetween V2,((the_Vertices_of G) \ V2) )
assume e in G .edgesDBetween V2,((the_Vertices_of G) \ V2) ; :: thesis: e in ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))
then e DSJoins V2,(the_Vertices_of G) \ V2,G by GLIB_000:def 33;
then A49: ( e in the_Edges_of G & (the_Source_of G) . e in V2 & (the_Target_of G) . e in (the_Vertices_of G) \ V2 ) by GLIB_000:def 18;
then A50: (the_Source_of G) . e in V1 by XBOOLE_0:def 3;
now
per cases ( (the_Target_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} or not (the_Target_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) ;
suppose (the_Target_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: e in ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))
then e DSJoins V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by A49, GLIB_000:def 18;
then e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by GLIB_000:def 33;
then e in (G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by XBOOLE_0:def 3;
hence e in ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) by A51, XBOOLE_0:def 5; :: thesis: verum
end;
suppose not (the_Target_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: e in ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))
end;
end;
end;
hence e in ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) ; :: thesis: verum
end;
assume A52: e in ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) ; :: thesis: e in G .edgesDBetween V2,((the_Vertices_of G) \ V2)
then ( e in (G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) & not e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) ) by XBOOLE_0:def 5;
then A53: not e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},(the_Vertices_of G) \ V1,G by GLIB_000:def 33;
A54: ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) is Subset of ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) ;
now
per cases ( e in G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) or e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) by A52, A54, XBOOLE_0:def 3;
suppose e in G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) ; :: thesis: e DSJoins V2,(the_Vertices_of G) \ V2,G
end;
end;
end;
hence e in G .edgesDBetween V2,((the_Vertices_of G) \ V2) by GLIB_000:def 33; :: thesis: verum
end;
then A59: G .edgesDBetween V2,((the_Vertices_of G) \ V2) = ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) by TARSKI:2;
reconsider EA = (G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) as Subset of (the_Edges_of G) ;
reconsider E1 = EA \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) as Subset of (the_Edges_of G) ;
reconsider EB = EA \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) as Subset of (the_Edges_of G) ;
reconsider EC = (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) as Subset of (the_Edges_of G) ;
reconsider E2 = EC \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) as Subset of (the_Edges_of G) ;
reconsider ED = EC \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) as Subset of (the_Edges_of G) ;
now
assume G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) meets G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: contradiction
then A60: (G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) /\ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) <> {} by XBOOLE_0:def 7;
set e = choose ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) /\ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}));
( choose ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) /\ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) in G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) & choose ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) /\ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) by A60, XBOOLE_0:def 4;
then ( choose ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) /\ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) DSJoins V1,(the_Vertices_of G) \ V1,G & choose ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) /\ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) DSJoins V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G ) by GLIB_000:def 33;
then ( (the_Target_of G) . (choose ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) /\ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) in (the_Vertices_of G) \ V1 & (the_Target_of G) . (choose ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) /\ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) by GLIB_000:def 18;
then ( not (the_Target_of G) . (choose ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) /\ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) in V1 & (the_Target_of G) . (choose ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) /\ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) in V1 ) by XBOOLE_0:def 3, XBOOLE_0:def 5;
hence contradiction ; :: thesis: verum
end;
then (G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) = G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by XBOOLE_1:83;
then A61: EB = G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by XBOOLE_1:40;
now
assume G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) meets G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 ; :: thesis: contradiction
then A62: (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) /\ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) <> {} by XBOOLE_0:def 7;
set e = choose ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) /\ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2));
( choose ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) /\ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) & choose ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) /\ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 ) by A62, XBOOLE_0:def 4;
then ( choose ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) /\ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) DSJoins (the_Vertices_of G) \ V1,V1,G & choose ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) /\ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2,G ) by GLIB_000:def 33;
then ( (the_Source_of G) . (choose ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) /\ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2))) in (the_Vertices_of G) \ V1 & (the_Source_of G) . (choose ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) /\ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2))) in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) by GLIB_000:def 18;
then ( not (the_Source_of G) . (choose ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) /\ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2))) in V1 & (the_Source_of G) . (choose ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) /\ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2))) in V1 ) by XBOOLE_0:def 3, XBOOLE_0:def 5;
hence contradiction ; :: thesis: verum
end;
then (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) = G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by XBOOLE_1:83;
then A63: ED = G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by XBOOLE_1:40;
now end;
then A65: G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) c= G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by TARSKI:def 3;
A66: ( dom (EL | EA) = EA & dom (EL | EB) = EB & dom (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) = G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) & dom (EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) = G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} & dom (EL | E1) = EA \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) ) by PARTFUN1:def 4;
then A67: dom ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) +* (EL | E1)) = (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (EA \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) by FUNCT_4:def 1
.= (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by XBOOLE_1:39
.= EA by A65, XBOOLE_1:10, XBOOLE_1:12 ;
now
let e be set ; :: thesis: ( e in dom (EL | EA) implies (EL | EA) . e = ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) +* (EL | E1)) . e )
assume e in dom (EL | EA) ; :: thesis: (EL | EA) . e = ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) +* (EL | E1)) . e
then A68: e in EA by PARTFUN1:def 4;
now
per cases ( not e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) or e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) ) ;
suppose not e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) ; :: thesis: ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) +* (EL | E1)) . e = EL . e
then A69: e in E1 by A68, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) +* (EL | E1)) . e = (EL | E1) . e by A66, FUNCT_4:14
.= EL . e by A69, FUNCT_1:72 ;
:: thesis: verum
end;
suppose A70: e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) ; :: thesis: ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) +* (EL | E1)) . e = EL . e
then not e in E1 by XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) +* (EL | E1)) . e = (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) . e by A66, FUNCT_4:12
.= EL . e by A70, FUNCT_1:72 ;
:: thesis: verum
end;
end;
end;
hence (EL | EA) . e = ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) +* (EL | E1)) . e by A68, FUNCT_1:72; :: thesis: verum
end;
then A71: Sum (EL | EA) = (Sum (EL | E1)) + (Sum (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))))) by A66, A67, FUNCT_1:9, GLIB_004:3;
A72: dom ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EB)) = (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \/ EB by A66, FUNCT_4:def 1
.= (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \/ ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by XBOOLE_1:39
.= EA by XBOOLE_1:6 ;
now
let e be set ; :: thesis: ( e in dom (EL | EA) implies (EL | EA) . e = ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EB)) . e )
assume e in dom (EL | EA) ; :: thesis: (EL | EA) . e = ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EB)) . e
then A73: e in EA by PARTFUN1:def 4;
now
per cases ( not e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} or e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) ;
suppose not e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EB)) . e = EL . e
then A74: e in EB by A73, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EB)) . e = (EL | EB) . e by A66, FUNCT_4:14
.= EL . e by A74, FUNCT_1:72 ;
:: thesis: verum
end;
suppose A75: e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EB)) . e = EL . e
then not e in EB by XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EB)) . e = (EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) . e by A66, FUNCT_4:12
.= EL . e by A75, FUNCT_1:72 ;
:: thesis: verum
end;
end;
end;
hence (EL | EA) . e = ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EB)) . e by A73, FUNCT_1:72; :: thesis: verum
end;
then A76: Sum (EL | EA) = (Sum (EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) + (Sum (EL | (G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))))) by A61, A66, A72, FUNCT_1:9, GLIB_004:3;
now end;
then A78: G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} c= G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by TARSKI:def 3;
now
let e be set ; :: thesis: ( ( e in G .edgesDBetween ((the_Vertices_of G) \ V2),V2 implies e in ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) ) & ( e in ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) implies e in G .edgesDBetween ((the_Vertices_of G) \ V2),V2 ) )
hereby :: thesis: ( e in ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) implies e in G .edgesDBetween ((the_Vertices_of G) \ V2),V2 )
assume e in G .edgesDBetween ((the_Vertices_of G) \ V2),V2 ; :: thesis: e in ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})
then e DSJoins (the_Vertices_of G) \ V2,V2,G by GLIB_000:def 33;
then A79: ( e in the_Edges_of G & (the_Target_of G) . e in V2 & (the_Source_of G) . e in (the_Vertices_of G) \ V2 ) by GLIB_000:def 18;
then A80: (the_Target_of G) . e in V1 by XBOOLE_0:def 3;
now
per cases ( (the_Source_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} or not (the_Source_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) ;
suppose (the_Source_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: e in ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})
then e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2,G by A79, GLIB_000:def 18;
then e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 by GLIB_000:def 33;
then e in (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) by XBOOLE_0:def 3;
hence e in ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by A81, XBOOLE_0:def 5; :: thesis: verum
end;
suppose not (the_Source_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: e in ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})
end;
end;
end;
hence e in ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) ; :: thesis: verum
end;
assume A82: e in ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) ; :: thesis: e in G .edgesDBetween ((the_Vertices_of G) \ V2),V2
then ( e in (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) & not e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) by XBOOLE_0:def 5;
then A83: not e DSJoins (the_Vertices_of G) \ V1,{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by GLIB_000:def 33;
A84: ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) is Subset of ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) ;
now
per cases ( e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) or e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 ) by A82, A84, XBOOLE_0:def 3;
suppose e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) ; :: thesis: e DSJoins (the_Vertices_of G) \ V2,V2,G
end;
end;
end;
hence e in G .edgesDBetween ((the_Vertices_of G) \ V2),V2 by GLIB_000:def 33; :: thesis: verum
end;
then A89: G .edgesDBetween ((the_Vertices_of G) \ V2),V2 = E2 by TARSKI:2;
A90: ( dom (EL | EC) = EC & dom (EL | ED) = ED & dom (EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) = G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} & dom (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) = G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 & dom (EL | E2) = EC \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) ) by PARTFUN1:def 4;
then A91: dom ((EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | E2)) = (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \/ (EC \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by FUNCT_4:def 1
.= (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \/ ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) by XBOOLE_1:39
.= EC by A78, XBOOLE_1:10, XBOOLE_1:12 ;
now
let e be set ; :: thesis: ( e in dom (EL | EC) implies (EL | EC) . e = ((EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | E2)) . e )
assume e in dom (EL | EC) ; :: thesis: (EL | EC) . e = ((EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | E2)) . e
then A92: e in EC by PARTFUN1:def 4;
now
per cases ( not e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} or e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) ;
suppose not e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: ((EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | E2)) . e = EL . e
then A93: e in E2 by A92, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | E2)) . e = (EL | E2) . e by A90, FUNCT_4:14
.= EL . e by A93, FUNCT_1:72 ;
:: thesis: verum
end;
suppose A94: e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: ((EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | E2)) . e = EL . e
then not e in E2 by XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | E2)) . e = (EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) . e by A90, FUNCT_4:12
.= EL . e by A94, FUNCT_1:72 ;
:: thesis: verum
end;
end;
end;
hence (EL | EC) . e = ((EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | E2)) . e by A92, FUNCT_1:72; :: thesis: verum
end;
then A95: Sum (EL | EC) = (Sum (EL | E2)) + (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) by A90, A91, FUNCT_1:9, GLIB_004:3;
A96: dom ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | ED)) = (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) \/ ED by A90, FUNCT_4:def 1
.= (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) \/ ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) by XBOOLE_1:39
.= EC by XBOOLE_1:6 ;
now
let e be set ; :: thesis: ( e in dom (EL | EC) implies (EL | EC) . e = ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | ED)) . e )
assume e in dom (EL | EC) ; :: thesis: (EL | EC) . e = ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | ED)) . e
then A97: e in EC by PARTFUN1:def 4;
now
per cases ( not e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 or e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 ) ;
suppose not e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 ; :: thesis: ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | ED)) . e = EL . e
then A98: e in ED by A97, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | ED)) . e = (EL | ED) . e by A90, FUNCT_4:14
.= EL . e by A98, FUNCT_1:72 ;
:: thesis: verum
end;
suppose A99: e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 ; :: thesis: ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | ED)) . e = EL . e
then not e in ED by XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | ED)) . e = (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) . e by A90, FUNCT_4:12
.= EL . e by A99, FUNCT_1:72 ;
:: thesis: verum
end;
end;
end;
hence (EL | EC) . e = ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | ED)) . e by A97, FUNCT_1:72; :: thesis: verum
end;
then A100: Sum (EL | EC) = (Sum (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2))) + (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) by A63, A90, A96, FUNCT_1:9, GLIB_004:3;
set EXXe = G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))});
set EXXf = G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))};
now
let e be set ; :: thesis: ( ( e in (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) implies e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) & ( e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} implies e in (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) ) )
hereby :: thesis: ( e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} implies e in (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) )
assume e in (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) ; :: thesis: e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}
then ( e in G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} & not e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) by XBOOLE_0:def 5;
then A101: ( e DSJoins (the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))},{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G & not e DSJoins V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G ) by GLIB_000:def 33;
then A102: ( e in the_Edges_of G & (the_Source_of G) . e in (the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))} & (the_Target_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) by GLIB_000:def 18;
then A103: not (the_Source_of G) . e in V2 by A101, GLIB_000:def 18;
( (the_Source_of G) . e in the_Vertices_of G & not (the_Source_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) by A102, XBOOLE_0:def 5;
then not (the_Source_of G) . e in V1 by A103, XBOOLE_0:def 3;
then (the_Source_of G) . e in (the_Vertices_of G) \ V1 by A102, XBOOLE_0:def 5;
then e DSJoins (the_Vertices_of G) \ V1,{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by A102, GLIB_000:def 18;
hence e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by GLIB_000:def 33; :: thesis: verum
end;
assume e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: e in (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})
then e DSJoins (the_Vertices_of G) \ V1,{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by GLIB_000:def 33;
then A104: ( e in the_Edges_of G & (the_Source_of G) . e in (the_Vertices_of G) \ V1 & (the_Target_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) by GLIB_000:def 18;
then A105: ( (the_Source_of G) . e in the_Vertices_of G & not (the_Source_of G) . e in V1 ) by XBOOLE_0:def 5;
then not (the_Source_of G) . e in V2 by XBOOLE_0:def 3;
then not e DSJoins V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by GLIB_000:def 18;
then A106: not e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by GLIB_000:def 33;
not (the_Source_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by A105, XBOOLE_0:def 3;
then (the_Source_of G) . e in (the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by A104, XBOOLE_0:def 5;
then e DSJoins (the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))},{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by A104, GLIB_000:def 18;
then e in G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by GLIB_000:def 33;
hence e in (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by A106, XBOOLE_0:def 5; :: thesis: verum
end;
then A107: (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) = G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by TARSKI:2;
reconsider EV1Xdb = (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) as Subset of (the_Edges_of G) ;
now end;
then A109: G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} c= G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by TARSKI:def 3;
A110: ( dom (EL | (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) = G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} & dom (EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) = G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} & dom (EL | EV1Xdb) = (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) ) by PARTFUN1:def 4;
then A111: dom ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | ((G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) = (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \/ ((G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by FUNCT_4:def 1
.= (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \/ (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by XBOOLE_1:39
.= G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by A109, XBOOLE_1:12 ;
now
let e be set ; :: thesis: ( e in dom (EL | (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) implies (EL | (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) . e = ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EV1Xdb)) . e )
assume A112: e in dom (EL | (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) ; :: thesis: (EL | (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) . e = ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EV1Xdb)) . e
then A113: e in G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by PARTFUN1:def 4;
now
per cases ( e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} or not e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) ;
suppose A114: e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EV1Xdb)) . e = EL . e
then not e in EV1Xdb by XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EV1Xdb)) . e = (EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) . e by A110, FUNCT_4:12
.= EL . e by A114, FUNCT_1:72 ;
:: thesis: verum
end;
suppose not e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EV1Xdb)) . e = EL . e
then A115: e in EV1Xdb by A113, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EV1Xdb)) . e = (EL | EV1Xdb) . e by A110, FUNCT_4:14
.= EL . e by A115, FUNCT_1:72 ;
:: thesis: verum
end;
end;
end;
hence (EL | (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) . e = ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EV1Xdb)) . e by A110, A112, FUNCT_1:72; :: thesis: verum
end;
then A116: (Sum (EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) + (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) = Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by A107, A110, A111, FUNCT_1:9, GLIB_004:3;
now
let e be set ; :: thesis: ( ( e in (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) implies e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) ) & ( e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) implies e in (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) ) )
hereby :: thesis: ( e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) implies e in (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) )
assume e in (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) ; :: thesis: e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))
then ( e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) & not e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 ) by XBOOLE_0:def 5;
then A117: ( e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},(the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))},G & not e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2,G ) by GLIB_000:def 33;
then A118: ( e in the_Edges_of G & (the_Target_of G) . e in (the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))} & (the_Source_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) by GLIB_000:def 18;
then A119: not (the_Target_of G) . e in V2 by A117, GLIB_000:def 18;
( (the_Target_of G) . e in the_Vertices_of G & not (the_Target_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) by A118, XBOOLE_0:def 5;
then not (the_Target_of G) . e in V1 by A119, XBOOLE_0:def 3;
then (the_Target_of G) . e in (the_Vertices_of G) \ V1 by A118, XBOOLE_0:def 5;
then e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},(the_Vertices_of G) \ V1,G by A118, GLIB_000:def 18;
hence e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by GLIB_000:def 33; :: thesis: verum
end;
assume e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) ; :: thesis: e in (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)
then e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},(the_Vertices_of G) \ V1,G by GLIB_000:def 33;
then A120: ( e in the_Edges_of G & (the_Target_of G) . e in (the_Vertices_of G) \ V1 & (the_Source_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) by GLIB_000:def 18;
then A121: ( (the_Target_of G) . e in the_Vertices_of G & not (the_Target_of G) . e in V1 ) by XBOOLE_0:def 5;
then not (the_Target_of G) . e in V2 by XBOOLE_0:def 3;
then not e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2,G by GLIB_000:def 18;
then A122: not e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 by GLIB_000:def 33;
not (the_Target_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by A121, XBOOLE_0:def 3;
then (the_Target_of G) . e in (the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by A120, XBOOLE_0:def 5;
then e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},(the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by A120, GLIB_000:def 18;
then e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by GLIB_000:def 33;
hence e in (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) by A122, XBOOLE_0:def 5; :: thesis: verum
end;
then A123: (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) = G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by TARSKI:2;
reconsider EXV1cb = (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) as Subset of (the_Edges_of G) ;
now end;
then A125: G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 c= G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by TARSKI:def 3;
A126: ( dom (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) = G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) & dom (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) = G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 & dom (EL | EXV1cb) = (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) ) by PARTFUN1:def 4;
then A127: dom ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | ((G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)))) = (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) \/ ((G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) by FUNCT_4:def 1
.= (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by XBOOLE_1:39
.= G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by A125, XBOOLE_1:12 ;
now
let e be set ; :: thesis: ( e in dom (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) implies (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) . e = ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | EXV1cb)) . e )
assume A128: e in dom (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) ; :: thesis: (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) . e = ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | EXV1cb)) . e
then A129: e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by PARTFUN1:def 4;
now
per cases ( e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 or not e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 ) ;
suppose A130: e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 ; :: thesis: ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | EXV1cb)) . e = EL . e
then not e in EXV1cb by XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | EXV1cb)) . e = (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) . e by A126, FUNCT_4:12
.= EL . e by A130, FUNCT_1:72 ;
:: thesis: verum
end;
suppose not e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 ; :: thesis: ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | EXV1cb)) . e = EL . e
then A131: e in EXV1cb by A129, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | EXV1cb)) . e = (EL | EXV1cb) . e by A126, FUNCT_4:14
.= EL . e by A131, FUNCT_1:72 ;
:: thesis: verum
end;
end;
end;
hence (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) . e = ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | EXV1cb)) . e by A126, A128, FUNCT_1:72; :: thesis: verum
end;
then A132: (Sum (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2))) + (Sum (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))))) = Sum (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) by A123, A126, A127, FUNCT_1:9, GLIB_004:3;
reconsider x = choose (((the_Vertices_of G) \ V2) \ {sink}) as Vertex of G by A42;
( x .edgesIn() = G .edgesDBetween (the_Vertices_of G),{x} & x .edgesOut() = G .edgesDBetween {x},(the_Vertices_of G) ) by GLIB_000:42;
then A133: Sum (EL | (G .edgesDBetween (the_Vertices_of G),{x})) = Sum (EL | (G .edgesDBetween {x},(the_Vertices_of G))) by A1, A40, A43, A47, Def7;
now
let e be set ; :: thesis: ( ( e in (G .edgesDBetween (the_Vertices_of G),{x}) \ (G .edgesDBetween {x},{x}) implies e in G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) & ( e in G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} implies e in (G .edgesDBetween (the_Vertices_of G),{x}) \ (G .edgesDBetween {x},{x}) ) )
hereby :: thesis: ( e in G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} implies e in (G .edgesDBetween (the_Vertices_of G),{x}) \ (G .edgesDBetween {x},{x}) ) end;
assume e in G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: e in (G .edgesDBetween (the_Vertices_of G),{x}) \ (G .edgesDBetween {x},{x})
then e DSJoins (the_Vertices_of G) \ {x},{x},G by GLIB_000:def 33;
then A136: ( e in the_Edges_of G & (the_Source_of G) . e in (the_Vertices_of G) \ {x} & (the_Target_of G) . e in {x} ) by GLIB_000:def 18;
then ( (the_Source_of G) . e in the_Vertices_of G & not (the_Source_of G) . e in {x} ) by XBOOLE_0:def 5;
then not e DSJoins {x},{x},G by GLIB_000:def 18;
then A137: not e in G .edgesDBetween {x},{x} by GLIB_000:def 33;
e DSJoins the_Vertices_of G,{x},G by A136, GLIB_000:def 18;
then e in G .edgesDBetween (the_Vertices_of G),{x} by GLIB_000:def 33;
hence e in (G .edgesDBetween (the_Vertices_of G),{x}) \ (G .edgesDBetween {x},{x}) by A137, XBOOLE_0:def 5; :: thesis: verum
end;
then A138: (G .edgesDBetween (the_Vertices_of G),{x}) \ (G .edgesDBetween {x},{x}) = G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by TARSKI:2;
reconsider EXXfb = (G .edgesDBetween (the_Vertices_of G),{x}) \ (G .edgesDBetween {x},{x}) as Subset of (the_Edges_of G) ;
A139: ( dom (EL | (G .edgesDBetween (the_Vertices_of G),{x})) = G .edgesDBetween (the_Vertices_of G),{x} & dom (EL | (G .edgesDBetween {x},{x})) = G .edgesDBetween {x},{x} & dom (EL | EXXfb) = EXXfb ) by PARTFUN1:def 4;
then A140: dom ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXfb)) = (G .edgesDBetween {x},{x}) \/ EXXfb by FUNCT_4:def 1
.= (G .edgesDBetween {x},{x}) \/ (G .edgesDBetween (the_Vertices_of G),{x}) by XBOOLE_1:39
.= G .edgesDBetween (the_Vertices_of G),{x} by GLIB_000:41, XBOOLE_1:12 ;
now
let e be set ; :: thesis: ( e in dom (EL | (G .edgesDBetween (the_Vertices_of G),{x})) implies (EL | (G .edgesDBetween (the_Vertices_of G),{x})) . e = ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXfb)) . e )
assume e in dom (EL | (G .edgesDBetween (the_Vertices_of G),{x})) ; :: thesis: (EL | (G .edgesDBetween (the_Vertices_of G),{x})) . e = ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXfb)) . e
then A141: e in G .edgesDBetween (the_Vertices_of G),{x} by PARTFUN1:def 4;
now
per cases ( e in G .edgesDBetween {x},{x} or not e in G .edgesDBetween {x},{x} ) ;
suppose A142: e in G .edgesDBetween {x},{x} ; :: thesis: ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXfb)) . e = EL . e
then not e in EXXfb by XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXfb)) . e = (EL | (G .edgesDBetween {x},{x})) . e by A139, FUNCT_4:12
.= EL . e by A142, FUNCT_1:72 ;
:: thesis: verum
end;
suppose not e in G .edgesDBetween {x},{x} ; :: thesis: ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXfb)) . e = EL . e
then A143: e in EXXfb by A141, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXfb)) . e = (EL | EXXfb) . e by A139, FUNCT_4:14
.= EL . e by A143, FUNCT_1:72 ;
:: thesis: verum
end;
end;
end;
hence (EL | (G .edgesDBetween (the_Vertices_of G),{x})) . e = ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXfb)) . e by A141, FUNCT_1:72; :: thesis: verum
end;
then A144: Sum (EL | (G .edgesDBetween (the_Vertices_of G),{x})) = (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) + (Sum (EL | (G .edgesDBetween {x},{x}))) by A138, A139, A140, FUNCT_1:9, GLIB_004:3;
now
let e be set ; :: thesis: ( ( e in (G .edgesDBetween {x},(the_Vertices_of G)) \ (G .edgesDBetween {x},{x}) implies e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) ) & ( e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) implies e in (G .edgesDBetween {x},(the_Vertices_of G)) \ (G .edgesDBetween {x},{x}) ) )
hereby :: thesis: ( e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) implies e in (G .edgesDBetween {x},(the_Vertices_of G)) \ (G .edgesDBetween {x},{x}) ) end;
assume e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) ; :: thesis: e in (G .edgesDBetween {x},(the_Vertices_of G)) \ (G .edgesDBetween {x},{x})
then e DSJoins {x},(the_Vertices_of G) \ {x},G by GLIB_000:def 33;
then A147: ( e in the_Edges_of G & (the_Target_of G) . e in (the_Vertices_of G) \ {x} & (the_Source_of G) . e in {x} ) by GLIB_000:def 18;
then ( (the_Target_of G) . e in the_Vertices_of G & not (the_Target_of G) . e in {x} ) by XBOOLE_0:def 5;
then not e DSJoins {x},{x},G by GLIB_000:def 18;
then A148: not e in G .edgesDBetween {x},{x} by GLIB_000:def 33;
e DSJoins {x}, the_Vertices_of G,G by A147, GLIB_000:def 18;
then e in G .edgesDBetween {x},(the_Vertices_of G) by GLIB_000:def 33;
hence e in (G .edgesDBetween {x},(the_Vertices_of G)) \ (G .edgesDBetween {x},{x}) by A148, XBOOLE_0:def 5; :: thesis: verum
end;
then A149: (G .edgesDBetween {x},(the_Vertices_of G)) \ (G .edgesDBetween {x},{x}) = G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by TARSKI:2;
reconsider EXXeb = (G .edgesDBetween {x},(the_Vertices_of G)) \ (G .edgesDBetween {x},{x}) as Subset of (the_Edges_of G) ;
A150: ( dom (EL | (G .edgesDBetween {x},(the_Vertices_of G))) = G .edgesDBetween {x},(the_Vertices_of G) & dom (EL | EXXeb) = EXXeb ) by PARTFUN1:def 4;
then A151: dom ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXeb)) = (G .edgesDBetween {x},{x}) \/ EXXeb by A139, FUNCT_4:def 1
.= (G .edgesDBetween {x},{x}) \/ (G .edgesDBetween {x},(the_Vertices_of G)) by XBOOLE_1:39
.= G .edgesDBetween {x},(the_Vertices_of G) by GLIB_000:41, XBOOLE_1:12 ;
now
let e be set ; :: thesis: ( e in dom (EL | (G .edgesDBetween {x},(the_Vertices_of G))) implies (EL | (G .edgesDBetween {x},(the_Vertices_of G))) . e = ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXeb)) . e )
assume e in dom (EL | (G .edgesDBetween {x},(the_Vertices_of G))) ; :: thesis: (EL | (G .edgesDBetween {x},(the_Vertices_of G))) . e = ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXeb)) . e
then A152: e in G .edgesDBetween {x},(the_Vertices_of G) by PARTFUN1:def 4;
now
per cases ( e in G .edgesDBetween {x},{x} or not e in G .edgesDBetween {x},{x} ) ;
suppose A153: e in G .edgesDBetween {x},{x} ; :: thesis: ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXeb)) . e = EL . e
then not e in EXXeb by XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXeb)) . e = (EL | (G .edgesDBetween {x},{x})) . e by A150, FUNCT_4:12
.= EL . e by A153, FUNCT_1:72 ;
:: thesis: verum
end;
suppose not e in G .edgesDBetween {x},{x} ; :: thesis: ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXeb)) . e = EL . e
then A154: e in EXXeb by A152, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXeb)) . e = (EL | EXXeb) . e by A150, FUNCT_4:14
.= EL . e by A154, FUNCT_1:72 ;
:: thesis: verum
end;
end;
end;
hence (EL | (G .edgesDBetween {x},(the_Vertices_of G))) . e = ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXeb)) . e by A152, FUNCT_1:72; :: thesis: verum
end;
then Sum (EL | (G .edgesDBetween {x},(the_Vertices_of G))) = (Sum (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) + (Sum (EL | (G .edgesDBetween {x},{x}))) by A149, A150, A151, FUNCT_1:9, GLIB_004:3;
hence EL .flow source,sink = (Sum (EL | (G .edgesDBetween V2,((the_Vertices_of G) \ V2)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V2),V2))) by A48, A59, A71, A76, A89, A95, A100, A116, A132, A133, A144; :: thesis: verum
end;
hence S1[n + 1] ; :: thesis: verum
end;
A155: for n being non empty Nat holds S1[n] from NAT_1:sch 10(A37, A38);
set n = card ((the_Vertices_of G) \ V);
now end;
hence EL .flow source,sink = (Sum (EL | (G .edgesDBetween V,((the_Vertices_of G) \ V)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V),V))) by A1, A155; :: thesis: verum