Abstract syntax of PFCSes.
Expressions are built out of constants, variables, and field operations. A basic constraint is an equality between expressions. Constraints may be (conjunctively) grouped into named relations (see definition), which may be conjoined with equality constraints. A system of constraints is a collection of named relations, which are hierarchically organized, and of constraints that may reference the relations.