Sharp rounding of a near-unit value (round six, `Qp_unit`)
ProvedNLogN.KFZ.Qp_unitSharp rounding of a near-unit value.
The following holds (Lean statement, in the scope of module Solutions.KFZPhase):
theorem NLogN.KFZ.Qp_unit (p : ℕ) {v X : ℂ} (hX : ‖X‖ ≤ 1) (he : ‖v - X‖ ≤ (2 : ℝ)⁻¹ ^ (2 * p + 2)) :
‖Butterfly.Qp p v - X‖ ≤ 2 * hp p ∧ ‖Butterfly.Qp p v‖ ≤ 1
Context. KFZ Phase: the rounded phase tables satisfy Phases
The tables are computed at precision Δ = p + g and rounded to precision p (KFH.gtr g).
Phases asks for |θ̃ − θ| ≤ 2·2^{−p} and |θ̃| ≤ 1. The second needs more than the
generic gtr_err: a grid point of 2^{−p}ℤ[i] of modulus above 1 has modulus at least
√(1 + 4^{−p}), so the table error before rounding must be below about 4^{−p}.
Qp_unit:‖v − X‖ ≤ 2^{−2p−2},‖X‖ ≤ 1⟹‖Q_p v − X‖ ≤ 2hpand‖Q_p v‖ ≤ 1.phases_QA: the array form.norm_chirp_le,norm_twX,zeta_pow: the exact phases.
Formalization Note. Part of the Lean formalization of the round-six κ-improvement (integer-multiplication-kappa campaign, target IntMul.Kappa.jain_round6_framework). The statement is copied verbatim from the Lean development; the platform node carries the same declaration name. Definitions it mentions live in the IntMul_Kappa_R6_Defs* bundles (on top of the published κ bundles IntMul_Kappa_K_Defs*).
-- Round-six κ development (integer-multiplication-kappa), generated by skeleton subtraction. import Definitions.Def_IntMul_Kappa_K_Defs33 import Definitions.Def_IntMul_Kappa_R6_Defs1 import Definitions.Def_IntMul_MultitapeModel import Mathlib import Definitions.Def_IntMul_HvdH_M_Defs8 import Definitions.Def_IntMul_HvdH_Numeric import Definitions.Def_IntMul_HvdH_ExpApprox import Definitions.Def_IntMul_HvdH_Twiddle import Definitions.Def_IntMul_HvdH_RealExp import Definitions.Def_IntMul_HvdH_SApprox import Definitions.Def_IntMul_HvdH_MachineRef import Definitions.Def_IntMul_HvdH_DiagApprox import Definitions.Def_IntMul_HvdH_EApprox import Definitions.Def_IntMul_HvdH_JApprox import Definitions.Def_IntMul_HvdH_BApprox import Definitions.Def_IntMul_HvdH_FPApprox set_option autoImplicit false set_option relaxedAutoImplicit false set_option maxHeartbeats 1000000 open NLogN NLogN.KFZ open IntMul NLogN.KIL NLogN.KFB NLogN.KFM Complex
theorem NLogN.KFZ.Qp_unit (p : ℕ) {v X : ℂ} (hX : ‖X‖ ≤ 1) (he : ‖v - X‖ ≤ (2 : ℝ)⁻¹ ^ (2 * p + 2)) :
‖Butterfly.Qp p v - X‖ ≤ 2 * hp p ∧ ‖Butterfly.Qp p v‖ ≤ 1 := by sorry