← back to lean navigator

DeathConditions.lean

ghView source on GitHub

Three ways a recursive loop dies: broken step, closed loop, or decaying input. Each shows that cumulative loss eventually exceeds any finite budget.

Budget

An information budget tracks bits through the pipeline. Input bits come from Perceive; loss bits leave through the competitive core (Filter + Attend + Consolidate). The budget must balance: input must cover loss.

broken_step_death

Death condition 1: a broken step leaks extra bits. If a morphism's contract fails and leaks extra_leak bits per cycle, the cumulative leak eventually exceeds any finite budget.

theorem broken_step_death
    (budget extra_leak : Nat) (hleak : extra_leak > 0)
    : &exists; n : Nat, n * extra_leak > budget

The proof picks n = budget + 1. At that point, (budget + 1) * extra_leak ≥ budget + 1 > budget.

closed_loop_zero_input

Death condition 2: a closed loop has zero input. With any positive loss per cycle, state bits deplete to zero. At cycle state: state * loss ≥ state.

decaying_input_death

Death condition 3: decaying input. If input decays by some amount each cycle, cumulative decay eventually exceeds the initial input.

survival_induction

Standard induction on natural numbers, named for use by the life_persists theorem in Induction.lean. Given a base case and an inductive step, the property holds for all n.

theorem survival_induction
    (contract_holds : Nat → Prop)
    (base : contract_holds 0)
    (step : ∀ n, contract_holds n → contract_holds (n + 1))
    : ∀ n, contract_holds n

Connections