Docs / Phonology / OptimalityTheory / Correspondence / Deletion

Deletion and insertion

import Linglib.Phonology.OptimalityTheory.Correspondence.Deletion · namespace OptimalityTheory.Correspondence

A deletion relates each position of the shorter string to the position of the longer one it comes from, and an insertion is the converse. Deleting the segment at position i goes along Fin.succAbove i, so it violates MAX once, at i; deleting the positions D violates MAX once at each of them. When no other segment changes, neither deletion nor insertion violates IDENT.

Main definitions

Main results

References

Deletion along a map of positions

deletion s t f relates s to the string t along f: each position j of t corresponds to position f j of s alone, and the positions of s off the range of f are deleted. The segments of t need not be those of s, so a deletion may come with changes elsewhere.

def deletionL45–49
{α : Type u_1} (s t : List α) (f : Fin t.length → Fin s.length) :

Used by deletion_form_lhs, deletion_form_rhs, mem_deletion_edge, deletion_isSymmetric, maxViolAt_deletion, depViol_deletion, identViol_deletion_eq_zero_iff, maxViolAt_deletion_succAbove, eraseIdx, insertIdx

Used in Stojkovic2026

L55
L57
L63–64

One segment

eraseIdx s i is the deletion of the segment at position i of s with every other segment unchanged.

def eraseIdxL101–106
{α : Type u_1} (s : List α) (i : Fin s.length) :
  • eraseIdx s i = deletion s (s.eraseIdx ↑i) fun (j : Fin (s.eraseIdx ↑i).length) => Fin.cast ⋯ ((Fin.cast ⋯ i).succAbove j)

Built from

Used by eraseIdx_form_lhs, eraseIdx_form_rhs, maxViolAt_eraseIdx, maxViol_eraseIdx, depViol_eraseIdx, identViol_eraseIdx

Used in Phonology/OptimalityTheory/PositionalFaithfulness, Casali1997, Storme2026

insertIdx s i a is the insertion of the segment a at position i of s, the converse of the deletion of position i from the longer string.

def insertIdxL108–112
{α : Type u_1} (s : List α) (i : Fin (s.length + 1)) (a : α) :
  • insertIdx s i a = (deletion (s.insertIdx (↑i) a) s fun (j : Fin s.length) => Fin.cast ⋯ (i.succAbove j)).swap

Built from

Used by insertIdx_form_lhs, insertIdx_form_rhs, depViolAt_insertIdx, depViol_insertIdx, maxViol_insertIdx, identViol_insertIdx

Used in Storme2026

L147

Deletion of a set of positions

eraseIdxs s D is the deletion of the segments at the positions D of s with every other segment unchanged, each surviving segment corresponding to itself. Positions past the end of s delete nothing.

def eraseIdxsL177–184
{α : Type u_1} (s : List α) (D : Finset ℕ) :

The definition is too large to print here; read it in the source.

Used by eraseIdxs_form_lhs, eraseIdxs_form_rhs, maxViolAt_eraseIdxs, depViol_eraseIdxs, identViol_eraseIdxs

Used in Phonology/OptimalityTheory/PositionalFaithfulness, Vago2017