← All specifications

DO-178C Software Assurance — ponens Policy Pack

This pack maps the RTCA DO-178C / EUROCAE ED-12C airborne-software certification objectives onto computable ponens policies. It is a different domain from the financial-regulator packs, but an unusually good fit: DO-178C’s defining requirement is bidirectional traceability (system → high-level requirements → low-level requirements → source code → tests), which ponens expresses directly with its P_chain lineage operator over the software life-cycle record treated as a trace.

Source: RTCA DO-178C / EUROCAE ED-12C — Software Considerations in Airborne Systems and Equipment Certification, objectives per Annex A tables A-1 to A-10.

Why this maps onto ponens

DO-178C assures software by objectives, organised in Annex A tables and scaled by Design Assurance Level (A–E, by failure-condition severity: A=71 objectives, B=69, C=62, D=26, E=0). Two shapes of objective dominate, and both are native ponens:

DO-178Cponens
The software life-cycle data + activitiesthe trace (actions + artifacts with lineage)
An Annex A objectivea policy (temporal / lineage formula)
Design Assurance Level (A–E)a policy’s tier
”with independence” objectivean Amber escalation

Trace model

Worked traces: examples/do178c/governed.json (all 19 Green; built with a real system→HLR→LLR→code→test artifact DAG) and violating.json (14 Red + 1 Amber; lineage links removed). Run ponens trace check <file>.

The pack (by Annex A process area)

errorRed; warningAmber. tier = applicable DAL range.

Planning — A-1 (conformance)

PolicyFormulaDAL
plans_before_developmentG((HLR ∨ LLR ∨ SourceCode) → P(plans_approved))A-D
standards_definedG(SourceCode → P(standards_defined))A-C

Development & Traceability — A-2 (structural / safety)

PolicyFormulaDAL
hlr_trace_to_systemG(HLR → P_chain(SystemRequirement))A-D
llr_trace_to_hlrG(LLR → P_chain(HLR))A-D
code_trace_to_llrG(SourceCode → P_chain(LLR))A-D
derived_requirements_to_safetyG(DerivedRequirement → P(safety_assessed))A-D

Verification — A-3/4/5 (safety)

PolicyFormulaDAL
hlr_verifiedG(HLR → reviewed ∧ requirements_accurate)A-D
llr_verifiedG(LLR → reviewed)A-C
code_verifiedG(SourceCode → reviewed ∨ analyzed)A-C
verification_independentG((HLR ∨ LLR ∨ SourceCode) ∧ dal_a → independent_review)A-B (Amber)

Testing & Coverage — A-6/7 (safety / structural)

PolicyFormulaDAL
tests_requirements_basedG(Test → requirements_based)A-D
test_traces_to_requirementG(Test → P_chain(HLR))A-D
structural_coverage_achievedG(CoverageAnalysis → coverage_achieved)A-C

Configuration Management — A-8 (auditability)

PolicyFormulaDAL
artifacts_baselinedG((HLR ∨ LLR ∨ SourceCode ∨ Test) → baselined)A-D
changes_controlledG(Change → P(change_approved))A-D
problem_reports_closedG(ProblemReport → F(resolved ∨ deferred_with_rationale))A-D (Amber)

Quality Assurance — A-9 (auditability)

PolicyFormulaDAL
sqa_conformityG((HLR ∨ LLR ∨ SourceCode) → sqa_reviewed)A-D

Certification Liaison — A-10 (conformance)

PolicyFormulaDAL
psac_agreedG((HLR ∨ LLR ∨ SourceCode) → P(psac_agreed))A-D
accomplishment_summaryF(AccomplishmentSummary)A-D

Aggregation

ponens trace check aggregates the pack: any error fail ⇒ Red (a certification gap — e.g. a missing traceability link, an unverified requirement, an unbaselined item, or an absent Accomplishment Summary); else any warning fail ⇒ Amber (independence, problem-report closure); else Green.

Notes & out of scope