let G be finite real-weighted WGraph; :: thesis: for EL being FF:ELabeling of G
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 G; :: 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 that
A1: EL has_valid_flow_from source,sink and
A2: source in V and
A3: 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 n = card ((the_Vertices_of G) \ V);
A4: now end;
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))));
set TG = the_Target_of G;
set SG = the_Source_of G;
A6: now
let n be non empty Nat; :: thesis: ( S1[n] implies S1[n + 1] )
assume A7: 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 that
A8: card ((the_Vertices_of G) \ V2) = n + 1 and
A9: source in V2 and
A10: 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});
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 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}))});
sink is Vertex of G by A1, Def2;
then sink in (the_Vertices_of G) \ V2 by A10, XBOOLE_0:def 5;
then {sink} c= (the_Vertices_of G) \ V2 by ZFMISC_1:37;
then A11: card (((the_Vertices_of G) \ V2) \ {sink}) = (n + 1) - (card {sink}) by A8, CARD_2:63
.= (n + 1) - 1 by CARD_1:50
.= n ;
then A12: choose (((the_Vertices_of G) \ V2) \ {sink}) in (the_Vertices_of G) \ V2 by CARD_1:47, XBOOLE_0:def 5;
then {(choose (((the_Vertices_of G) \ V2) \ {sink}))} c= the_Vertices_of G by 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;
A13: (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 A12, ZFMISC_1:37;
then A14: card ((the_Vertices_of G) \ V1) = (card ((the_Vertices_of G) \ V2)) - (card {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by A13, CARD_2:63
.= (n + 1) - 1 by A8, CARD_1:50
.= n ;
A15: source in V1 by A9, XBOOLE_0:def 3;
not choose (((the_Vertices_of G) \ V2) \ {sink}) in {sink} by A11, CARD_1:47, XBOOLE_0:def 5;
then A16: choose (((the_Vertices_of G) \ V2) \ {sink}) <> sink by TARSKI:def 1;
then not sink in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by TARSKI:def 1;
then not sink in V1 by A10, XBOOLE_0:def 3;
then A17: 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 A7, A14, A15;
set EXXe = G .edgesDBetween ({(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}));
set EXV2 = G .edgesDBetween ({(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2);
set EV2X = G .edgesDBetween (V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))});
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) ;
A18: dom (EL | EA) = EA by PARTFUN1:def 4;
now
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)));
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 A19: (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;
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))) in G .edgesDBetween (((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by 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 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 by GLIB_000:def 18;
then A20: 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 by XBOOLE_0:def 5;
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 A19, 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 {(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 {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by GLIB_000:def 18;
hence contradiction by A20, XBOOLE_0:def 3; :: 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 A21: 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 A25: 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;
now
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}))})));
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 A26: (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;
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}))}))) in G .edgesDBetween ((V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) by 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 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 by GLIB_000:def 18;
then A27: 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 by XBOOLE_0:def 5;
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 A26, 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 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 {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by GLIB_000:def 18;
hence contradiction by A27, XBOOLE_0:def 3; :: 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 A28: 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;
A29: dom (EL | EB) = EB by PARTFUN1:def 4;
A30: 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 A31: 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 A32: e in EB by A31, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween (V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) +* (EL | EB)) . e = (EL | EB) . e by A29, FUNCT_4:14
.= EL . e by A32, FUNCT_1:72 ;
:: thesis: verum
end;
suppose A33: 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 A29, FUNCT_4:12
.= EL . e by A33, 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 A31, FUNCT_1:72; :: thesis: verum
end;
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 A34: 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}))})) by XBOOLE_0:def 5;
then A35: e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},(the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by GLIB_000:def 33;
then A36: (the_Source_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by GLIB_000:def 18;
A37: (the_Target_of G) . e in (the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by A35, GLIB_000:def 18;
then A38: not (the_Target_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by XBOOLE_0:def 5;
not e in G .edgesDBetween ({(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) by A34, XBOOLE_0:def 5;
then not e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2,G by GLIB_000:def 33;
then not (the_Target_of G) . e in V2 by A34, A36, GLIB_000:def 18;
then not (the_Target_of G) . e in V1 by A38, XBOOLE_0:def 3;
then (the_Target_of G) . e in (the_Vertices_of G) \ V1 by A37, XBOOLE_0:def 5;
then e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},(the_Vertices_of G) \ V1,G by A34, A36, 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 A39: 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 A40: e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},(the_Vertices_of G) \ V1,G by GLIB_000:def 33;
then A41: (the_Target_of G) . e in (the_Vertices_of G) \ V1 by GLIB_000:def 18;
then A42: not (the_Target_of G) . e in V1 by XBOOLE_0:def 5;
then not (the_Target_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by XBOOLE_0:def 3;
then A43: (the_Target_of G) . e in (the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by A41, XBOOLE_0:def 5;
not (the_Target_of G) . e in V2 by A42, XBOOLE_0:def 3;
then not e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2,G by GLIB_000:def 18;
then A44: not e in G .edgesDBetween ({(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) by GLIB_000:def 33;
(the_Source_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by A40, GLIB_000:def 18;
then e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},(the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by A39, A43, 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 A44, XBOOLE_0:def 5; :: thesis: verum
end;
then A45: (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;
A46: dom (EL | ED) = ED by PARTFUN1:def 4;
A47: 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 A48: 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 A49: e in ED by A48, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween ({(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2))) +* (EL | ED)) . e = (EL | ED) . e by A46, FUNCT_4:14
.= EL . e by A49, FUNCT_1:72 ;
:: thesis: verum
end;
suppose A50: 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 A46, FUNCT_4:12
.= EL . e by A50, 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 A48, FUNCT_1:72; :: thesis: verum
end;
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) ;
set EXXf = G .edgesDBetween (((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))});
A51: dom (EL | EC) = EC by PARTFUN1:def 4;
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 A52: 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}))}) by XBOOLE_0:def 5;
then A53: e DSJoins (the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))},{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by GLIB_000:def 33;
then A54: (the_Target_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by GLIB_000:def 18;
A55: (the_Source_of G) . e in (the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by A53, GLIB_000:def 18;
then A56: not (the_Source_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by XBOOLE_0:def 5;
not e in G .edgesDBetween (V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by A52, XBOOLE_0:def 5;
then not e DSJoins V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by GLIB_000:def 33;
then not (the_Source_of G) . e in V2 by A52, A54, GLIB_000:def 18;
then not (the_Source_of G) . e in V1 by A56, XBOOLE_0:def 3;
then (the_Source_of G) . e in (the_Vertices_of G) \ V1 by A55, XBOOLE_0:def 5;
then e DSJoins (the_Vertices_of G) \ V1,{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by A52, A54, 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 A57: 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 A58: e DSJoins (the_Vertices_of G) \ V1,{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by GLIB_000:def 33;
then A59: (the_Source_of G) . e in (the_Vertices_of G) \ V1 by GLIB_000:def 18;
then A60: not (the_Source_of G) . e in V1 by XBOOLE_0:def 5;
then not (the_Source_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by XBOOLE_0:def 3;
then A61: (the_Source_of G) . e in (the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by A59, XBOOLE_0:def 5;
not (the_Source_of G) . e in V2 by A60, XBOOLE_0:def 3;
then not e DSJoins V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by GLIB_000:def 18;
then A62: not e in G .edgesDBetween (V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by GLIB_000:def 33;
(the_Target_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by A58, GLIB_000:def 18;
then e DSJoins (the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))},{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by A57, A61, 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 A62, XBOOLE_0:def 5; :: thesis: verum
end;
then A63: (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;
now end;
then A67: 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;
A68: not choose (((the_Vertices_of G) \ V2) \ {sink}) in V2 by A12, XBOOLE_0:def 5;
now end;
then A73: 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;
A74: V2 \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))} is Subset of V2 ;
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)) ) )
A75: ((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}))}))) ;
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 A76: 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 A77: e DSJoins V2,(the_Vertices_of G) \ V2,G by GLIB_000:def 33;
then A78: (the_Source_of G) . e in V2 by GLIB_000:def 18;
A80: (the_Target_of G) . e in (the_Vertices_of G) \ V2 by A77, GLIB_000:def 18;
A81: (the_Source_of G) . e in V1 by A78, 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 A76, A78, 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 A79, 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}))}))))
then (the_Target_of G) . e in (the_Vertices_of G) \ V1 by A13, A80, XBOOLE_0:def 5;
then e DSJoins V1,(the_Vertices_of G) \ V1,G by A76, A81, GLIB_000:def 18;
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}))}))) 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 A79, XBOOLE_0:def 5; :: thesis: verum
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 A82: 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 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 A83: not e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},(the_Vertices_of G) \ V1,G by GLIB_000:def 33;
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 A82, A75, XBOOLE_0:def 3;
suppose A84: 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 A93: 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;
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) ) )
A94: ((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))) ;
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 A95: 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 A96: e DSJoins (the_Vertices_of G) \ V2,V2,G by GLIB_000:def 33;
then A97: (the_Target_of G) . e in V2 by GLIB_000:def 18;
A99: (the_Source_of G) . e in (the_Vertices_of G) \ V2 by A96, GLIB_000:def 18;
A100: (the_Target_of G) . e in V1 by A97, 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 A95, A97, 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 A98, 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}))}))
then (the_Source_of G) . e in (the_Vertices_of G) \ V1 by A13, A99, XBOOLE_0:def 5;
then e DSJoins (the_Vertices_of G) \ V1,V1,G by A95, A100, GLIB_000:def 18;
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}))})) 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 A98, XBOOLE_0:def 5; :: thesis: verum
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 A101: 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 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 A102: not e DSJoins (the_Vertices_of G) \ V1,{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by GLIB_000:def 33;
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 A101, A94, XBOOLE_0:def 3;
suppose A103: 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 A112: G .edgesDBetween (((the_Vertices_of G) \ V2),V2) = E2 by TARSKI:2;
A113: 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;
A114: 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 A115: 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 A116: e in E2 by A115, 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 A113, FUNCT_4:14
.= EL . e by A116, FUNCT_1:72 ;
:: thesis: verum
end;
suppose A117: 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 A113, FUNCT_4:12
.= EL . e by A117, 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 A115, FUNCT_1:72; :: thesis: verum
end;
dom (EL | (G .edgesDBetween ({(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2))) = G .edgesDBetween ({(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) by PARTFUN1:def 4;
then 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 A46, 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 ;
then A118: 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 A21, A51, A47, FUNCT_1:9, GLIB_004:3;
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}))}) by PARTFUN1:def 4;
then 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 A113, 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 A67, XBOOLE_1:10, XBOOLE_1:12 ;
then A119: 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 A51, A114, FUNCT_1:9, GLIB_004:3;
dom (EL | (G .edgesDBetween (V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) = G .edgesDBetween (V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by PARTFUN1:def 4;
then 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 A29, 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 ;
then A120: 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 A28, A18, A30, FUNCT_1:9, GLIB_004:3;
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) ;
A121: 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;
now end;
then A126: 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;
A127: 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;
A128: 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 A129: 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 A130: e in E1 by A129, 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 A127, FUNCT_4:14
.= EL . e by A130, FUNCT_1:72 ;
:: thesis: verum
end;
suppose A131: 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 A127, FUNCT_4:12
.= EL . e by A131, 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 A129, FUNCT_1:72; :: thesis: verum
end;
A132: 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}))}) by PARTFUN1:def 4;
A133: 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 A134: 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 A135: 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 A136: 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 A121, FUNCT_4:12
.= EL . e by A136, 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 A137: e in EV1Xdb by A135, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween (V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) +* (EL | EV1Xdb)) . e = (EL | EV1Xdb) . e by A121, FUNCT_4:14
.= EL . e by A137, 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 A132, A134, FUNCT_1:72; :: thesis: verum
end;
dom (EL | (G .edgesDBetween (V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) = G .edgesDBetween (V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by PARTFUN1:def 4;
then 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 A121, 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 A73, XBOOLE_1:12 ;
then A138: (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 A63, A132, A133, FUNCT_1:9, GLIB_004:3;
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}))}))) by PARTFUN1:def 4;
then 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 A127, 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 A25, XBOOLE_1:10, XBOOLE_1:12 ;
then A139: 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 A18, A128, FUNCT_1:9, GLIB_004:3;
A140: 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;
A141: 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}))})) by PARTFUN1:def 4;
A142: 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 A143: 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 A144: 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 A145: 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 A140, FUNCT_4:12
.= EL . e by A145, 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 A146: e in EXV1cb by A144, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween ({(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2))) +* (EL | EXV1cb)) . e = (EL | EXV1cb) . e by A140, FUNCT_4:14
.= EL . e by A146, 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 A141, A143, FUNCT_1:72; :: thesis: verum
end;
dom (EL | (G .edgesDBetween ({(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2))) = G .edgesDBetween ({(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) by PARTFUN1:def 4;
then 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 A140, 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 A126, XBOOLE_1:12 ;
then A147: (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 A45, A141, A142, FUNCT_1:9, GLIB_004:3;
reconsider x = choose (((the_Vertices_of G) \ V2) \ {sink}) as Vertex of G by A12;
A148: x .edgesOut() = G .edgesDBetween ({x},(the_Vertices_of G)) by GLIB_000:42;
reconsider EXXeb = (G .edgesDBetween ({x},(the_Vertices_of G))) \ (G .edgesDBetween ({x},{x})) as Subset of (the_Edges_of G) ;
reconsider EXXfb = (G .edgesDBetween ((the_Vertices_of G),{x})) \ (G .edgesDBetween ({x},{x})) as Subset of (the_Edges_of G) ;
A149: dom (EL | (G .edgesDBetween ((the_Vertices_of G),{x}))) = G .edgesDBetween ((the_Vertices_of G),{x}) by PARTFUN1:def 4;
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 A154: 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 A155: e DSJoins (the_Vertices_of G) \ {x},{x},G by GLIB_000:def 33;
then A156: (the_Source_of G) . e in (the_Vertices_of G) \ {x} by GLIB_000:def 18;
then 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 A157: not e in G .edgesDBetween ({x},{x}) by GLIB_000:def 33;
(the_Target_of G) . e in {x} by A155, GLIB_000:def 18;
then e DSJoins the_Vertices_of G,{x},G by A154, A156, 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 A157, XBOOLE_0:def 5; :: thesis: verum
end;
then A158: (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;
A159: dom (EL | EXXfb) = EXXfb by PARTFUN1:def 4;
A160: 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 A161: 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 A162: 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 A159, FUNCT_4:12
.= EL . e by A162, 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 A163: e in EXXfb by A161, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween ({x},{x}))) +* (EL | EXXfb)) . e = (EL | EXXfb) . e by A159, FUNCT_4:14
.= EL . e by A163, 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 A161, FUNCT_1:72; :: thesis: verum
end;
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 A168: 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 A169: e DSJoins {x},(the_Vertices_of G) \ {x},G by GLIB_000:def 33;
then A170: (the_Target_of G) . e in (the_Vertices_of G) \ {x} by GLIB_000:def 18;
then 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 A171: not e in G .edgesDBetween ({x},{x}) by GLIB_000:def 33;
(the_Source_of G) . e in {x} by A169, GLIB_000:def 18;
then e DSJoins {x}, the_Vertices_of G,G by A168, A170, 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 A171, XBOOLE_0:def 5; :: thesis: verum
end;
then A172: (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;
A173: dom (EL | (G .edgesDBetween ({x},(the_Vertices_of G)))) = G .edgesDBetween ({x},(the_Vertices_of G)) by PARTFUN1:def 4;
A174: dom (EL | EXXeb) = EXXeb by PARTFUN1:def 4;
A175: 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 A176: 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 A177: 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 A174, FUNCT_4:12
.= EL . e by A177, 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 A178: e in EXXeb by A176, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween ({x},{x}))) +* (EL | EXXeb)) . e = (EL | EXXeb) . e by A174, FUNCT_4:14
.= EL . e by A178, 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 A176, FUNCT_1:72; :: thesis: verum
end;
A179: dom (EL | (G .edgesDBetween ({x},{x}))) = G .edgesDBetween ({x},{x}) by PARTFUN1:def 4;
then dom ((EL | (G .edgesDBetween ({x},{x}))) +* (EL | EXXfb)) = (G .edgesDBetween ({x},{x})) \/ EXXfb by A159, 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 ;
then A180: 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 A158, A149, A160, FUNCT_1:9, GLIB_004:3;
dom ((EL | (G .edgesDBetween ({x},{x}))) +* (EL | EXXeb)) = (G .edgesDBetween ({x},{x})) \/ EXXeb by A179, A174, 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 ;
then A181: 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 A172, A173, A175, FUNCT_1:9, GLIB_004:3;
x .edgesIn() = G .edgesDBetween ((the_Vertices_of G),{x}) by GLIB_000:42;
then Sum (EL | (G .edgesDBetween ((the_Vertices_of G),{x}))) = Sum (EL | (G .edgesDBetween ({x},(the_Vertices_of G)))) by A1, A9, A68, A16, A148, Def2;
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 A17, A93, A139, A120, A112, A119, A118, A138, A147, A180, A181; :: thesis: verum
end;
hence S1[n + 1] ; :: thesis: verum
end;
now
set ESS = G .edgesDBetween ({sink},{sink});
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 that
A182: card ((the_Vertices_of G) \ V) = 1 and
source in V and
A183: 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))))
reconsider EOUT = (G .edgesOutOf {sink}) \ (G .edgesDBetween ({sink},{sink})) as Subset of (the_Edges_of G) ;
consider v being set such that
A184: (the_Vertices_of G) \ V = {v} by A182, CARD_2:60;
sink is Vertex of G by A1, Def2;
then sink in (the_Vertices_of G) \ V by A183, XBOOLE_0:def 5;
then A185: v = sink by A184, TARSKI:def 1;
A186: 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 A188: x in V ; :: thesis: x in (the_Vertices_of G) \ {sink}
then not x in {sink} by A183, TARSKI:def 1;
hence x in (the_Vertices_of G) \ {sink} by A188, XBOOLE_0:def 5; :: thesis: verum
end;
then A189: V = (the_Vertices_of G) \ {sink} by TARSKI:2;
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 A194: e in EOUT ; :: thesis: e in G .edgesDBetween (((the_Vertices_of G) \ V),V)
(G .edgesOutOf {sink}) \ (G .edgesDBetween ({sink},{sink})) is Subset of (G .edgesOutOf {sink}) ;
then A195: (the_Source_of G) . e in {sink} by A194, GLIB_000:def 29;
A196: not e in G .edgesDBetween ({sink},{sink}) by A194, XBOOLE_0:def 5;
then e DSJoins (the_Vertices_of G) \ V,V,G by A184, A185, A194, A195, GLIB_000:def 18;
hence e in G .edgesDBetween (((the_Vertices_of G) \ V),V) by GLIB_000:def 33; :: thesis: verum
end;
then A198: G .edgesDBetween (((the_Vertices_of G) \ V),V) = EOUT by TARSKI:2;
set EESS = EL | (G .edgesDBetween ({sink},{sink}));
reconsider EIN = (G .edgesInto {sink}) \ (G .edgesDBetween ({sink},{sink})) as Subset of (the_Edges_of G) ;
A199: dom (EL | (G .edgesInto {sink})) = G .edgesInto {sink} by PARTFUN1:def 4;
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 A204: e in EIN ; :: thesis: e in G .edgesDBetween (V,((the_Vertices_of G) \ V))
(G .edgesInto {sink}) \ (G .edgesDBetween ({sink},{sink})) is Subset of (G .edgesInto {sink}) ;
then A205: (the_Target_of G) . e in {sink} by A204, GLIB_000:def 28;
A206: not e in G .edgesDBetween ({sink},{sink}) by A204, XBOOLE_0:def 5;
then e DSJoins V,{sink},G by A204, A205, GLIB_000:def 18;
hence e in G .edgesDBetween (V,((the_Vertices_of G) \ V)) by A184, A185, GLIB_000:def 33; :: thesis: verum
end;
then A208: G .edgesDBetween (V,((the_Vertices_of G) \ V)) = EIN by TARSKI:2;
now end;
then A210: G .edgesDBetween ({sink},{sink}) c= G .edgesOutOf {sink} by TARSKI:def 3;
now
let e be set ; :: thesis: ( e in G .edgesDBetween ({sink},{sink}) implies e in G .edgesInto {sink} )
assume A211: e in G .edgesDBetween ({sink},{sink}) ; :: thesis: e in G .edgesInto {sink}
then e DSJoins {sink},{sink},G by GLIB_000:def 33;
then (the_Target_of G) . e in {sink} by GLIB_000:def 18;
hence e in G .edgesInto {sink} by A211, GLIB_000:def 28; :: thesis: verum
end;
then A212: G .edgesDBetween ({sink},{sink}) c= G .edgesInto {sink} by TARSKI:def 3;
A213: dom (EL | (G .edgesDBetween ({sink},{sink}))) = G .edgesDBetween ({sink},{sink}) by PARTFUN1:def 4;
A214: dom (EL | EOUT) = EOUT by PARTFUN1:def 4;
A215: 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 A216: e in dom (EL | (G .edgesOutOf {sink})) ; :: thesis: (EL | (G .edgesOutOf {sink})) . e = ((EL | (G .edgesDBetween ({sink},{sink}))) +* (EL | EOUT)) . e
then A217: 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 A218: 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 A214, FUNCT_4:12
.= EL . e by A213, A218, 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 A219: e in EOUT by A217, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween ({sink},{sink}))) +* (EL | EOUT)) . e = (EL | EOUT) . e by A214, FUNCT_4:14
.= EL . e by A214, A219, FUNCT_1:70 ;
:: thesis: verum
end;
end;
end;
hence (EL | (G .edgesOutOf {sink})) . e = ((EL | (G .edgesDBetween ({sink},{sink}))) +* (EL | EOUT)) . e by A216, FUNCT_1:70; :: thesis: verum
end;
A220: dom (EL | EIN) = EIN by PARTFUN1:def 4;
A221: 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 A222: e in dom (EL | (G .edgesInto {sink})) ; :: thesis: (EL | (G .edgesInto {sink})) . e = ((EL | (G .edgesDBetween ({sink},{sink}))) +* (EL | EIN)) . e
then A223: 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 A224: 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 A220, FUNCT_4:12
.= EL . e by A213, A224, 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 A225: e in EIN by A223, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween ({sink},{sink}))) +* (EL | EIN)) . e = (EL | EIN) . e by A220, FUNCT_4:14
.= EL . e by A220, A225, FUNCT_1:70 ;
:: thesis: verum
end;
end;
end;
hence (EL | (G .edgesInto {sink})) . e = ((EL | (G .edgesDBetween ({sink},{sink}))) +* (EL | EIN)) . e by A222, FUNCT_1:70; :: thesis: verum
end;
A226: (G .edgesDBetween ({sink},{sink})) \/ EIN = (G .edgesInto {sink}) \/ (G .edgesDBetween ({sink},{sink})) by XBOOLE_1:39
.= G .edgesInto {sink} by A212, XBOOLE_1:12 ;
dom ((EL | (G .edgesDBetween ({sink},{sink}))) +* (EL | EIN)) = (G .edgesDBetween ({sink},{sink})) \/ EIN by A213, A220, FUNCT_4:def 1;
then A227: Sum (EL | (G .edgesInto {sink})) = (Sum (EL | EIN)) + (Sum (EL | (G .edgesDBetween ({sink},{sink})))) by A226, A199, A221, FUNCT_1:9, GLIB_004:3;
(G .edgesDBetween ({sink},{sink})) \/ EOUT = (G .edgesOutOf {sink}) \/ (G .edgesDBetween ({sink},{sink})) by XBOOLE_1:39
.= G .edgesOutOf {sink} by A210, XBOOLE_1:12 ;
then A228: dom ((EL | (G .edgesDBetween ({sink},{sink}))) +* (EL | EOUT)) = G .edgesOutOf {sink} by A213, A214, FUNCT_4:def 1;
dom (EL | (G .edgesOutOf {sink})) = G .edgesOutOf {sink} by PARTFUN1:def 4;
then EL .flow (source,sink) = ((Sum (EL | EIN)) + (Sum (EL | (G .edgesDBetween ({sink},{sink}))))) - ((Sum (EL | (G .edgesDBetween ({sink},{sink})))) + (Sum (EL | EOUT))) by A227, A228, A215, FUNCT_1:9, GLIB_004:3
.= (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 A208, A198; :: thesis: verum
end;
then A229: S1[1] ;
for n being non empty Nat holds S1[n] from NAT_1:sch 10(A229, A6);
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 A2, A3, A4; :: thesis: verum