Skip to content

Conversation

@tanyongkiam
Copy link
Contributor

This cleans up patterns where a store is Set, then Get (without intervening Sets) and avoids the reload from memory.

tanyongkiam and others added 30 commits September 5, 2025 20:33
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace cheat placeholders with full proofs for the If and
Call (SOME _) cases in the remove_dead correctness theorem.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
word_cmp now returns SOME bool instead of bool, so get_var
returns SOME y (word_loc) not SOME (Word y).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…dundant Gets

Three changes to the copy propagation pass:
1. merge_eqs: intersect store_to_eq mappings instead of clearing them
2. copy_prop_prog Get: emit Skip when register already holds store value
3. copy_prop_correct: add err ≠ SOME Error precondition for Skip soundness

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
flush_state now takes a boolean and clears store/stack when T.
- loop_to_wordProof: move state_rel inside case arms (away from
  TimeOut/FinalFFI), add t1.ffi = s1.ffi at top level, adjust
  compile_Skip and compile_Assign proofs
- pan_to_targetProof: add store to share_inst_modifies existential

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@tanyongkiam tanyongkiam merged commit c98da7f into master Feb 9, 2026
1 check passed
@tanyongkiam tanyongkiam deleted the word_store branch February 9, 2026 04:44
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.

3 participants