Documentation

LowRankUnivariateSOS.UnivariateAlgebra

@[simp]

These zero and scaling identities are basic normalization lemmas for the factor-peeling recursion. They keep the later proofs focused on the paper's algebra rather than pair-coordinate bookkeeping.

@[simp]
@[simp]
theorem LowRankUnivariateSOS.factor_peeling_decomposition (u : UPair) (data : ReducedFactorization u) (ha : data.a ≠ 0) :
∃ (gBase : Poly) (g : Poly) (rs : List Poly), gBase ≠ 0 ∧ data.a = gBase * rs.prod ∧ g = peelTerminalScale gBase rs ∧ IsCoprime g (sigma2 data.u0) ∧ ∀ r ∈ rs, r ∣ sigma2 data.u0

This theorem extracts the factor data needed for the general-case proof. Starting from the common factor a in u = a·u₀, it splits a into: a base factor gBase coprime to σ(u₀), and a list rs of factors dividing σ(u₀) which must be peeled one by one. The terminal factor g is obtained by replacing each peeled factor by X², mirroring the passage from condition (C3) in \eqref{eq:prop_factored}.

Proof sketch: factor a into irreducibles with normalizedFactors, partition the factors into those dividing σ(u₀) and those that do not, define gBase from the latter, and prove coprimality using the no-common-prime-factor criterion.

theorem LowRankUnivariateSOS.factor_peeling_one_step (u : UPair) (data : ReducedFactorization u) {gStart gNext : Poly} :
∀ (a : QuadraticFactorStep data.u0 gStart gNext), HasPeelingWitness u (scalePair gStart data.u0) (scalePair gNext data.u0)

One quadratic factor step produces the witness package required by the analytic peeling machinery. This is the local algebraic input to the recursive peeling argument.

theorem LowRankUnivariateSOS.factor_peeling_schedule (u : UPair) (data : ReducedFactorization u) (ha : data.a ≠ 0) :
∃ (g : Poly), g ≠ 0 ∧ IsCoprime g (sigma2 data.u0) ∧ PeelingSchedule u data.u0 data.a g

From the decomposition of the bad common factor into peelable pieces, we obtain a full peeling schedule ending at some factor g that is coprime to σ(u₀). This is the formal counterpart of iteratively peeling the factors of h in the proof of \Cref{prop:second_order_property_factor}.

theorem LowRankUnivariateSOS.factor_peeling_path (u : UPair) (data : ReducedFactorization u) (ha : data.a ≠ 0) :
∃ (g : Poly), g ≠ 0 ∧ IsCoprime g (sigma2 data.u0) ∧ PeelingPath u u (scalePair g data.u0)

The scalar peeling schedule induces a path of scaled pairs from the original factorization u = a·u₀ to the coprime target g·u₀.

theorem LowRankUnivariateSOS.factor_peeling_image_orthogonal {B : DotForm} (p : Poly) (u : UPair) (hsocp : IsSOCP B p u) (data : ReducedFactorization u) (ha : data.a ≠ 0) :
∃ (g : Poly), g ≠ 0 ∧ IsCoprime g (sigma2 data.u0) ∧ ImageOrthogonalResidual B p (scalePair data.a data.u0) (scalePair g data.u0)

This is the formal output of the whole peeling construction. At any SOCP, after peeling all bad factors we obtain a nonzero g coprime to σ(u₀) such that the residual is orthogonal to im(A_{g u₀}). This is exactly the transformed-image orthogonality promised by the paper's general-case argument around \Cref{prop:second_order_property_factor}.