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
/-- **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
/-- **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:
- Does the conserved log-charge correspond to any measurable quantity in conventional physics?
- Can the unique minimizer be found by an efficient algorithm, or is it only guaranteed to exist?
- What happens to the ledger's evolution when the number of entries N grows without bound?
- Does the variational rule remain deterministic if the cost function J is replaced by another strictly convex function?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM variational_dynamics_deterministic · IndisputableMonolith/Foundation/VariationalDynamics.lean
/-- **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_compatthe theorem that this rule produces exactly one future for every present variational_dynamics_deterministic · IndisputableMonolith/Foundation/VariationalDynamics.leanTHEOREM 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 hboundthe set of allowed next states is compact, so a minimizer always exists variational_step_exists · IndisputableMonolith/Foundation/VariationalDynamics.leanTHEOREM 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.symmJ is strictly convex, so the minimizer is unique variational_step_unique · IndisputableMonolith/Foundation/VariationalDynamics.leanTHEOREM 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 thisthe optimal new value of any single entry depends on the values of all other entries update_is_global · IndisputableMonolith/Foundation/VariationalDynamics.leanTHEOREM variational_step_reduces_defect · IndisputableMonolith/Foundation/VariationalDynamics.lean
/-- **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)this deterministic step always reduces total defect variational_step_reduces_defect · IndisputableMonolith/Foundation/VariationalDynamics.leanTHEOREM 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'the all-ones state is an equilibrium whenever the conserved charge is zero unity_is_equilibrium · IndisputableMonolith/Foundation/VariationalDynamics.lean