-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
docs: init first sketch #294
base: main
Are you sure you want to change the base?
Conversation
24ef51b
to
e340a84
Compare
2931670
to
be14c6a
Compare
PTAL @sonmarcho I dropped the irrelevant parts. |
be14c6a
to
234bf73
Compare
@sonmarcho In principle, I updated to 4.11.0-rc2 and confirmed it built on my system, let's see how it goes. |
This is a first sketch of user documentation for Aeneas to prove things with Lean. Signed-off-by: Ryan Lahfa <[email protected]>
Well, this is required… Following Loogle's steps, we add fake files for ProofWidgets4 and we can produce an .olean from Aeneas' base library without Lake involvement! Free parallelization and caching :). TODOs are to improve the hash handling when lake-manifest.json bumps, but this requires extending Lake to produce the NAR hash serializations. Signed-off-by: Ryan Lahfa <[email protected]>
I extracted a Factorial example in Rust to Lean. Signed-off-by: Ryan Lahfa <[email protected]>
As upstream is moving to a non-user-facing Nix library, we are vendoring some of the useful code such as `buildLeanPackage`. Signed-off-by: Ryan Lahfa <[email protected]>
Adds the TODO list for infrastructure. Signed-off-by: Ryan Lahfa <[email protected]>
Micro-guide for update: - Update the Lean flake. - Update all the sha256 hashes of every dependency if you have a compilation error, e.g. batteries changed, etc. The day where `inputs.lean.packages.${system}.deprecated` disappear, we will need to consider an alternative for the nixpkgs from lean, etc. Signed-off-by: Ryan Lahfa <[email protected]>
f6376df
to
3a1d6bc
Compare
@pnmadelaine |
This is great, thanks!! I will review and merge asap. |
docs/user/README.md
Outdated
|
||
The Nix setup reads the `lakefile-manifest.json`, but this lockfile is insufficient to lock purely the dependencies (NAR SHA256 serialization are missing). | ||
|
||
To overcome this, they are specified manually in `flake.nix`, but each time the Aeneas standard library updates their dependencies, the `flake.nix` needs to have all its hash rewritten. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't fully understand what we are supposed to do when updating the dependencies.
With regards to that, I guess adding some comments in the flake.nix
would be useful?...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I expanded much more the documentation, let me know how you feel about it now
@@ -0,0 +1,190 @@ | |||
var Alectryon; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This file also comes from Alectryon right? There are no copyrights (that's surprising)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, but this is how it is upstream, I am fine with adding the compliance copyright, what do you prefer?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(may be worth investigating https://reuse.software/ if we want to maximize the licensing compliance situation)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is great, thanks!
I put a few questions, and am also wondering: you mention that the files to process should be put in lean/basics/
. But what about the other folders? For instance lean/bst
?
Signed-off-by: Ryan Lahfa <[email protected]>
3d22049
to
84f3e3f
Compare
I updated the docs, but there's a section on this. |
This is a first sketch of user documentation for Aeneas to prove things with Lean.
This adds a factorial example with Alectryon and scaffolding from the Lean original project.