Compare commits

...

2 Commits

Author SHA1 Message Date
Kim Morrison
d67bc018f3 one more 2025-05-14 09:09:32 +10:00
Kim Morrison
4d089743bd feat: add grind annotations for generic GetElem lemmas 2025-05-14 08:55:23 +10:00
2 changed files with 5 additions and 4 deletions

View File

@@ -185,13 +185,13 @@ theorem getElem!_neg [GetElem? cont idx elem dom] [LawfulGetElem cont idx elem d
have : Decidable (dom c i) := .isFalse h
simp [getElem!_def, getElem?_def, h]
@[simp] theorem get_getElem? [GetElem? cont idx elem dom] [LawfulGetElem cont idx elem dom]
@[simp, grind =] theorem get_getElem? [GetElem? cont idx elem dom] [LawfulGetElem cont idx elem dom]
(c : cont) (i : idx) [Decidable (dom c i)] (h) :
c[i]?.get h = c[i]'(by simp only [getElem?_def] at h; split at h <;> simp_all) := by
simp only [getElem?_def] at h
split <;> simp_all
@[simp] theorem getElem?_eq_none_iff [GetElem? cont idx elem dom] [LawfulGetElem cont idx elem dom]
@[simp, grind =] theorem getElem?_eq_none_iff [GetElem? cont idx elem dom] [LawfulGetElem cont idx elem dom]
(c : cont) (i : idx) [Decidable (dom c i)] : c[i]? = none ¬dom c i := by
simp only [getElem?_def]
split <;> simp_all
@@ -202,7 +202,7 @@ abbrev getElem?_eq_none := @getElem?_eq_none_iff
@[deprecated getElem?_eq_none (since := "2024-12-11")]
abbrev isNone_getElem? := @getElem?_eq_none_iff
@[simp] theorem isSome_getElem? [GetElem? cont idx elem dom] [LawfulGetElem cont idx elem dom]
@[simp, grind =] theorem isSome_getElem? [GetElem? cont idx elem dom] [LawfulGetElem cont idx elem dom]
(c : cont) (i : idx) [Decidable (dom c i)] : c[i]?.isSome = dom c i := by
simp only [getElem?_def]
split <;> simp_all

View File

@@ -265,7 +265,8 @@ theorem getElem_eq_get_getElem? [EquivBEq α] [LawfulHashable α] {a : α} {h} :
m[a]'h = m[a]?.get (mem_iff_isSome_getElem?.mp h) :=
ExtDHashMap.Const.get_eq_get_get? (h := h)
@[grind =] theorem get_getElem? [EquivBEq α] [LawfulHashable α] {a : α} {h} :
@[grind =]
theorem get_getElem? [EquivBEq α] [LawfulHashable α] {a : α} {h} :
m[a]?.get h = m[a]'(mem_iff_isSome_getElem?.mpr h) :=
ExtDHashMap.Const.get_get?