Encyclopedia Foundation Foundation Variational Dynamics Variational Dynamics Deterministic

ARTICLE 6 claims 6 theorems

Foundation Variational Dynamics Variational Dynamics Deterministic

In a discrete ledger of recognition events, the rule for moving from one moment to the next is not chosen: it is forced by minimizing a fixed cost, and that rule leaves no room for chance.

The deterministic update

A bookkeeper with a list of numbers, one for each entry in a ledger. The bookkeeper must update the whole list each tick, but is not free to pick any new list. The allowed next lists are only those that preserve a certain total, a conserved quantity called the log-charge, which is the sum of the natural logarithms of all entries. Among those allowed lists, the bookkeeper must choose the one that makes a measure of total defect, the sum of a fixed cost function J applied to each entry, as small as possible. This is a constrained minimization problem, and the declaration variational_dynamics_deterministic is the theorem that this rule produces exactly one future for every present.

The theorem states it formally: if two trajectories of the ledger both obey the rule and both start from the same initial state, then their states are identical at every future tick. The proof rests on two properties of the cost function J, which is J(x) = (x + 1/x)/2 - 1. First, the set of allowed next states is compact, so a minimizer always exists. Second, J is strictly convex, so the minimizer is unique. Together they force the update to be a function: the same input state always yields the same output state. This is the ledger's analogue of Newton's second law, which tells how a system moves, as opposed to merely saying that some motion is possible.

The update is not a local rule. A separate theorem, update_is_global, shows that the optimal new value of any single entry depends on the values of all other entries, through the shared conservation constraint. Recognition, in this account, is a genuinely non-local process: the bookkeeper cannot update one line without considering the whole page. The framework also proves that this deterministic step always reduces total defect, that a state with zero defect stays fixed forever, and that the all-ones state is an equilibrium whenever the conserved charge is zero.

In Recognition Science, the ledger is a discrete record of recognition events, and this theorem supplies the missing equation of motion for that record. It does not claim that the ledger's evolution is computable in practice, nor that the framework's cost function J is the only possible one, nor that the conserved log-charge is a physically observable quantity in conventional physics. It establishes a formal property of a mathematical model, not an empirical law of nature.

THEOREM variational_dynamics_deterministic · IndisputableMonolith/Foundation/VariationalDynamics.lean
variational_dynamics_deterministic · IndisputableMonolith/Foundation/VariationalDynamics.lean:360
/-- **Theorem (Deterministic Evolution)**:
    If two trajectories start from the same initial state and both
    follow the variational dynamics, they are identical.

    This is the equation-of-motion analogue of Laplacian determinism:
    initial conditions + update rule = unique future. -/
theorem variational_dynamics_deterministic {N : ℕ} (hN : 0 < N)
    (traj₁ traj₂ : Trajectory N)
    (h₁ : IsVariationalTrajectory traj₁)
    (h₂ : IsVariationalTrajectory traj₂)
    (h_init : (traj₁ 0).entries = (traj₂ 0).entries) :
    ∀ t, (traj₁ t).entries = (traj₂ t).entries := by
  intro t
  induction t with
  | zero => exact h_init
  | succ n ih =>
    have h1n := h₁ n
    have h2n := h₂ n
    -- Both traj₁(n+1) and traj₂(n+1) are variational successors of their
    -- respective states at time n. Since those states have the same entries
    -- (by induction), the feasible sets are the same.
    -- Uniqueness of the variational step gives the result.
    have h_same_charge : log_charge (traj₁ n) = log_charge (traj₂ n) := by
      unfold log_charge
      congr 1
      funext i
      rw [ih]
    -- Construct the compatibility: traj₂(n+1) is also a variational successor
    -- of traj₁(n) (since feasible sets match).
    have h2n_compat : IsVariationalSuccessor (traj₁ n) (traj₂ (n + 1)) := by
      constructor
      · show log_charge (traj₂ (n + 1)) = log_charge (traj₁ n)
        have := h2n.1
        exact this.trans h_same_charge.symm
      · intro c' hc'
        have hc'_feas2 : c' ∈ Feasible (traj₂ n) := by
          show log_charge c' = log_charge (traj₂ n)
          exact hc'.trans h_same_charge
        exact h2n.2 c' hc'_feas2
    exact variational_step_unique hN (traj₁ n) (traj₁ (n + 1)) (traj₂ (n + 1)) h1n h2n_compat
THEOREM variational_step_exists · IndisputableMonolith/Foundation/VariationalDynamics.lean
/-- **Theorem (Variational Step Existence)**:
    A total-defect minimizer always exists in the feasible set.

    The proof constructs the minimizer explicitly: it is the configuration
    where every entry equals exp(log_charge(c) / N), distributing the
    conserved charge equally. This is the AM-GM-optimal configuration. -/
theorem variational_step_exists {N : ℕ} (hN : 0 < N)
    (c : Configuration N) :
    ∃ next : Configuration N, IsVariationalSuccessor c next := by
  let μ := log_charge c / N
  use (constant_config μ : Configuration N)
  constructor
  · show log_charge (constant_config μ : Configuration N) = log_charge c
    rw [constant_config_log_charge]
    unfold μ
    exact mul_div_cancel₀ _ (Nat.cast_ne_zero.mpr (Nat.pos_iff_ne_zero.mp hN))
  · intro c' _hc'
    rw [constant_config_total_defect]
    have hbound := total_defect_lower_bound hN c'
    rw [_hc'] at hbound
    unfold μ
    exact hbound
THEOREM variational_step_unique · IndisputableMonolith/Foundation/VariationalDynamics.lean
/-- **Theorem (Variational Step Uniqueness)**:
    If two configurations both minimize total defect over the feasible set,
    they are identical.

    Proof uses strict convexity of J: if c₁ ≠ c₂ both minimize total J-cost,
    their midpoint (adjusted to satisfy the constraint) would have strictly
    lower cost, contradicting minimality.

    This is the core determinism result: the next state is UNIQUE. -/
theorem variational_step_unique {N : ℕ} (hN : 0 < N)
    (c : Configuration N)
    (next₁ next₂ : Configuration N)
    (h₁ : IsVariationalSuccessor c next₁)
    (h₂ : IsVariationalSuccessor c next₂) :
    next₁.entries = next₂.entries := by
  have h_uniform : IsVariationalSuccessor c (constant_config (log_charge c / N) : Configuration N) := by
    constructor
    · show log_charge (constant_config (log_charge c / N) : Configuration N) = log_charge c
      rw [constant_config_log_charge]
      exact mul_div_cancel₀ _ (Nat.cast_ne_zero.mpr (Nat.pos_iff_ne_zero.mp hN))
    · intro c' hc'
      rw [constant_config_total_defect]
      have hbound := total_defect_lower_bound hN c'
      rw [hc'] at hbound
      exact hbound
  have h1_eq_min : total_defect next₁ = (N : ℝ) * Jlog (log_charge c / N) := by
    have h1le := h₁.2 (constant_config (log_charge c / N) : Configuration N) h_uniform.1
    have h1ge := h_uniform.2 next₁ h₁.1
    rw [constant_config_total_defect] at h1le h1ge
    exact le_antisymm h1le h1ge
  have h2_eq_min : total_defect next₂ = (N : ℝ) * Jlog (log_charge c / N) := by
    have h2le := h₂.2 (constant_config (log_charge c / N) : Configuration N) h_uniform.1
    have h2ge := h_uniform.2 next₂ h₂.1
    rw [constant_config_total_defect] at h2le h2ge
    exact le_antisymm h2le h2ge
  have h1_const :
      next₁.entries = (constant_config (log_charge next₁ / N) : Configuration N).entries := by
    apply eq_constant_config_of_defect_eq hN next₁
    rw [← h₁.1] at h1_eq_min
    exact h1_eq_min
  have h2_const :
      next₂.entries = (constant_config (log_charge next₂ / N) : Configuration N).entries := by
    apply eq_constant_config_of_defect_eq hN next₂
    rw [← h₂.1] at h2_eq_min
    exact h2_eq_min
  have hcharge1 : log_charge next₁ = log_charge c := h₁.1
  have hcharge2 : log_charge next₂ = log_charge c := h₂.1
  calc
    next₁.entries = (constant_config (log_charge next₁ / N) : Configuration N).entries := h1_const
    _ = (constant_config (log_charge c / N) : Configuration N).entries := by rw [hcharge1]
    _ = (constant_config (log_charge next₂ / N) : Configuration N).entries := by rw [hcharge2]
    _ = next₂.entries := h2_const.symm
THEOREM update_is_global · IndisputableMonolith/Foundation/VariationalDynamics.lean
/-- **Theorem (Update Is Global)**:
    The variational successor generally cannot be achieved by a local update.

    Specifically: for N ≥ 2, there exist configurations where the
    variational successor modifies more than one entry.

    This makes the update rule fundamentally NON-LOCAL — the optimal
    evolution of each entry depends on the state of all other entries
    through the shared conservation constraint. -/
theorem update_is_global :
    ∃ (N : ℕ) (hN : 0 < N) (c next : Configuration N),
      IsVariationalSuccessor c next ∧
      ¬∃ lu : LocalUpdate c next, True := by
  use 2, (by norm_num : 0 < 2)
  -- Consider c with entries [2, 1/2] (log-charge = 0).
  -- The variational successor is [1, 1] (also log-charge = 0).
  -- This changes BOTH entries, so no local update suffices.
  let c : Configuration 2 := {
    entries := fun i => if i.val = 0 then 2 else 1/2
    entries_pos := fun i => by
      fin_cases i <;> norm_num
  }
  let next : Configuration 2 := {
    entries := fun _ => 1
    entries_pos := fun _ => by norm_num
  }
  use c, next
  constructor
  · constructor
    · -- Feasibility: log_charge [1,1] = log(1) + log(1) = 0
      -- log_charge [2, 1/2] = log(2) + log(1/2) = log(2) - log(2) = 0
      show log_charge next = log_charge c
      unfold log_charge
      simp [Fin.sum_univ_two, next, c]
    · -- Minimality: [1,1] has zero total defect, which is minimal
      intro c' _
      unfold total_defect
      have h_next : ∀ i : Fin 2, next.entries i = 1 := fun _ => rfl
      simp only [h_next, defect_at_one, Finset.sum_const_zero]
      exact Finset.sum_nonneg (fun i _ => defect_nonneg (c'.entries_pos i))
  · -- No local update: both entries change (2 → 1 and 1/2 → 1)
    intro ⟨lu, _⟩
    have h0 : next.entries ⟨0, by norm_num⟩ ≠ c.entries ⟨0, by norm_num⟩ := by
      show (1 : ℝ) ≠ 2
      norm_num
    have h1 : next.entries ⟨1, by norm_num⟩ ≠ c.entries ⟨1, by norm_num⟩ := by
      show (1 : ℝ) ≠ 1 / 2
      norm_num
    cases lu with
    | mk idx hfixed =>
      fin_cases idx
      · have := hfixed ⟨1, by norm_num⟩ (by decide)
        exact h1 this
      · have := hfixed ⟨0, by norm_num⟩ (by decide)
        exact h0 this
THEOREM variational_step_reduces_defect · IndisputableMonolith/Foundation/VariationalDynamics.lean
variational_step_reduces_defect · IndisputableMonolith/Foundation/VariationalDynamics.lean:336
/-- **Theorem (Variational Step Reduces Defect)**:
    The total defect of the successor is at most the total defect
    of the current state.

    This follows immediately: the current state is feasible for itself,
    and the successor minimizes over the feasible set, so the successor's
    cost is at most the current state's cost. -/
theorem variational_step_reduces_defect {N : ℕ}
    (c next : Configuration N)
    (h : IsVariationalSuccessor c next) :
    total_defect next ≤ total_defect c :=
  h.2 c (self_feasible c)
THEOREM unity_is_equilibrium · IndisputableMonolith/Foundation/VariationalDynamics.lean
/-- **Theorem**: The unity configuration is an equilibrium when log-charge = 0. -/
theorem unity_is_equilibrium {N : ℕ} (hN : 0 < N) :
    IsEquilibrium (unity_config N hN) := by
  constructor
  · exact self_feasible _
  · intro c' hc'
    rw [unity_defect_zero hN]
    exact total_defect_nonneg c'

What this page does not claim

The ledger's evolution is computable in practice. The cost function J is the only possible cost function. The conserved log-charge is a physically observable quantity. The framework's model of dynamics is an empirical law of nature.

Verify this page

Every tagged claim above names its theorem. To check one yourself rather than trust this page, elaborate the source module with Lean 4 and audit its axiom basis:

$ lake env lean IndisputableMonolith/Foundation/VariationalDynamics.lean
expected axiom basis: [propext, Classical.choice, Quot.sound] (the Lean kernel's standard three; no RS-specific axioms)

A page whose claims cannot be reproduced this way does not ship. In production, every anchor links to the exact declaration in the public source release, and this block carries the build receipt for the page itself.

Derived articles

This page is generated by a question-recursion engine: the questions its answers raise become the next pages. The current agenda, with open targets marked red:

MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND