Skip to content

Add forward ecall with framed preconditions#937

Open
strub wants to merge 1 commit intomainfrom
call-fwd-auto-frame
Open

Add forward ecall with framed preconditions#937
strub wants to merge 1 commit intomainfrom
call-fwd-auto-frame

Conversation

@strub
Copy link
Member

@strub strub commented Mar 12, 2026

This extends ecall to support forward calls on Hoare goals via ->>, while keeping backward behavior for existing uses.

It refactors call postcondition generation into reusable helpers, adds proof-term/program-variable substitution utilities needed to instantiate contracts cleanly, and checks that the supplied contract matches the targeted procedure(s). For forward Hoare calls, the tactic now automatically frames precondition conjuncts that are independent of the call’s writes.

A regression test is added in tests/forward-call.ec.

@strub strub self-assigned this Mar 12, 2026
@strub strub force-pushed the call-fwd-auto-frame branch 2 times, most recently from 37e7523 to 6a9a23a Compare March 16, 2026 10:38
@strub strub force-pushed the call-fwd-auto-frame branch 15 times, most recently from 4c5c754 to 28232e6 Compare March 20, 2026 21:02
@strub strub marked this pull request as ready for review March 20, 2026 21:17
This extends ecall to support forward calls on Hoare goals via ->>, while keeping backward behavior for existing uses.

It refactors call postcondition generation into reusable helpers, adds proof-term/program-variable substitution utilities needed to instantiate contracts cleanly, and checks that the supplied contract matches the targeted procedure(s). For forward Hoare calls, the tactic now automatically frames precondition conjuncts that are independent of the call’s writes.

A regression test is added in tests/forward-call.ec.
@strub strub force-pushed the call-fwd-auto-frame branch from 28232e6 to 6a4af9b Compare March 20, 2026 21:35
@strub strub changed the title Forward call with framed pre Add forward ecall with framed preconditions Mar 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant