Skip to content

Commit

Permalink
feat: Correctness of Memcpy program (#138)
Browse files Browse the repository at this point in the history
We add a manual proof of `memcpy` to understand just how complex a proof
will be. The proof challenges `simp_mem`, due to, what we suspect, are
`omega` scaling bottlenecks. This file will be used as a litmus test for
improving automation.

### Testing:

`make all` succeeds, nothing was change with regards to conformance.

### License:

By submitting this pull request, I confirm that my contribution is
made under the terms of the Apache 2.0 license.

---------

Co-authored-by: Shilpi Goel <[email protected]>
  • Loading branch information
bollu and shigoel authored Sep 25, 2024
1 parent 26b5da0 commit bbd3075
Show file tree
Hide file tree
Showing 5 changed files with 797 additions and 178 deletions.
1 change: 1 addition & 0 deletions Arm/State.lean
Original file line number Diff line number Diff line change
Expand Up @@ -820,6 +820,7 @@ A variant of `write_mem` that directly talks about writes to memory, instead of
def Memory.write (addr : BitVec 64) (val : BitVec 8) (m : Memory) : Memory :=
write_store addr val m

@[state_simp_rules]
theorem ArmState.write_mem_eq_mem_write : (write_mem addr val s).mem = s.mem.write addr val := rfl

namespace Memory
Expand Down
177 changes: 0 additions & 177 deletions Proofs/Experiments/MemCpyVCG.lean

This file was deleted.

Loading

0 comments on commit bbd3075

Please sign in to comment.