Positive rational exponent scales -- definitions #
Quantitative metacomplexity theorems use expressions such as 2^(beta*n) and
N^(1+epsilon), although circuit sizes and clocks are natural numbers. This
module represents a positive rational scale by an explicit numerator and
denominator, with separate floor and ceiling multiplication. It thereby keeps
rounding choices visible and avoids real-valued resource bounds.
An explicit positive rational scale numerator / denominator.
No coprimality condition is imposed: unreduced presentations are useful when a proof needs to retain the constants appearing in a source theorem.
- numerator : ℕ
Positive numerator of the scale.
- denominator : ℕ
Positive denominator of the scale.
The numerator is nonzero.
The denominator is nonzero.
Instances For
The rational value represented by a positive scale.
Different unreduced numerator/denominator pairs may have the same value. The induced order is therefore intentionally a preorder rather than a partial order.
Equations
- scale.value = ↑scale.numerator / ↑scale.denominator
Instances For
Compare positive scales by their represented rational values.
The filter of positive rational scales approaching zero from above.
Because zero itself is excluded structurally, atBot for the value preorder
is exactly the small-positive-parameter convention used in magnification
statements.
Instances For
Floor of scale * n, computed entirely in natural numbers.
Instances For
Ceiling of scale * n, computed entirely in natural numbers.
Instances For
The rounded-down binary exponential 2^floor(scale*n).
Instances For
The rounded-up binary exponential 2^ceil(scale*n).
Instances For
Natural exponent representing (2^n)^(1+scale) with the fractional term
rounded upward.
Equations
- scale.onePlusCeilExponent n = n + scale.ceilMul n
Instances For
Slightly-superlinear bound at raw truth-table arity n.
Equations
- scale.onePlusCeilPow n = 2 ^ scale.onePlusCeilExponent n
Instances For
Slightly-superlinear bound as a function of raw input length.
The intended domain is power-of-two lengths. Other lengths receive a total value through base-two logarithm but will lie outside the raw MCSP promise.
Equations
- scale.onePlusCeilPowAtLength inputLength = scale.onePlusCeilPow (Nat.log 2 inputLength)