Static updates: explicitly computable energy gradient for global optimization
OpenQAlgorithms.Papers.Independent.Intakethird100.P57.explicit_energy_gradientLet and fix admissible RAGE data giving a nonzero raw vector and a Hermitian Hamiltonian . Along any differentiable real parameter path through these data, let be the explicit finite-product derivative: replace one site tensor or one local rotation at a time by its derivative and differentiate each graph phase as . Write and . Then
The Lean statement specifies the finite sums for and assumes differentiability only of the supplied scalar parameter entries. In particular the formula applies to real coordinates of the tensors and graph and to valid smooth charts of the unitary rotations. It supplies an explicit gradient without an optimization convergence claim.
import Definitions.Def_QAlgorithms_Papers_Independent_Intakethird100_P57
noncomputable section
open scoped ComplexConjugate Matrix
namespace QAlgorithms.Papers.Independent.Intakethird100.P57
attribute [local instance] Classical.propDecidable
/-- PDF p.3, final Static updates sentence: the gradient is explicitly computable.
For every differentiable real coordinate path, the raw derivative is the displayed finite
sum, and the energy derivative is the quotient rule with a positive norm denominator.
There is no optimizer convergence or global-optimality conclusion. -/
theorem explicit_energy_gradient {N D : ℕ} (hN : 1 ≤ N) (hD : 1 ≤ D)
(A : Tensors N D) (G : PhaseGraph N) (V : Fin N → Matrix.unitaryGroup Bool ℂ)
(hv : rage A G V ≠ 0) (H : Matrix (Qubits N) (Qubits N) ℂ) (hH : H.IsHermitian)
(t0 : ℝ) (Ap : ℝ → Tensors N D) (wp : ℝ → Fin N → Fin N → ℝ)
(Vp : ℝ → Fin N → Matrix Bool Bool ℂ)
(Adot : Tensors N D) (wdot : Fin N → Fin N → ℝ)
(Vdot : Fin N → Matrix Bool Bool ℂ)
(hA0 : Ap t0 = A) (hw0 : wp t0 = G.weight)
(hV0 : Vp t0 = fun k => (V k : Matrix Bool Bool ℂ))
(hAp : ∀ k b i j, HasDerivAt (fun t => Ap t k b i j) (Adot k b i j) t0)
(hwp : ∀ i j, HasDerivAt (fun t => wp t i j) (wdot i j) t0)
(hVp : ∀ k a b, HasDerivAt (fun t => Vp t k a b) (Vdot k a b) t0) :
let v := rage A G V
let vdot := rawTangent A Adot G.weight wdot (fun k => (V k : Matrix Bool Bool ℂ)) Vdot
let path := fun t => act (productOp (Vp t)) (act (graphOp (wp t)) (traceMPS (Ap t)))
let f := (inner ℂ v (act H v)).re
let g := ‖v‖ ^ 2
HasDerivAt path vdot t0 ∧
HasDerivAt (fun t => rayleighEnergy H (path t))
((g * (2 * (inner ℂ vdot (act H v)).re) -
f * (2 * (inner ℂ vdot v).re)) / g ^ 2) t0 := by sorry
end QAlgorithms.Papers.Independent.Intakethird100.P57
end
Read-back
What the Lean code literally says, in plain math · gpt-6.1-sol
Let be natural numbers with ; let assign a complex matrix to each site and Boolean value; let have real weights that are symmetric, zero on the diagonal, nonnegative, and strictly less than ; and let each be a unitary complex matrix. For bit strings , put
where the matrix product defining is in increasing site order, and define . Assume , and let be any Hermitian complex matrix indexed by these bit strings. Fix , paths of tensor families, of real arrays, and of complex matrix families, together with families . Assume , , and , and assume that at every entry , for , Boolean , and , has derivative , every , for , has derivative , and every , for and Boolean , has derivative . Define
and
Then the path (p(t)=P(V(t))(e^{i\Gamma_{w(t)}(b)}T_{A(t)}(b))_b\dot vt_0f=\operatorname{Re}\langle v,Hv\rangleg=|v|^2>0t\mapsto\operatorname{Re}\langle p(t),Hp(t)\rangle/|p(t)|^2$ has derivative
at , where the complex inner product is conjugate-linear in its first argument. Away from , no graph-weight conditions or unitarity conditions are imposed on the paths; the energy quotient uses the convention that division by zero equals zero.
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.