Skip to content

Conversation

@paaassscccaaalll
Copy link

  • Added loop invariant encoding in loop.rs
  • Added new loop_invariant! macro which follows the actual definition of an invariant (is also true at start and end of the loop).

@Aurel300
Copy link
Owner

Aurel300 commented Jul 3, 2025

Could you add some tests?

@paaassscccaaalll paaassscccaaalll force-pushed the loop_invariant_encoding branch from 21d338b to 4c11fa0 Compare July 3, 2025 14:55
@JonasAlaif JonasAlaif force-pushed the loop_invariant_encoding branch from 1143378 to adac2c0 Compare July 17, 2025 07:14
Pascal Hollenstein and others added 4 commits July 17, 2025 22:49
print for which function is currently encoded

deleted pcs

deleted utils and put helper function into

change is_ad_trusted() to is_type_trusted() which now take in a ty:TY

formating fix PR 68

(over to desktop) trying to add support for T/#

trying to fix partial ord

while loop fix

panic in make.rs

changed closure as loop invariant detection

over to desktop

added encoding of lool invariant closure which is than added to the invariants (permission issue persists)

added invariant acc for every loop invariant

fixed bug where in forall annotations the make_concrete and s_Ref_immutable was applied twice

some leftovers

revert tried fix

added axiom for closure

bugfix for handeling of refrences in forall

added axiom for immref

continue in fn_wand region pairs

style fix

style fix

axiom immref stuff

now it correctly encodes the loop invariant directly

removed debug output for loop invariant

new axiom for immref

new axiom for immref with r

further refinement (before nested loop fix)

works but what if some label is used twice in the mir

over to laptop

removed artifact

added used local check for not adding access to unused variables

added panic to detect reuse of identifiers

made collection of loop invariants more efficient

used visitor to detect used locals and added assert such that body_invariants are catched

pcg diff removed

removed diff

removed diff 2

remove diff 3

updated pcg

style fix

make it work with new version

skip invariant closures
renamed LoopSpecification enum for bodyinvariant! from Invariant to BodyInvariant
@JonasAlaif JonasAlaif force-pushed the loop_invariant_encoding branch from adac2c0 to 81af147 Compare July 17, 2025 20:50
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