diff --git a/src/Init/Data/List/Erase.lean b/src/Init/Data/List/Erase.lean index 44250416b7c1..5835eef8fc4d 100644 --- a/src/Init/Data/List/Erase.lean +++ b/src/Init/Data/List/Erase.lean @@ -354,7 +354,7 @@ theorem erase_eq_iff [LawfulBEq α] {a : α} {l : List α} : rw [erase_of_not_mem] simp_all -theorem Nodup.erase_eq_filter [BEq α] [LawfulBEq α] {l} (d : Nodup l) (a : α) : l.erase a = l.filter (· != a) := by +theorem Nodup.erase_eq_filter [LawfulBEq α] {l} (d : Nodup l) (a : α) : l.erase a = l.filter (· != a) := by induction d with | nil => rfl | cons m _n ih => @@ -367,13 +367,13 @@ theorem Nodup.erase_eq_filter [BEq α] [LawfulBEq α] {l} (d : Nodup l) (a : α) simpa [@eq_comm α] using m · simp [beq_false_of_ne h, ih, h] -theorem Nodup.mem_erase_iff [BEq α] [LawfulBEq α] {a : α} (d : Nodup l) : a ∈ l.erase b ↔ a ≠ b ∧ a ∈ l := by +theorem Nodup.mem_erase_iff [LawfulBEq α] {a : α} (d : Nodup l) : a ∈ l.erase b ↔ a ≠ b ∧ a ∈ l := by rw [Nodup.erase_eq_filter d, mem_filter, and_comm, bne_iff_ne] -theorem Nodup.not_mem_erase [BEq α] [LawfulBEq α] {a : α} (h : Nodup l) : a ∉ l.erase a := fun H => by +theorem Nodup.not_mem_erase [LawfulBEq α] {a : α} (h : Nodup l) : a ∉ l.erase a := fun H => by simpa using ((Nodup.mem_erase_iff h).mp H).left -theorem Nodup.erase [BEq α] [LawfulBEq α] (a : α) : Nodup l → Nodup (l.erase a) := +theorem Nodup.erase [LawfulBEq α] (a : α) : Nodup l → Nodup (l.erase a) := Nodup.sublist <| erase_sublist _ _ end erase diff --git a/src/Init/WF.lean b/src/Init/WF.lean index 8190b0948247..d73bdcff50ff 100644 --- a/src/Init/WF.lean +++ b/src/Init/WF.lean @@ -68,6 +68,7 @@ noncomputable def recursion {C : α → Sort v} (a : α) (h : ∀ x, (∀ y, r y induction (apply hwf a) with | intro x₁ _ ih => exact h x₁ ih +include hwf in theorem induction {C : α → Prop} (a : α) (h : ∀ x, (∀ y, r y x → C y) → C x) : C a := recursion hwf a h diff --git a/src/Std/Data/DHashMap/Internal/RawLemmas.lean b/src/Std/Data/DHashMap/Internal/RawLemmas.lean index 0e68b2fdfc12..e8da7ecc0694 100644 --- a/src/Std/Data/DHashMap/Internal/RawLemmas.lean +++ b/src/Std/Data/DHashMap/Internal/RawLemmas.lean @@ -20,7 +20,7 @@ open Std.DHashMap.Internal.List universe u v -variable {α : Type u} {β : α → Type v} [BEq α] [Hashable α] +variable {α : Type u} {β : α → Type v} namespace Std.DHashMap.Internal @@ -41,6 +41,8 @@ theorem Raw.buckets_emptyc {i : Nat} {h} : (∅ : Raw α β).buckets[i]'h = AssocList.nil := buckets_empty +variable [BEq α] [Hashable α] + @[simp] theorem buckets_empty {c} {i : Nat} {h} : (empty c : DHashMap α β).1.buckets[i]'h = AssocList.nil := by @@ -55,7 +57,9 @@ end empty namespace Raw₀ +variable [BEq α] [Hashable α] variable (m : Raw₀ α β) (h : m.1.WF) +set_option deprecated.oldSectionVars true /-- Internal implementation detail of the hash map -/ scoped macro "wf_trivial" : tactic => `(tactic| diff --git a/src/Std/Data/DHashMap/RawLemmas.lean b/src/Std/Data/DHashMap/RawLemmas.lean index ba99e8ffcc3f..1700ce0562ca 100644 --- a/src/Std/Data/DHashMap/RawLemmas.lean +++ b/src/Std/Data/DHashMap/RawLemmas.lean @@ -75,6 +75,7 @@ namespace Raw open Internal.Raw₀ Internal.Raw variable {m : Raw α β} (h : m.WF) +set_option deprecated.oldSectionVars true @[simp] theorem isEmpty_empty {c} : (empty c : Raw α β).isEmpty := by diff --git a/src/Std/Data/HashMap/RawLemmas.lean b/src/Std/Data/HashMap/RawLemmas.lean index dd34fc46f9ad..5f2f577b612f 100644 --- a/src/Std/Data/HashMap/RawLemmas.lean +++ b/src/Std/Data/HashMap/RawLemmas.lean @@ -27,6 +27,7 @@ namespace Std.HashMap namespace Raw variable {m : Raw α β} (h : m.WF) +set_option deprecated.oldSectionVars true private theorem ext {m m' : Raw α β} : m.inner = m'.inner → m = m' := by cases m; cases m'; rintro rfl; rfl diff --git a/src/Std/Data/HashSet/Lemmas.lean b/src/Std/Data/HashSet/Lemmas.lean index 91758622b3f9..b60d8987442d 100644 --- a/src/Std/Data/HashSet/Lemmas.lean +++ b/src/Std/Data/HashSet/Lemmas.lean @@ -20,7 +20,7 @@ set_option autoImplicit false universe u v -variable {α : Type u} {_ : BEq α} {_ : Hashable α} [EquivBEq α] [LawfulHashable α] +variable {α : Type u} {_ : BEq α} {_ : Hashable α} namespace Std.HashSet diff --git a/src/Std/Data/HashSet/RawLemmas.lean b/src/Std/Data/HashSet/RawLemmas.lean index f9a381a45860..0b07f35462cc 100644 --- a/src/Std/Data/HashSet/RawLemmas.lean +++ b/src/Std/Data/HashSet/RawLemmas.lean @@ -27,6 +27,7 @@ namespace Std.HashSet namespace Raw variable {m : Raw α} (h : m.WF) +set_option deprecated.oldSectionVars true private theorem ext {m m' : Raw α} : m.inner = m'.inner → m = m' := by cases m; cases m'; rintro rfl; rfl