toRat_pos
toRat_pos establishes that the embedding from any multiplicative index to its corresponding positive rational is strictly positive. Researchers constructing the Hilbert-Pólya candidate operator would cite this result when establishing inverses and J-cost symmetries. The short term proof reduces the claim to positivity of finite products of prime powers via Finsupp.prod and zpow_pos.
claimFor every finitely supported function $v$ from the primes to the integers, the real number $t = 0 < t$ where $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t = 0 < t$ and $t$
background
The module builds an algebraic skeleton for a Hilbert-Pólya candidate operator on the free ℝ-module over the multiplicative group ℚ>0×, using the Recognition Science cost J. MultIndex is the type of finitely supported functions from Nat.Primes to ℤ, serving as the free abelian group on the primes. The function toRat embeds such an index v into ℝ by the product formula toRat v = ∏_p (p.val : ℝ)^{v p}.
proof idea
The term proof unfolds toRat to the Finsupp.prod expression, rewrites via Finsupp.prod, then applies Finset.prod_pos. This reduces the claim to showing each factor positive. For each prime p in the support, zpow_pos is applied after exact_mod_cast of p.prop.pos.
why it matters in Recognition Science
It is invoked by toRat_neg (showing toRat(-v) = (toRat v)⁻¹) and costAt_neg_eq (establishing J(1/q) = J(q) at the index level). These support the involutionOp commuting with diagOp in the candidate construction. The result supplies the positivity needed for reciprocal symmetry of J without addressing the open spectral question of matching zeta zeros.
formal statement (Lean)
73theorem toRat_pos (v : MultIndex) : 0 < toRat v := by
proof body
Term-mode proof.
74 unfold toRat
75 rw [Finsupp.prod]
76 apply Finset.prod_pos
77 intro p _
78 apply zpow_pos
79 exact_mod_cast p.prop.pos
80