Numerical Verification for Example 7.7 using Dyadic Rationals #
This file connects the rigorous dyadic interval arithmetic verification to the abstract existence theorem from Example_7_7.lean.
Structure #
- Dyadic utilities:
invAtPrecfor division with precision control - Interval bounds: Dyadic enclosures for √3, ā₀, ā₁, ā₂, and derived quantities
- Concrete instantiation: Definition of
example_solandexample_Ausing Rat values - Connection lemmas: Proofs that abstract bounds ≤ dyadic upper bounds
- Main theorem:
example_7_7_existenceapplyingexistence_theorem
Mathematical Setup #
For λ₀ = 1/3, ν = 1/4, N = 2:
- ā₀ = √(1/3) = √3/3
- ā₁ = 1/(2ā₀) = √3/2
- ā₂ = -ā₁²/(2ā₀) = -3√3/8
We verify p(r₀) < 0 for r₀ ≈ 0.1 using interval arithmetic.
Inverts a dyadic number at a given (maximum) precision. Returns the greatest dyadic with precision ≤ prec that is ≤ 1/x.
Equations
- Dyadic.zero.invAtPrec prec = Dyadic.zero
- x.invAtPrec prec = x.toRat.inv.toDyadic prec
Instances For
Rational Computation #
All numerical verification in ℚ, cast to ℝ only for the abstract theorem.
Precision for dyadic 1/3 approximation
Equations
Instances For
Input values (all ℚ) #
Equations
- RationalVerification.ā₀ = (Dyadic.ofIntWithPrec 649519052838327 50).toRat
Instances For
Equations
- RationalVerification.ā₁ = (Dyadic.ofIntWithPrec 974278579257490 50).toRat
Instances For
Equations
- RationalVerification.ā₂ = -(Dyadic.ofIntWithPrec 730893789193589 50).toRat
Instances For
Equations
- RationalVerification.A₀₀ = (Dyadic.ofIntWithPrec 974278579257490 50).toRat
Instances For
Equations
- RationalVerification.A₁₀ = -(Dyadic.ofIntWithPrec 1461417868886235 50).toRat
Instances For
Equations
- RationalVerification.A₂₀ = (Dyadic.ofIntWithPrec 3288190204494028 50).toRat
Instances For
Instances For
Equations
Instances For
F(ā) computation #
Equations
Instances For
Equations
Instances For
Equations
Instances For
A·F(ā) computation #
Instances For
Y₀ bound #
Equations
- One or more equations did not get rendered due to their size.
Instances For
DF(ā) and Z₀ bound #
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Instances For
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Z₁ bound #
Equations
Instances For
Z₂ bound #
Equations
- One or more equations did not get rendered due to their size.
Instances For
Radii polynomial #
Equations
- One or more equations did not get rendered due to their size.
Instances For
Connection to Abstract Theorem #
We connect the rational computation to the abstract ℝ theorem using bounds.
The weight ν = 1/4 as a PosReal
Equations
Instances For
The weight as a PosRat for reflection
Equations
- ConcreteExample.ν_rat = { val := 1 / 4, pos := ConcreteExample.ν_rat._proof_1 }
Instances For
The approximate solution as ℚ
Equations
- ConcreteExample.sol_rat = { aBar_fin := ![RationalVerification.ā₀, RationalVerification.ā₁, RationalVerification.ā₂], aBar_zero_ne := RationalVerification.ā₀_ne_zero }
Instances For
The approximate solution
Instances For
The approximate inverse matrix
Instances For
r₀ as ℝ
Equations
Instances For
λ₀ as ℝ
Instances For
Padded bound constants (simple rationals, slightly larger than computed) #
Equations
- One or more equations did not get rendered due to their size.
Instances For
Bound verification lemmas #
Y₀_bound ≤ Y₀_pad (abstract bound ≤ padded constant)
The abstract Y₀_bound involves:
- Matrix-vector product A · F(ā)
- Cauchy products (convolutions) via lpWeighted wrappers
- Weighted sums with ν^n factors
The computational verification is complete:
- Y₀ is computed exactly in ℚ (native_decide)
- Y₀ ≤ Y₀_pad verified by native_decide
The bridging (abstract ℝ = computed ℚ) requires either:
- Custom reflection tactic for lpWeighted
- Refactoring abstract defs to be computable on ℚ inputs
Mathematically trivial, tedious in Lean due to lpWeighted wrappers.
Z₀_bound ≤ Z₀_pad
Z₀ = ‖I - A·DF‖_{1,ν} involves finWeightedMatrixNorm (Finset.sup' over columns). Computed exactly in ℚ, verified Z₀ ≤ Z₀_pad by native_decide.
Z₂_bound ≤ Z₂_pad
Z₂ = 2·max(‖A‖_{1,ν}, 1/(2|ā₀|)) involves finWeightedMatrixNorm. Computed exactly in ℚ, verified Z₂ ≤ Z₂_pad by native_decide.
Radii polynomial verification #
The abstract radii polynomial is bounded by radiiPoly_pad.
p(r) = Z₂r² - (1 - Z₀ - Z₁)r + Y₀
Monotonicity: increasing Z₂, Z₀, Z₁, Y₀ increases p(r) for r ≥ 0:
- Z₂ ↑ ⟹ Z₂r² ↑ (r² ≥ 0)
- Z₀, Z₁ ↑ ⟹ -(1 - Z₀ - Z₁)r ↑ (r ≥ 0)
- Y₀ ↑ ⟹ Y₀ ↑
The radii polynomial is negative
Main Existence Theorem #
Main Theorem: Existence and uniqueness of Taylor series solution for x² - λ = 0.
For λ₀ = 1/3, N = 2, and weight ν = 1/4, there exists a unique sequence ã ∈ ℓ¹_ν within distance r₀ ≈ 0.1 of the approximate solution ā such that F(ã) = ã ⋆ ã - c = 0.