Polyadic Map
Documentation status: architecture — see Maturity and evidence.
A polyadic map is a first-class Runtime structure that aligns role positions between polyadic conceptual structures.
It is not merely documentation that says "role A corresponds to role B". The engine carries polyadic maps through subtype constraints, logical relations, matching, unification, and structural projection.
Why mappings are necessary
Polyadic concepts are role-sensitive. Two structures may be semantically compatible even when their internal role order differs or when one concept specializes another with a different structural projection.
Conceptually:
Expected: Relation(subject, object, time)
Actual: SpecializedRelation(actor, at, target, ...)
PolyadicMap:
subject -> actor
object -> target
time -> at
The mapping lets the Runtime compare or project structures without pretending that raw positional equality is sufficient.
Where the Runtime uses it
The current engine sources show polyadic maps participating in:
- subtype/supertype tests;
- implication and comparability;
- constraint evaluation;
- pattern matching and inherited-kind projection;
- logical-relation structure;
- unification and structural mapping/composition paths.
Logical relations reserve a dedicated polyadic-map position before source, target, and context. This makes role alignment part of the relation itself.
Inference versus explicit mapping
The Runtime can derive mappings in cases where type/role structure provides enough information, but application documentation should not rely on slot order as a substitute for semantics. When role correspondence is significant or ambiguous, make the intended role meaning explicit.
Design rule
Treat a polyadic map as a semantic transformation between role spaces. It should preserve the meaning of roles across specialization, comparison, or projection rather than merely reshuffling values.