Scott Morrison
94d6286e5a
chore: reorganising to reduce imports ( #3790 )
...
[Before](https://github.com/leanprover/lean4/files/14772220/oi.pdf ) and
[after](https://github.com/leanprover/lean4/files/14772226/oi2.pdf ).
This gets `ByteArray`, `String.Extra`, `ToString.Macro` and `RCases` out
of the imports of `omega`. I'd hoped to get `Array.Subarray` too, but
it's tangled up in the list literal syntax. Further progress could come
from make `split` use available `Decidable` instances, so we could pull
out `Classical` (and possibly some of `PropLemmas`).
2024-03-27 11:15:01 +00:00
Leonardo de Moura
2003814085
chore: rename automatically generated equational theorems ( #3661 )
...
cc @nomeata
2024-03-13 07:56:27 +00:00
Leonardo de Moura
611b174689
fix: ofScientific at simp ( #3628 )
...
closes #2159
2024-03-07 00:11:31 +00:00
Leonardo de Moura
5302b7889a
fix: fold raw Nat literals at dsimp ( #3624 )
...
closes #2916
Remark: this PR also renames `Expr.natLit?` ==> `Expr.rawNatLit?`.
Motivation: consistent naming convention: `Expr.isRawNatLit`.
2024-03-06 18:29:20 +00:00
Leonardo de Moura
794228a982
refactor: Offset.lean and related files ( #3614 )
...
Motivation: avoid the unfold and check idiom.
This commit also minimize dependencies at `Offset.lean`.
closes #2615
2024-03-05 19:40:15 -08:00
Leonardo de Moura
acdb0054d5
feat: use dsimprocs at dsimp
2024-03-05 14:42:05 -08:00
Leonardo de Moura
63b068a77c
chore: remove auxiliary functions used for bootstrapping
2024-03-05 14:42:05 -08:00
Leonardo de Moura
02efb19aad
chore: prepare to remove auxiliary functions used for bootstrapping
2024-03-05 14:42:05 -08:00
Leonardo de Moura
74c1ce1386
chore: use builtin_dsimproc when appropriate
2024-03-05 14:42:05 -08:00
Leonardo de Moura
b24fbf44f3
feat: dsimproc command
...
Simplification procedures that produce definitionally equal results.
WIP
2024-03-05 14:42:05 -08:00
Leonardo de Moura
436d7befa5
fix: dsimp should reduce kernel projections ( #3607 )
...
closes #3395
2024-03-05 14:56:27 +00:00
Leonardo de Moura
414f0eb19b
fix: bug at Result.mkEqSymm ( #3606 )
...
`cache` and `dischargeDepth` fields were being reset.
2024-03-05 14:37:09 +00:00
Leonardo de Moura
bba4ef3728
feat: simprocs for folding numeric literals ( #3586 )
...
This PR folds exposed `BitVec` (`Fin`, `UInt??`, and `Int`) ground
literals.
cc @shigoel
2024-03-04 02:51:04 +00:00
Leonardo de Moura
c66c5bb45b
fix: simp? suggests generated equations lemma names ( #3573 )
...
closes #3547
---------
Co-authored-by: Joachim Breitner <mail@joachim-breitner.de>
2024-03-02 23:59:35 +00:00
Leonardo de Moura
8b2710c8b3
chore: use let_expr to cleanup code
2024-03-02 10:07:15 -08:00
Leonardo de Moura
a23292f049
feat: add option tactic.skipAssignedInstances := true for backward compatibilty ( #3526 )
...
When using `set_option tactic.skipAssignedInstances false`, `simp` and
`rw` will synthesize instance implicit arguments even if they have
assigned by unification. If the synthesized argument does not match the
assigned one the rewrite is not performed. This option has been added
for backward compatibility.
2024-02-28 05:52:29 +00:00
Leonardo de Moura
86ca8e32c6
feat: improve simp discharge trace messages ( #3523 )
2024-02-28 04:39:57 +00:00
Leonardo de Moura
855fbed024
fix: regression on match expressions with builtin literals ( #3521 )
2024-02-27 18:49:44 +00:00
Leonardo de Moura
5e101cf983
feat: use attribute command to add and erase simprocs ( #3511 )
2024-02-26 23:41:49 +00:00
Leonardo de Moura
bb0695b017
fix: simp? should track unfolded let-decls ( #3510 )
...
closes #3501
2024-02-26 20:49:24 +00:00
Leonardo de Moura
f0b4902f7a
fix: simp should not try to synthesize instance implicit arguments that have been inferred by unification ( #3507 )
2024-02-26 20:17:55 +00:00
Leonardo de Moura
6d569aa7b5
refactor: use LitValue.lean to implement simprocs
2024-02-24 16:08:07 -08:00
Leonardo de Moura
5b15e1a9f3
fix: disable USize simprocs ( #3488 )
2024-02-24 02:37:39 +00:00
Leonardo de Moura
2defc58159
chore: rename isNatLit => isRawNatLit
...
Motivation: consistency with `mkRawNatLit`
2024-02-23 15:16:12 -08:00
Leonardo de Moura
4d4b79757d
chore: move BitVec to top level namespace
...
Motivation: `Nat`, `Int`, `Fin`, `UInt??` are already in the top level
namespace. We will eventually define `UInt??` and `Int??` using `BitVec`.
2024-02-23 15:15:57 -08:00
Sebastian Ullrich
8bf9d398af
chore: CI: flag Lean modules not using prelude ( #3463 )
...
Co-authored-by: Henrik Böving <hargonix@gmail.com>
2024-02-23 08:06:55 +00:00
Leonardo de Moura
53146db620
fix: zetaDelta := false regression ( #3459 )
...
See new test. It is a mwe for an issue blocking Mathlib.
2024-02-22 19:10:02 +00:00
Leonardo de Moura
ddd6342737
fix: support for Fin and BitVec literal normalization ( #3443 )
2024-02-21 19:05:47 +00:00
Leonardo de Moura
d55bab41bb
feat: Int.toNat simproc ( #3440 )
2024-02-21 17:12:14 +00:00
Scott Morrison
35e374350c
chore: upstream norm_cast tactic ( #3322 )
...
This is a quite substantial tactic.
It also includes the infamour `NatCast` typeclass (which I've equipped
with a module-doc). I wasn't at all sure where that should live, so it
is currently randomly in `Lean/Elan/Tactic/NatCast.lean`: presumably if
we're doing this it will go somewhere in `Init`.
---------
Co-authored-by: Leonardo de Moura <leomoura@amazon.com>
2024-02-19 17:49:17 -08:00
Leonardo de Moura
489f2da711
feat: add simproc for BitVec.signExtend ( #3409 )
2024-02-19 15:15:37 -08:00
Leonardo de Moura
5d9552d66c
feat: simprocs for BitVec ( #3407 )
2024-02-19 14:01:00 -08:00
Leonardo de Moura
90b5a0011d
feat: assume function application arguments occurring in local simp theorems have been annotated with no_index ( #3406 )
...
closes #2670
2024-02-19 12:43:34 -08:00
Henrik Böving
23e49eb519
perf: add prelude to all Lean modules
2024-02-18 14:55:17 -08:00
Leonardo de Moura
cd9648a61e
fix: dsimp zeta bug
...
Before the `zeta` / `zetaDelta` split, `dsimp` was performing `zeta`
by going inside of a `let`-expression, performing `zetaDelta`, and
then removing the unused `let`-expression.
2024-02-18 14:14:55 -08:00
Leonardo de Moura
9fe72c5f95
chore: set zetaDelta := false by default in the simplifier
2024-02-18 14:14:55 -08:00
Leonardo de Moura
457d33d660
feat: configuration options zeta and zetaDelta
...
TODO: bootstrapping issues, set `zetaDelta := false` in the simplifier.
2024-02-18 14:14:55 -08:00
Leonardo de Moura
c8236ccd47
chore: basic simprocs for String
2024-02-17 17:51:24 -08:00
Leonardo de Moura
559a18874c
chore: simprocs for Eq
2024-02-17 17:51:24 -08:00
Leonardo de Moura
3dcc8cab3e
feat: simprocs for Char.val, default char, and Char.ofNatAux
2024-02-17 17:51:24 -08:00
Leonardo de Moura
fb18ef3688
feat: simprocs for UInt??.ofNatCore and UInt??.toNat
2024-02-17 17:51:24 -08:00
Leonardo de Moura
3e5695e07e
feat: simprocs for Char ( #3382 )
2024-02-17 20:36:51 +00:00
Sebastian Ullrich
dda88c9926
feat: infoview.maxTraceChildren ( #3370 )
...
Incrementally unveil trace children for excessively large nodes to
improve infoview rendering time, adjust particularly chatty
`simp.ground` trace to make use of it.
2024-02-17 14:04:46 +00:00
Leonardo de Moura
baa9fe5932
fix: simp gets stuck on autoParam ( #3315 )
...
closes #2862
2024-02-17 13:42:19 +00:00
Leonardo de Moura
678797b67b
fix: simp fails to discharge autoParam premises even when it can reduce them to True ( #3314 )
...
closes #3257
2024-02-17 13:41:48 +00:00
Eric Wieser
0554ab39aa
doc: Add a docstring to Simp.Result and its fields ( #3319 )
2024-02-13 13:57:24 +00:00
Leonardo de Moura
760e824b9f
fix: we should not crash when simp loops ( #3269 )
...
see #3267
2024-02-07 02:30:28 +00:00
Leonardo de Moura
cf092e7941
refactor: add helper function evalPropStep ( #3252 )
2024-02-04 21:50:34 +00:00
Leonardo de Moura
a4226a4f6d
fix: tolerate missing simp and simproc sets
...
When we declare a `simp` set using `register_simp_attr`, we
automatically create `simproc` set. However, users may create `simp`
sets programmatically, and the associated `simproc` set may be missing
and vice-versa.
2024-02-01 16:58:54 +11:00
Leonardo de Moura
76224e409b
fix: Mathlib regressions reported by Scott
2024-02-01 16:58:54 +11:00