-- Modified in quasi-rh-eleven-twelfths to parameterize the canonical descent scale.importMathlib.Analysis.SpecialFunctions.Pow.RealnamespaceOAInoncomputablesection
Numerical data for the finite canonical descent.
denominator is the reciprocal step size, while reserve is the initial
power saving. The last field is exactly the compatibility needed by the
short-cube argument: twenty-five factors of size Z^(1 / denominator) spend
at most half of the reserve. There is deliberately no global instance;
public theorems install the scale they need locally.
A scale with prescribed positive reserve. The extra + 1 makes the
denominator positive without a case split.
Definition `OAI.CanonicalDescentScale.ofReserve` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking thisdefinition with `@[instance_reducible]`. If it is intentionally semireducible, this warning can be disabled with `set_option warn.classDefReducibility false`.defofReserve(κ:ℝ)(hκ:0<κ):CanonicalDescentScalewheredenominator:=⌈50/κ⌉₊+1denominator_pos:=byκ:ℝhκ:0<κ⊢ 0<⌈50/κ⌉₊+1omegaAll goals completed! 🐙reserve:=κreserve_pos:=hκshort_budget:=byκ:ℝhκ:0<κ⊢ 50≤κ*↑(⌈50/κ⌉₊+1)havehceil:50/κ≤(⌈50/κ⌉₊:ℝ):=Nat.le_ceil_κ:ℝhκ:0<κhceil:50/κ≤↑⌈50/κ⌉₊⊢ 50≤κ*↑(⌈50/κ⌉₊+1)havehadd:(⌈50/κ⌉₊:ℝ)≤(⌈50/κ⌉₊+1:ℕ):=byexact_mod_castNat.le_add_right⌈50/κ⌉₊1κ:ℝhκ:0<κhceil:50/κ≤↑⌈50/κ⌉₊hadd:↑⌈50/κ⌉₊≤↑(⌈50/κ⌉₊+1)⊢ 50≤κ*↑(⌈50/κ⌉₊+1)havehdiv:50/κ≤(⌈50/κ⌉₊+1:ℕ):=hceil.transhaddκ:ℝhκ:0<κhceil:50/κ≤↑⌈50/κ⌉₊hadd:↑⌈50/κ⌉₊≤↑(⌈50/κ⌉₊+1)hdiv:50/κ≤↑(⌈50/κ⌉₊+1)⊢ 50≤κ*↑(⌈50/κ⌉₊+1)have:=(div_le_iff₀hκ).1hdivκ:ℝhκ:0<κhceil:50/κ≤↑⌈50/κ⌉₊hadd:↑⌈50/κ⌉₊≤↑(⌈50/κ⌉₊+1)hdiv:50/κ≤↑(⌈50/κ⌉₊+1)this:50≤↑(⌈50/κ⌉₊+1)*κ⊢ 50≤κ*↑(⌈50/κ⌉₊+1)push_castatthis⊢κ:ℝhκ:0<κhceil:50/κ≤↑⌈50/κ⌉₊hadd:↑⌈50/κ⌉₊≤↑(⌈50/κ⌉₊+1)hdiv:50/κ≤↑(⌈50/κ⌉₊+1)this:50≤(↑⌈50/κ⌉₊+1)*κ⊢ 50≤κ*(↑⌈50/κ⌉₊+1)nlinarithAll goals completed! 🐙
Historical parameters, exposed as a value rather than a global instance.
Definition `OAI.CanonicalDescentScale.historical` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking thisdefinition with `@[instance_reducible]`. If it is intentionally semireducible, this warning can be disabled with `set_option warn.classDefReducibility false`.defhistorical:CanonicalDescentScalewheredenominator:=1000denominator_pos:=by⊢ 0<1000norm_numAll goals completed! 🐙reserve:=(1:ℝ)/20reserve_pos:=by⊢ 0<1/20norm_numAll goals completed! 🐙short_budget:=by⊢ 50≤1/20*↑1000norm_numAll goals completed! 🐙endCanonicalDescentScaleendendOAI