Skip to content

Commit 42ded56

Browse files
wkrozowskiTwoFX
andauthored
feat: add difference on ExtDHashMap/ExtHashMap/ExtHashSet (#11399)
This PR adds support for the difference operation for `ExtDHashMap`/`ExtHashMap`/`ExtHashSet` and proves several lemmas about it. --------- Co-authored-by: Markus Himmel <[email protected]>
1 parent f0738c2 commit 42ded56

File tree

6 files changed

+684
-13
lines changed

6 files changed

+684
-13
lines changed

src/Std/Data/ExtDHashMap/Basic.lean

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,17 @@ def inter [EquivBEq α] [LawfulHashable α] (m₁ m₂ : ExtDHashMap α β) : Ex
373373

374374
instance [EquivBEq α] [LawfulHashable α] : Inter (ExtDHashMap α β) := ⟨inter⟩
375375

376+
@[inline, inherit_doc DHashMap.diff]
377+
def diff [EquivBEq α] [LawfulHashable α] (m₁ m₂ : ExtDHashMap α β) : ExtDHashMap α β := lift₂ (fun x y : DHashMap α β => mk (x.diff y))
378+
(fun a b c d equiv₁ equiv₂ => by
379+
simp only [DHashMap.diff_eq, mk'.injEq]
380+
apply Quotient.sound
381+
apply DHashMap.Equiv.diff_congr
382+
· exact equiv₁
383+
· exact equiv₂) m₁ m₂
384+
385+
instance [EquivBEq α] [LawfulHashable α] : SDiff (ExtDHashMap α β) := ⟨diff⟩
386+
376387
@[inline, inherit_doc DHashMap.Const.unitOfArray]
377388
def Const.unitOfArray [BEq α] [Hashable α] (l : Array α) :
378389
ExtDHashMap α (fun _ => Unit) :=

0 commit comments

Comments
 (0)