Skip to content

foundations:: [[periods-nests-theory]], [[core-ddsl-FFP-concepts]] semantic-rules:: [[0.4-periods-models]], [[1.1-variable-declaration]], [[1.3-equation-blocks]] implementation:: [[spec_0.1h-periods-nests]] literature:: [[359576.359579.pdf|Backus 1978 - Can Programming Be Liberated]], [[john-backus.pdf|John Backus biographical overview]]

1.2 Stage structure and timing

This section covers perch semantics, the filtration / information structure, and inter-stage links.

1.2.1 Perch information index

Indices now reflect the order of measurability of each state-space within the stage. The perch information sets form a filtration:

\[ \mathcal{F}_{-1} \subseteq \mathcal{F}_{0} \subseteq \mathcal{F}_{+1}, \qquad \mathcal{F}_{i} := \sigma(x[i]). \]

Convention (v0.1; Option B): x[i] denotes the information state at perch \(i\), i.e. everything measurable by (and including) perch \(i\). In particular, shocks recorded as edge events in information_timing become measurable at the next perch, and are therefore part of x[·] at that perch (even if we do not treat shocks as slot-indexed state variables).

The key departure is the re-casting of dolo "periods" into modular stages with perches. The filtration is generated by these information-state slots x[·].

Within one stage, Dolo time indices are re-expressed as canonical perch slots:

  • t-1 → slot -1 (arrival)
  • t → slot 0 (decision)
  • t+1 → slot +1 (continuation)

In a "primal" (single-stage-per-period) model, you can recover the original time interpretation by rewriting perch slots back to [t-1,t,t+1] (this is one reason we keep the -1/0/+1 canonical slot language in v0.1).

Surface perch tags (recommended v0.1): in stage-mode equations, we avoid numeric-looking indices by using perch labels. The preferred forms are glyph tags:

  • arrival: [<] (preferred) — aliases: [_arvl], [<-]
  • decision: unmarked (preferred) — aliases: [_dcsn], [-]
  • continuation: [>] (preferred) — aliases: [_cntn], [->]

All forms are accepted. The Dolang+ parser normalizes glyph and arrow tags to canonical _arvl/_dcsn/_cntn before parsing (see dolang.grammar.normalize_perch_glyphs), then maps to canonical numeric slots (-1/0/+1) before translation.

In this IID consumption–savings example, an income shock y is realized between slot -1 and slot 0. This "information edge" matters for what can be shifted across perches.

Under the convention above, since y is observed at slot 0, it is measurable with respect to \(\mathcal{F}_{0}\) (and thus part of the decision-perch information state x).

1.2.2 Underlying states and values (built into every stage)

dolo-plus reserves canonical "underlying" objects that every stage has. In surface syntax we write them with perch tags:

  • Underlying information-state slots: x[<], x, x[>] (or equivalently x[_arvl], x[_dcsn], x[_cntn])
  • Underlying value slots: V[<], V, V[>] (or V[_arvl], V[_dcsn], V[_cntn])
  • Underlying shadow value slots: dV[<], dV, dV[>] (or dV[_arvl], dV[_dcsn], dV[_cntn])
  • Description of the outgoing mover problem: #ambiguity

Think of these as the underlying semantics of dolo-plus: all stages come with these slots. Modeller-declared variables are then labels bound to these slots via a slot map. (The distinction becomes important when shocks are unobserved or when information states differ from latent states.)

Example binding intuition:

  • declaring poststates: [a] means "bind continuation slot":
\[ x[>] \leftarrow a \]

Similarly, in this example the slot map binds:

  • \(x[<] \leftarrow b\)
  • \(x \leftarrow w\)

Then we can use the notation \(x_{\prec, S_{0}} \leftarrow b\) to say that the cntn perch of S0 is b.

Periods and nests own stage composition

periods #nests #connectors #twisters

This page stays stage-local: perch semantics and within-stage timing.