Docs / Syntax / Minimalist / Copy / Replay

Derivations with copies

import Linglib.Syntax.Minimalist.Copy.Replay · namespace Minimalist

Under the copy theory Internal Merge merges a copy of the mover and leaves the mover in place. The replay of a derivation with copies builds its linearized copy object with the lower copies marked, and contracting them gives the replay with traces. The copy object is a syntactic object, on which Internal Merge is Merge with one of the object's own terms, the terms of each stage are terms of every later one, and only the tokens the derivation merges are pronounced.

Main definitions

Main results

TODO

  • Steps name their movers in the replay with traces, so a remnant mover carries traces and the copy object depends on the trace encoder τ; and each lower copy is marked, so deleted, at the step that moves it, which leaves no room for externalizations that pronounce several copies. Name movers independently of traces and decide deletion at externalization.

References

The replay with copies

A step on a marked configuration, Step.replay? keeping the copies. Internal Merge merges a copy of the leftmost outermost occurrence of the mover and marks the occurrences it leaves as lower copies, each with the trace of the mover's head under τ; an extraction stacks the copy.

def Step.replayWithCopies?L66–77

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

Used by Step.map_contract_replayWithCopies?, Step.unmark_replayWithCopies?_im, Step.replayWithCopies?_im_eq_merge, Derivation.replayWithCopies?_append, Derivation.replayWithCopies?_append_singleton, Step.toSyntacticObject_replayWithCopies?_em, Step.toSyntacticObject_replayWithCopies?_im, Step.count_terms_replayWithCopies?_im, Step.mem_terms_replayWithCopies?

The derivation's marked configuration under the trace encoder τ, none exactly when Derivation.replay? is.

def Derivation.replayWithCopies?L79–84

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

Used by Derivation.map_contract_replayWithCopies?, Derivation.externalize?_eq_map_replayWithCopies?, Derivation.isSome_replayWithCopies?, Derivation.copyObject?, Derivation.replayWithCopies?_append, Derivation.replayWithCopies?_append_singleton

Used in Syntax/Minimalist/Copy/BindingAtReading, Syntax/Minimalist/Copy/ToTree, Collins2005, Collins2026

Internal Merge with copies merges a copy of a subtree of the copy object onto the object unchanged: Extension and No Tampering.

theorem Step.unmark_replayWithCopies?_imL129–139

Built from

Internal Merge with copies is MERGE leaving copies of a copy of the mover on the copy object, and MERGE leaving traces of the mover on the contraction.

theorem Step.replayWithCopies?_im_eq_mergeL141–164
{τ : SyntacticObject → Option LexicalItem.Token} {mover : SyntacticObject} {side : Edge} {c c' : Derivation.Cfg LinearizedSyntacticObject.Marked} (h : (im mover side).replayWithCopies? c τ = some c') (hne : ↑c.current.contract ≠ mover) :
∃ (s : LinearizedSyntacticObject.Marked), ↑s.contract = mover ∧ {↑c'.current.unmark} = {↑c.current.unmark}.merge ↑s.unmark ↑c.current.unmark ∧ {↑c'.current.contract} = Workspace.mergeWith (fun (x : SyntacticObject) => x.headTrace τ) {↑c.current.contract} mover ↑c.current.contract

Built from

The copy object

The derivation's copy object, the syntactic object with every copy in place and neither order nor marks: the form the semantic interface receives.

def Derivation.copyObject?L168–172

Built from

Used by Derivation.terms_subset_copyObject?_append, Derivation.copyObject?_append_em, Derivation.copyObject?_append_im, Derivation.copyRel_copyObject?_append_im, Derivation.mem_lexTokens_of_mem_yield_copyObject?

Used in Syntax/Minimalist/Derivation/Reconstruction

Internal Merge with copies adds a position to the chain of the copy it merges (LinearizedSyntacticObject.card_chainRel).

theorem Step.count_terms_replayWithCopies?_imL205–213
{τ : SyntacticObject → Option LexicalItem.Token} {mover : SyntacticObject} {side : Edge} {c c' : Derivation.Cfg LinearizedSyntacticObject.Marked} (h : (im mover side).replayWithCopies? c τ = some c') :
∃ u ∈ (↑c.current.unmark).terms, Multiset.count u (↑c'.current.unmark).terms = Multiset.count u (↑c.current.unmark).terms + 1

Built from

The occurrence Internal Merge leaves is a copy of the one it merges, in the sense of Form Copy, unless the whole object moves.

theorem Derivation.copyRel_copyObject?_append_imL277–283
{τ : SyntacticObject → Option LexicalItem.Token} {d : Derivation} {mover : SyntacticObject} {side : Edge} {C' : SyntacticObject} (h : (d.append [Step.im mover side]).copyObject? τ = some C') :
∃ C ∈ d.copyObject? τ, ∃ u ∈ C.terms, C' = u.merge C ∧ ((u, u) ∈ C'.copyRel ↔ u ≠ C)

Built from

Inclusiveness