The implicational map of indefinite series #
An indefinite series (English some-, Russian -nibud') is used in some of nine functions,
which Haspelmath arranges on an implicational map: a graph on the functions whose adjacency
requirement says that the functions a series covers form a connected region. The map is
implicationalMap, and a region s meets the requirement when
(implicationalMap.induce ↑s).Connected, so the book's requirement is a statement of graph
theory. The series themselves are IndefinitePronoun.Series.
Main declarations #
Indefinite.HaspelmathFunction: the nine functions, with the book's numberingnumberand the neighboursadjacentof each on the map.Indefinite.implicationalMap: the map as aSimpleGraph.Indefinite.SpecificityFunction: the specific known, specific unknown and non-specific functions in the order the map chains them, with their embeddingtoFunctionin the map and the ones a region covers,specificityFunctions. A set of them is an interval unless it has the two ends without the middle (SpecificityFunction.ordConnected_iff).
Implementation notes #
The empty region is not connected, as SimpleGraph.Connected requires a vertex; a series covers
at least one function. The book counts the possible regions of the map differently from the
graph encoded here; see the TODO of Studies/Haspelmath1997.lean.
References #
The functions and the map #
The nine functions of [Has97]'s implicational map.
- specificKnown : HaspelmathFunction
In the specific known function the speaker has a referent in mind.
- specificUnknown : HaspelmathFunction
In the specific unknown function the speaker presupposes a referent but cannot identify it.
- irrealis : HaspelmathFunction
In the irrealis non-specific function no specific referent is intended.
- question : HaspelmathFunction
The indefinite stands in a question.
- conditional : HaspelmathFunction
The indefinite stands in the protasis of a conditional.
- comparative : HaspelmathFunction
The indefinite stands in the standard of a comparative.
- indirectNeg : HaspelmathFunction
Indirect negation is superordinate or implicit negation (without, doubt, deny).
- directNeg : HaspelmathFunction
Direct negation is clause-mate negation.
- freeChoice : HaspelmathFunction
The indefinite is a free-choice item.
Instances For
Equations
- Indefinite.instDecidableEqHaspelmathFunction 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.
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
The book's numbering of the functions, in which it states the distribution of a series.
Equations
- Indefinite.HaspelmathFunction.specificKnown.number = 1
- Indefinite.HaspelmathFunction.specificUnknown.number = 2
- Indefinite.HaspelmathFunction.irrealis.number = 3
- Indefinite.HaspelmathFunction.question.number = 4
- Indefinite.HaspelmathFunction.conditional.number = 5
- Indefinite.HaspelmathFunction.indirectNeg.number = 6
- Indefinite.HaspelmathFunction.directNeg.number = 7
- Indefinite.HaspelmathFunction.comparative.number = 8
- Indefinite.HaspelmathFunction.freeChoice.number = 9
Instances For
adjacent f lists the neighbours of f on the map. The map is a chain from specific known
through specific unknown to irrealis, which feeds two parallel tracks, question to indirect
negation to direct negation and conditional to comparative to free choice, the tracks joined at
question and conditional and at indirect negation and comparative.
(4) question —— (6) indirect neg —— (7) direct neg
| |
(1) SK — (2) SU — (3) irr <
| |
(5) conditional — (8) comparative — (9) free choice
Equations
- Indefinite.HaspelmathFunction.specificKnown.adjacent = [Indefinite.HaspelmathFunction.specificUnknown]
- Indefinite.HaspelmathFunction.specificUnknown.adjacent = [Indefinite.HaspelmathFunction.specificKnown, Indefinite.HaspelmathFunction.irrealis]
- Indefinite.HaspelmathFunction.irrealis.adjacent = [Indefinite.HaspelmathFunction.specificUnknown, Indefinite.HaspelmathFunction.question, Indefinite.HaspelmathFunction.conditional]
- Indefinite.HaspelmathFunction.question.adjacent = [Indefinite.HaspelmathFunction.irrealis, Indefinite.HaspelmathFunction.conditional, Indefinite.HaspelmathFunction.indirectNeg]
- Indefinite.HaspelmathFunction.conditional.adjacent = [Indefinite.HaspelmathFunction.irrealis, Indefinite.HaspelmathFunction.question, Indefinite.HaspelmathFunction.comparative]
- Indefinite.HaspelmathFunction.indirectNeg.adjacent = [Indefinite.HaspelmathFunction.question, Indefinite.HaspelmathFunction.directNeg, Indefinite.HaspelmathFunction.comparative]
- Indefinite.HaspelmathFunction.directNeg.adjacent = [Indefinite.HaspelmathFunction.indirectNeg]
- Indefinite.HaspelmathFunction.comparative.adjacent = [Indefinite.HaspelmathFunction.conditional, Indefinite.HaspelmathFunction.indirectNeg, Indefinite.HaspelmathFunction.freeChoice]
- Indefinite.HaspelmathFunction.freeChoice.adjacent = [Indefinite.HaspelmathFunction.comparative]
Instances For
The implicational map is the graph on the functions with the edges of
HaspelmathFunction.adjacent.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Indefinite.instDecidableRelHaspelmathFunctionAdjImplicationalMap f g = { decide := decide (List.elem g f.adjacent = true), reflects_decide := ⋯ }
The specificity functions #
The three functions at the specific end of the map, which differ in whether the indefinite has a specific referent and in whether the speaker can identify it. They are ordered as the map chains them, from specific known through specific unknown to non-specific.
- specificKnown : SpecificityFunction
The speaker has the referent in mind.
- specificUnknown : SpecificityFunction
The speaker presupposes a referent but cannot identify it.
- nonSpecific : SpecificityFunction
No specific referent is intended.
Instances For
Equations
- Indefinite.instDecidableEqSpecificityFunction 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.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
A set of specificity functions is an interval exactly when it does not have the two ends without the middle.
Equations
- One or more equations did not get rendered due to their size.
toFunction embeds the specificity functions in the map, the non-specific function as the
irrealis one.
Equations
- Indefinite.SpecificityFunction.specificKnown.toFunction = Indefinite.HaspelmathFunction.specificKnown
- Indefinite.SpecificityFunction.specificUnknown.toFunction = Indefinite.HaspelmathFunction.specificUnknown
- Indefinite.SpecificityFunction.nonSpecific.toFunction = Indefinite.HaspelmathFunction.irrealis
Instances For
The specificity functions a region of the map covers.
Equations
- Indefinite.specificityFunctions s = {x : Indefinite.SpecificityFunction | x.toFunction ∈ s}