Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
a595ff1
feat(names): add `explicit_monadic` module with `pure` and `lift`
W95Psp Oct 7, 2025
0f8aac5
chore(rengine): regenerate names for `explicit_monadic`
W95Psp Oct 7, 2025
7083213
feat(rengine/ast): newtype Ty: make field visible
W95Psp Oct 7, 2025
13dcd02
feat(rengine): intro. explicit monadic phase for Lean backend
W95Psp Oct 7, 2025
4c176cc
feat(lean): use monadic phase
clementblaudeau Oct 9, 2025
446367b
feat(lean): add resugaring for [let x : ty ← pure ..]
clementblaudeau Oct 21, 2025
83c820a
test(lean): update the chacha example (no more manual edits)
clementblaudeau Oct 22, 2025
db51c88
feat(lean): improve output: no newline for pure and lift
clementblaudeau Oct 22, 2025
06bd236
test(lean): update snapshot
clementblaudeau Oct 22, 2025
441235e
docs: CHANGELOG
clementblaudeau Oct 22, 2025
db61b40
refactor(lean): clippy
clementblaudeau Oct 22, 2025
7cd9052
test(fstar): update error messages in snapshots
clementblaudeau Oct 23, 2025
d169c60
refactor(lean): match on slice rather than [split_first]
clementblaudeau Oct 23, 2025
2ecdf3e
refactor(lean): remove useless [&]
clementblaudeau Oct 23, 2025
54b44b3
revert: unfortunate commit of debug
clementblaudeau Oct 23, 2025
2a14e57
refactor(lean): pattern-match rather than chain if
clementblaudeau Oct 23, 2025
8458a26
refactor(lean): ignore unused fields
clementblaudeau Oct 23, 2025
d8de989
refactor(lean/resugaring): merge ifs into a single condition
clementblaudeau Oct 23, 2025
d0b7b5d
refactor(lean/resugaring): remove useless else and import
clementblaudeau Oct 23, 2025
0248608
refactor(lean/rust-engine): factor out ast building in a helper
clementblaudeau Oct 23, 2025
0b1cd7a
doc(lean): update comment
clementblaudeau Oct 23, 2025
ea7d0e7
refactor(rust-engine): make visibility of Ty field crate-local
clementblaudeau Oct 23, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
Changes to the Rust Engine:
- Add a rejection phase for interleaving of expressions and statements not
supported by the Lean do-notation syntax (#1739).
- Add a phase to handle the monadic encoding: it explicitly introduces two new
Hax primitives `pure` (to wrap values as monadic computations) and `lift` (to
lift monadic computations into values) (#1746)

Changes to the frontend:

Expand All @@ -20,6 +23,8 @@ Changes to hax-lib:
Changes to the Lean backend:
- Support for constants with arbitrary computation (#1738)
- Add support for base-expressions of structs (#1736)
- Use the explicit monadic phase to insert `pure` and `←` only on demand, and
not introduce extra `do` block (#1746)

Miscellaneous:

Expand Down
5 changes: 5 additions & 0 deletions engine/names/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -298,4 +298,9 @@ mod hax {
}
}
fn box_new() {}

mod explicit_monadic {
fn lift() {}
fn pure() {}
}
}
2 changes: 1 addition & 1 deletion examples/lean_chacha20/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
default:
cargo hax into lean
(cd proofs/lean/extraction && \
elan default stable && \
elan default 4.23.0 && \
lake build)

clean:
Expand Down
Loading
Loading