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

  1. Inspect whether the reported requirement has a real software child, direct implementation, or direct verifying test that is simply missing its trace.
  2. Add the legitimate relationship. Where the requirement is still abstract, derive a software responsibility with concrete inputs, outputs, and failure behavior.
  3. 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 --verbose

This 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.