Working name — provisional. A march is a border region defined by its boundary law; renaming is a maintainer decision, not a technical one.
marches makes the inter-region discipline of a routed network the typed
object: region-crossing well-formedness is a typing judgment on traces
(Marches.Trace), and ill-typed crossings are unconstructible — they
have no derivation — rather than detected and filtered.
Accepted by the Lean kernel through lake build (Lean 4, v4.35.0, no
Mathlib; one dependency, tropical-types). This is Lean-leg evidence only;
PROOF-STATUS.adoc gives the receipt and its scope:
-
Every well-typed non-empty cross-region trace strictly worsens (
trace_worsens,Marches/Compose.lean). -
A well-typed trace that returns to its start is empty — no well-typed routing loop exists, by construction (
wt_cycles_are_empty). -
The ill-typed moves — crossing back from B, firing an A-label inside B — are underivable (
no_back_cross,no_a_label_in_B). -
Single-region loop-freedom under strict inflation (
no_return,Marches/Kernel.lean). -
The Gao–Rexford table never improves a route; strictness fails exactly at
(fromCust, c); the valley dies at the type level (Marches/GaoRexford.lean, finite, bydecide). -
DISAGREE — the classical smallest oscillator — both violates the discipline and demonstrably oscillates (
Marches/BadGadget.lean; the#evalprints the period-2 orbit). The types reject exactly the policies that misbehave. -
A region crossing is a cut: in an acyclic region DAG every crossing in a well-typed trace leaves a cut and never re-enters it, and the composite restricted to a cut prefix is itself a discipline whose traces are exactly those ending in the prefix (
Marches/Cut.lean).
This is not a convergence proof for BGP or any deployed protocol.
Mechanised routing algebras with full asynchronous convergence results
already exist and are much deeper on that axis — see LIMITATIONS.adoc
(agda-routing foremost). The residue claimed here is the typing-judgment
framing: composition discipline as types, ill-typed states
unconstructible, and the bridges into this estate’s attestation and
graded machinery (see ROADMAP.adoc).
PROVEN in this table means the Lean kernel accepted the proof and it uses
no axioms. PROVEN-WITH-AXIOMS means the kernel accepted it and it rests on
the Lean built-in axioms named in the row. Under the estate proof policy
marches is theory, so Agda is the source of truth and no theorem here is
graded yet. PROOF-STATUS.adoc records each witness leg, the axiom census,
the scope of the Lean receipt, and the plan for the Agda port.
| Claim | Status | Discharged by |
|---|---|---|
Well-typed non-empty traces strictly worsen |
PROVEN |
|
Well-typed returning traces are empty |
PROVEN |
|
Ill-typed moves underivable |
PROVEN |
|
Single-region loop-freedom |
PROVEN |
|
GR table inflationary; strictness gap at |
PROVEN-WITH-AXIOMS (finite; |
|
DISAGREE rejected by discipline ∧ oscillates |
PROVEN + TESTED |
|
GR crossings as typing judgment ≡ valley-freedom grammar ≡ non-⊥ table |
PROVEN; PROVEN-WITH-AXIOMS ( |
|
GR ill-typed moves (valley, second peer hop, from-⊥) underivable |
PROVEN |
|
GR (node, signature) loop-freedom under acyclic hierarchy |
PROVEN (conditional) |
|
Acyclic customer→provider hierarchy in real topologies |
ASSUMED |
named |
Within-region strictness load-bearing (falsifier F2) |
PROVEN |
|
Any strictly inflationary path algebra is a |
PROVEN |
|
A finite acyclic DAG of disciplines is itself a discipline (reassembly = closure under composition) |
PROVEN |
|
n-region composite loop-freedom under an acyclic region DAG |
PROVEN (conditional) |
|
n-region ill-typed moves (foreign local label, DAG self-edge) underivable |
PROVEN |
|
Acyclic region DAG in real deployments |
ASSUMED |
|
Every DAG edge crosses the principal cut of its source; an edge on a cycle crosses no cut |
PROVEN (conditional) |
|
Every crossing in a well-typed trace crosses a cut that holds the trace’s start and not its end; a trace that leaves a cut never re-enters it |
PROVEN (conditional) |
|
|
PROVEN (conditional) |
|
|
PROVEN |
|
In one tropical region the end signature of a run is the start |
PROVEN |
|
A well-typed two-region trace that crosses is an A-word, the crossing,
then a B-word; what crosses is the A-signature at the crossing, which B
sees only through |
PROVEN |
|
In the region DAG, the grade reaching a point inside a cut, or a crossing
out of |
PROVEN (conditional) |
|
A collapsing crossing forgets the A-grade, and the fibre over the landing point still tells two such traces apart |
PROVEN (finite) |
|
marches' cuts and grade laws correspond to choreographic-types' K-CUT
( |
ASSUMED (port-and-reprove) |
|
Tropical estate integration: tropical-types' |
PROVEN-WITH-AXIOMS ( |
|
The bottleneck grade gives no loop-freedom: a non-empty path can carry the unit |
PROVEN-WITH-AXIOMS (finite; |
|
Protocol-level asynchronous convergence |
OUT OF SCOPE |
occupied by agda-routing — see |
Anti-Goodhart clause: a status may only be upgraded by naming the
transcribable artifact that discharges it. lake build output is the
artifact for PROVEN rows. No fabricated identifiers.
elan default leanprover/lean4:v4.35.0 # or let lake read lean-toolchain
lake buildNo Mathlib; the one dependency is tropical-types, pinned in
lakefile.toml. CI runs the same build.
scripts/check-correspondence.sh fetches the sibling proof repositories
at their pinned commits (into _build/dependencies). It checks that every
name docs/kcut-correspondence.adoc cites exists, and it needs network
access.
Pins track latest, weekly, through reviewed PRs:
-
actions-lock.ymlrelocks.github/workflows/actions.lock. -
track-lean.ymltries the newest stable Lean against the three gates. -
track-siblings.ymlre-checks the correspondence against each sibling’s HEAD and re-pins when every name still exists.
A red result opens an issue instead of a PR.
-
Marches/Basic.lean— path algebras, strict/non-strict inflation,run. -
Marches/Kernel.lean— single-region loop-freedom. -
Marches/Compose.lean— headline: typed crossing, stratified order,Step/Tracejudgments, positive and negative theorems. -
Marches/Digraph.lean—RPathandAcyclic: the one explicit acyclicity hypothesis shared by the GR hierarchy and the region DAG. -
Marches/GaoRexford.lean— the commercial-relationship finite exhibit. -
Marches/GRTrace.lean— rung 1: GR relationships as typed crossings; the typing judgment is the valley-freedom grammar. -
Marches/GRHierarchy.lean— rung 1: the acyclicity hypothesis made explicit; conditional loop-freedom (gr_loop_free). -
Marches/BadGadget.lean— DISAGREE, the negative pincer. -
Marches/Freewheel.lean— rung 1: falsifier F2 discharged; strictness is load-bearing. -
Marches/Tropical.lean— (min,+) instance and its grade reading (the two K-4 laws, the S-3 order direction); seam for the estate’s tropical work. -
Marches/Reassembly.lean— rung 2 headline:Discipline, generic loop-freedom,PathAlgebra.toDiscipline, andDiscSys.compose— a finite acyclic DAG of disciplines is itself a discipline (reassembly as closure under composition). -
Marches/Cut.lean— rung 3: cuts of the region DAG; every crossing crosses a cut, traces never re-enter a cut they have left, andcomposerestricted to a cut prefix is a discipline (prefix-closure). -
Marches/Provenance.lean— rung 3e: what a trace carries. Words accumulate a grade (a monoid homomorphism); a tropical run ends at start⊗carried; a crossing trace is A-word, crossing, B-word, and carries the A-signature into the fibre ofτ; in the DAG the grade reaching a cut or a crossing is accumulated inside the prefix. -
Marches/TropicalAdapter.lean— rung 3d: imports tropical-types'TropicalAdapterPathunparaphrased (a lakerequire); its min-max⊗is a marchesGrade, and itspathCostis that grade’s accumulation.