Signal

A signal is a named value that always equals its definition, like a spreadsheet cell: B1 = A1 * 2 is never assigned, it is kept equal to twice A1.

bondy
signal too_hot := temperature > 100.0

You define a signal and read it; you never set it. When an input changes, the signal is recomputed. The declaration form parses today; the engine that recomputes signals is designed but not yet built.

Not to be confused with a fluent: a signal has no memory, a fluent remembers when it became true and why.