Formal Verification · All levels

Writing Good Properties: Decomposing Intent into Checkable Guarantees: Theory Deep Dive

Theory Deep Dive for Writing Good Properties: Decomposing Intent into Checkable Guarantees.

Foundational theory

Writing Good Properties: Decomposing Intent into Checkable Guarantees is a core topic in Property Development & Constraints. Treat each proof result as evidence under a modeled world, not a context-free truth statement.

Core concepts explained

  • Strong property authoring starts from requirement decomposition: split a broad requirement into trigger, preconditions, transition rule, and completion rule. Instead of one monolithic assertion, write layered properties that separately capture request legality, response latency bounds, and protocol ordering. This decomposition improves debug because each failing assertion points to one intent slice rather than a mixed symptom. Use helper sequences for repeated temporal fragments, include reset/disable conditions explicitly, and prefer local signal intent over implementation-specific deep state when architectural behavior is the signoff target. Properties should be precise enough to reject illegal traces but general enough to survive microarchitectural refactoring. ```systemverilog // Requirement: once req is accepted, rsp must arrive within 8 cycles sequence req_accepted; req && gnt; endsequence property p_rsp_within_8; @(posedge clk) disable iff (!rst_n) req_accepted |-> ##[1:8] rsp; endproperty assert property (p_rsp_within_8); // Separate safety slice: no response without an earlier accepted request property p_rsp_has_cause; @(posedge clk) disable iff (!rst_n) rsp |-> $past(req_accepted, 1, 8); endproperty assert property (p_rsp_has_cause); ```

  • Primary metric: non-vacuous closure rate, counterexample turnaround time, and requirement-level residual risk trend

  • Primary artifact: formal closure packet: assumptions audit, proof status matrix, counterexample classification, and requirement traceability

  • Owners: formal verification owner, rtl owner, verification lead

  • Proof quality includes vacuity and reachability, not pass/fail status only.

  • Assumption discipline is part of design correctness, not tool setup.

Why this matters in formal signoff

Property development is architecture translation work: requirement intent must survive decomposition, abstraction, and reuse. Teams that formalize this posture reduce false passes and late-stage surprises.

Mental model

diagram
CONE OF INFLUENCE REDUCTION

Full RTL graph:
  inputs -> decode -> datapath -> control -> outputs
                \         |
                 \------ checker signal

COI for property:
  inputs -> decode -> checker signal -> property

Prune unrelated logic to reduce solver state space.

Worked intuition

  1. Define requirement slice and property intent class (safety, liveness, or reachability).

  2. Audit assumptions and reset model before trusting any status outcome.

  3. Track movement in non-vacuous closure rate, counterexample turnaround time, and requirement-level residual risk trend with requirement-level ownership.

  4. Collect formal closure packet: assumptions audit, proof status matrix, counterexample classification, and requirement traceability before signoff or waiver decisions.

  5. Apply one bounded model or RTL change per debug hypothesis.

  6. Publish closure with residual risk and rollback conditions.

Common misconceptions

  • Green proof status always means silicon-safe behavior.

  • Faster convergence always means better model quality.

  • Unreachable cover goals are acceptable if safety assertions pass.

  • Bounded depth is equivalent to full proof unless a failure appears.

Formal deep dive

Property and constraint engineering is successful when decomposition, reuse, and abstraction preserve legal behavior.

Concept diagram

diagram
PROPERTY DEVELOPMENT PIPELINE

spec clause -> decomposed properties -> constraints -> covers -> closure packet

Metric graph

diagram
CONSTRAINT HYGIENE TREND

over-constraint risk    ████
cover reachability      ███████
library consistency     █████

Metrics and artifacts to collect

  • assume/assert separation coverage

  • critical cover reachability score

  • checker library adoption and drift

  • over-constraint warning trend

Mini case study

A reusable checker library reduced regression noise after assumptions were explicitly documented and reviewed per IP.

Debug branches

  • Review every assumption against a spec citation.

  • Use covers to confirm legal corner scenarios remain reachable.

  • Track abstraction choices in a rollback-ready ledger.

Senior review question

Ask: which requirement intent is proven, under which assumptions, and what residual risk remains?

Key takeaways

  • Tie each proof claim to assumption boundaries and reachability evidence.

  • Prefer minimal reversible fixes and preserve legal behavior visibility.

Common pitfalls

  • Treating runtime reduction as proof-quality improvement without audits.

  • Declaring closure while critical covers remain unreachable.

  • Using broad waivers instead of first-divergence root-cause ownership.

Theory reinforcement

Theory matters only when it predicts observed traces and closure movement.

Use precise terminology for safety, liveness, boundedness, and vacuity.