Hurford's universal numeral grammar #
[Hur75]'s phrase-structure grammar for number-names (his (2), p. 19), proposed as the universal base of numeral systems:
with the three projection rules of his (23) (pp. 29–30): the value of a
NUMBER is the sum of its immediate constituents, of a PHRASE the
product, and of an M the second constituent raised to the power
of the first. So twenty-three is [[two ten] three] = 2·10 + 3,
thousand is [three ten] = 10³.
His deeper claim ((26)–(29)): the three rules are one operation,
CALCULATE, indexed by constituent depth — NUMBERs (depth 1) add,
PHRASEs (depth 2) multiply, Ms (depth 3) exponentiate, each operation the
iteration of the one before. value_eq_calculate states the unification;
calculate_succ_iterate states the iteration ladder its complexity
ordering rests on.
Consumers: Studies/IoninMatushansky2006.lean (their §3.3 adopts
Hurford's cardinals-as-nouns; their §4.3 order conventions constrain
which of these structures surface) and Studies/JansenPollmann2001.lean
(10-ness as digit×M expressibility).
Main declarations #
Number,Phrase,M: the three syntactic categories, withvalueNumber.tally,M.tenPow: canonical digit and base-power structurescalculate: the depth-indexed arithmetic (his (26))
Main results #
value_eq_calculate: the three projection rules arecalculateat depths 1–3calculate_succ_iterate: each operation iterates the previous oneNumber.exists_value_eq: every positive number is expressible (the tally structure his rule schema (6) generates)
The phrase-structure categories (his (2)) #
Equations
- Syntax.Numeral.instReprM = { reprPrec := Syntax.Numeral.instReprM.repr_3 }
Equations
- Syntax.Numeral.instReprPhrase = { reprPrec := Syntax.Numeral.instReprPhrase.repr_2 }
Equations
- Syntax.Numeral.instReprNumber = { reprPrec := Syntax.Numeral.instReprNumber.repr_1 }
The projection rules (his (23)) #
The value of a NUMBER: the sum of its immediate constituents.
Equations
- Syntax.Numeral.Number.one.value = 1
- a.oneAnd.value = 1 + a.value
- (Syntax.Numeral.Number.phrase a).value = a.value
- (Syntax.Numeral.Number.phraseAnd a a_1).value = a.value + a_1.value
Instances For
The value of a PHRASE: the product of its immediate constituents.
Equations
- (Syntax.Numeral.Phrase.mk a a_1).value = a.value * a_1.value
Instances For
The value of an M: the second constituent raised to the power of the first.
Equations
- Syntax.Numeral.M.ten.value = 10
- (Syntax.Numeral.M.mk a a_1).value = a_1.value ^ a.value
Instances For
Canonical structures #
The bare tally NUMBER: n + 1 iterations of one — the structures
his rule schema (6) generates before lexicalization compresses them.
Equations
Instances For
Every positive number is expressible — numeral systems name the whole of ℕ⁺ (his ch. 1 universal).
The base-power M: tenPow k is the M of value 10^(k+1) — ten,
hundred ([two ten]), thousand ([three ten]), ….
Equations
Instances For
A digit×base PHRASE — four hundred as [[four] [two ten]] — has
value m × 10^(k+1).
CALCULATE: one depth-indexed operation (his (26)–(29)) #
The three projection rules order themselves by complexity — addition,
multiplication, exponentiation — and each is the iteration of the one
before, bottoming out in incrementing (adding a tally mark). His (29):
a constituent of depth d with immediate constituents x, y is valued
CALCULATE d x y, so the semantic component is a single rule.
The depth-indexed arithmetic: depth 1 adds (NUMBER), depth 2 multiplies (PHRASE), depth 3 and beyond exponentiates (M).
Equations
- Syntax.Numeral.calculate 1 x✝¹ x✝ = x✝¹ + x✝
- Syntax.Numeral.calculate 2 x✝¹ x✝ = x✝¹ * x✝
- Syntax.Numeral.calculate x✝² x✝¹ x✝ = x✝ ^ x✝¹
Instances For
His (29): the three projection rules are calculate at the
constituent's depth — NUMBERs at depth 1, PHRASEs at depth 2, Ms at
depth 3.
The complexity ladder behind the depth-indexing: each operation is the iteration of the one below — multiplication iterates addition, exponentiation iterates multiplication.