A.6.P:4.3 — Slot‑explicit qualified relation records (recover hidden arity)

Preface node heading:a-6-p-4-3-slot-explicit-qualified-relation-records-recover-hidden-arity:10748

Content

A conforming text SHALL ensure that each in‑scope relation instance is representable as a Qualified Relation Record (a first‑class record/episteme in the relevant Context) that fills the relation’s slots.

Conceptual notation‑neutral shape:

Notation note (A.6.5 alignment). In this family refMode is a slot‑content mode: either ByValue (inline value of the declared ValueKind) or a concrete RefKind token (slot holds a reference/pin of that RefKind).

QualifiedRelationRecord :=
⟨ relationKind : RelationKind, // vocabulary token / registry entry (signature-level)

  // participant positions (pattern-specific; contract fixes SlotSpecs)
  p₁ : SlotContent(VK₁, refMode₁),
  …,
  pₙ : SlotContent(VKₙ, refModeₙ),

  // qualifier kit (pattern-specific; contract selects subset)
  scope?       : SlotContent(U.Scope, ByValue | RefKind),
  Γ_time?      : SlotContent(U.GammaTimePolicy, ByValue), // time selector/policy; not an evidence freshness proxy
  viewpoint?   : SlotContent(U.Viewpoint, ByValue | RefKind),
  view?        : SlotContent(U.View, ByValue | RefKind),
  refScheme?   : SlotContent(U.ReferenceScheme, ByValue | RefKind),
  reprScheme?  : SlotContent(U.RepresentationScheme, ByValue | RefKind),

  witnesses?   : SlotContent(VK_wit, ByValue | RefKind)

Slot naming guard. *Slot suffix names positions (SlotKinds), not occupants; prose SHOULD use occupant names (scope, witnesses, base, dependent, …) for fillers. This is the same guard used in A.6.6 and A.6.5.

Well‑formedness principle. The record is “typed by contract”: SlotSpecs are fixed by the selected RelationKind token, and missing slots are permitted only if the contract says they are optional. This mirrors A.6.6’s scoped/witnessed declaration move (SWBD): “shape + contract makes a concrete typed signature”.

Well‑formedness constraints (non‑deontic).

  • WF‑A6P‑QR‑1 (Required slots are present). For any QualifiedRelationRecord r with r.relationKind = k, r provides values for every SlotSpec that k marks as required.
  • WF‑A6P‑QR‑2 (No silent kind swap). relationKind is part of a record’s identity/edition boundary. If the kind changes, the result is represented as a distinct record/edition linked by an explicit changeRelationKind (or an explicit withdrawal + re‑declaration), not as an in-place mutation that preserves identity.

Normative prose forms (Tech). In Tech/normative prose, authors SHALL express an in‑scope relation instance in one of the following equivalent forms:

  • Functional form: relationKind(p₁=…, …, pₙ=…, qualifiers…)
  • Arrow form (binary projection only): p_left --relationKind{qualifiers}--> p_right

Passive umbrella voice (“X is synced/linked/anchored …”) is permitted only as Plain gloss when immediately rewritten into one of the above forms.

Cross‑Context/plane note (recipe-level). If any participant/qualifier implies cross‑Context or cross‑plane reuse, the routed claim bundle MUST cite the relevant Bridge ids + CL policy (and loss notes, when applicable) in the appropriate routed claims (typically A-* and/or E-*). Label identity is not an admissible substitute.