Skip to content
EN FR

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.