Skip to content

Preserve Frama-C certificate negation during normalization - #1

Merged
trestoncuzzort merged 2 commits into
mainfrom
fix/framac-certificate-normalization
Oct 25, 2026
Merged

trestoncuzzort merged 2 commits into
mainfrom
fix/framac-certificate-normalization

Conversation

@trestoncuzzort

@trestoncuzzort trestoncuzzort commented Oct 25, 2026 •

Copy link
Copy Markdown
Owner

Frama-C rewrites a negated inequality as an equality, causing the certificate adapter to reject an otherwise accepted witness proof. An ACSL local binding keeps the predicate’s meaning and explicit negation intact through printing, preserving the existing contracts and rejection rules.

Validation at 2cd6a8c: the new native regression is verified/refuted in three repetitions per side; all three native negative controls remain rejected; the four-task control retains all 28 seven-kernel agreements. The matched full Frama-C columns cover all 114 tasks and are identical: 71 agreements, 42 abstentions, and the existing double_all timeout. The four-job Ubuntu/macOS unit matrix passed. Complete tables, logs and hashes are committed under t/evidence/2026-10-25-framac-certificate-binding.

Container and full-column run. Downstream dawnr grading requires fresh matched baseline and specification controls after synchronization.

Source: https://frama-c.com/download/acsl-implementation-20.0-Calcium.pdf, section 2.2 local binding. Keep the adapter guards and solver budgets unchanged. The real printer regression fails before this lowering change; eleven focused checks pass afterward. Native controls and matched full-column measurements are registered for the cloud container workflow.
@trestoncuzzort
trestoncuzzort marked this pull request as ready for review October 25, 2026 01:52
@trestoncuzzort
trestoncuzzort merged commit d1b57dc into main Oct 25, 2026
4 checks passed
trestoncuzzort added a commit to trestoncuzzort/dawnr that referenced this pull request Oct 25, 2026
Apply the certificate-only diff from upstream merge d1b57dc640512a81ff58c084a4e2f976c7d5c474 and retain its regression evidence. Keep the existing engine base and adapter import recorded separately. Three local text/printer checks pass; native and full-column evidence was measured upstream on GitHub.

Sources: trestoncuzzort/t-language#1 https://frama-c.com/download/acsl-implementation-20.0-Calcium.pdf
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.

1 participant