Documentation

Linglib.Phonology.Subregular.OCP

The OCP as a tier-based strictly 2-local language #

This file characterizes the Obligatory Contour Principle (OCP) of Goldsmith and McCarthy as a tier-based strictly 2-local (TSL₂) language. The OCP constraint Constraint.ocp is the identity instance of the forbidden-pair constraint Constraint.forbidPairs of OptimalityTheory/Constraint/ForbiddenPairs.lean. Its forbidden 2-factor is [some x, some x], and its TSL₂ grammar is TierStrictlyLocalGrammar.ofForbiddenPairs (· = ·) p. Without a tier, the OCP is the linguistic instance of Thue's square-free words. Thue showed that infinite square-free words exist over three letters, while every binary string of length at least 4 contains a square, so a binary tonal alphabet cannot satisfy a strict OCP at length.

The satisfaction predicate of the TSL₂ language is exactly OCP.IsClean, which the fusion repair OCP.collapse also lands in, and the repair is itself a 2-input strictly local map (Chandlee and Heinz). The prohibition and the merger are therefore the constraint and a retraction onto it, both subregular.

Main definitions #

Main results #

References #

def Subregular.ocpForbidden (α : Type u_2) [DecidableEq α] :
Set (Augmented α)

The forbidden 2-factors for the OCP are the pairs [some x, some x] of two identical non-boundary symbols, the identity instance of forbiddenPairs.

Equations
Instances For
    def Subregular.TierStrictlyLocalGrammar.ocp {α : Type u_1} [DecidableEq α] (p : α → Prop) [DecidablePred p] :

    The TSL₂ grammar of the OCP forbids two adjacent identical symbols on the tier defined by p. It is the identity instance of TierStrictlyLocalGrammar.ofForbiddenPairs.

    Equations
    Instances For
      def Subregular.OCPCleanPair {α : Type u_1} [DecidableEq α] :
      Option α → Option α → Prop

      Two augmented symbols are OCP-clean as a pair iff they are not both some of the same value. This is the identity instance of CleanPair.

      Equations
      Instances For
        theorem Subregular.ocpCleanPair_some_some {α : Type u_1} [DecidableEq α] (a b : α) :
        OCPCleanPair (some a) (some b) ↔ a ≠ b

        The OCP relation is boundary-vacuous, the identity instance of CleanPair.isBoundaryVacuous.

        The repair is subregular #

        The OCP fusion repair OCP.collapse is a 2-input strictly local string function ([CH18]), which scans left to right with a one-symbol window and deletes a symbol iff it equals its predecessor. [CJ19] classify tonal OCP processes as autosegmental input strictly local.

        theorem OptimalityTheory.Constraint.ocp_eq_zero_iff_isClean {α : Type u_1} [DecidableEq α] (w : List α) :
        ocp w = 0 ↔ OCP.IsClean w

        A string satisfies the OCP iff it is OCP.IsClean. Since the fusion repair OCP.collapse also characterizes OCP.IsClean, the prohibition and the repair are two faces of one principle rather than parallel formalizations.

        theorem OptimalityTheory.Constraint.zeroSet_comap_filter_ocp {α : Type u_1} [DecidableEq α] (p : α → Prop) [DecidablePred p] :
        (comap (fun (w : List α) => List.filter (fun (x : α) => decide (p x)) w) ocp).zeroSet = (Subregular.TierStrictlyLocalGrammar.ocp p).language

        On the tier p, the zero set of the OCP is the language of the TSL₂ grammar TierStrictlyLocalGrammar.ocp p, so the optimality-theoretic constraint and the subregular class are co-extensive.