Skip to content

proof(#84): discharge 3.2 bounded external interaction (property)#164

Merged
hyperpolymath merged 1 commit into
mainfrom
claude/neurophone-repo-setup-envzix
Jul 1, 2026
Merged

proof(#84): discharge 3.2 bounded external interaction (property)#164
hyperpolymath merged 1 commit into
mainfrom
claude/neurophone-repo-setup-envzix

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

Completes the last self-contained obligation in the #84 proof map.

3.2 (bounded external interaction) was already substantially covered in claude-client
— a capped, saturating backoff_delay (documented "obligation 3.2"), a bounded
max_retries retry loop, and tests backoff_is_bounded_and_monotonic +
user_content_cannot_inject_into_request_json — so proofs/README.adoc marking it
"open" was an underclaim.

  • Add total_retry_budget_is_finite: the retry loop runs a bounded number of
    attempts and each wait is the capped backoff, so the worst-case total wait across
    the whole external interaction is finite and bounded — the property "bounded external
    interaction" actually asserts (complements the per-delay cap test).
  • Correct 3.2 to property-discharged in proofs/README.adoc, the Trustfile
    PROOF_ARTIFACTS map, and STATE.a2ml.

Ground truth: claude-client 9 tests pass; cargo clippy --all-targets -- -D warnings
clean; cargo fmt --check clean; must-check exit 0.

Proof-map status after this PR (#84)

FLAGS (unchanged)

🤖 Generated with Claude Code

https://claude.ai/code/session_0172RBMz3qYjb1ttzD2i7RNh


Generated by Claude Code

3.2 was already substantially covered in claude-client (capped saturating
`backoff_delay` documented "obligation 3.2", a bounded `max_retries` retry loop,
and tests `backoff_is_bounded_and_monotonic` + `user_content_cannot_inject_into_
request_json`), so proofs/README marking it "open" was an underclaim.

- Add `total_retry_budget_is_finite`: the retry loop runs a bounded number of
  attempts and each wait is the capped backoff, so the worst-case TOTAL wait
  across the whole external interaction is finite and bounded (not just each
  individual delay) — the property that "bounded external interaction" actually
  asserts. Verified: claude-client 9 tests pass.
- Correct the status of 3.2 to *property*-discharged in proofs/README.adoc,
  the Trustfile PROOF_ARTIFACTS map, and STATE.a2ml.

This is the last self-contained obligation in the #84 map. Remaining OPEN are
research-grade / external: 1.1 (formal ESP contraction; precondition holds),
1.2 (formal Dafny bound; property evidence exists), 2.2 (N/A single-owner),
3.1 residual (egress veto — external conative-gating #103).

Ground truth: cargo test green, clippy --all-targets -- -D warnings clean,
fmt clean, must-check exit 0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0172RBMz3qYjb1ttzD2i7RNh
@sonarqubecloud

sonarqubecloud Bot commented Jul 1, 2026

Copy link
Copy Markdown

@hyperpolymath
hyperpolymath marked this pull request as ready for review July 1, 2026 13:21
@hyperpolymath
hyperpolymath merged commit 87fb568 into main Jul 1, 2026
30 of 31 checks passed
@hyperpolymath
hyperpolymath deleted the claude/neurophone-repo-setup-envzix branch July 1, 2026 13:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants