Graded Numeral Roundness (k-ness Model) #
[Kri07a] [Sig88] [WWL+23] [JP01] [Cum15]
Framework-agnostic infrastructure for graded numeral roundness, following [Sig88], [JP01], and [WWL+23].
A number n has k-ness if it lies in [JP01]'s set
[k × (1–9 × 10ⁿ)] (their p. 198): n = m × k × 10^b with 1 ≤ m ≤ 9 —
so 10-ness is the k = 1 family (divisors 10, 100, …), per their own
example "70 has only 10-ness". Their original allows b ≥ 0; following
[WWL+23] (fn. 3) the search starts at b ≥ 1, which drops the
single digits from 10-ness and 15, 45, … from 5-ness (cf.
Studies/JansenPollmann2001.lean for the original and the divergence).
The 6 properties, ordered by strength as frequency predictors in [WWL+23]'s negative binomial regression (strongest first): 10-ness (β = 4.46), 2.5-ness (β = 3.84), 5-ness (β = 3.39), 2-ness (β = 2.74), multiple of 10 (β = 2.45), multiple of 5 (β = 0.06); the 2-ness and multiple-of-10 credible intervals overlap.
Main definitions #
HasKness,Has2_5ness: the k-ness properties as decidable predicatesroundnessScore: count of the six properties that hold (0–6)RoundnessGrade,roundnessGrade: the score binned into 4 levelscontextualRoundnessScore,roundnessInContext: k-ness relative to a non-standard base (dozens, minutes)
k-ness primitives #
Roundness score #
The six graded roundness properties of [Sig88] and [JP01] — multiple of 5, multiple of 10, 2-ness, 2.5-ness, 5-ness, 10-ness — counted equally. The count predicts numeral frequency and pragmatic behavior ([WWL+23]).
Count of true roundness properties (0–6). Higher = rounder.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Maximum possible roundness score.
Equations
Instances For
Roundness grade (binned score) #
Binned roundness grade for use in width/tolerance functions.
Collapses the 0–6 score into 4 levels to avoid duplicating step-function logic across Theory files.
- high : RoundnessGrade
score ≥ 5 (e.g., 100, 50, 200)
- moderate : RoundnessGrade
score 3–4 (e.g., 20, 40)
- low : RoundnessGrade
score 1–2 (e.g., 110, 15)
- none : RoundnessGrade
score 0 (e.g., 7, 99)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- Semantics.Numerals.Roundness.instDecidableEqRoundnessGrade x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Classify a number into a roundness grade.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Context-sensitive roundness #
Count k-ness-like properties relative to a non-standard base.
For base b, checks divisibility by b, 2b, 5b, and 10b — mirroring the standard k-ness properties but on a different scale.
Examples:
- contextualRoundnessScore 48 12 = 2 (48 ÷ 12 = 4, 48 ÷ 24 = 2)
- contextualRoundnessScore 120 12 = 4 (divides by 12, 24, 60, 120)
Equations
- One or more equations did not get rendered due to their size.
Instances For
Context-sensitive roundness: compose default k-ness with a non-standard base.
On a base-12 (dozens) scale, 48 = 4 × 12 is "round" even though its default k-ness score is 0. On base-60 (minutes), 120 = 2 × 60 is round.
The contextual score derives from actual divisibility properties relative to the base (not a flat bonus), paralleling how standard k-ness derives from divisibility by 2/2.5/5/10 × powers of 10.
Equations
Instances For
Per-datum verification #
Multiples of 10 have roundness score ≥ 2 (multiple-of-5 and multiple-of-10 both hold). The keystone for downstream sorry-free proofs.