Skip to content

Releases: leanprover/lean4-nightly

nightly-2024-11-08

08 Nov 08:23
6801770
Compare
Choose a tag to compare
nightly-2024-11-08 Pre-release
Pre-release

Changes since nightly-2024-11-07:

Full commit log

  • 6801770 chore: List.modifyTailIdx naming fix (#6007)
  • 1b806c5 chore: revert "CI: give Linux Debug unlimited test stack size" (#6001)
  • 9b18262 chore: new PR changelog template (#5976)
  • d76d631 feat: BitVec.sshiftRight' in bv_decide (#5995)
  • 17e6f3b style: fix style in bv_decide normalizer (#5992)

nightly-2024-11-07

07 Nov 13:12
5f7a40a
Compare
Choose a tag to compare
nightly-2024-11-07 Pre-release
Pre-release

Changes since nightly-2024-11-04:

Full Changelog: leanprover/lean4@v4.12.0...v4.13.0

Language features, tactics, and metaprograms

  • structure command

    • #5511 allows structure parents to be type synonyms.
    • #5531 allows default values for structure fields to be noncomputable.
  • rfl and apply_rfl tactics

  • unfold tactic

    • #4834 let unfold do zeta-delta reduction of local definitions, incorporating functionality of the Mathlib unfold_let tactic.
  • omega tactic

  • simp tactic

    • #5479 lets simp apply rules with higher-order patterns.
  • induction tactic

    • #5494 fixes induction’s "pre-tactic" block to always be indented, avoiding unintended uses of it.
  • ac_nf tactic

    • #5524 adds ac_nf, a counterpart to ac_rfl, for normalizing expressions with respect to associativity and commutativity. Tests it with BitVec expressions.
  • bv_decide

    • #5211 makes extractLsb' the primitive bv_decide understands, rather than extractLsb (@alexkeizer)
    • #5365 adds bv_decide diagnoses.
    • #5375 adds bv_decide normalization rules for ofBool (a.getLsbD i) and ofBool a[i] (@alexkeizer)
    • #5423 enhances the rewriting rules of bv_decide
    • #5433 presents the bv_decide counterexample at the API
    • #5484 handles BitVec.ofNat with Nat fvars in bv_decide
    • #5506, #5507 add bv_normalize rules.
    • #5568 generalize the bv_normalize pipeline to support more general preprocessing passes
    • #5573 gets bv_normalize up-to-date with the current BitVec rewrites
    • Cleanups: #5408, #5493, #5578
  • Elaboration improvements

    • #5266 preserve order of overapplied arguments in elab_as_elim procedure.
    • #5510 generalizes elab_as_elim to allow arbitrary motive applications.
    • #5283, #5512 refine how named arguments suppress explicit arguments. Breaking change: some previously omitted explicit arguments may need explicit _ arguments now.
    • #5376 modifies projection instance binder info for instances, making parameters that are instance implicit in the type be implicit.
    • #5402 localizes universe metavariable errors to let bindings and fun binders if possible. Makes "cannot synthesize metavariable" errors take precedence over unsolved universe level errors.
    • #5419 must not reduce ite in the discriminant of match-expression when reducibility setting is .reducible
    • #5474 have autoparams report parameter/field on failure
    • #5530 makes automatic instance names about types with hygienic names be hygienic.
  • Deriving handlers

    • #5432 makes Repr deriving instance handle explicit type parameters
  • Functional induction

    • #5364 adds more equalities in context, more careful cleanup.
  • Linters

    • #5335 fixes the unused variables linter complaining about match/tactic combinations
    • #5337 fixes the unused variables linter complaining about some wildcard patterns
  • Other fixes

    • #4768 fixes a parse error when .. appears with a . on the next line
  • Metaprogramming

    • #3090 handles level parameters in Meta.evalExpr (@eric-wieser)
    • #5401 instance for Inhabited (TacticM α) (@alexkeizer)
    • #5412 expose Kernel.check for debugging purposes
    • #5556 improves the "invalid projection" type inference error in inferType.
    • #5587 allows MVarId.assertHypotheses to set BinderInfo and LocalDeclKind.
    • #5588 adds MVarId.tryClearMany', a variant of MVarId.tryClearMany.

Language server, widgets, and IDE extensions

  • #5205 decreases the latency of auto-completion in tactic blocks.
  • #5237 fixes symbol occurrence highlighting in VS Code not highlighting occurrences when moving the text cursor into the identifier from the right.
  • #5257 fixes several instances of incorrect auto-completions being reported.
  • #5299 allows auto-completion to report completions for global identifiers when the elaborator fails to provide context-specific auto-completions.
  • #5312 fixes the server breaking when changing whitespace after the module header.
  • #5322 fixes several instances of auto-completion reporting non-existent namespaces.
  • #5428 makes sure to always report some recent file range as progress when waiting for elaboration.

Pretty printing

  • #4979 make pretty printer escape identifiers that are tokens.
  • #5389 makes formatter use the current token table.
  • #5513 use breakable instead of unbreakable whitespace when formatting tokens.

Library

  • #5222 reduces allocations in Json.compress.

  • #5231 upstreams Zero and NeZero

  • #5292 refactors Lean.Elab.Deriving.FromToJson (@arthur-adjedj)

  • #5415 implements Repr Empty (@TomasPuverle)

  • #5421 implements To/FromJSON Empty (@TomasPuverle)

  • Logic

    • #5263 allows simplifying dite_not/decide_not with only Decidable (¬p).
    • #5268 fixes binders on ite_eq_left_iff
    • #5284 turns off Inhabited (Sum α β) instances
    • #5355 adds simp lemmas for LawfulBEq
    • #5374 add Nonempty instances for products, allowing more partial functions to elaborate successfully
    • #5447 updates Pi instance names
    • #5454 makes some instance arguments implicit
    • #5456 adds heq_comm
    • #5529 moves @[simp] from exists_prop' to exists_prop
  • Bool

    • #5228 fills gaps in Bool lemmas
    • #5332 adds notation ^^ for Bool.xor
    • #5351 removes _root_.and (and or/not/xor) and instead exports/uses Bool.and (etc.).
  • BitVec

    • #5240 removes BitVec simps with complicated RHS
    • #5247 BitVec.getElem_zeroExtend
    • #5248 simp lemmas for BitVec, improving confluence
    • #5249 removes @[simp] from some BitVec lemmas
    • #5252 changes BitVec.intMin/Max from abbrev to def
    • #5278 adds BitVec.getElem_truncate (@tobiasgrosser)
      ...
Read more

nightly-2024-11-04

04 Nov 08:25
c779f3a
Compare
Choose a tag to compare
nightly-2024-11-04 Pre-release
Pre-release

Changes since nightly-2024-11-03:

v4.15.0

Development in progress.

v4.14.0

Release candidate, release notes will be copied from the branch releases/v4.14.0 once completed.

v4.13.0

Release candidate, release notes will be copied from the branch releases/v4.13.0 once completed.

Full commit log

  • c779f3a feat: List.mapFinIdx, lemmas, relate to Array version (#5941)
  • fc17468 chore: upstream List.ofFn and relate to Array.ofFn (#5938)
  • 8b7e3b8 chore: upstream lemmas about Fin.foldX (#5937)
  • 9129990 chore: begin development cycle for v4.15 (#5936)
  • 1659f3b fix: .. in patterns should not make use of optparams or autoparams (#5933)
  • 87d3f1f chore: update stage0
  • b75cc35 feat: update omega/solve_by_elim to use new tactic syntax, use new tactic syntax (#5932)
  • 3952689 feat: add --short-version (-V) option to display short version (#5930)
  • cd24e9d chore: update stage0

nightly-2024-11-03

03 Nov 09:23
0de925e
Compare
Choose a tag to compare
nightly-2024-11-03 Pre-release
Pre-release

Changes since nightly-2024-11-02:

Full commit log

  • 0de925e chore: prepare omega and solve_by_elim for new tactic config syntax (#5928)
  • 7942882 feat: add text option for buildFile* utilities (#5924)
  • 3c15ab3 feat: make MapDeclarationExtension tolerate multiple insertions (#5911)

nightly-2024-11-02

02 Nov 08:23
Compare
Choose a tag to compare
nightly-2024-11-02 Pre-release
Pre-release

Changes since nightly-2024-11-01:

Full commit log

  • 3f33cd6 chore: update stage0
  • 1f8d756 chore: remove unused deriving handler argument syntax (#5265)
  • 16e5e09 feat: better error message for invalid induction alternative name (#5888)
  • 5549e05 feat: on "type mismatch" errors, expose differences in functions and pi types (#5922)
  • c7f5fd9 feat: make "type mismatch" error add numeric type ascriptions (#5919)
  • a4057d3 fix: bv_normalize loose mvars (#5918)
  • fd08c92 chore: update src/library/module.cpp after update stage0
  • be6507f chore: update stage0
  • c723ae7 chore: CI: build 64-bit platforms consistently with GMP

nightly-2024-11-01

01 Nov 08:23
Compare
Choose a tag to compare
nightly-2024-11-01 Pre-release
Pre-release

Changes since nightly-2024-10-31:

Full commit log

  • 0973ba3 chore: update stage0
  • a75a03c feat: relate for loops over List with foldlM (#5913)
  • 6922832 chore: minor tweaks to Array lemmas (#5912)
  • f170711 feat: conv arg now can access more arguments (#5894)
  • 3b80d1e feat: activate new tactic configuration syntax for most tactics (#5898)
  • 7730ddd feat: add BitVec.(msb, getMsbD, getLsbD)_(neg, abs) (#5721)
  • e4a2c3d feat: interim implementation of HashMap.modify/alter (#5880)
  • c2391c4 chore: remove @[simp] from Sum.forall and Sum.exists (#5900)
  • 465ed8a feat: resolve generalized field notation using all parents (#5770)
  • 008537a fix: FunInd: unfold aux definitions more carefully (#5904)
  • f8242fa fix: delta derived instances now have declaration ranges (#5899)
  • 844e7ae chore: remove native code for UInt8.modn (#5901)
  • 2186010 chore: rename Array.back to back! (#5897)
  • 4af9381 chore: move @[simp] from back_eq_back? to back_push (#5896)
  • 34be256 feat: LawfulBEq (Array α) ↔ LawfulBEq α (#5895)
  • a826de8 chore: remove duplicated ForIn instances (#5892)

nightly-2024-10-31

31 Oct 08:22
0fcee10
Compare
Choose a tag to compare
nightly-2024-10-31 Pre-release
Pre-release

Changes since nightly-2024-10-30:

Full commit log

  • 0fcee10 feat: enable recursive structure command (#5783)
  • 03c6e99 fix: bring elaborator in line with kernel for primitive projections (#5822)
  • 0c8d28e chore: update stage0
  • 66d6848 fix: make structure parent info persist (#5890)
  • 5c70e5d chore: (belatedly) begin development cycle for v4.14.0 (#5889)
  • d4b1be0 feat: adds optConfig syntax for tactic configuration (#5883)
  • c3cbc92 feat: upstream and update #where command (#5065)
  • 0d12618 fix: declareSimpLikeTactic macro to use mkSynthetic (#5838)
  • ac80e26 feat: add embedded constraint substitution to bv_decide (#5886)

nightly-2024-10-30

30 Oct 08:23
38c3948
Compare
Choose a tag to compare
nightly-2024-10-30 Pre-release
Pre-release

Changes since nightly-2024-10-29:

Full commit log

  • 38c3948 chore: add missing deprecation dates (#5884)
  • 09802e8 chore: mention #version in bug report template (#5769)
  • b5bbc57 feat: prove that intMin is indeed the smallest signed bitvector (#5778)
  • 4714f84 fix: lake: do not delete path dependencies (#5878)
  • 5e7d02e feat: Hashable (BitVec n) (#5881)
  • 5357fd2 chore: rename List.groupBy to splitBy (#5879)
  • 3450c2a feat: add Nat.log2_two_pow (#5756)
  • 95d3b4b chore: move MessageData.ofConstName earlier (#5877)
  • cdbe29b feat: accurate binder names in signatures (like in output of #check) (#5827)
  • 0d47151 fix: init git only not inside git work tree (#5789)
  • d23a231 chore: update stage0
  • 6514385 feat: attribute [simp ←] (#5870)

nightly-2024-10-29

29 Oct 08:24
Compare
Choose a tag to compare
nightly-2024-10-29 Pre-release
Pre-release

Changes since nightly-2024-10-28:

Full commit log

  • 4ee44ce chore: update stage0
  • 1437033 fix: prevent addPPExplicitToExposeDiff from assigning metavariables (#5276)
  • b308f2b fix: let simp arguments elaborate with error recovery (#5863)
  • 9eded87 fix: remove withoutRecover from apply elaboration (#5862)
  • 19bebfc feat: improved calc error messages (#5719)
  • c57d054 feat: support all the SMTLIB BitVec divison/remainder operations in bv_decide (#5869)
  • 2f1dc87 feat: add BitVec.(msb, getMsbD)_concat (#5865)
  • f558402 feat: add BitVec.[zero_ushiftRight|zero_sshiftRight|zero_mul] and cle… (#5858)
  • 62521f4 fix: let congr conv tactic handle "over-applied" functions (#5861)

nightly-2024-10-28

28 Oct 08:24
9847923
Compare
Choose a tag to compare
nightly-2024-10-28 Pre-release
Pre-release

Changes since nightly-2024-10-27:

Full commit log

  • 9847923 feat: record all structure parents in StructureInfo (#5853)
  • 709ea6c feat: make it possible to use dot notation in m! strings (#5857)
  • 8c7f748 feat: if support and more in bv_decide (#5855)