Numeral roundness #
A number is round by having roundness properties: for Sigurd, divisibility by a power of ten
from ten up or by its half or quarter; for Jansen and Pollmann, 10-ness, 2-ness, 5-ness and
2½-ness, k-ness being a digit times k times a power of ten; for Woodin et al., these over
positive powers of ten together with being a multiple of five or of ten; and for Haslinger, lying
on the conventionalized scales salient in a context, Krifka's scales of multiples of a width.
Numbers and properties form a formal context. A number is at least as round as another when it
has every property the other has, Haslinger's ordering, so the numbers at least as round as d
are the extent closure of d; counting properties gives the roundness scores. On scales of
multiples the closure is again a scale, the multiples of the lcm of the widths through d.
Main definitions #
Numerals.Roundness.AtLeastAsRound: having every roundness property of a number, the criteria-derived preorder with the roundness properties as criteria (atLeastAsRound_iff_ofCriteria).Numerals.Roundness.score: the number of roundness properties a number has.Numerals.Roundness.OnScale: lying on a scale of multiples.Numerals.Roundness.HasKness,Numerals.Roundness.Kness: Jansen and Pollmann'sk-ness and its four kinds, over powers of ten from a given one.
Main statements #
Numerals.Roundness.atLeastAsRound_iff_mem_extentClosure: the numbers at least as round asdare its extent closure.Numerals.Roundness.extentClosure_onScale: on scales of multiples, that closure is the scale of multiples ofscaleLcm W d.Numerals.Roundness.atLeastAsRound_onScale_iff_dvd: roundness on scales of multiples is divisibility of these lcms.Numerals.Roundness.isLeast_atLeastAsRound_onScale: the least number abovedat least as round asdisd + scaleLcm W d, the next point of that scale.
Implementation notes #
A roundness property is an attribute of the formal context r : D → ι → Prop, so a family of
properties and a set of salient scales are the same kind of object. Woodin et al.'s regression
weights the properties unequally; score counts them equally.
References #
Roundness profiles #
e is at least as round as d when it has every roundness property that d has.
Equations
- Numerals.Roundness.AtLeastAsRound r d e = ∀ ⦃i : ι⦄, r d i → r e i
Instances For
Being at least as round is the criteria-derived preorder with every scale as a criterion.
The numbers at least as round as d are the extent closure of d.
The roundness properties a number has.
Equations
- Numerals.Roundness.profile r d = Finset.filter (r d) Finset.univ
Instances For
The roundness properties of a number are the criteria it satisfies, as a finite set.
The roundness score of a number is the number of roundness properties it has.
Equations
- Numerals.Roundness.score r d = (Numerals.Roundness.profile r d).card
Instances For
Scales of multiples #
d lies on the scale of width w, the multiples of w, among the widths W.
Equations
- Numerals.Roundness.OnScale W d w = (d ∈ AddSubgroup.zmultiples ↑w)
Instances For
Equations
- Numerals.Roundness.instDecidableAtLeastAsRoundIntSubtypeMemFinsetOnScale = decidable_of_iff (∀ w ∈ W, w ∣ d → w ∣ e) ⋯
The lcm of the widths of the scales through d.
Equations
- Numerals.Roundness.scaleLcm W d = {x ∈ W | x ∣ d}.lcm id
Instances For
On scales of multiples, the numbers at least as round as d are the meet of the scales
through d, the scale of multiples of their lcm.
On scales of multiples, roundness is divisibility of the lcms of the widths.
A number other than d at least as round as d lies at least the lcm of the widths through
d away from it.
On scales of multiples, the least number above d at least as round as d is the next point
of the scale of multiples of scaleLcm W d.
On positive aligned widths, each pair comparable by divisibility, the lcm of the widths
through d is the widest width dividing d ([Kri07a]'s aligned granularity levels).
On positive aligned widths, a number on some scale has a widest scale, the lcm of the widths through it.
k-ness #
n has k-ness when n = m × k × 10^b for some digit 1 ≤ m ≤ 9 and exponent b, that
is n ∈ k × {1, …, 9} × 10^ℕ ([JP01]).
Equations
- Numerals.Roundness.HasKness k n = ∃ (b : ℕ) (m : ℕ), 1 ≤ m ∧ m ≤ 9 ∧ n = m * k * 10 ^ b
Instances For
The exponent of a k-ness witness is at most log₁₀ n, so k-ness is decidable.
Equations
- Numerals.Roundness.instDecidableHasKness k n = decidable_of_iff (∃ b ≤ Nat.log 10 n, ∃ m < 10, 1 ≤ m ∧ n = m * k * 10 ^ b) ⋯
k-ness forces divisibility by k.
k × 10^b₀-ness is k-ness with an exponent of at least b₀.
Equations
- Numerals.Roundness.instDecidableEqKness x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Numerals.Roundness.instReprKness = { reprPrec := Numerals.Roundness.instReprKness.repr }
Equations
- One or more equations did not get rendered due to their size.
n has κ-ness over powers of ten from 10^b₀, where Jansen and Pollmann take b₀ = 0 and
Woodin et al. b₀ = 1; 2½-ness of n is 5-ness of 2n.
Equations
- Numerals.Roundness.Kness.Holds b₀ n Numerals.Roundness.Kness.ten = Numerals.Roundness.HasKness (10 ^ b₀) n
- Numerals.Roundness.Kness.Holds b₀ n Numerals.Roundness.Kness.two = Numerals.Roundness.HasKness (2 * 10 ^ b₀) n
- Numerals.Roundness.Kness.Holds b₀ n Numerals.Roundness.Kness.five = Numerals.Roundness.HasKness (5 * 10 ^ b₀) n
- Numerals.Roundness.Kness.Holds b₀ n Numerals.Roundness.Kness.twoAndAHalf = Numerals.Roundness.HasKness (5 * 10 ^ b₀) (2 * n)
Instances For
Equations
- One or more equations did not get rendered due to their size.