-
Notifications
You must be signed in to change notification settings - Fork 40
chore: add highlights for v4.24 release notes #606
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
Conversation
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.
Thanks!
I think these may also deserve highlighting:
- #9927 implements extended induction-inspired syntax for mvcgen, allowing optional using invariants and with sections.
Here is an example to beef it up a bit:
theorem nodup_correct (h : nodup l = r) : r = true ↔ l.Nodup := by
unfold nodup at h
apply Id.of_wp_run_eq h; clear h
mvcgen
invariants
· Invariant.withEarlyReturn
(onReturn := fun ret seen => ⌜ret = false ∧ ¬l.Nodup⌝)
(onContinue := fun xs seen =>
⌜(∀ x, x ∈ seen ↔ x ∈ xs.prefix) ∧ xs.prefix.Nodup⌝)
with grind
(or maybe @sgraf812 prefers a different example to show-case this feature)
And maybe we could highlight this, saying “As an example for our continuous improvements to performance:
#10249 speeds up auto-completion by a factor of ~3.5x through various performance improvements in the language server.
Manual/Releases/v4_24_0.lean
Outdated
- [#10322](https://github.com/leanprover/lean4/pull/10322) introduces limited functionality frontends `cutsat` and | ||
`grobner` for `grind`. |
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 am not sure if these frontends are actually interesting (they are tactic shorthands).
It’s more interesting to see which new abilities grind
has, as in your next point. Maybe just focus on ac
, and add an example or two, maybe
example (a b c : Nat) : max a (max b c) = max (max b 0) (max a c) := by
grind only
Good example. Here's related beef (leanprover/lean4#10566) for users to learn that syntax:
Given the formatting mishap here, maybe it's better to stick with
|
Preview for this PR is ready! 🎉 (also as a proofreading version). built with commit 7537909. |
Thank you for the suggestions! I've made the changes; let me know if there's anything else I can do. As for the |
This PR adds highlights section to Lean v4.24 release notes.