Topic · L1 system complete

L1 system complete

Gist

A SYS-REQ with a satisfies: id and an empty description: is not a complete system layer. Proof runs proof audit --check l1_system_complete. A Jama shall is not this hop. Jama still authors.

proof audit --check l1_system_complete

Keep the Jama shall if it already names the system. Keep the tests if they still pass. Neither one fails closed when the SYS-REQ still has no description, or claims FRETish with an empty formula.

01 · The silent last pass

The upward edge can print clean because someone typed an STK-REQ id.

You can ship an active SYS-REQ, keep traces.satisfies filled, and still leave description: empty. The linked hop then passes. This hop does not.

The check is l1_system_complete. It is SPEC-stage. Default severity is error. It always runs unless you pass --skip-level L1. It loads every active system requirement. Terminal and rejected tombstones are out of the denominator. For each remaining SYS-REQ it asks three questions: does traces.satisfies name at least one stakeholder requirement, is description: non-empty, and if formalization_strategy is fretish, is fretish: also non-empty. It does not rewrite the YAML. It does not call Z3. It does not call Kind2.

The upward-edge hop stays on system requirements linked. That hop only asks whether satisfies: is populated. This hop also asks whether the body was written, and whether a FRETish claim actually has a sentence. The formula floor for every active SYS-REQ, with no informal opt-out, stays on system formalization complete. Informal is allowed here. It is not allowed there. The graph of declared levels stays on levels connected. L0 file existence stays on stakeholder requirements.

Each SYS-REQ can look fine on its own. The Jama cell still names the system. Reviewers signed the English in another tool. system_requirements_linked is green because an STK-REQ id is present. Downstream hops that need a behavior then skip or pass empty, because there is no description to decompose and no FRETish to vacuity-check. Other SPEC hops miss this because they never ask those three fields together.

The expensive miss is a deploy that treats the id as the contract. The English was never written. The formula was never written. This hop is the gate that names the empty description, the missing satisfies list, or the FRETish strategy with an empty formula.

# SYS-REQ-200
# status: approved
# traces.satisfies: [STK-REQ-010]
# description:   (empty)
# proof audit --check system_requirements_linked
# pass. the id is there
# proof audit --check l1_system_complete
# [SPECIFICATION] l1_system_complete
# SYS-REQ-200 has empty description
# ERROR
# say what the system must do

The fix is a human authorization, not a rewrite of Go. Add a satisfies: link if it is missing. Write a description that says what the system must do. If you claimed FRETish, write the sentence, or drop the claim and set the strategy to informal in the .req.yaml. Do not delete the SYS-REQ to silence the checker. Then re-run SPEC.

proof audit --check l1_system_complete --verbose
proof workflow check --stage spec --only l1_system_complete
proof help l1_system_complete

02 · The exhibit

Same active SYS-REQ. Silent last pass, or this hop.

One last green linked hop while SYS-REQ-200 is active, has an STK-REQ id, and still has an empty description. Click the tabs.

The stamp

  • Ask does traces.satisfies name an STK-REQ
  • Stamp linked last pass. SYS-REQ-200 description still empty
  • Why the id is present. nobody asked for a body
Parent hop green

This hop

Nobody asked whether the active SYS-REQ also has a description, or a FRETish sentence when the strategy claims one. The finding kind is this hop.

Need unread

The stamp

Keep the Jama cell. Keep the satisfies id. That is not this hop.

Keep the record

Proof

  • Ask does SYS-REQ-200 still lack a description
  • Out l1_system_complete, 1 ID, error
Empty description

Same active SYS-REQ. Silent last pass, or this hop. Click the tabs.

Surface What they do What Proof does What we lose
Green tests The last samples that still unioned. Whether the active SYS-REQ has a body and an upward edge. We do not rerun the suite here. A green stamp is not this hop.
System requirements linked Whether satisfies: names a stakeholder id. Whether that edge exists, the description is written, and a FRETish claim has a sentence. Not the linked-only hop. See system requirements linked.
System formalization complete Whether every active SYS-REQ has non-envelope FRETish. Informal is not an opt-out. Whether the body exists. Informal is allowed here. Not the formula floor. See system formalization complete.
Levels connected Whether declared L0, L1, and L2 join as one graph. Whether each active SYS-REQ is itself complete. Not the graph hop. See levels connected.
Stakeholder requirements Whether any STK-REQ file exists. Whether the system children of those files are complete. Not L0 existence. See stakeholder requirements.
LDRA / VectorCAST An avionics toolchain that already owns MC/DC on C. An error the audit can name next to an empty description. We do not replace LDRA. We have not run a frozen VectorCAST corpus. See Proof vs LDRA.
Jama cell A shall, and a parent if you type it. An error the audit can name next to the empty body. Not Jama's V&V. Jama still authors. We have not run a frozen Jama pack.

The teaching graph is still one active SYS-REQ with an STK-REQ id and an empty description. Close it by writing the body. Do not delete the YAML. Do not invent a second SYS-REQ. A FRETish strategy with empty fretish: is a second finding on the same hop. Informal strategy is a pass of this hop and a fail of system formalization complete. Zero SYS-REQs is a pass, not completeness. --skip-level L1 skips the hop. Rejected and terminal tombstones are out of the count.

# SYS-REQ-200 kept. satisfies STK-REQ-010. description written
# The rate limiter shall reject a request that exceeds the
# configured limit with status 429.
# proof audit --check l1_system_complete
# N SYS-REQs fully linked and described
# SPEC may move on. pass sits on a body

The linked hop stays on system requirements linked. The formula hop stays on system formalization complete. The graph hop stays on levels connected. The rewrite hop stays on characterization testing and mirrors. Jama still authors. Proof vs Jama.

03 · The honest loss

Proof names the empty body. It does not write the YAML, and it does not prove the Go.

A quiet proof audit --check l1_system_complete means every active SYS-REQ currently has a satisfies id, a description, and a FRETish sentence when it claimed one, or that nothing in-scope asked. Jama still authors.

Error when an active SYS-REQ lacks those three fields. Default severity fails the merge unless you lower it in proof.yaml, add a waiver, or skip the L1 level. Zero SYS-REQs is a pass, not a complete system layer. The hop does not write the description. It does not add a shall. It does not prove the named STK-REQ exists. HasSatisfies is a boolean on the row, not a lookup of the target file. It does not prove the Go. It does not run Kind2. It does not measure independence. It does not say every active SYS-REQ has non-envelope FRETish. That hop is system formalization complete. Informal is allowed here. A quiet hop is not a proof that Jama's shall matches the Go, only that every in-scope SYS-REQ currently has a body and an upward edge. We have not scored this floor against a frozen Jama pack or a VectorCAST corpus. The loss is named, not scored.

The linked hop stays on system requirements linked. The rewrite hop stays on characterization testing and mirrors. The engagement stays on software correctness audit. Jama still authors.

04 · Nearby questions

What people type next.

What is L1 system complete? Same question. Same URL.

Is this system requirements linked? No. That hop is whether satisfies: is populated. This hop also asks for a description and a FRETish sentence when the strategy claims one. See system requirements linked.

Is this system formalization complete? No. That hop requires non-envelope FRETish on every active SYS-REQ. Informal is not an opt-out there. Informal is allowed here. See system formalization complete.

Is this levels connected? No. That hop is whether declared L0, L1, and L2 join as one graph. This hop is whether each active SYS-REQ is itself complete. See levels connected.

Is this stakeholder requirements? No. That hop is L0 file existence. This hop is L1 completeness. See stakeholder requirements.

Can I mark a SYS-REQ informal to skip this hop? Informal skips the FRETish field on this hop. It does not skip the description or the satisfies list. It does not skip system formalization complete.

Does a quiet hop prove the named STK-REQ exists? No. The hop observes that a satisfies list is non-empty. It does not open the target file.

Does a quiet hop prove the Go matches the shall? No. The hop observes fields. It does not prove the Go.

Does an empty description fail the merge? Yes by default. The check keeps error severity unless you lower it in proof.yaml or skip L1.

Is zero SYS-REQs a complete L1? No. Zero rows is a pass of this hop, not a system layer.

Is this characterization testing? No. That page is rewrite-with-a-ledger. This hop is an empty body on a SYS-REQ. See characterization testing and mirrors.

Is Proof an LDRA alternative for the instrument? No. LDRA still owns the avionics toolchain. Proof vs LDRA.

Is Proof a Jama alternative for the shall? No. Jama still authors. Proof vs Jama.