# Question 24345: Every Internal Vertex Needs Its Own Complete Inflow-Outflow Check

[Return to catalogue page 122](https://ocme.evemisslab.com/en/questions/page/122/)

[← Question derivation index](https://ocme.evemisslab.com/en/questions/) · [Original question batch](https://ocme.evemisslab.com/en/practice/batch-20261015-advance-20261113-r07-finite-flow-network-foundations/#q-20261015-advance-20261113-r07-finite-flow-network-0070)

This teaching derivation has second-context AI mathematical and bilingual semantic review, limited to the model and assumptions stated in this question. It has no human review or new Lean proof and does not promote the original question or MKO to Canonical truth.

R0047-24345 · q-20261015-advance-20261113-r07-finite-flow-network-0070



## Original question and givens

Use vertices=[s19, a19, t19, u19], ordered directed edges=[[s19, a19], [a19, s19], [a19, t19], [t19, a19]], distinct source=s19, sink=t19, aligned capacities=[100, 100, 100, 100] and candidate flows=[80, 40, 40, 20]. Vertices/edges must qualify; capacities are nonnegative. Candidate flows are not assumed feasible. Zip each edge with its own capacity/flow before sorting; never sort those arrays independently. Opposite directions remain distinct; loops and duplicate ordered edges are forbidden. Give (source, sink, edge_capacity_flow_rows, internal_balance_rows, conservation_feasible, first_failed_vertex_or_null, certificate).


- G001 — Use vertices=[s19, a19, t19, u19], ordered directed edges=[[s19, a19], [a19, s19], [a19, t19], [t19, a19]], distinct source=s19, sink=t19, aligned capacities=[100, 100, 100, 100] and candidate flows=[80, 40, 40, 20]. Vertices/edges must qualify; capacities are nonnegative. Candidate flows are not assumed feasible. Zip each edge with its own capacity/flow before sorting; never sort those arrays independently. Opposite directions remain distinct; loops and duplicate ordered edges are forbidden. Give (source, sink, edge_capacity_flow_rows, internal_balance_rows, conservation_feasible, first_failed_vertex_or_null, certificate).





## Definition and scope

Use the original question domain, assumptions and cited MKO definitions. This item has second-context mathematical and bilingual review, with the model, answer and every arithmetic step independently recomputed from the original parameters; the source question remains a candidate.


- [mko-finite-flow-network](https://ocme.evemisslab.com/en/mko/mko-finite-flow-network/)





## Step-by-step derivation

S001 · impliesBefore

source roles = [flow-conservation-audit]

After

derived = [[source, sink, edge_capacity_flow_rows, internal_balance_rows, conservation_feasible, first_failed_vertex_or_null, certificate]]

Conditions: none

List the source field order without JavaScript.Gradient boundary uses its original mode to choose6,8 or7 fields;no padding or answer-derived mode.

Step identifiers and dependenciesRule: source_ordered_fields_without_JS · Uses: G001





S002 · impliesBefore

source roles = [[s19, a19, t19, u19], [[s19, a19], [a19, s19], [a19, t19], [t19, a19]], [100, 100, 100, 100], [80, 40, 40, 20], s19, t19]

After

derived = [[a19, s19, t19, u19], [[[a19, s19], 100, 40], [[a19, t19], 100, 40], [[s19, a19], 100, 80], [[t19, a19], 100, 20]], 2, Yes]

Conditions: none

Zip edge,capacity and flow by original index before source English canonical-edge sorting;vertices use UTF16.Opposite directions are distinct,zero capacity and isolated vertices are legal,and negative flow is retained for capacity failure rather than rewritten.

Step identifiers and dependenciesRule: Flow_zip_source_edges_capacities_flows_BEFORE_order · Uses: G001, S001





S003 · impliesBefore

source roles = [0, [a19, s19], 40, 100]

After

derived = [Yes, Yes, Yes]

Conditions: none

Every directed edge needs0<=flow<=capacity.A qualified network signature does not imply candidate-flow feasibility.

Step identifiers and dependenciesRule: Flow_EACH_edge_two_sided_capacity_obligation · Uses: G001, S002





S004 · impliesBefore

source roles = [1, [a19, t19], 40, 100]

After

derived = [Yes, Yes, Yes]

Conditions: none

Every directed edge needs0<=flow<=capacity.A qualified network signature does not imply candidate-flow feasibility.

Step identifiers and dependenciesRule: Flow_EACH_edge_two_sided_capacity_obligation · Uses: G001, S003





S005 · impliesBefore

source roles = [2, [s19, a19], 80, 100]

After

derived = [Yes, Yes, Yes]

Conditions: none

Every directed edge needs0<=flow<=capacity.A qualified network signature does not imply candidate-flow feasibility.

Step identifiers and dependenciesRule: Flow_EACH_edge_two_sided_capacity_obligation · Uses: G001, S004





S006 · impliesBefore

source roles = [3, [t19, a19], 20, 100]

After

derived = [Yes, Yes, Yes]

Conditions: none

Every directed edge needs0<=flow<=capacity.A qualified network signature does not imply candidate-flow feasibility.

Step identifiers and dependenciesRule: Flow_EACH_edge_two_sided_capacity_obligation · Uses: G001, S005





S007 · calculationBefore

Flow ALL incoming at vertex a19 := sum(80, 20)

After

Flow ALL incoming at vertex a19 = 100

Conditions: none

Substitute original roles and established intermediates exactly;check nonzero denominators and do not round.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S006





S008 · calculationBefore

Flow ALL outgoing at vertex a19 := sum(40, 40)

After

Flow ALL outgoing at vertex a19 = 80

Conditions: none

Substitute original roles and established intermediates exactly;check nonzero denominators and do not round.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S007





S009 · impliesBefore

source roles = [a19, [2, 3], [0, 1]]

After

derived = [100, 80, No, Yes]

Conditions: none

Sum all incoming and outgoing edges separately;an isolated vertex has0=0.Conservation is required only internally,but compute source/sink balances too for net values.

Step identifiers and dependenciesRule: Flow_EACH_vertex_complete_directional_incidence · Uses: G001, S008





S010 · calculationBefore

Flow ALL incoming at vertex s19 := sum(40)

After

Flow ALL incoming at vertex s19 = 40

Conditions: none

Substitute original roles and established intermediates exactly;check nonzero denominators and do not round.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S009





S011 · calculationBefore

Flow ALL outgoing at vertex s19 := sum(80)

After

Flow ALL outgoing at vertex s19 = 80

Conditions: none

Substitute original roles and established intermediates exactly;check nonzero denominators and do not round.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S010





S012 · impliesBefore

source roles = [s19, [0], [2]]

After

derived = [40, 80, No, No]

Conditions: none

Sum all incoming and outgoing edges separately;an isolated vertex has0=0.Conservation is required only internally,but compute source/sink balances too for net values.

Step identifiers and dependenciesRule: Flow_EACH_vertex_complete_directional_incidence · Uses: G001, S011





S013 · calculationBefore

Flow ALL incoming at vertex t19 := sum(40)

After

Flow ALL incoming at vertex t19 = 40

Conditions: none

Substitute original roles and established intermediates exactly;check nonzero denominators and do not round.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S012





S014 · calculationBefore

Flow ALL outgoing at vertex t19 := sum(20)

After

Flow ALL outgoing at vertex t19 = 20

Conditions: none

Substitute original roles and established intermediates exactly;check nonzero denominators and do not round.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S013





S015 · impliesBefore

source roles = [t19, [1], [3]]

After

derived = [40, 20, No, No]

Conditions: none

Sum all incoming and outgoing edges separately;an isolated vertex has0=0.Conservation is required only internally,but compute source/sink balances too for net values.

Step identifiers and dependenciesRule: Flow_EACH_vertex_complete_directional_incidence · Uses: G001, S014





S016 · calculationBefore

Flow ALL incoming at vertex u19 := sum()

After

Flow ALL incoming at vertex u19 = 0

Conditions: none

Substitute original roles and established intermediates exactly;check nonzero denominators and do not round.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S015





S017 · calculationBefore

Flow ALL outgoing at vertex u19 := sum()

After

Flow ALL outgoing at vertex u19 = 0

Conditions: none

Substitute original roles and established intermediates exactly;check nonzero denominators and do not round.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S016





S018 · impliesBefore

source roles = [u19, [], []]

After

derived = [0, 0, Yes, Yes]

Conditions: none

Sum all incoming and outgoing edges separately;an isolated vertex has0=0.Conservation is required only internally,but compute source/sink balances too for net values.

Step identifiers and dependenciesRule: Flow_EACH_vertex_complete_directional_incidence · Uses: G001, S017





S019 · calculationBefore

Flow source NET outflow not gross outgoing := sub(80, 40)

After

Flow source NET outflow not gross outgoing = 40

Conditions: none

Substitute original roles and established intermediates exactly;check nonzero denominators and do not round.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S018





S020 · calculationBefore

Flow sink NET inflow not gross incoming := sub(40, 20)

After

Flow sink NET inflow not gross incoming = 20

Conditions: none

Substitute original roles and established intermediates exactly;check nonzero denominators and do not round.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S019





S021 · impliesBefore

source roles = [s19, t19, [[[a19, s19], 40, 100, Yes], [[a19, t19], 40, 100, Yes], [[s19, a19], 80, 100, Yes], [[t19, a19], 20, 100, Yes]], [[a19, 100, 80, No], [u19, 0, 0, Yes]], 40, 20]

After

derived = [No, Yes, No, No, No]

Conditions: none

Every edge cancels in the sum of all vertex balances,so internal conservation implies equal source/sink net values.The converse fails when internal imbalances cancel.Capacity,each balance and net equality remain separate.Feasibility does not certify maximum/min-cut;No does not deny special optimal examples.

Step identifiers and dependenciesRule: Flow_value_capacity_conservation_and_maximum_separate · Uses: G001, S020









## Reverse checks


- S021 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
- S020 · premise_and_result_audit — Recompute Flow sink NET inflow not gross incoming with exact rational arithmetic, not rounded decimals.
- S019 · premise_and_result_audit — Recompute Flow source NET outflow not gross outgoing with exact rational arithmetic, not rounded decimals.
- S018 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
- S017 · premise_and_result_audit — Recompute Flow ALL outgoing at vertex u19 with exact rational arithmetic, not rounded decimals.
- S016 · premise_and_result_audit — Recompute Flow ALL incoming at vertex u19 with exact rational arithmetic, not rounded decimals.
- S015 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
- S014 · premise_and_result_audit — Recompute Flow ALL outgoing at vertex t19 with exact rational arithmetic, not rounded decimals.
- S013 · premise_and_result_audit — Recompute Flow ALL incoming at vertex t19 with exact rational arithmetic, not rounded decimals.
- S012 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
- S011 · premise_and_result_audit — Recompute Flow ALL outgoing at vertex s19 with exact rational arithmetic, not rounded decimals.
- S010 · premise_and_result_audit — Recompute Flow ALL incoming at vertex s19 with exact rational arithmetic, not rounded decimals.
- S009 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
- S008 · premise_and_result_audit — Recompute Flow ALL outgoing at vertex a19 with exact rational arithmetic, not rounded decimals.
- S007 · premise_and_result_audit — Recompute Flow ALL incoming at vertex a19 with exact rational arithmetic, not rounded decimals.
- S006 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
- S005 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
- S004 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
- S003 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
- S002 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
- S001 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.





## Result

(s19, t19, [[[a19, s19], 100, 40], [[a19, t19], 100, 40], [[s19, a19], 100, 80], [[t19, a19], 100, 20]], [[a19, 100, 80, No], [u19, 0, 0, Yes]], No, [a19, 100, 80, No], every_internal_vertex_requires_complete_inflow_equals_outflow)

The full substitutions and premise checks give the original answer; source identity,format and status are unchanged.





## This question review and source binding

Review date: 2026-10-26

Original questions, answers, step expressions, numeric ASTs and historical records are retained. Source candidate labels remain historical and are not overwritten as formal proof.

Source hashes and review receipts
- input commit: 0f7be61e2c22317a4075561dc822c87d881a50db
- original question SHA-256: 56dd12fd691baaa0fa1b07bb9c6421d529b4f9de6ea92792557a5b1661c77986
- candidate record SHA-256: 7a4b8d0e38af19c32828152e379df5e1c8f4b5d6125eb6300165a42d17edbe48
- semantic review receipt SHA-256: 9b43b9823e9bd2478d6caa5b57ffed161c2c8956af86974e901d5662ad994386
- question-first witness SHA-256: eb97596068e2d5648033bab2b8f6ca9b653bbe8cb77c0f8e1d16d0c40e46f50b
- Lean: NOT_RUN · human review: NOT_PERFORMED

[Same-source full JSON](https://ocme.evemisslab.com/data/question-derivations/questions/q-20261015-advance-20261113-r07-finite-flow-network-0070.json)




