Docs / Syntax / Minimalist / Copy / Reading

The readings of a marked object

import Linglib.Syntax.Minimalist.Copy.Reading · namespace Minimalist.LinearizedSyntacticObject.Marked

This file defines what a linearized object with its lower copies marked gives to the semantic interface. A reading is the finite set of chains read low, a chain being named by its term in the copy object. A chain read high keeps its higher copy, and its lower copies contract to traces. A chain read low keeps its lowest copy, and its higher copies are deleted. With no chain read low the result is the contraction. A reading binds only where the copy object does, unless it deletes a copy whose sister is a copy of it.

Main definitions

Implementation notes

  • A movement node is found by search: a binary node one of whose daughters has the term of a marked subtree of the other. Recording it would put on the object a datum externalization never reads.

References

Declarations

L71–88

What a marked tree reads as, under readStep.

def readingL90–92
{β : Type u_1} (low : RoseTree (CopyMark × SyntacticObject.Vertex) → Prop) [DecidablePred low] (tr : RoseTree (CopyMark × SyntacticObject.Vertex) → Option LexicalItem.Token → β) (nd : SyntacticObject.Vertex → List β → β) (wrap : Option LexicalItem.Token → β → β) (del : RoseTree (CopyMark × SyntacticObject.Vertex) → SyntacticObject.Vertex → β → β) (t : RoseTree (CopyMark × SyntacticObject.Vertex)) :
β

Built from

Used by fold_readStep, reading_node, reading_some, reading_of_length_ne, reading_pair

L94–101
L103–108
L110–117
L119–128
L130–143
L153–156
L176–183
L190–202

The contraction

Objects with no lower copy

Binding at a reading is binding at the copy object

L298–341
L343–388

Binding at a reading is binding at the copy object, when no copy the reading deletes has a sister that is a copy of it.

theorem cCommands_unmark_of_cCommands_lfL390–398
{x y : LexicalItem.Token} {t : Marked} {low : Finset SyntacticObject} (hxy : x ≠ y) (hlow : ∀ r ∈ (↑t).subtrees, ∀ (k : CopyMark) (a : SyntacticObject.Vertex) (u v : RoseTree (CopyMark × SyntacticObject.Vertex)), r = RoseTree.node (k, a) [u, v] → ReadLow low u ∨ ReadLow low v → termOf u ≠ termOf v) (h : (↑(t.lf low)).CCommands ↑x ↑y) :
(↑t.unmark).CCommands ↑x ↑y

Built from , ,

L400–407