Library / First Principles Framework (FPF) - Core Conceptual Specification
Jump to passage
In this reading

Link to current text

Published source confirmed at last check

Source changed 2026-10-03 11:52:20 UTC · snapshot created 2026-10-03 11:53:41 UTC · last check 2026-10-03 11:55:15 UTC

A.19:5.1.8 - CharacteristicSpacePredicate (by-value)

A CharacteristicSpacePredicate is a typed unary predicate over one declared space:

P : D_P -> Boolean, where D_P is a declared subset of CS.

Its input variable denotes one state. The predicate declares which coordinates it reads and any projection used to obtain them. Its complete by-value meaning contains:

  • the exact CharacteristicSpace, input variable, domain, and coordinate projection;
  • each read Coordinate’s Scale and value interpretation;
  • any exact coordinate projection or A.19.UNM normalization instance used to obtain those inputs;
  • the operators, cuts, bands, regions, or unary subpredicates used in its Boolean expression; and
  • the polarity that says which outcome satisfies the predicate.

Conditions defined by thresholds, bands, and regions are unary predicates of this kind. Compose predicates with logical operators only after their input bindings and domains are aligned; otherwise give the composition an explicit binding that makes the conversion visible. A dominance or other comparison between two states is instead a typed binary comparison relation such as R : D_left x D_right -> Boolean, governed by A.19.CPM or another direct comparison pattern. Its comparator application and result are not components of a unary CharacteristicSpacePredicate. Use a genuinely n-ary predicate only when its full variable roles, domains, projections, and result type are declared.

An arbitrary condition relation is not automatically a state or Coordinate. A use binds either a direct characteristic assignment or an explicit governed projection from its subject/input tuple to the predicate input. When the affected entity differs from the condition participants, the consumer also states that direct relation. An F.9 Bridge relates two exact local senses; it is not this subject-to-input binding.

The predicate carries no applicability, assessment, observation, evidence, or evaluation window. A consumer separately binds the exact U.ClaimScope, relevant U.ContextSlice membership, effective reference scheme and plane, application or evaluation window, available input, and evaluation operation. An evaluation may return unknown, not-applicable, or error when input or applicability is unresolved; those consumer results do not enlarge the predicate’s Boolean codomain or the space’s Scale value sets. When asserting a particular performed evaluation as U.Work, establish its A.13 basis and then its independent A.15.1 admission; keep its operation application and result separate from the predicate.

Predicate identity changes when one of these semantic components changes. Wording, notation, carrier, publication, identifier, or description-edition changes alone do not create another predicate. A consumer may evaluate the same predicate in another scope or window, but may not silently change its space, projection, Scale, normalization, expression, cut, band, composition, or polarity. An obtaining semantic Bridge or plane relation may be cited by one consumer use without becoming part of predicate identity.

Minimally viable case. In a pump space with batteryVoltage on the volt Scale, batteryReady(x) := x.batteryVoltage >= 24 V is a unary predicate with Boolean result. A maintenance check separately binds Pump #37, its current measured input and window, and the evaluation result. Comparing two pumps by voltage would be a separate binary comparison relation, not a second reading of batteryReady.