Encyclopedia Action Action Functional Convexity Action J Minimum Unique Value

ARTICLE 3 claims 3 theorems

Action Functional Convexity Action J Minimum Unique Value

In the calculus of variations, a least-action principle says nature's path minimizes a cost. This theorem proves that if two paths both minimize the cost, they must have the same cost value.

The uniqueness of the least action

The principle of least action is a classical idea: among all the paths a system could take between two points, the one it actually follows is the one that minimizes a certain quantity, the action. In the Recognition Science framework, the action is built from a specific cost function, and this theorem, actionJ_minimum_unique_value, establishes a uniqueness property: if two different admissible paths both minimize the action among all competitors with the same endpoints, then the two paths have exactly the same action value. The proof is short and direct: each path, being a minimum, has an action no greater than the other's, so the two values must be equal.

The theorem is a formal statement in the framework's machine-checked library of formal theorems. It is a corollary of a stronger result, geodesic_minimizes_unconditional, which proves that a path which minimizes the action along the straight-line interpolation in path space to every competitor is a global minimum. That stronger result is itself derived from the convexity of the action functional, which is proved from the pointwise convexity of the cost function J. The cost function J is itself a theorem of the d'Alembert functional equation, so the whole chain rests on the framework's central uniqueness result for the cost function.

What this theorem does not claim is important. It does not prove that a minimizing path exists; it only says that if two paths both minimize, they have the same value. Existence is a separate question, and the framework's principle of least action is stated modulo the existence of a critical point. The theorem also does not say that the minimizing path itself is unique, only that its action value is. Two different paths could both be minima with the same action. Finally, the theorem does not identify what the minimum value is, only that it is the same for all minimizers.

THEOREM actionJ_minimum_unique_value · IndisputableMonolith/Action/FunctionalConvexity.lean
actionJ_minimum_unique_value · IndisputableMonolith/Action/FunctionalConvexity.lean:237
/-- **Uniqueness via convexity.** If two paths both minimize the action
    among competitors with their shared endpoints, they have the same
    action value. -/
theorem actionJ_minimum_unique_value (_hab : a ≤ b)
    (γ₁ γ₂ : AdmissiblePath a b)
    (h_endpoints : fixedEndpoints γ₁ γ₂)
    (h₁ : ∀ γ : AdmissiblePath a b, fixedEndpoints γ₁ γ → actionJ γ₁ ≤ actionJ γ)
    (h₂ : ∀ γ : AdmissiblePath a b, fixedEndpoints γ₂ γ → actionJ γ₂ ≤ actionJ γ) :
    actionJ γ₁ = actionJ γ₂ := by
  have h12 := h₁ γ₂ h_endpoints
  have h21 := h₂ γ₁ (fixedEndpoints_symm h_endpoints)
  linarith
THEOREM geodesic_minimizes_unconditional · IndisputableMonolith/Action/FunctionalConvexity.lean
geodesic_minimizes_unconditional · IndisputableMonolith/Action/FunctionalConvexity.lean:170
/-- **Headline theorem.** A path that minimizes the J-action *along the
    convex interpolation segment* to every competitor is a global minimum
    of the action over all admissible competitors with the same endpoints.

    This discharges the `h_min` interpolation-witness that
    `Decision.VariationalCalculus.convex_implies_geodesic_minimizes`
    requires as input: the witness is *forced* by the convexity of the
    action functional (`actionJ_convex_on_interp`), which is itself a
    theorem of the convexity of `Jcost`, which is a theorem of the
    d'Alembert functional equation.

    Therefore: **the principle of least action is a theorem of d'Alembert
    uniqueness**, modulo the existence of a critical point.

    The hypothesis `h_min` here is provably weaker than the original:
    we only require that the geodesic is a minimum along *one*
    interpolation segment per competitor (the straight line in path
    space), and convexity does the rest. -/
theorem geodesic_minimizes_unconditional (_hab : a ≤ b)
    (γ_geo γ_other : AdmissiblePath a b)
    (_h_endpoints : fixedEndpoints γ_geo γ_other)
    (h_critical_along_segment :
      ∀ (s : ℝ) (hs : s ∈ Icc (0:ℝ) 1),
        actionJ γ_geo ≤ actionJ (interp γ_geo γ_other s hs)) :
    actionJ γ_geo ≤ actionJ γ_other := by
  -- Specialize the segment-minimality at s = 1.
  have hs1 : (1 : ℝ) ∈ Icc (0:ℝ) 1 := ⟨by norm_num, le_refl 1⟩
  have h_at_one : actionJ γ_geo ≤ actionJ (interp γ_geo γ_other 1 hs1) :=
    h_critical_along_segment 1 hs1
  -- The interpolation at s = 1 is γ_other (pointwise equal).
  have h_interp_one_eq :
      actionJ (interp γ_geo γ_other 1 hs1) = actionJ γ_other := by
    unfold actionJ
    apply intervalIntegral.integral_congr
    intro t _
    have h_eq : (interp γ_geo γ_other 1 hs1).toFun t = γ_other.toFun t := by
      simp [interp_apply]
    exact congrArg Jcost h_eq
  rw [← h_interp_one_eq]
  exact h_at_one
THEOREM actionJ_convex_on_interp · IndisputableMonolith/Action/FunctionalConvexity.lean
/-- **Convexity of the J-action.** For any two admissible paths sharing
    a domain, the action of the convex interpolation is bounded by the
    convex combination of the actions.

    `S[(1-s)γ₁ + s γ₂] ≤ (1-s) S[γ₁] + s S[γ₂]`

    This is the integrated form of pointwise convexity of `Jcost`. -/
theorem actionJ_convex_on_interp (hab : a ≤ b)
    (γ₁ γ₂ : AdmissiblePath a b) (s : ℝ) (hs : s ∈ Icc (0:ℝ) 1) :
    actionJ (interp γ₁ γ₂ s hs) ≤ (1 - s) * actionJ γ₁ + s * actionJ γ₂ := by
  -- Step 1: the integrand is bounded pointwise.
  have h_pointwise : ∀ t ∈ Set.uIcc a b,
      Jcost ((interp γ₁ γ₂ s hs).toFun t) ≤
        (1 - s) * Jcost (γ₁.toFun t) + s * Jcost (γ₂.toFun t) := by
    intro t ht
    -- On `[a,b]` (uIcc reduces to Icc since hab), positivity holds.
    have htIcc : t ∈ Icc a b := by
      have : Set.uIcc a b = Icc a b := by
        rw [Set.uIcc_of_le hab]
      rwa [this] at ht
    have hp1 : 0 < γ₁.toFun t := γ₁.pos t htIcc
    have hp2 : 0 < γ₂.toFun t := γ₂.pos t htIcc
    rw [interp_apply]
    exact Jcost_convex_combination s hs hp1 hp2
  -- Step 2: continuity / integrability of all three integrands on [a,b].
  have h_cont_interp : ContinuousOn (fun t => Jcost ((interp γ₁ γ₂ s hs).toFun t)) (Icc a b) := by
    have hpos : ∀ t ∈ Icc a b, 0 < (interp γ₁ γ₂ s hs).toFun t :=
      (interp γ₁ γ₂ s hs).pos
    -- Jcost is continuous on (0, ∞); composed with the continuous, positive interp.
    have hJcont : ContinuousOn Jcost (Set.Ioi (0:ℝ)) := by
      unfold Jcost
      apply ContinuousOn.sub
      · apply ContinuousOn.div_const
        apply ContinuousOn.add continuousOn_id
        exact continuousOn_inv₀.mono (fun x hx => ne_of_gt hx)
      · exact continuousOn_const
    refine ContinuousOn.comp hJcont (interp γ₁ γ₂ s hs).cont ?_
    intro t htmem
    exact hpos t htmem
  have h_cont_1 : ContinuousOn (fun t => Jcost (γ₁.toFun t)) (Icc a b) := by
    have hJcont : ContinuousOn Jcost (Set.Ioi (0:ℝ)) := by
      unfold Jcost
      apply ContinuousOn.sub
      · apply ContinuousOn.div_const
        apply ContinuousOn.add continuousOn_id
        exact continuousOn_inv₀.mono (fun x hx => ne_of_gt hx)
      · exact continuousOn_const
    refine ContinuousOn.comp hJcont γ₁.cont ?_
    intro t htmem; exact γ₁.pos t htmem
  have h_cont_2 : ContinuousOn (fun t => Jcost (γ₂.toFun t)) (Icc a b) := by
    have hJcont : ContinuousOn Jcost (Set.Ioi (0:ℝ)) := by
      unfold Jcost
      apply ContinuousOn.sub
      · apply ContinuousOn.div_const
        apply ContinuousOn.add continuousOn_id
        exact continuousOn_inv₀.mono (fun x hx => ne_of_gt hx)
      · exact continuousOn_const
    refine ContinuousOn.comp hJcont γ₂.cont ?_
    intro t htmem; exact γ₂.pos t htmem
  -- Step 3: integrate the pointwise inequality.
  have h_int_interp : IntervalIntegrable
      (fun t => Jcost ((interp γ₁ γ₂ s hs).toFun t))
      MeasureTheory.volume a b :=
    h_cont_interp.intervalIntegrable_of_Icc hab
  have h_int_1 : IntervalIntegrable (fun t => Jcost (γ₁.toFun t))
      MeasureTheory.volume a b :=
    h_cont_1.intervalIntegrable_of_Icc hab
  have h_int_2 : IntervalIntegrable (fun t => Jcost (γ₂.toFun t))
      MeasureTheory.volume a b :=
    h_cont_2.intervalIntegrable_of_Icc hab
  -- Form the dominating integrand (1-s) Jcost(γ₁) + s Jcost(γ₂).
  set rhs : ℝ → ℝ := fun t => (1 - s) * Jcost (γ₁.toFun t) + s * Jcost (γ₂.toFun t)
  have h_int_rhs : IntervalIntegrable rhs MeasureTheory.volume a b := by
    refine IntervalIntegrable.add ?_ ?_
    · exact h_int_1.const_mul (1 - s)
    · exact h_int_2.const_mul s
  -- Apply integral monotonicity on [a, b].
  have h_mono : ∫ t in a..b, Jcost ((interp γ₁ γ₂ s hs).toFun t)
      ≤ ∫ t in a..b, rhs t := by
    refine intervalIntegral.integral_mono_on hab h_int_interp h_int_rhs ?_
    intro t ht
    have htIcc : t ∈ Icc a b := ht
    have htUI : t ∈ Set.uIcc a b := by
      rw [Set.uIcc_of_le hab]; exact htIcc
    exact h_pointwise t htUI
  -- Compute the RHS integral.
  have h_rhs_eq : ∫ t in a..b, rhs t =
      (1 - s) * (∫ t in a..b, Jcost (γ₁.toFun t)) +
      s * (∫ t in a..b, Jcost (γ₂.toFun t)) := by
    show ∫ t in a..b, ((1 - s) * Jcost (γ₁.toFun t) + s * Jcost (γ₂.toFun t)) =
         (1 - s) * (∫ t in a..b, Jcost (γ₁.toFun t)) +
         s * (∫ t in a..b, Jcost (γ₂.toFun t))
    rw [intervalIntegral.integral_add (h_int_1.const_mul (1 - s)) (h_int_2.const_mul s)]
    rw [intervalIntegral.integral_const_mul, intervalIntegral.integral_const_mul]
  -- Assemble. The goal-as-stated has `actionJ`; unfold it to integrals.
  unfold actionJ
  calc ∫ t in a..b, Jcost ((interp γ₁ γ₂ s hs).toFun t)
      ≤ ∫ t in a..b, rhs t := h_mono
    _ = (1 - s) * (∫ t in a..b, Jcost (γ₁.toFun t)) +
        s * (∫ t in a..b, Jcost (γ₂.toFun t)) := h_rhs_eq

What this page does not claim

Existence of a minimizing path is not asserted by this theorem. Uniqueness of the minimizing path itself is not asserted; only the action value is unique. The theorem does not identify the numerical value of the minimum action.

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/Action/FunctionalConvexity.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