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.
Machine-checked, in this repository, by lake build (Lean 4, v4.15.0,
no dependencies):
-
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.
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).
| 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 (finite) |
|
DISAGREE rejected by discipline ∧ oscillates |
PROVEN + TESTED |
|
GR crossings as typing judgment ≡ valley-freedom grammar ≡ non-⊥ table |
PROVEN |
|
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 |
|
Tropical estate integration ( |
OPEN |
rung 3 |
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.15.0 # or let lake read lean-toolchain
lake buildZero dependencies; no mathlib. CI runs the same build.
-
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; 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).