pith. sign in
theorem

toRat_pos

proved
show as:
module
IndisputableMonolith.NumberTheory.HilbertPolyaCandidate
domain
NumberTheory
line
73 · github
papers citing
none yet

plain-language theorem explainer

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.

Claim. For 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

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.

Switch to Lean above to see the machine-checked source, dependencies, and usage graph.