properties — laws over owner-supplied meaning
A check answers one question about one input. A property states a law over a population, a relation, a wiring, or a history and turns a counterexample into typed evidence.
This home supplies the law shapes and the one conclusion algebra they share. The subject, sameness, ordering, transition meaning, and refusal reading remain caller-owned function pointers over otherwise unbounded types. No subject trait or product vocabulary enters here.
flowchart LR
accTitle: Property evidence flow
accDescr: Caller-owned semantics enter a law perspective, each perspective reaches the shared typed conclusion road, and the result composes into ordinary report evidence.
O([Caller-owned semantics])
subgraph P[Law perspectives]
direction TB
A[Declared algebra]
M[Related runs]
Y[Two roads]
C[Composed roads]
T[Whole histories]
R[Refusal and lawful twin]
end
O --> A
O --> M
O --> Y
O --> C
O --> T
O --> R
A --> D{Demand holds?}
M --> D
Y --> D
C --> D
T --> D
R --> D
D -->|yes| H[Typed pass]
D -->|no| F[Typed finding]
H --> E([Ordinary report evidence])
F --> E
Declared-algebra laws compare a subject with the algebra its owner stated. Metamorphic laws relate runs without requiring a known right answer. Parity compares separately maintained roads only after the caller declares what they share. Composition reads law shapes over a wiring rather than pretending correct steps imply correct assembly. Temporal laws read every state in a driven history. Refusal laws pair hostile material with its lawful twin so a subject that refuses everything cannot impersonate fail-closed behavior.
Histories come from the harness’s sequence driver rather than from a private generation loop in this home. A failing sequence remains the counterexample that generation and reduction can retain, minimize, and replay.
Evidence ceilings
A declared-algebra law proves only that the subject honors the algebra its owner declared. An incorrect declaration faithfully implemented can still pass.
Agreement between two roads is silent about every foundation they share. Parity therefore requires either a nonempty shared-substrate roster or an explicit declaration of independence. The latter is the strongest statement in this vocabulary and has no inferred construction road.
A disagreement names the relation or road pair, never the culprit. Determining which side moved requires evidence outside the comparison itself.
Caller-supplied functions retain ordinary Rust effects and unwind behavior. The runner observes an unwind at its own boundary; this home does not relabel one as a property verdict.
Nonclaims
- This home does not infer equality, order, transition meaning, or refusal shape from a subject.
- It does not inspect prose to classify an answer.
- It does not promote a generation drive that admitted no sequence, an empty shared-foundation roster, or a claim-free transition contract into passing evidence.
- It does not answer for the truth of a caller’s declaration beyond the relation the caller supplied.