Check reference
Check a system promise has a concrete realization
A system promise needs a path toward realization. Despite its name, sys_has_software_child does not require a separate software requirement when the system requirement is traced directly to code or tests.
What the check observes
An eligible active system guarantee passes when it has an active software child through satisfies or the legacy parent field, an implementation trace, or a verification trace. An integration child alone does not qualify: a boundary contract is distinct from component-owned behavior. Assumptions, constraints, and terminal requirements are excluded from this downward guarantee predicate.
Example: the system requirement is implemented directly
Illustrative case. A small validation rule needs no extra layer that merely repeats it. Its implementation and test can trace directly to SYS-REQ-042. The structural check accepts that arrangement without demanding an artificial software child.
SYS-REQ-042: reject an empty account identifier
implemented_by → ValidateAccountID
verified_by → TestEmptyAccountID
A separate SW-REQ is useful only if it adds meaningful refinement.Resolve the finding
- Inspect whether the reported requirement has a real software child, direct implementation, or direct verifying test that is simply missing its trace.
- Add the legitimate relationship. Where the requirement is still abstract, derive a software responsibility with concrete inputs, outputs, and failure behavior.
- Keep unrealized promises visible as work. Do not add a placeholder test annotation or an unrelated child merely to satisfy the presence predicate.
Run and interpret
proof audit --check sys_has_software_child --verboseThis specification-stage check reports warnings for missing realization. Deprecated guarantees remain active; retired, superseded, and rejected records do not. Audit defaults to a warning failure threshold unless configured otherwise.
A verification link satisfies this structural check without this predicate itself proving a passing execution. Likewise, an implementation link does not establish correct behavior. Use execution and evidence-quality checks before concluding that the system requirement is met.
Continue from here
Check a child's live system parent. Decide when another requirement layer helps.
Bring a system promise that has no clear owner in code or the software specification. Bring a change to Proof.