Releases: leanprover/lean4-nightly
nightly-2024-11-08
Changes since nightly-2024-11-07:
Full commit log
nightly-2024-11-07
Changes since nightly-2024-11-04:
Full Changelog: leanprover/lean4@v4.12.0...v4.13.0
Language features, tactics, and metaprograms
-
structure
command -
rfl
andapply_rfl
tactics- #3714, #3718 improve the
rfl
tactic and give better error messages. - #3772 makes
rfl
no longer use kernel defeq for ground terms. - #5329 tags
Iff.refl
with@[refl]
(@Parcly-Taxel) - #5359 ensures that the
rfl
tactic triesIff.rfl
(@Parcly-Taxel)
- #3714, #3718 improve the
-
unfold
tactic- #4834 let
unfold
do zeta-delta reduction of local definitions, incorporating functionality of the Mathlibunfold_let
tactic.
- #4834 let
-
omega
tactic -
simp
tactic- #5479 lets
simp
apply rules with higher-order patterns.
- #5479 lets
-
induction
tactic- #5494 fixes
induction
’s "pre-tactic" block to always be indented, avoiding unintended uses of it.
- #5494 fixes
-
ac_nf
tactic- #5524 adds
ac_nf
, a counterpart toac_rfl
, for normalizing expressions with respect to associativity and commutativity. Tests it withBitVec
expressions.
- #5524 adds
-
bv_decide
- #5211 makes
extractLsb'
the primitivebv_decide
understands, rather thanextractLsb
(@alexkeizer) - #5365 adds
bv_decide
diagnoses. - #5375 adds
bv_decide
normalization rules forofBool (a.getLsbD i)
andofBool a[i]
(@alexkeizer) - #5423 enhances the rewriting rules of
bv_decide
- #5433 presents the
bv_decide
counterexample at the API - #5484 handles
BitVec.ofNat
withNat
fvars inbv_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 currentBitVec
rewrites - Cleanups: #5408, #5493, #5578
- #5211 makes
-
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 andfun
binders if possible. Makes "cannot synthesize metavariable" errors take precedence over unsolved universe level errors. - #5419 must not reduce
ite
in the discriminant ofmatch
-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.
- #5266 preserve order of overapplied arguments in
-
Deriving handlers
- #5432 makes
Repr
deriving instance handle explicit type parameters
- #5432 makes
-
Functional induction
- #5364 adds more equalities in context, more careful cleanup.
-
Linters
-
Other fixes
- #4768 fixes a parse error when
..
appears with a.
on the next line
- #4768 fixes a parse error when
-
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 setBinderInfo
andLocalDeclKind
. - #5588 adds
MVarId.tryClearMany'
, a variant ofMVarId.tryClearMany
.
- #3090 handles level parameters in
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
andNeZero
-
#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 onlyDecidable (¬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 morepartial
functions to elaborate successfully - #5447 updates Pi instance names
- #5454 makes some instance arguments implicit
- #5456 adds
heq_comm
- #5529 moves
@[simp]
fromexists_prop'
toexists_prop
- #5263 allows simplifying
-
Bool
-
BitVec
nightly-2024-11-04
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
nightly-2024-11-02
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
Changes since nightly-2024-10-31:
Full commit log
- 0973ba3 chore: update stage0
- a75a03c feat: relate
for
loops overList
withfoldlM
(#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
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
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
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
fromapply
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)