Part VIII: Relations

Predica's denotational semantics is logic-first: path expressions denote logic frames, not relations directly. This part develops tuples and relations as a complementary point of view.

The purpose of this part is to connect Predica with relational-model concepts, describe useful extensional readings of logic frames, and record implementation-facing structures that may be used when materialising, indexing, optimising, or explaining query results.

In this part, tuples and relations are unheaded set-theoretic objects. A heading is an external result, type, or materialisation context. This distinction matters: there is only one empty relation, but that same relation may be placed under different headings.

The chapters move from the basic extension view and notation conventions, through headings and projection, to examples, relational-model correspondence, Supplier/Parts translations, materialised accessors, and implementation notes.