Glossary#
This page defines the words these docs use in a fixed sense and that no single reference page owns. A construct, such as a parameter or a macro, is defined on its language page.
The file and what reads it#
Spec
: Short for specification. The optimisation problem a file states: its dimensions, the data it expects,
its decisions and its rules. A spec holds no data. In Python it is a Spec,
the file as written and checked, which to_spec returns
(reading a spec and its program).
Model : A spec with data attached, which an engine builds and a solver takes. mathspec never holds one. The docs say "model" only in this sense.
Program
: What the file means, spec.program: every name typed, every macro expanded,
every operator a node.
Load
: What to_spec does. "Refused at load" means to_spec raises, before any
data exists.
Attach : What a consumer does when it puts data on a program. A rule about numbers can be checked only then, and the language checks none itself. The docs never say "bind" for it, so that bound means one thing: a lower or upper limit on a variable (variables).
Provide
: What the host model, the model a file is layered onto, does for a name under
given:. It holds a column or a row family of that name, on the same frame. A
consumer checks that the host provides each given name
(what a program does not build).
Consumer : A tool that reads a spec: an engine that attaches data and builds the rows a solver takes, a renderer such as the typesetter, or a checker (what counts as language).
Declaration : One named entry under one of the top-level keys: one dimension, one parameter, one constraint (file shape).
Coordinates#
Label
: One member of a dimension, wind say. The labels arrive with the data, in
the order that shift, sum_back and position() count along.
Coordinate : One point of a declaration's dimensions: one generator in one snapshot. A variable has one column at each coordinate it is built at, and a constraint has one row.
Frame : A declaration's own dimensions. An expression, a mask and a bound parameter must fit inside the frame they sit in (how dimensions combine).
Group
: The labels that one value of a relation column collects. within= keeps a
shift, a sum_back or a position() inside each group.
Masks and absence#
Mask · predicate : A predicate is a true-or-false expression in the where grammar. A mask is a predicate on a declaration, and the coordinates it admits.
Absence : No value at a coordinate. A masked-out variable has no column there, and a row that reads it is not built (absence).
Missing row
: A coordinate that a parameter's table has no row for. It is not absence: it
reads as 0 in arithmetic and as false in a where
(what creates absence).
Kinds of construct#
Primitive
: A construct built into the language, which every engine implements and the
typesetter prints: the operators and the where comparisons.
Formulation
: A block that states ordinary variables and constraints rather than being
one: piecewise: and sos: (piecewise curves and SOS).
A request for a new construct is a macro, a primitive or a formulation, or it is refused (how a new construct enters).
Words with two senses#
These words mean two things in these docs. The sentence around each one says which.
| Word | One sense | The other sense |
|---|---|---|
| row | a constraint at one coordinate | one line of a parameter's or a relation's table |
| column | a variable at one coordinate | one column of a data table or a relation |
| set | an sos: entry |
the set symbol of a dimension, \(\mathcal{G}\), in the legend |
| regime | one case of a cases: block |
one of two constraints, each under its own where: |
| domain | a variable's continuous, integer or binary |
the rows that hold a curve's link inside its breakpoint range |
| program | spec.program, the typed spec |
a linear or quadratic program, the problem a solver takes |
| the rows | the constraint rows of a spec | the expanded spec: the spec a formulation is written out as |