Snyder (2026): Numbers as Kinds #
This file formalizes [Sny26]'s Polymorphic Contextualism: the lexical meaning of two is
an atomic predicate applying to different countable entities in different contexts, numeral
tokens, subkinds of the kind TWO, or TWO itself, and every other meaning of the word derives
from it by type-shifting. The rival polymorphic analyses take the lexical meaning to be a
numeral, an entity from which the cardinality predicate derives by CARD (Substantivalism), or
the cardinality predicate itself, from which the numeral derives by NOM and Rothstein's
schematic equation (Adjectivalism). The three analyses are derivation maps from a lexical
type through the type-shifters CARD, PM, A, NOM, IOTA and IDENT to the semantic functions of
(1) and (76) (PolymorphicAnalysis.path), each of which composes to the function's type
(analyses_well_typed); Contextualism derives every function while the two rivals derive
none of the token, kind and taxonomic uses (contextualism_covers_all,
substantivalism_gap, adjectivalism_gap, contextualism_strictly_extends). Numbers are
kinds formed as in [Men20] by a salient equivalence relation on their tokens, here the
number system a token belongs to (kfTWO), so distinct subkinds of TWO are disjoint
(subkinds_distinct); a close appositive is the Sharvy definite over the conjunction of its
two nouns (closeAppositive), and definites over disjoint restrictions of the extension of
two refer to distinct subkinds, which dissolves Benacerraf's Identification Problem for (20)
(closeAppositive_ne_of_disjoint, identification_problem_resolved). Section 6 extends the
analysis to colour words, RED having subkinds such as crimson and maroon (kfRed,
red_subkinds_distinct). The examples are rows of Data/Examples/Snyder2026, each of which
carries its semantic function, and every function is attested (functions_attested).
Implementation notes #
- Types are the fragment e, ⟨e,t⟩ and ⟨⟨e,t⟩,t⟩; PM is monadic, its second predicate supplied by the syntax. Rothstein's schematic equation is a meta-level identification and not a type-shifter, so the adjectivalist numeral is the nominalized cardinality predicate with the equation read off it.
- In the contextualist diagram the token, kind and taxonomic uses (76h), (76j) and (76f) are the lexical predicate itself, applied to tokens or kinds, and the numeral, kind-referring and token-referring uses (76e), (76i) and (76g) are IOTA over it; the taxonomic use is predicate-typed, the others entity-typed.
- Sharvy's definite is a partial operation over a finite domain, undefined when no or more than one entity satisfies the restriction; the Identification Problem is worked on a domain with one token per number system.
- Tokens of two are classified by their number system (
kfTWO), which on these tokens agrees with section 4.3's partition by the number a token represents; the subkinds of TWO are the classes, as kind individuals in the quotient.
References #
The three polymorphic analyses and the semantic functions #
Equations
- Snyder2026.instDecidableEqSemTy x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
The three polymorphic analyses: the lexical meaning of two is a numeral (5), a cardinality predicate (9), or an atomic predicate over relativized atoms (73).
- substantivalism : PolymorphicAnalysis
- adjectivalism : PolymorphicAnalysis
- contextualism : PolymorphicAnalysis
Instances For
Equations
- Snyder2026.instDecidableEqPolymorphicAnalysis x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
The lexical type of two under each analysis.
Equations
Instances For
The semantic functions of two: the six of (1) and the token, kind and taxonomic uses of (76g) to (76j).
- predicative : SemanticFunction
- attributive : SemanticFunction
- quantificational : SemanticFunction
- specificational : SemanticFunction
- numeral : SemanticFunction
- closeAppositive : SemanticFunction
- tokenRef : SemanticFunction
- tokenPredicate : SemanticFunction
- kindRef : SemanticFunction
- taxonomic : SemanticFunction
Instances For
Equations
- Snyder2026.instDecidableEqSemanticFunction x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
The type at which each function is used.
Equations
- Snyder2026.SemanticFunction.predicative.targetType = Snyder2026.SemTy.et
- Snyder2026.SemanticFunction.attributive.targetType = Snyder2026.SemTy.et
- Snyder2026.SemanticFunction.tokenPredicate.targetType = Snyder2026.SemTy.et
- Snyder2026.SemanticFunction.taxonomic.targetType = Snyder2026.SemTy.et
- Snyder2026.SemanticFunction.quantificational.targetType = Snyder2026.SemTy.ett
- Snyder2026.SemanticFunction.specificational.targetType = Snyder2026.SemTy.e
- Snyder2026.SemanticFunction.numeral.targetType = Snyder2026.SemTy.e
- Snyder2026.SemanticFunction.closeAppositive.targetType = Snyder2026.SemTy.e
- Snyder2026.SemanticFunction.tokenRef.targetType = Snyder2026.SemTy.e
- Snyder2026.SemanticFunction.kindRef.targetType = Snyder2026.SemTy.e
Instances For
The label of a function in the example rows.
Equations
- Snyder2026.SemanticFunction.predicative.label = "predicative"
- Snyder2026.SemanticFunction.attributive.label = "attributive"
- Snyder2026.SemanticFunction.quantificational.label = "quantificational"
- Snyder2026.SemanticFunction.specificational.label = "specificational"
- Snyder2026.SemanticFunction.numeral.label = "numeral"
- Snyder2026.SemanticFunction.closeAppositive.label = "closeAppositive"
- Snyder2026.SemanticFunction.tokenRef.label = "tokenRef"
- Snyder2026.SemanticFunction.tokenPredicate.label = "tokenPredicate"
- Snyder2026.SemanticFunction.kindRef.label = "kindRef"
- Snyder2026.SemanticFunction.taxonomic.label = "taxonomic"
Instances For
Equations
- Snyder2026.instDecidableEqOperator x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
The input type of a type-shifter.
Equations
- Snyder2026.Operator.card.input = Snyder2026.SemTy.e
- Snyder2026.Operator.ident.input = Snyder2026.SemTy.e
- Snyder2026.Operator.pm.input = Snyder2026.SemTy.et
- Snyder2026.Operator.a.input = Snyder2026.SemTy.et
- Snyder2026.Operator.nom.input = Snyder2026.SemTy.et
- Snyder2026.Operator.iota.input = Snyder2026.SemTy.et
Instances For
The output type of a type-shifter.
Equations
- Snyder2026.Operator.card.output = Snyder2026.SemTy.et
- Snyder2026.Operator.pm.output = Snyder2026.SemTy.et
- Snyder2026.Operator.ident.output = Snyder2026.SemTy.et
- Snyder2026.Operator.a.output = Snyder2026.SemTy.ett
- Snyder2026.Operator.nom.output = Snyder2026.SemTy.e
- Snyder2026.Operator.iota.output = Snyder2026.SemTy.e
Instances For
The type a chain of type-shifters reaches from a type, if each composes with the last.
Equations
- Snyder2026.wellTyped x✝ [] = some x✝
- Snyder2026.wellTyped x✝ (op :: ops) = if x✝ = op.input then Snyder2026.wellTyped op.output ops else none
Instances For
The derivation map of each analysis, the diagrams of sections 2 and 5: the chain of type-shifters from the lexical meaning to a function, or none where the analysis does not derive it. Substantivalism derives the cardinal uses by CARD and the close appositive by IDENT and IOTA; Adjectivalism nominalizes the cardinality predicate for the numeral and passes through it for the close appositive; Contextualism reaches the numeral, kind and token references by IOTA, the taxonomic and token predications by the lexical predicate itself, the cardinal uses through the numeral, and the close appositive by PM with number and IOTA (87).
Equations
- Snyder2026.PolymorphicAnalysis.substantivalism.path Snyder2026.SemanticFunction.numeral = some []
- Snyder2026.PolymorphicAnalysis.substantivalism.path Snyder2026.SemanticFunction.predicative = some [Snyder2026.Operator.card]
- Snyder2026.PolymorphicAnalysis.substantivalism.path Snyder2026.SemanticFunction.attributive = some [Snyder2026.Operator.card, Snyder2026.Operator.pm]
- Snyder2026.PolymorphicAnalysis.substantivalism.path Snyder2026.SemanticFunction.quantificational = some [Snyder2026.Operator.card, Snyder2026.Operator.a]
- Snyder2026.PolymorphicAnalysis.substantivalism.path Snyder2026.SemanticFunction.specificational = some [Snyder2026.Operator.card, Snyder2026.Operator.nom]
- Snyder2026.PolymorphicAnalysis.substantivalism.path Snyder2026.SemanticFunction.closeAppositive = some [Snyder2026.Operator.ident, Snyder2026.Operator.iota]
- Snyder2026.PolymorphicAnalysis.substantivalism.path x✝ = none
- Snyder2026.PolymorphicAnalysis.adjectivalism.path Snyder2026.SemanticFunction.predicative = some []
- Snyder2026.PolymorphicAnalysis.adjectivalism.path Snyder2026.SemanticFunction.attributive = some [Snyder2026.Operator.pm]
- Snyder2026.PolymorphicAnalysis.adjectivalism.path Snyder2026.SemanticFunction.quantificational = some [Snyder2026.Operator.a]
- Snyder2026.PolymorphicAnalysis.adjectivalism.path Snyder2026.SemanticFunction.specificational = some [Snyder2026.Operator.nom]
- Snyder2026.PolymorphicAnalysis.adjectivalism.path Snyder2026.SemanticFunction.numeral = some [Snyder2026.Operator.nom]
- Snyder2026.PolymorphicAnalysis.adjectivalism.path Snyder2026.SemanticFunction.closeAppositive = some [Snyder2026.Operator.nom, Snyder2026.Operator.ident, Snyder2026.Operator.iota]
- Snyder2026.PolymorphicAnalysis.adjectivalism.path x✝ = none
- Snyder2026.PolymorphicAnalysis.contextualism.path Snyder2026.SemanticFunction.taxonomic = some []
- Snyder2026.PolymorphicAnalysis.contextualism.path Snyder2026.SemanticFunction.tokenPredicate = some []
- Snyder2026.PolymorphicAnalysis.contextualism.path Snyder2026.SemanticFunction.numeral = some [Snyder2026.Operator.iota]
- Snyder2026.PolymorphicAnalysis.contextualism.path Snyder2026.SemanticFunction.kindRef = some [Snyder2026.Operator.iota]
- Snyder2026.PolymorphicAnalysis.contextualism.path Snyder2026.SemanticFunction.tokenRef = some [Snyder2026.Operator.iota]
- Snyder2026.PolymorphicAnalysis.contextualism.path Snyder2026.SemanticFunction.predicative = some [Snyder2026.Operator.iota, Snyder2026.Operator.card]
- Snyder2026.PolymorphicAnalysis.contextualism.path Snyder2026.SemanticFunction.attributive = some [Snyder2026.Operator.iota, Snyder2026.Operator.card, Snyder2026.Operator.pm]
- Snyder2026.PolymorphicAnalysis.contextualism.path Snyder2026.SemanticFunction.quantificational = some [Snyder2026.Operator.iota, Snyder2026.Operator.card, Snyder2026.Operator.a]
- Snyder2026.PolymorphicAnalysis.contextualism.path Snyder2026.SemanticFunction.specificational = some [Snyder2026.Operator.iota, Snyder2026.Operator.card, Snyder2026.Operator.nom]
- Snyder2026.PolymorphicAnalysis.contextualism.path Snyder2026.SemanticFunction.closeAppositive = some [Snyder2026.Operator.pm, Snyder2026.Operator.iota]
Instances For
An analysis covers a function when it derives it.
Instances For
Equations
Every derivation composes from the lexical type to the function's type.
Contextualism derives every function.
Substantivalism derives none of the token, kind and taxonomic uses, the problem cases of section 3.
Nor does Adjectivalism.
Contextualism covers whatever either rival covers, and more.
Numbers as kinds, sections 4 and 5 #
A kind is formed by partitioning a domain by a salient equivalence relation; TWO is partitioned into the subkinds two-of-the-naturals, two-of-the-integers, two-of-the-rationals and two-of-the-reals by the number system a numeral token belongs to (section 4.3).
The number systems of the paper's board.
- nat : MathSystem
- int : MathSystem
- rat : MathSystem
- real : MathSystem
Instances For
Equations
- Snyder2026.instDecidableEqMathSystem x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Snyder2026.instFintypeMathSystem = { elems := { val := ↑Snyder2026.MathSystem.enumList, nodup := Snyder2026.MathSystem.enumList_nodup }, complete := Snyder2026.instFintypeMathSystem._proof_1 }
A numeral token: the number system it belongs to and an index distinguishing tokens of the same system.
- system : MathSystem
- idx : ℕ
Instances For
Equations
- Snyder2026.instDecidableEqTwoToken.decEq { system := a, idx := a_1 } { system := b, idx := b_1 } = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
Instances For
The kind formation for TWO: tokens are equivalent when they belong to the same number system, and each class is a subkind of TWO.
Equations
- Snyder2026.kfTWO = Setoid.ker Snyder2026.TwoToken.system
Instances For
Tokens of distinct number systems instantiate distinct subkinds of TWO, the distinctness of twos from different systems that section 3.4 draws from the Disjointness Condition.
Sharvy's definite (16a) over a finite domain: the unique satisfier of the restriction, if there is exactly one.
Equations
- Snyder2026.sharvyIota domain P = match List.filter P domain with | [j] => some j | x => none
Instances For
A close appositive (16b): the definite over the conjunction of its two nouns.
Equations
- Snyder2026.closeAppositive domain n₁ n₂ = Snyder2026.sharvyIota domain fun (x : α) => n₁ x && n₂ x
Instances For
Close appositives whose first nouns are disjoint refer to distinct entities when both are defined: the modifiers von Neumann ordinal and Zermelo ordinal restrict the extension of two to disjoint subkinds.
Membership in the subkind of TWO of a number system.
Equations
- Snyder2026.inSubkind s t = decide (t.system = s)
Instances For
The board of section 1: one token of two per number system.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The close appositive the s number two on the board refers to the token of that system.
The Identification Problem dissolved, section 5.2: the close appositives formed with the modifiers of two number systems are both defined on the board and refer to distinct subkinds, so (20a) and (20b) are jointly coherent.
Colour words, section 6 #
The kind RED has the shades of the paint swatches as subkinds, and the colour word is an atomic predicate over them and their tokens (97).
Equations
- Snyder2026.instDecidableEqShade x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Snyder2026.instDecidableEqRedToken.decEq { shade := a, idx := a_1 } { shade := b, idx := b_1 } = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
Instances For
The kind formation for RED: tokens are equivalent when they are of the same shade.
Equations
- Snyder2026.kfRed = Setoid.ker Snyder2026.RedToken.shade
Instances For
Tokens of distinct shades instantiate distinct subkinds of RED, the taxonomy under (94).
The examples #
Every semantic function is attested by an example row carrying its label.