Compare commits

...

3 Commits

Author SHA1 Message Date
Kim Morrison
a447d3713e chore: incorporate notes from release_drafts 2025-01-04 12:09:41 +11:00
Kim Morrison
a5a3cf7405 chore: release notes for v4.16.0 2025-01-04 12:03:10 +11:00
Kim Morrison
80f219cbd7 chore: release notes for v4.15.0 2025-01-04 12:02:50 +11:00
2 changed files with 1185 additions and 18 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,16 +0,0 @@
We replace the inductive predicate `List.lt` with an upstreamed version of `List.Lex` from Mathlib.
(Previously `Lex.lt` was defined in terms of `<`; now it is generalized to take an arbitrary relation.)
This subtely changes the notion of ordering on `List α`.
`List.lt` was a weaker relation: in particular if `l₁ < l₂`, then
`a :: l₁ < b :: l₂` may hold according to `List.lt` even if `a` and `b` are merely incomparable
(either neither `a < b` nor `b < a`), whereas according to `List.Lex` this would require `a = b`.
When `<` is total, in the sense that `¬ · < ·` is antisymmetric, then the two relations coincide.
Mathlib was already overriding the order instances for `List α`,
so this change should not be noticed by anyone already using Mathlib.
We simultaneously add the boolean valued `List.lex` function, parameterised by a `BEq` typeclass
and an arbitrary `lt` function. This will support the flexibility previously provided for `List.lt`,
via a `==` function which is weaker than strict equality.