Skip to content

1.4 Dolo translation and open points

This section covers the mapping from dolo-plus blocks to vanilla Dolo dtcc/EGM blocks (for "horse" translation), plus open semantic issues.


1.4.1 Mapping to Dolo dtcc/EGM blocks (horse translation target)

The dolo-plus blocks are designed to map onto standard dtcc/EGM blocks that vanilla Dolo already knows how to compile and solve. For movers, the mapping is most naturally stated at the level of sub-equations (because Dolo collapses "shadow carry-back" into the expectation + direct_response_egm pair).

dolo-plus canonical dolo-plus sub-equation dolo-plus equation (as written) Dolo horse equation (as written) Maps to Dolo
\(\mathrm{g}_{\prec\sim}\) w = exp(y) + b[<]*r w[t] = exp(y[t]) + a[t-1]*r half_transition
\(\mathrm{g}_{\sim\succ}\) a[>] = w - c a[t] = w[t] - c[t] auxiliary_direct_egm
\(\mathrm{g}_{\sim\succ}^{-1}\) w = a[>] + c w[t] = a[t] + c[t] reverse_state
\(\mathbb{B}\) InvEuler c[>] = (β*dV[>])^(-1/γ) c[t] = (mr[t])^(-1/γ) direct_response_egm
\(\mathbb{B}\) ShadowBellman dV = (c)^(-γ) mr[t] = β*(c[t+1])^(-γ)*r expectation (RHS / integrand)
\(\mathbb{I}\) ShadowBellman dV[<] = r * E_y(dV) mr[t] = β*(c[t+1])^(-γ)*r (expectation performed algorithmically by the expectation block) expectation (LHS / output)
\(\mathbb{B}\) Bellman V = max_c{(c^(1-γ))/(1-γ) + β*V[>]} (implicit in dtcc/EGM; not explicit in horse YAML)
\(\mathbb{I}\) Bellman V[<] = E_y(V) (implicit in dtcc/EGM; not explicit in horse YAML)

Note on factor placement (v0.1): in the horse, the "expected marginal value" object mr typically already includes discount/return factors (e.g. mr[t] = β*(c[t+1])^(-γ)*r). In dolo-plus, we split these across sub-equations: dV (at the decision perch) is the marginal-utility integrand, r appears in \(\mathbb{I}\)[ShadowBellman], and β is applied in \(\mathbb{B}\)[InvEuler] via β*dV[>] (with dV[>] linked to dV[<] across stages).

Open point (does not block v0.1):

  • how to represent the "shock signature" canonically. Current direction: shocks are recorded as edge events in information_timing; once observed, they expand the information state x[·] at the next perch. We do not assign shocks their own slot-indexed state variables.

1.4.2 Other considerations

1.4.2.1 Open semantic point (keep explicit)

To make the "ShadowBellman" equations fully rigorous in T core (formerly “DDSL-CORE”), we must pin down:

  • what dV[slot] differentiates with respect to (which canonical state slot), and
  • where chain-rule factors (like r) belong (in the mover vs in the transition composition).

1.4.2.2 Underlying structure of the model (how functions are implied)

The dolo-plus surface syntax is not functional notation, but it implies functional objects once a solution method is chosen:

  • c becomes a policy function object (a decision rule)
  • V[slot] becomes a perch value-function object
  • dV[slot] becomes a perch marginal-value object

Exactly how these objects are constructed/evaluated is method-dependent and will be made explicit in T core / semantic directives. The purpose of the dolo-plus YAML is to provide a clean, modular, perch-aware representation that can be methodized later.