Transitions between context fibers #
[KvGR11] (Defs. 24, 27)
The hom type of indexed dynamic semantics: a Transition W M X Y is a
world-indexed relation between an X-assignment and a Y-assignment,
Y ⊇ X. Objects are bases; a DRS denotes an arrow X ⟶ X ∪ U;
sequencing is world-pointwise relational composition. The predecessor of
this file stated transitions on total assignments and carried
supported_left/supported_right invariants; typing the relation at the
assignments dissolves both, and the identity transition becomes plain
equality rather than agreement-on-X.
Applying a transition acts fiberwise on sets of possibilities — the
presheaf fibers of Category.lean — functorially (apply_comp). The
chapter's own name for the induced map is the (regular) Context Change
Potential (Def. 24); transition names the underlying relation, after
the transition-system reading of dynamic semantics ([Fer92],
cited there).
Main declarations #
Transition— the typed relation;id,compand their laws.Transition.apply— Def. 24's context change, on fibers.Transition.copy— repackaging along base equalities (theFilter.copypattern; the cast point, kept out of every statement).Transition.IsExtension— Def. 27(ii): established referents persist.Transition.randomAssign— the generating arrowX ⟶ insert x X.
A transition: a world-indexed relation from X-assignments to
Y-assignments. The grow field makes arrows context-extending —
bases never shrink.
- rel : W → (↑X → M) → (↑Y → M) → Prop
The world-indexed relation between input and output assignments.
- grow : X ⊆ Y
Bases only grow along an update.
Instances For
The identity transition at X: equality of assignments.
Equations
- DynamicSemantics.Transition.id X = { rel := fun (x : W) (e e' : ↑X → M) => e = e', grow := ⋯ }
Instances For
Sequencing: world-pointwise relational composition.
Instances For
Application to fibers #
Context change ([KvGR11], Def. 24), on the presheaf fibers: relate assignments through the transition, worlds preserved.
Instances For
apply is functorial: sequencing then applying is applying twice.
Application to root states #
Context change on root states ([KvGR11],
Def. 24 — the regular CCP): points of the X-stratum step to points of
the Y-stratum through the transition, worlds preserved. Index-free:
both sides are plain states.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Application lands in the target stratum.
Root application is functorial.
Root and fiber semantics agree under the classification: on the
X-stratum, the regular CCP applyState is apply, transported along
State.uniformEquiv — the relational collapse computes the root-state
update.
Random assignment #
The random-assignment transition ([GS91a]'s random
reset k[x]g, [Hei82]'s indefinite widening): preserve the input off
x, leave the output free at x — the generating arrow
X ⟶ insert x X of context extension.
Equations
- DynamicSemantics.Transition.randomAssign X x = { rel := fun (x_1 : W) (e : ↑X → M) (e' : ↑(insert x X) → M) => ∀ (v : V) (hv : v ∈ X), v ≠ x → e ⟨v, hv⟩ = e' ⟨v, ⋯⟩, grow := ⋯ }
Instances For
Typing total-assignment relations #
Frameworks state their clauses on total assignments (DPL's Definition 2,
DRT's verification). ofTotal types such a relation at contexts by
existential extension; the predecessor's supported_left/
supported_right fields return as hypotheses — ReadsAt/WritesAt —
carried by the framework's own congruence lemmas, and under them the
typing is faithful (ofTotal_rel_restrict) and functorial
(ofTotal_comp).
The relation reads its input only at X.
Equations
- DynamicSemantics.Transition.ReadsAt X R = ∀ ⦃w : W⦄ ⦃f f' g : V → M⦄, Set.EqOn f f' X → (R w f g ↔ R w f' g)
Instances For
The relation constrains its output only at Y.
Equations
- DynamicSemantics.Transition.WritesAt Y R = ∀ ⦃w : W⦄ ⦃f g g' : V → M⦄, Set.EqOn g g' Y → (R w f g ↔ R w f g')
Instances For
Type a total-assignment relation at contexts, by existential extension of the assignments.
Equations
- DynamicSemantics.Transition.ofTotal h R = { rel := fun (w : W) (e : ↑X → M) (e' : ↑Y → M) => ∃ (f : V → M) (g : V → M), X.restrict f = e ∧ Y.restrict g = e' ∧ R w f g, grow := h }
Instances For
Under the support hypotheses, the typing is faithful: related assignments are exactly the restrictions of related assignments.
Typing is functorial on composition, given read-support of the second relation: the mid-assignments stitch.
Repackaging along base equalities #
The substrate-safe form of eqToHom conjugation (mathlib's Filter.copy
pattern): composites whose indices differ by base identities — e.g.
(X ∪ U₁) ∪ U₂ against X ∪ (U₁ ∪ U₂) — are equated through copy,
keeping cast-free statements everywhere below the category layer.
Repackage a transition along equalities of its bases.
Equations
- u.copy hX hY = hX ▸ hY ▸ u
Instances For
Repackaged transitions compose to the repackaged composite.
Application is invariant under repackaging.
Root application is invariant under repackaging.
Information growth (Def. 27) #
A transition is an extension when outputs restrict to their inputs: established referents persist, only new ones are assigned.
Equations
- u.IsExtension = ∀ ⦃w : W⦄ ⦃e : ↑X → M⦄ ⦃e' : ↑Y → M⦄, u.rel w e e' → e = fun (v : ↑X) => e' ⟨↑v, ⋯⟩
Instances For
The identity is an extension.
Extensions compose.