feat: verify data-flow source bits #24
No reviewers
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Slipstream/emc!24
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/verify-data-flow-source-bits"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
quint.json,emc verify, and MCP verify process plans.emc checkreports drift when the obligation is missing from generated artifacts.Rationale
Information completeness needs data-flow chains to preserve bit-level semantics across modeled transformations and projections. The formal artifacts already require bit-complete rows and target-level bit matching for displayed and external payload fields; this change adds a root-level proof obligation for source-hop consistency between modeled data-flow rows without adding Rust or JavaScript semantic validation.
Verification
cargo nextest run init_creates_deterministic_project_layout --no-tests=failcargo fmt --check && cargo nextest run -E 'binary(init_project) | binary(check_project) | binary(verify_project) | binary(mcp_verify)' --no-tests=fail && cargo build --quiet && git diff --checknix develop -c sh -lc 'cd <generated-smoke-project> && lake env lean model/lean/RepairDesk.lean && quint typecheck model/quint/RepairDesk.qnt && quint verify --invariant modelDataFlowSourceBitEncodingsMatchModeledSources,modelDataFlowsAreBitComplete model/quint/RepairDesk.qnt'UTF-8 stringtoUTF-16 stringcaused Lean to fail atmodelDataFlowSourceBitEncodingsMatchModeledSourcesand Quint to report a counterexample for the same invariant.The PR introduces a new verification obligation to ensure data-flow source hops preserve bit encodings, enhancing data integrity checks. The changes appear well-integrated into the existing verification processes, but careful review of the logic and edge cases is advised.
Walkthrough
modelDataFlowSourceBitEncodingMatchesModeledSourceandmodelDataFlowSourceBitEncodingsMatchModeledSourcesto verify bit encoding consistency.quint.jsonto include the new invariantmodelDataFlowSourceBitEncodingsMatchModeledSources.LLM usage and cost
Estimated total USD: $0.101375 via https://api.openai.com and https://api.openai.com
🟡 Warning: Lines 6–14: Verify that the
modelDataFlowSourceBitEncodingMatchesModeledSourcefunction correctly handles cases where no source flow matches the criteria, as this could lead to false positives or negatives in verification.Addressed auto_review warning about edge cases:
raw_ticket_title). Lean and Quint both accepted the valid UTF-8/UTF-8 chain.UTF-16 string; Lean rejectedmodelDataFlowSourceBitEncodingsMatchModeledSourcesand Quint produced a counterexample for the same invariant.TicketCaptured.ticket_titlestill need a later schema-level representation change because Quint does not support constructing/comparing derived string coordinates in a way that would make that robust.