Compare commits

...

6 Commits

Author SHA1 Message Date
Kim Morrison
2b60531bdc fix 2025-05-03 17:54:51 +02:00
Kim Morrison
b74b0a5ee8 undeprecate 2025-05-02 19:15:53 +02:00
Kim Morrison
f4e8aaf969 cleanup deprecations 2025-05-02 00:30:23 +02:00
Kim Morrison
51672c0ae8 undo deprecation 2025-05-02 00:23:42 +02:00
Kim Morrison
11c429f799 suggestions from review 2025-05-01 18:53:20 +02:00
Kim Morrison
7a2bf0b3bd chore: consistently add @[simp] to getKey_eq map lemmas 2025-04-30 19:28:50 +02:00
13 changed files with 24 additions and 6 deletions

View File

@@ -2562,6 +2562,7 @@ theorem getKey!_alter [LawfulBEq α] [Inhabited α] {k k' : α} (h : m.1.WF)
m.getKey! k' := by
simp_to_model [alter, get?, getKey!] using List.getKey!_alterKey
-- Note that in many use cases `getKey_eq` gives a simpler right hand side.
theorem getKey_alter [LawfulBEq α] [Inhabited α] {k k' : α} (h : m.1.WF)
{f : Option (β k) Option (β k)} (hc : (m.alter k f).contains k') :
(m.alter k f).getKey k' hc =

View File

@@ -807,6 +807,7 @@ theorem getKey_congr [EquivBEq α] [LawfulHashable α] {k₁ k₂ : α} (h : k
(h₁ : k₁ m) : m.getKey k₁ h₁ = m.getKey k₂ ((mem_congr h).mp h₁) :=
Raw₀.getKey_congr m.1, _ m.2 h h₁
@[simp]
theorem getKey_eq [LawfulBEq α] {k : α} (h : k m) : m.getKey k h = k :=
Raw₀.getKey_eq m.1, _ m.2 h
@@ -2518,6 +2519,7 @@ theorem getKey!_alter_self [LawfulBEq α] [Inhabited α] {k : α} {f : Option (
(m.alter k f).getKey! k = if (f (m.get? k)).isSome then k else default := by
simp only [getKey!_alter, beq_self_eq_true, reduceIte]
@[deprecated getKey_eq (since := "2025-01-05")]
theorem getKey_alter [LawfulBEq α] [Inhabited α] {k k' : α} {f : Option (β k) Option (β k)}
{h : k' m.alter k f} :
(m.alter k f).getKey k' h =
@@ -2528,10 +2530,9 @@ theorem getKey_alter [LawfulBEq α] [Inhabited α] {k k' : α} {f : Option (β k
m.getKey k' h' :=
Raw₀.getKey_alter m.1, _ m.2 h
@[simp]
theorem getKey_alter_self [LawfulBEq α] [Inhabited α] {k : α} {f : Option (β k) Option (β k)}
{h : k m.alter k f} : (m.alter k f).getKey k h = k := by
simp [getKey_alter]
simp
theorem getKeyD_alter [LawfulBEq α] {k k' fallback : α} {f : Option (β k) Option (β k)} :
(m.alter k f).getKeyD k' fallback =
@@ -2849,6 +2850,7 @@ theorem getKey!_modify_self [LawfulBEq α] [Inhabited α] {k : α} {f : β k →
(m.modify k f).getKey! k = if k m then k else default :=
Raw₀.getKey!_modify_self m.1, _ m.2
@[deprecated getKey_eq (since := "2025-01-05")]
theorem getKey_modify [LawfulBEq α] [Inhabited α] {k k' : α} {f : β k β k}
{h : k' m.modify k f} :
(m.modify k f).getKey k' h =

View File

@@ -873,6 +873,7 @@ theorem getKey_congr [EquivBEq α] [LawfulHashable α] (h : m.WF) {k₁ k₂ :
m.getKey k₁ h₁ = m.getKey k₂ (((mem_congr h h').mp h₁)) := by
simp_to_raw using Raw₀.getKey_congr
@[simp]
theorem getKey_eq [LawfulBEq α] (h : m.WF) {k : α} (h') :
m.getKey k h' = k := by
simp_to_raw using Raw₀.getKey_eq
@@ -2661,6 +2662,7 @@ theorem getKey!_alter_self [LawfulBEq α] [Inhabited α] {k : α} {f : Option (
(h : m.WF) : (m.alter k f).getKey! k = if (f (m.get? k)).isSome then k else default := by
simp [getKey!_alter h]
-- Note that in many use cases `getKey_eq` gives a simpler right hand side.
theorem getKey_alter [LawfulBEq α] [Inhabited α] {k k' : α} {f : Option (β k) Option (β k)}
(h : m.WF) {hc : k' m.alter k f} :
(m.alter k f).getKey k' hc =
@@ -3021,6 +3023,7 @@ theorem getKey!_modify_self [LawfulBEq α] [Inhabited α] {k : α} {f : β k →
simp only [mem_iff_contains]
simp_to_raw using Raw₀.getKey!_modify_self
@[deprecated getKey_eq (since := "2025-01-05")]
theorem getKey_modify [LawfulBEq α] [Inhabited α] {k k' : α} {f : β k β k}
(h : m.WF) : {hc : k' m.modify k f}
(m.modify k f).getKey k' hc =

View File

@@ -3524,6 +3524,7 @@ theorem getKey!_alter!_self [TransOrd α] [LawfulEqOrd α] [Inhabited α] (h : t
(t.alter! k f).getKey! k = if (f (t.get? k)).isSome then k else default := by
simpa only [alter_eq_alter!] using getKey!_alter_self h
-- Note that in many use cases `getKey_eq` gives a simpler right hand side.
theorem getKey_alter [TransOrd α] [LawfulEqOrd α] [Inhabited α] (h : t.WF) {k k' : α}
{f : Option (β k) Option (β k)} {hc : k' (t.alter k f h.balanced).1} :
(t.alter k f h.balanced).1.getKey k' hc =

View File

@@ -2322,6 +2322,7 @@ theorem getKey!_alter_self [TransCmp cmp] [LawfulEqCmp cmp] [Inhabited α] {k :
(t.alter k f).getKey! k = if (f (t.get? k)).isSome then k else default :=
Impl.getKey!_alter_self t.wf
@[deprecated getKey_eq (since := "2025-01-05")]
theorem getKey_alter [TransCmp cmp] [LawfulEqCmp cmp] [Inhabited α] {k k' : α}
{f : Option (β k) Option (β k)} {hc : k' t.alter k f} :
(t.alter k f).getKey k' hc =

View File

@@ -2327,6 +2327,7 @@ theorem getKey!_alter_self [TransCmp cmp] [LawfulEqCmp cmp] [Inhabited α] (h :
(t.alter k f).getKey! k = if (f (t.get? k)).isSome then k else default :=
Impl.getKey!_alter!_self h
@[deprecated getKey_eq (since := "2025-01-05")]
theorem getKey_alter [TransCmp cmp] [LawfulEqCmp cmp] [Inhabited α] (h : t.WF) {k k' : α}
{f : Option (β k) Option (β k)} {hc : k' t.alter k f} :
(t.alter k f).getKey k' hc =

View File

@@ -677,6 +677,7 @@ theorem getKey_congr [EquivBEq α] [LawfulHashable α] {k₁ k₂ : α} (h : k
(h₁ : k₁ m) : m.getKey k₁ h₁ = m.getKey k₂ ((mem_congr h).mp h₁) :=
m.inductionOn (fun _ h h₁ => DHashMap.getKey_congr h h₁) h h₁
@[simp]
theorem getKey_eq [LawfulBEq α] {k : α} (h : k m) : m.getKey k h = k :=
m.inductionOn (fun _ h => DHashMap.getKey_eq h) h
@@ -2232,6 +2233,7 @@ theorem getKey!_alter_self [LawfulBEq α] [Inhabited α] {k : α} {f : Option (
(m.alter k f).getKey! k = if (f (m.get? k)).isSome then k else default :=
m.inductionOn fun _ => DHashMap.getKey!_alter_self
@[deprecated getKey_eq (since := "2025-01-05")]
theorem getKey_alter [LawfulBEq α] [Inhabited α] {k k' : α} {f : Option (β k) Option (β k)}
{h : k' m.alter k f} :
(m.alter k f).getKey k' h =
@@ -2239,8 +2241,8 @@ theorem getKey_alter [LawfulBEq α] [Inhabited α] {k k' : α} {f : Option (β k
k
else
haveI h' : k' m := mem_alter_of_beq_eq_false (Bool.not_eq_true _ heq) |>.mp h
m.getKey k' h' :=
m.inductionOn (fun _ _ => DHashMap.getKey_alter) h
m.getKey k' h' := by
split <;> simp_all
@[simp]
theorem getKey_alter_self [LawfulBEq α] [Inhabited α] {k : α} {f : Option (β k) Option (β k)}
@@ -2565,6 +2567,7 @@ theorem getKey!_modify_self [LawfulBEq α] [Inhabited α] {k : α} {f : β k →
(m.modify k f).getKey! k = if k m then k else default :=
m.inductionOn fun _ => DHashMap.getKey!_modify_self
@[deprecated getKey_eq (since := "2025-01-05")]
theorem getKey_modify [LawfulBEq α] [Inhabited α] {k k' : α} {f : β k β k}
{h : k' m.modify k f} :
(m.modify k f).getKey k' h =
@@ -2572,8 +2575,8 @@ theorem getKey_modify [LawfulBEq α] [Inhabited α] {k k' : α} {f : β k → β
k
else
haveI h' : k' m := mem_modify.mp h
m.getKey k' h' :=
m.inductionOn (fun _ _ => DHashMap.getKey_modify) h
m.getKey k' h' := by
split <;> simp_all
@[simp]
theorem getKey_modify_self [LawfulBEq α] [Inhabited α] {k : α} {f : β k β k}

View File

@@ -477,6 +477,7 @@ theorem getKey_congr [EquivBEq α] [LawfulHashable α] {k₁ k₂ : α} (h : k
(h₁ : k₁ m) : m.getKey k₁ h₁ = m.getKey k₂ ((mem_congr h).mp h₁) :=
ExtDHashMap.getKey_congr h h₁
@[simp]
theorem getKey_eq [LawfulBEq α] {k : α} (h : k m) : m.getKey k h = k :=
ExtDHashMap.getKey_eq h

View File

@@ -259,6 +259,7 @@ theorem get_congr [EquivBEq α] [LawfulHashable α] {k₁ k₂ : α} (h : k₁ =
(h₁ : k₁ m) : m.get k₁ h₁ = m.get k₂ ((mem_congr h).mp h₁) :=
ExtHashMap.getKey_congr h h₁
@[simp]
theorem get_eq [LawfulBEq α] {k : α} (h : k m) : m.get k h = k :=
ExtHashMap.getKey_eq h

View File

@@ -565,6 +565,7 @@ theorem getKey_congr [EquivBEq α] [LawfulHashable α] {k₁ k₂ : α} (h : k
(h₁ : k₁ m) : m.getKey k₁ h₁ = m.getKey k₂ ((mem_congr h).mp h₁) :=
DHashMap.getKey_congr h h₁
@[simp]
theorem getKey_eq [LawfulBEq α] {k : α} (h : k m) : m.getKey k h = k :=
DHashMap.getKey_eq h

View File

@@ -589,6 +589,7 @@ theorem getKey_congr [EquivBEq α] [LawfulHashable α] (h : m.WF) {k₁ k₂ :
m.getKey k₁ h₁ = m.getKey k₂ ((mem_congr h h').mp h₁) :=
DHashMap.Raw.getKey_congr h.out h' h₁
@[simp]
theorem getKey_eq [LawfulBEq α] (h : m.WF) {k : α} (h' : k m) :
m.getKey k h' = k :=
DHashMap.Raw.getKey_eq h.out h'

View File

@@ -310,6 +310,7 @@ theorem get_congr [EquivBEq α] [LawfulHashable α] {k₁ k₂ : α} (h : k₁ =
(h₁ : k₁ m) : m.get k₁ h₁ = m.get k₂ ((mem_congr h).mp h₁) :=
HashMap.getKey_congr h h₁
@[simp]
theorem get_eq [LawfulBEq α] {k : α} (h : k m) : m.get k h = k :=
HashMap.getKey_eq h

View File

@@ -328,6 +328,7 @@ theorem get_congr [EquivBEq α] [LawfulHashable α] (h : m.WF) {k₁ k₂ : α}
m.get k₁ h₁ = m.get k₂ (((mem_congr h h').mp h₁)) :=
HashMap.Raw.getKey_congr h.out h' h₁
@[simp]
theorem get_eq [LawfulBEq α] (h : m.WF) {k : α} (h' : m.contains k) :
m.get k h' = k :=
HashMap.Raw.getKey_eq h.out h'