Table of contents
Produces
Formal definition
Production is a relation :
holding when creates a new instance of — did not exist (as ’s input) and comes into existence as ’s output.
One invariant. iff:
- Creation ex novo: brings a new instance into existence; is ’s output and was not supplied as ’s input. Production is not transformation (which takes an existing resource and modifies it) and not retrieval (which returns a pre-existing resource that the operation accessed). The produced resource is genuinely new.
Girard: linear logic construction
Jean-Yves Girard (Linear Logic, 1987): in linear logic, the right-introduction rules construct resources. The tensor introduction :
constructs a new resource from separate resources and . This is production: the resource is new; the and resources that went into it are consumed.
The 1-introduction: — the unit resource can be produced from nothing. This is the limiting case of production: creating a unit resource requires no inputs. Production from nothing (no consumed inputs) is the formal analogue of allocation.
Par (): the multiplicative disjunction. consumes the par to produce and separately. Par is the formal structure of a producing operation that “splits” one resource into two.
Petri nets: postset token deposit
Carl Adam Petri (Kommunikation mit Automaten, 1962): when a Petri net transition fires, it deposits tokens in its postset . Token deposit is the Petri net model of production: new tokens (resources) appear in output places where they did not exist before the firing.
The net balance of a transition: tokens consumed from inputs; tokens produced in outputs. Production-only transitions (no input places, ) are sources — they produce resources unconditionally. In workflow nets, the source place is the initial producer: it has a token in representing the workflow case being initiated.
Separation logic: heap allocation
Peter O’Hearn, John Reynolds, Hongseok Yang (2001): the allocation command produces a new heap cell:
Starting from an empty heap, allocation creates a new heap cell pointing to value . The new cell is produced — it did not exist before the allocation. The points-to assertion is new evidence in the post-state.
Open questions
- Whether production (creating from nothing) and consumption (destroying) form a symmetric pair in some formal sense — whether there is a duality between the introduction rules (production) and elimination rules (consumption) that makes dual to in the same way that conjunction-introduction is dual to conjunction-elimination.
- Whether the total production and consumption of resources in a closed system must be balanced (conserved), and whether this conservation corresponds to the balance between introduction and elimination rules in a proof-theoretically normalizable derivation.