Kim Morrison
fc17468f78
chore: upstream List.ofFn and relate to Array.ofFn ( #5938 )
2024-11-04 01:35:29 +00:00
Kyle Miller
b75cc35db2
feat: update omega/solve_by_elim to use new tactic syntax, use new tactic syntax ( #5932 )
...
Following up #5928 , updates the syntax for `omega` and `solve_by_elim`
and restores the syntax quotations in their implementations.
Following up #5898 , uses the new tactic syntax in the library, replacing
all uses of `(config := ...)`.
2024-11-03 16:23:37 +00:00
Kim Morrison
a75a03c077
feat: relate for loops over List with foldlM ( #5913 )
...
There are many more lemmas about `foldlM`, so this may be useful for
reasoning about for loops by transforming them into folds.
The transformation includes accounting for monad effects, but does have
a mild performance difference in that short-circuiting on
`ForInStep.done` is replaced by traversing the rest of the list with a
noop.
2024-11-01 02:41:05 +00:00
Kim Morrison
6922832327
chore: minor tweaks to Array lemmas ( #5912 )
2024-11-01 02:20:16 +00:00
Kim Morrison
a826de8a3d
chore: remove duplicated ForIn instances ( #5892 )
...
I'd previously added an instance from `ForIn'` to `ForIn`, but this then
caused some non-defeq duplication. It seems fine to just remove the
concrete `ForIn` instances in cases where the `ForIn'` instance exists
too. We can even remove a number of type-specific lemmas in favour of
the general ones.
2024-10-31 07:40:09 +00:00
Kim Morrison
5357fd2369
chore: rename List.groupBy to splitBy ( #5879 )
...
This makes room for adding a function that returns a HashMap, parallel
to `Array.groupByKey` (which I may also rename to `Array.groupBy`.
2024-10-30 00:56:52 +00:00
Kim Morrison
07ea626560
feat: Array.forIn', and relate to List ( #5833 )
...
Adds support for `for h : x in my_array do`, and relates this to the
existing `List` version.
2024-10-25 07:24:39 +00:00
Kim Morrison
c1143d9432
feat: more lemmas for List.modify ( #5816 )
2024-10-23 06:45:20 +00:00
Kim Morrison
07c09ee579
feat: relate Array.forIn and List.forIn ( #5799 )
2024-10-22 01:20:13 +00:00
Kim Morrison
919f64b2e6
chore: upstream List.modify, add lemmas, relate to Array.modify ( #5798 )
...
Note that the order of arguments still differs between `List.modify` and
`Array.modify`. I'll settle this later.
2024-10-22 01:01:32 +00:00
Kim Morrison
51377afd6c
feat: simp lemmas for Array.isEqv and beq ( #5786 )
...
- [ ] depends on: #5785
2024-10-21 07:37:40 +00:00
Kim Morrison
8151ac79d6
chore: Array cleanup ( #5782 )
...
More cleanup of Array API. More to come.
2024-10-21 06:00:37 +00:00
Kim Morrison
41797a78c3
chore: deprecate Nat.sum ( #5746 )
2024-10-18 00:03:36 +00:00
Kim Morrison
6fa75e346a
chore: upstream List.foldxM_map ( #5697 )
2024-10-17 04:30:08 +00:00
Kim Morrison
565ac23b78
chore: move Antisymm to Std.Antisymm ( #5740 )
2024-10-17 02:26:55 +00:00
Kim Morrison
3f7854203a
chore: rename List.pure to List.singleton ( #5732 )
2024-10-16 22:11:07 +00:00
Kim Morrison
ef05bdc449
chore: rename List.bind and Array.concatMap to flatMap ( #5731 )
2024-10-16 11:30:49 +00:00
Kim Morrison
dc83a607b2
fix: List.drop_drop addition order ( #5716 )
2024-10-15 10:14:02 +00:00
Kim Morrison
4409e39c43
chore: upstream List.sum, planning to later deprecate Nat.sum ( #5703 )
2024-10-15 08:41:35 +00:00
Kim Morrison
16e2a785aa
chore: remove @[simp] from Option.isSome_eq_isSome ( #5704 )
2024-10-14 12:28:43 +00:00
Johan Commelin
2580694e26
chore: mark prefix_append_right_inj as simp lemma ( #5706 )
2024-10-14 11:49:38 +00:00
Kim Morrison
aa2360a41d
chore: rename List.join to List.flatten
...
one more
one more
one more
fix test
2024-10-14 22:28:12 +11:00
Kim Morrison
20ea855e50
feat: upstream List.mapIdx, and add lemmas ( #5696 )
2024-10-14 07:25:02 +00:00
Henrik Böving
53c5470200
perf: remove List.redLength ( #5605 )
2024-10-03 14:57:33 +00:00
Kim Morrison
a4fda010f3
feat: Array/Option.unattach ( #5586 )
...
More support for automatically removing `.attach`, for `Array` and
`Option`.
2024-10-03 07:29:00 +00:00
Markus Himmel
09dfe1c71c
chore: induction-friendly List.min?_cons ( #5594 )
...
@kim-em, I'm happy to keep any subset of `foldl_min`, `foldl_min_right`,
`foldl_min_le`, `foldl_min_min_of_le` (should that one have been called
`foldl_min_le_of_le`?). Which ones do you like?
2024-10-02 14:10:15 +00:00
Kim Morrison
9322d8d639
feat: List.unattach and simp lemmas ( #5550 )
...
Co-authored-by: Joachim Breitner <mail@joachim-breitner.de>
2024-10-02 02:42:54 +00:00
Kim Morrison
e3811fd838
chore: cleanup unused variables ( #5579 )
...
This pulls changes to the standard library out of #5338 .
2024-10-02 01:51:22 +00:00
Kim Morrison
a4dfa83af5
chore: reduce use of deprecated lemmas in Array ( #5527 )
2024-09-30 02:59:15 +00:00
Kim Morrison
4cd4bcc9be
chore: List simp fixes ( #5521 )
2024-09-29 13:28:19 +00:00
Kim Morrison
7d26a1604f
chore: restore @[simp] on List.getElem_mem et al ( #5520 )
2024-09-29 13:28:13 +00:00
Kim Morrison
2ace579438
chore: upstream List.fold lemmas ( #5519 )
2024-09-29 07:21:32 +00:00
Kim Morrison
d96b7a7d98
chore: rename List.maximum? to max? ( #5518 )
...
More consistent with other API.
2024-09-29 06:23:24 +00:00
Daniel Weber
3d1ac7cfa2
feat: add lemmas about List.IsPrefix ( #5448 )
...
Add iff version of `List.IsPrefix.getElem`, and `eq_of_length_le`
variants of `List.IsInfix.eq_of_length, List.IsPrefix.eq_of_length,
List.IsSuffix.eq_of_length`
2024-09-26 06:58:40 +00:00
Kim Morrison
5dea30f169
feat: @[simp] lemmas about List.toArray ( #5472 )
...
We make sure that we can pull `List.toArray` out through all operations
(well, for now "most" rather than "all"). As we also push `Array.toList`
inwards, this hopefully has the effect of them cancelling as they meet,
and `simp` naturally rewriting Array operations into List operations
wherever possible.
This is not at all complete yet.
2024-09-26 00:59:13 +00:00
Kim Morrison
c2f6297554
feat: adjust simp attributes on monad lemmas ( #5464 )
2024-09-25 10:21:18 +00:00
Kim Morrison
c7819bd6eb
chore: missing List.set_replicate_self ( #5460 )
2024-09-25 01:15:24 +00:00
Kim Morrison
c825b5a560
chore: reverse direction of List.set_map ( #5405 )
2024-09-23 03:44:11 +00:00
Kim Morrison
0ecf2a030a
feat: List.fold relators ( #5393 )
2024-09-20 00:48:03 +00:00
Kim Morrison
590c725943
feat: lemmas about List.maximum? ( #5394 )
2024-09-19 09:23:11 +00:00
Kim Morrison
9193196208
feat: List.fold / attach lemmas ( #5392 )
2024-09-19 08:26:06 +00:00
Kim Morrison
c3f384d6a5
feat: review of List.erase / List.find lemmas ( #5391 )
2024-09-19 05:37:04 +00:00
Kim Morrison
ddd471223c
chore: cleaning up redundant simp lemmas ( #5381 )
...
Problems reported by the simpNF linter downstream.
2024-09-18 10:06:29 +00:00
Kim Morrison
30e90a4dff
chore: upstream map_mergeSort ( #5377 )
...
This incorporates contributions from @eric-wieser in
https://github.com/leanprover-community/mathlib4/pull/15952 and
@fgdorais in https://github.com/leanprover-community/batteries/pull/579
2024-09-18 08:19:42 +00:00
Kim Morrison
a6a06a620f
chore: modify signature of lemmas about mergeSort ( #5378 )
...
This slightly smooths the interaction with `Prop` based reasoning in
Mathlib. Still not totally happy here.
2024-09-18 01:49:15 +00:00
Kim Morrison
21d71de481
chore: fix name of List.length_mergeSort ( #5373 )
2024-09-17 12:43:39 +00:00
Kim Morrison
45af92fcd1
feat: lemmas about List.tail ( #5360 )
2024-09-16 09:25:24 +00:00
Violeta Hernández
078e9b6d77
doc: add documentation for groupBy.loop ( #5349 )
...
We add some documentation explaining the auxiliary function in the
definition of `groupBy`. This has been moved here from Mathlib PR
[16818](https://github.com/leanprover-community/mathlib4/pull/16818 ) by
request of @semorrison.
---------
Co-authored-by: Kim Morrison <kim@tqft.net>
2024-09-16 05:56:44 +00:00
Kim Morrison
7740a38a71
chore: remove @[simp] from Option.bind_map ( #5354 )
2024-09-16 04:44:38 +00:00
Kim Morrison
9568f305d8
chore: switch primes on List.getElem_take ( #5294 )
...
This will probably have fallout downstream, and as it is a direct name
switch I'm not going to provide any deprecations.
2024-09-16 03:40:42 +00:00