An apply written with products #
An apply L ⊳ R reads its right side at each row of its left side. Its
right side's table (Sym.tabQ) holds the encodings of the right side's
rows under every descriptor; so the apply is the product of its left side
with the descriptors, the table and enough copies of a pool of values,
where a row's descriptor is its own (Sym.matchSP), the table's row is
filed under that descriptor, and the copied values are the ones the
table's cells code (Sym.decCell) – projected on the left row and the
decoded values (Sym.applyX, Sym.evaluatePlain_applyX). No row of the
left side is read twice: the left side appears once, as the last factor,
so the construction applies as well inside a recursive term.
The columns of a row of the product: its left row.
Instances For
Dependency graph
The cell i of the row's descriptor.
Equations
- Sym.dIdx k n₂ i j = Fin.castAdd k (Fin.castAdd n₂ (Fin.castAdd ((k + n₂) * (7 + k)) (Sym.ci i j)))
Instances For
Dependency graph
A column of the row's table row.
Equations
- Sym.tIdx k n₂ z = Fin.castAdd k (Fin.castAdd n₂ (Fin.natAdd (k * (7 + k)) z))
Instances For
Dependency graph
The j-th decoded value.
Equations
- Sym.wIdx k n₂ j = Fin.castAdd k (Fin.natAdd (k * (7 + k) + (k + n₂) * (7 + k)) j)
Instances For
Dependency graph
The row's descriptor, the table row filed under it, and the values its cells code.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The values a decoded value is taken from: a pool, and the cut.
Instances For
Dependency graph
An apply, with products: the left side L (read once), the right
side R's table, and a pool VQ holding the left side's values.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The predicate on a row of the product #
The row of the product.
Equations
- Sym.prow d t w u = Fin.append (Fin.append (Fin.append d t) w) u
Instances For
Dependency graph
Rearranging a product #
The apply, with products, computes the apply #
The apply, with products, computes the apply, wherever the right side settles at the left side's rows and the pool holds their values.