Skip to content

Commit eb81b62

Browse files
committed
Add HashMap congruence lemmas
1 parent bb17106 commit eb81b62

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

src/Std/Data/HashMap/Lemmas.lean

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1351,6 +1351,16 @@ theorem mem_of_mem_union_of_not_mem_left [EquivBEq α]
13511351
@DHashMap.mem_of_mem_union_of_not_mem_left _ _ _ _ m₁.inner m₂.inner _ _ k
13521352

13531353
/- Equiv -/
1354+
theorem union_equiv_congr_left {m₃ : HashMap α β} [EquivBEq α] [LawfulHashable α]
1355+
(equiv : m₁ ~m m₂) :
1356+
(m₁ ∪ m₃) ~m (m₂ ∪ m₃) :=
1357+
⟨DHashMap.union_equiv_congr_left equiv.1
1358+
1359+
theorem union_equiv_congr_right {m₃ : HashMap α β} [EquivBEq α] [LawfulHashable α]
1360+
(equiv : m₂ ~m m₃) :
1361+
(m₁ ∪ m₂) ~m (m₁ ∪ m₃) :=
1362+
⟨DHashMap.union_equiv_congr_right equiv.1
1363+
13541364
theorem union_insert_right_equiv_union_insert [EquivBEq α] [LawfulHashable α] {p : α × β} :
13551365
(m₁ ∪ (m₂.insert p.fst p.snd)) ~m ((m₁ ∪ m₂).insert p.fst p.snd) :=
13561366
⟨@DHashMap.union_insert_right_equiv_union_insert _ _ _ _ m₁.inner m₂.inner _ _ ⟨p.fst, p.snd⟩⟩

src/Std/Data/HashMap/RawLemmas.lean

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1322,6 +1322,16 @@ theorem mem_of_mem_union_of_not_mem_left [EquivBEq α]
13221322
@DHashMap.Raw.mem_of_mem_union_of_not_mem_left _ _ _ _ m₁.inner m₂.inner _ _ h₁.out h₂.out k
13231323

13241324
/- Equiv -/
1325+
theorem union_equiv_congr_left {m₃ : Raw α β} [EquivBEq α] [LawfulHashable α] (h₁ : m₁.WF) (h₂ : m₂.WF) (h₃ : m₃.WF)
1326+
(equiv : m₁ ~m m₂) :
1327+
(m₁ ∪ m₃) ~m (m₂ ∪ m₃) :=
1328+
⟨@DHashMap.Raw.union_equiv_congr_left _ _ _ _ m₁.inner m₂.inner m₃.inner _ _ h₁.out h₂.out h₃.out equiv.1
1329+
1330+
theorem union_equiv_congr_right {m₃ : Raw α β} [EquivBEq α] [LawfulHashable α] (h₁ : m₁.WF) (h₂ : m₂.WF) (h₃ : m₃.WF)
1331+
(equiv : m₂ ~m m₃) :
1332+
(m₁ ∪ m₂) ~m (m₁ ∪ m₃) :=
1333+
⟨@DHashMap.Raw.union_equiv_congr_right _ _ _ _ m₁.inner m₂.inner m₃.inner _ _ h₁.out h₂.out h₃.out equiv.1
1334+
13251335
theorem union_insert_right_equiv_union_insert [EquivBEq α] [LawfulHashable α] {p : α × β}
13261336
(h₁ : m₁.WF) (h₂ : m₂.WF) :
13271337
(m₁ ∪ (m₂.insert p.fst p.snd)).Equiv ((m₁ ∪ m₂).insert p.fst p.snd) :=

0 commit comments

Comments
 (0)