fix: missing condition at normalizePattern in grind (#11629)
This PR adds a missing condition in the pattern normalization code used in `grind`. It should ignore support ground terms.
This commit is contained in:
parent
8220baf6db
commit
a984e17913
2 changed files with 44 additions and 1 deletions
|
|
@ -716,7 +716,7 @@ where
|
|||
pure dontCare
|
||||
else
|
||||
let arg ← expandOffsetPatterns arg
|
||||
unless isEqBwdParent do
|
||||
unless isEqBwdParent || inSupport do
|
||||
/-
|
||||
**Note**: We ignore symbols in ground patterns if the parent is the auxiliary ``Grind.eqBwdPattern
|
||||
We do that because we want to sign an error in examples such as:
|
||||
|
|
|
|||
43
tests/lean/run/grind_ground_pat_issue.lean
Normal file
43
tests/lean/run/grind_ground_pat_issue.lean
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
/-!
|
||||
Test for a regression introduced by #11589
|
||||
-/
|
||||
|
||||
section Mathlib.Order.Defs.LinearOrder
|
||||
|
||||
class LinearOrder (α : Type) extends Max α where
|
||||
|
||||
end Mathlib.Order.Defs.LinearOrder
|
||||
section Mathlib.Data.Int.Order.Basic
|
||||
|
||||
instance instLinearOrder : LinearOrder Int where
|
||||
|
||||
end Mathlib.Data.Int.Order.Basic
|
||||
section Mathlib.Order.Lattice
|
||||
|
||||
variable {α : Type}
|
||||
|
||||
class SemilatticeSup (α : Type) where
|
||||
sup : α → α → α
|
||||
|
||||
instance SemilatticeSup.toMax [SemilatticeSup α] : Max α where max a b := SemilatticeSup.sup a b
|
||||
|
||||
instance LinearOrder.toSemilatticeSup {α : Type} [LinearOrder α] : SemilatticeSup α where
|
||||
sup := max
|
||||
|
||||
end Mathlib.Order.Lattice
|
||||
|
||||
section Mathlib.Algebra.Order.Group.Unbundled.Abs
|
||||
|
||||
variable {α : Type} [SemilatticeSup α] [Neg α] {a b : α}
|
||||
|
||||
@[grind]
|
||||
def abs (a : α) : α := max a (-a)
|
||||
|
||||
end Mathlib.Algebra.Order.Group.Unbundled.Abs
|
||||
|
||||
@[grind =] theorem max_def [Max α] [LE α] [DecidableLE α] (a b : α)
|
||||
: max a b = if a ≤ b then b else a :=
|
||||
sorry
|
||||
|
||||
theorem abs_lt_one_iff {a : Int} : abs a < 1 ↔ a = 0 := by
|
||||
grind
|
||||
Loading…
Add table
Reference in a new issue