Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Do some cleanup in the Lean backend (#257) | Son HO | 2024-06-22 | 5 | -13/+43 |
| | |||||
* | Improve `scalar_tac` and `scalar_decr_tac` (#256) | Son HO | 2024-06-22 | 1 | -5/+2 |
| | | | | | | | * Fix an issue in a proof of the hashmap * Improve scalar_decr_tac * Improve the error message of scalar_tac and add the missing Termination.lean | ||||
* | Add some proofs for the Lean backend (#255) | Son HO | 2024-06-21 | 3 | -8/+18 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Make progress on the proofs of the hashmap * Make a minor modification to the hashmap * Make progress on the hashmap * Make progress on the proofs * Make progress on the proofs * Make progress on the proof of the hashmap * Progress on the proofs of the hashmap * Update a proof * Update the Charon pin * Make minor modifications to the hashmap * Regenerate the tests * Regenerate the hashmap * Add lemmas to the Lean backend * Make progress on the proofs of the hashmap * Make a minor fix * Finish the proof about the hashmap * Update scalar_tac * Make a minor modification in the hashmap * Update the proofs of the hashmap --------- Co-authored-by: Son Ho <sonho@Sons-MacBook-Pro.local> Co-authored-by: Son Ho <sonho@Sons-MBP.lan> | ||||
* | Update Lean to v4.9.0-rc1 | Son Ho | 2024-06-13 | 3 | -16/+14 |
| | |||||
* | Fix more issues with the scalar notations | Son Ho | 2024-06-13 | 1 | -15/+29 |
| | |||||
* | Fix more issues | Son Ho | 2024-06-13 | 3 | -16/+22 |
| | |||||
* | Fix a proof | Son Ho | 2024-06-13 | 1 | -1/+1 |
| | |||||
* | Add an example | Son Ho | 2024-06-12 | 1 | -0/+3 |
| | |||||
* | Update the scalar notations in Lean | Son Ho | 2024-06-12 | 2 | -102/+108 |
| | |||||
* | Revert "Update the scalar notation for the Lean backend" | Son Ho | 2024-06-12 | 1 | -25/+25 |
| | | | | This reverts commit c8272aeea205ca9cb36e22757473ca2a931a4933. | ||||
* | Revert "Update CoreConvertNum.lean" | Son Ho | 2024-06-12 | 1 | -22/+22 |
| | | | | This reverts commit fe59d3afe131e9f83cbdf73b1c8089ad090d92fb. | ||||
* | Update CoreConvertNum.lean | Son Ho | 2024-06-12 | 1 | -22/+22 |
| | |||||
* | Update the scalar notation for the Lean backend | Son Ho | 2024-06-12 | 1 | -25/+25 |
| | |||||
* | Deactivate the coercion from Nat to Scalar | Son Ho | 2024-06-12 | 1 | -0/+7 |
| | |||||
* | feat: add small pieces of max theory | Ryan Lahfa | 2024-05-24 | 1 | -0/+39 |
| | | | | | | | | | `0#ty` is neutral for `max` for unsigned integers. Without the `Fact` instances, those theorems are not as automatic as they could be. Signed-off-by: Ryan Lahfa <ryan.lahfa@inria.fr> | ||||
* | feat(backends/lean): make `max`-related coercions nicer | Ryan Lahfa | 2024-05-21 | 1 | -0/+12 |
| | | | | | | | | | | Situations where you have `coe (max a b) = max (coe a) (coe b)` are often stuck during verification because of the lack of this theorem. With this theorem, `push_cast` works as intended and normalizes even further. Signed-off-by: Ryan Lahfa <ryan.lahfa@inria.fr> | ||||
* | Merge pull request #164 from RaitoBezarius/ofnat_scalar | Son HO | 2024-05-14 | 1 | -0/+5 |
|\ | | | | | | | feat(backend/lean): Raw Lean literals can be parsed into scalars automatically | ||||
| * | feat(backend/lean): Raw Lean literals can be parsed into scalars automatically | Ryan Lahfa | 2024-04-30 | 1 | -0/+5 |
| | | | | | | | | | | | | | | We can use coercion to go to integers, build a scalar out of an int via unification and let the user clear up bounds or let Lean decide them. Signed-off-by: Ryan Lahfa <ryan.lahfa@inria.fr> | ||||
* | | backends/lean: repair definition of `core.mem.replace` | Ryan Lahfa | 2024-05-13 | 1 | -1/+4 |
|/ | | | | | | Oops, it is supposed to do something with the second argument! Signed-off-by: Ryan Lahfa <ryan.lahfa@inria.fr> | ||||
* | Update the backend and ExtractBuiltin.ml | Son Ho | 2024-04-25 | 1 | -1/+1 |
| | |||||
* | Merge branch 'main' into core-option-unwrap | Son Ho | 2024-04-25 | 1 | -0/+4 |
|\ | |||||
| * | Merge branch 'main' into option-take | Son Ho | 2024-04-25 | 1 | -0/+15 |
| |\ | |||||
| * | | compiler: map `core::mem::swap` to the pure swap | Ryan Lahfa | 2024-04-24 | 1 | -0/+2 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In the pure functional model, `swap` is mostly about borrow checking and should simplify to the pure swap in our backends. Other backends than Lean are not done in this commit. Signed-off-by: Ryan Lahfa <ryan.lahfa@inria.fr> | ||||
| * | | compiler: map `core::option::Option::take` to identity function | Ryan Lahfa | 2024-04-17 | 1 | -0/+2 |
| | | | | | | | | | | | | | | | | | | | | | | | | `take` in a pure functional model is the identity function and everything related to borrow checking is handled by the forward/backward mechanism. Signed-off-by: Ryan Lahfa <ryan.lahfa@inria.fr> | ||||
* | | | Add core::option::unwrap builtin | Zyad Hassan | 2024-04-24 | 3 | -5/+13 |
| |/ |/| | |||||
* | | feat(backends/lean): scalars form a linear order | Ryan Lahfa | 2024-04-23 | 1 | -0/+15 |
|/ | | | | | | | More than c1c33de8, actually, scalars form a linear order with a decidable ≤ operation which is induced by the integer (Z) model. Signed-off-by: Ryan Lahfa <ryan.lahfa@inria.fr> | ||||
* | lean: scalars form a preorder | Ryan Lahfa | 2024-04-12 | 1 | -0/+10 |
| | | | | | | | | | | Via the canonical injection, we can easily define an induced preorder on scalars and inherit all nice properties. It's useful to reason on specific scalar preorders w.r.t. Ordering, see the binary search tree verification example. Signed-off-by: Ryan Lahfa <ryan.lahfa@inria.fr> | ||||
* | Add more definitions to the Lean library | Son Ho | 2024-04-12 | 4 | -0/+127 |
| | |||||
* | Reorganize the files in the Lean backend a bit | Son Ho | 2024-04-12 | 4 | -241/+265 |
| | |||||
* | Start adding integer functions to the Lean library | Son Ho | 2024-04-12 | 2 | -2/+265 |
| | |||||
* | Fix a proof | Son Ho | 2024-04-12 | 1 | -1/+0 |
| | |||||
* | Update the core.num.checked_* definitions | Son Ho | 2024-04-12 | 1 | -31/+233 |
| | |||||
* | Merge branch 'son/clean' into checked-ops | Son Ho | 2024-04-11 | 6 | -138/+144 |
|\ | |||||
| * | Merge remote-tracking branch 'origin/main' into son/clean | Son Ho | 2024-04-11 | 4 | -8/+16 |
| |\ | |||||
| | * | Update the lean toolchain and fix the proofs | Son Ho | 2024-04-05 | 3 | -5/+2 |
| | | | |||||
| | * | Fix the coerce notation for scalars and update some lemmas | Son Ho | 2024-04-04 | 1 | -4/+15 |
| | | | |||||
| * | | Rename Result.ret as Result.ok in the backends | Son Ho | 2024-04-04 | 5 | -130/+128 |
| |/ | |||||
* / | Add builtins for some checked ops such as checked_add | Zyad Hassan | 2024-04-03 | 1 | -0/+29 |
|/ | |||||
* | Fix a minor issue | Son Ho | 2024-03-18 | 1 | -1/+3 |
| | |||||
* | Regenerate the constants tests and update Primitives/Base.lean | Son Ho | 2024-03-18 | 1 | -1/+1 |
| | |||||
* | Update the generation of constant bodies for Lean | Son Ho | 2024-03-08 | 1 | -2/+2 |
| | |||||
* | Update the tuples notations | Son Ho | 2024-03-08 | 1 | -51/+0 |
| | |||||
* | Remove some comments | Son Ho | 2024-03-08 | 1 | -31/+0 |
| | |||||
* | Update the handling of notations like #u32 or #isize | Son Ho | 2024-03-08 | 3 | -69/+103 |
| | |||||
* | Update the notation for heterogeneous negation | Son Ho | 2024-03-08 | 1 | -3/+12 |
| | |||||
* | Introduce a notation for constant scalars in match patterns | Son Ho | 2024-03-07 | 1 | -0/+29 |
| | |||||
* | Add a notation for tuple field accesses in Lean | Son Ho | 2024-03-07 | 1 | -0/+51 |
| | |||||
* | Cleanup a bit Scalar.lean | Son Ho | 2024-02-09 | 1 | -198/+198 |
| | |||||
* | Fix more proofs | Son Ho | 2024-02-02 | 2 | -2/+2 |
| | |||||
* | Fix more proofs | Son Ho | 2024-02-02 | 1 | -56/+55 |
| |