Spatial cases #
A spatial case combines a localization with a direction, as Pantcheva decomposes them: the interior, surface and exterior series of Finnish, Hungarian and Daghestanian local cases each cross a localization with Place, Goal and Source. The general locative, allative, ablative and perlative express a direction with no localization. Blake's types of case (Table 2.7) place the spatial cases among the semantic cases, apart from the grammatical ones.
Main definitions #
Case.dirOf,Case.localizationOf: the direction and the localization a spatial case expresses, if any.Case.toCase,Case.spatialDecomp: a spatial case from its localization and direction, and back.Case.ofDir: the localization-neutral case of a direction.Case.shape?: the shape of the paths a directional case expresses.Case.Kind,Case.kind: grammatical, spatial and other semantic cases.
Main results #
Case.spatialDecomp_toCase: the decomposition round-trips on the localization-specific cells.Case.dirOf_ofDir: the localization-neutral case of a direction expresses it.Case.kind_eq_spatial_iff: the spatial cases are those with a direction.
Implementation notes #
Blake names the nominative, accusative, ergative, genitive and dative as grammatical cases;
Case.kind adds the absolutive, the oblique, the partitive and the vocative to them. The
terminative is a delimited goal, Pantcheva's up to.
References #
The direction a spatial case expresses, if any, determinable even where the localization is
not (localizationOf).
Equations
- Case.loc.dirOf = some Spatial.Path.Direction.place
- Case.ine.dirOf = some Spatial.Path.Direction.place
- Case.ade.dirOf = some Spatial.Path.Direction.place
- Case.sup.dirOf = some Spatial.Path.Direction.place
- Case.ill.dirOf = some Spatial.Path.Direction.goal
- Case.all.dirOf = some Spatial.Path.Direction.goal
- Case.sub.dirOf = some Spatial.Path.Direction.goal
- Case.ter.dirOf = some Spatial.Path.Direction.goal
- Case.ela.dirOf = some Spatial.Path.Direction.source
- Case.abl.dirOf = some Spatial.Path.Direction.source
- Case.del.dirOf = some Spatial.Path.Direction.source
- Case.perl.dirOf = some Spatial.Path.Direction.route
- x✝.dirOf = none
Instances For
The shape of the paths a directional case expresses. The illative, allative and sublative are cofinal, the elative, ablative and delative coinitial, the perlative transitive, and the terminative terminative.
Equations
- Case.ill.shape? = some Spatial.Path.Shape.cofinal
- Case.all.shape? = some Spatial.Path.Shape.cofinal
- Case.sub.shape? = some Spatial.Path.Shape.cofinal
- Case.ela.shape? = some Spatial.Path.Shape.coinitial
- Case.abl.shape? = some Spatial.Path.Shape.coinitial
- Case.del.shape? = some Spatial.Path.Shape.coinitial
- Case.perl.shape? = some Spatial.Path.Shape.transitive
- Case.ter.shape? = some Spatial.Path.Shape.terminative
- x✝.shape? = none
Instances For
A directional case's shape has the case's direction.
Build a spatial case from its Localization × Direction decomposition — the
constructor direction spatial-case fragments consume. The 3 × 3
localization-specific cells; route is localization-neutral in these
inventories (none).
Equations
- Case.toCase Spatial.Localization.interior Spatial.Path.Direction.place = some Case.ine
- Case.toCase Spatial.Localization.interior Spatial.Path.Direction.goal = some Case.ill
- Case.toCase Spatial.Localization.interior Spatial.Path.Direction.source = some Case.ela
- Case.toCase Spatial.Localization.surface Spatial.Path.Direction.place = some Case.sup
- Case.toCase Spatial.Localization.surface Spatial.Path.Direction.goal = some Case.sub
- Case.toCase Spatial.Localization.surface Spatial.Path.Direction.source = some Case.del
- Case.toCase Spatial.Localization.exterior Spatial.Path.Direction.place = some Case.ade
- Case.toCase Spatial.Localization.exterior Spatial.Path.Direction.goal = some Case.all
- Case.toCase Spatial.Localization.exterior Spatial.Path.Direction.source = some Case.abl
- Case.toCase x✝ Spatial.Path.Direction.route = none
Instances For
The localization a case expresses, under the spatial reading. The exterior series is
ade, all and abl, Finnish's external local cases; all and abl also serve as the
general allative and ablative, with no localization, a use this decomposition does not
separate. The general locative loc has no localization.
Equations
- Case.ine.localizationOf = some Spatial.Localization.interior
- Case.ela.localizationOf = some Spatial.Localization.interior
- Case.ill.localizationOf = some Spatial.Localization.interior
- Case.sup.localizationOf = some Spatial.Localization.surface
- Case.del.localizationOf = some Spatial.Localization.surface
- Case.sub.localizationOf = some Spatial.Localization.surface
- Case.ade.localizationOf = some Spatial.Localization.exterior
- Case.all.localizationOf = some Spatial.Localization.exterior
- Case.abl.localizationOf = some Spatial.Localization.exterior
- x✝.localizationOf = none
Instances For
Analyze a spatial case into Localization × Direction, where both are
determinable (lossy on localization-conflated cells; the faithful inverse
of toCase on the 3 × 3 localization-specific cells).
Equations
- c.spatialDecomp = match c.localizationOf, c.dirOf with | some r, some d => some (r, d) | x, x_1 => none
Instances For
toCase and spatialDecomp are inverse on the localization-specific
cells — the decomposition round-trips where localization is not conflated.
(route is localization-neutral, hence none on both sides.)
ofDir d is the case that expresses d with no localization, the general locative,
allative, ablative or perlative.
Equations
Instances For
Types of case #
A case is grammatical, encoding a syntactic relation, or semantic, and a semantic case is spatial when it encodes location, source, destination or path.
- grammatical : Kind
A grammatical case is a core case, the genitive or the dative.
- spatial : Kind
A spatial case encodes location, source, destination or path, alone or with another notion.
- semantic : Kind
A semantic case that is not spatial, such as the instrumental and the comitative.
Instances For
Equations
- Case.instDecidableEqKind x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Case.instReprKind.repr Case.Kind.grammatical prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Case.Kind.grammatical")).group prec✝
- Case.instReprKind.repr Case.Kind.spatial prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Case.Kind.spatial")).group prec✝
- Case.instReprKind.repr Case.Kind.semantic prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Case.Kind.semantic")).group prec✝
Instances For
Equations
- Case.instReprKind = { reprPrec := Case.instReprKind.repr }
Equations
- Case.instFintypeKind = { elems := { val := ↑Case.Kind.enumList, nodup := Case.Kind.enumList_nodup }, complete := Case.instFintypeKind._proof_1 }
The type of a case value.
Equations
- Case.nom.kind = Case.Kind.grammatical
- Case.acc.kind = Case.Kind.grammatical
- Case.gen.kind = Case.Kind.grammatical
- Case.dat.kind = Case.Kind.grammatical
- Case.erg.kind = Case.Kind.grammatical
- Case.abs.kind = Case.Kind.grammatical
- Case.obl.kind = Case.Kind.grammatical
- Case.part.kind = Case.Kind.grammatical
- Case.voc.kind = Case.Kind.grammatical
- Case.loc.kind = Case.Kind.spatial
- Case.ine.kind = Case.Kind.spatial
- Case.ade.kind = Case.Kind.spatial
- Case.sup.kind = Case.Kind.spatial
- Case.ill.kind = Case.Kind.spatial
- Case.all.kind = Case.Kind.spatial
- Case.sub.kind = Case.Kind.spatial
- Case.ela.kind = Case.Kind.spatial
- Case.abl.kind = Case.Kind.spatial
- Case.del.kind = Case.Kind.spatial
- Case.perl.kind = Case.Kind.spatial
- Case.ter.kind = Case.Kind.spatial
- Case.inst.kind = Case.Kind.semantic
- Case.com.kind = Case.Kind.semantic
- Case.ben.kind = Case.Kind.semantic
- Case.abess.kind = Case.Kind.semantic
- Case.caus.kind = Case.Kind.semantic
- Case.tem.kind = Case.Kind.semantic
- Case.ess.kind = Case.Kind.semantic
- Case.transl.kind = Case.Kind.semantic