Search and copy #
A search-and-copy rule is the Harmonic Search-and-Copy procedure of Nevins: a needy
segment, one unspecified for a feature, searches in one direction for the closest segment
visible to it and copies that segment's value, or the opposite value for dissimilation, and
takes a last-resort default when the search fails. The procedure is stated by its
visibility predicate, direction and feature; a target may further require its source to
meet a condition of its own, and a visible source failing it halts the search with the
default, which is defective intervention, since the search gets no second chance. A copied
value is donated onward, so harmony iterates morpheme by morpheme, and every visible valued
segment donates whether or not it searches itself. Mailhot and Reiss's SEARCH and COPY rule
components, as Bale and Reiss present them, are a sibling formulation with simultaneous
application over the input. Belth's learner constructs one, written
Rel(A, F) / C __ ∘ proj(·, T) with A the targets, C the sources and T the visible
segments, and Nevins reads Rose and Walker's blockers and transparent segments as
defective interveners and invisible segments.
Run over a word, the rule is a Mealy machine on the visible segments whose state is the
closest visible segment read so far (SearchCopy.toMealy), the memory window of
Burness, McMullin and Nevins's tier-based strictly local reading of the procedure, and
when the write keeps a segment visible the output tier-based strictly 2-local rule of
Burness and McMullin computes the same function (SearchCopy.toOSLRule_applyOnTier). So
such a rule for one feature in one direction is a tier-based strictly local function, the
result of Andersson, Dolatian and Hao that Burness, McMullin and Nevins report. Every rule is
subsequential in its direction over a finite alphabet (SearchCopy.apply_isSubsequential), as
Gainor, Lai and Heinz found of Nevins's analyses.
Main definitions #
SearchCopy: a rule, with its visible segments, targets, sources, relation, lens on the feature, default and direction.SearchCopy.scan,SearchCopy.apply: the left-to-right run over the visible segments, and the run in the rule's direction.SearchCopy.sourceAfter,SearchCopy.sourceValue: the closest visible segment of a string and the value it offers to what follows.SearchCopy.toMealy,SearchCopy.toOSLRule: the machine and the OSL rule computing the run.
Main results #
SearchCopy.toOSLRule_applyOnTier: the OSL rule run with its window over the visible output is the Mealy run, when the write keeps a segment visible.SearchCopy.filter_scan: restricted to the visible segments, the run is the 2-OSL rule.SearchCopy.apply_isSubsequential,SearchCopy.scan_isMealyComputable: the run is finite-state in the rule's direction over a finite alphabet.
Implementation notes #
The window holds the last visible output segment, so a copied value is donated onward, as
Nevins's derivations of stacked Turkish suffixes show; Burness, McMullin and Nevins
instead model the procedure by an input-oriented function with the needy segments off the
tier, which agrees whenever a needy segment's nearest visible source precedes it in the
input, and the run is Nevins's cyclic derivation only where morphological order runs
away from the root in the search direction. IsSource is more general than Nevins's
conditions on a source, which are identity for an orthogonal feature or morphological
affiliation. A source unspecified for the feature yields the default, where Belth
counts a failed application, and a default of none, outside both sources, leaves a
failed target unspecified for the fixed-point results of Harmony.System. The lens laws
hold on targets only, since only targets are written. Not modelled are search in both
directions at once, sonority hurdles, the distance parameters of Nevins's fifth
chapter, more than one feature per search, and the patterns Burness, McMullin and Nevins
place beyond the procedure: icy targets, persistent search and circumambient harmony.
References #
Whether a target copies its source's value or, for dissimilation, the opposite value.
Instances For
Equations
- Phonology.SearchCopy.instDecidableEqRelation x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
The value the relation writes into a target from its source's value.
Equations
Instances For
A search-and-copy rule consists of the visible segments, the targets, the sources each target may copy from, the relation, a lens reading and writing the feature on targets, a last-resort default, and a direction.
- tier : α → Prop
The visible segments, the rule's tier.
- decTier : DecidablePred self.tier
- IsTarget : α → Prop
The needy segments, which search.
- decTarget : DecidablePred self.IsTarget
- IsSource : α → α → Prop
IsSource s tholds when the visible segmentsmay donate to the targett. - decSource : DecidableRel self.IsSource
- relation : Relation
Whether a target copies or negates its source's value.
- value : α → Option Bool
The feature's value on a segment,
nonewhen the segment is unspecified for it. - write : Bool → α → α
The segment with the feature's value written into it.
Reading back a value written into a target gives that value.
Writing the value a target already carries leaves it unchanged.
- default : Option Bool
The last-resort value a target takes when its search fails.
- direction : Edge
The direction of search, a rightward search scanning right to left.
Instances For
The value the target t finds in the window w, the window segment's value when it may
donate to t.
Instances For
The value the search of t yields from the window w, the default when it finds
nothing.
Instances For
The segment output at s with the window w.
Equations
Instances For
The write keeps a visible segment visible.
Equations
- r.TierClosed = ∀ (v : Bool) (s : α), r.tier s → r.tier (r.write v s)
Instances For
A target whose search finds nothing is left unchanged when there is no default.
A target already carrying the value its search finds is emitted unchanged.
The run #
The machine computing the rule, whose state is the closest visible segment read so far and which passes invisible segments through untouched.
Equations
Instances For
The left-to-right run over the visible segments, in which each target copies from the closest visible segment before it.
Instances For
The run in the rule's direction.
Equations
Instances For
The closest visible segment of a string for a target that follows it in the rule's direction.
Equations
- r.sourceAfter w = match r.direction with | Edge.left => r.toMealy.stateAfter none w | Edge.right => r.toMealy.stateAfter none w.reverse
Instances For
The value a string offers to a target that follows it in the rule's direction.
Equations
- r.sourceValue w = (r.sourceAfter w).bind r.value
Instances For
The rule's string function is subsequential in the rule's direction over a finite alphabet.
The run as a tier-based OSL rule #
The rule as a 2-OSL rule ([CEH15]) in which each visible target copies from the previous output segment and invisible segments pass through.
Equations
Instances For
Run with its window over the visible output ([BMcM19]), the OSL rule is the Mealy run, the last visible output segment being the machine's state, provided the write keeps a segment visible.
Restricted to the visible segments, the run is the 2-OSL rule, provided the write keeps a segment visible.