Skip to content

Commit 6cf3b00

Browse files
committed
chore: addres Markus' comments
1 parent 0d8bc36 commit 6cf3b00

File tree

3 files changed

+18
-13
lines changed

3 files changed

+18
-13
lines changed

src/Std/Data/HashMap/Lemmas.lean

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1357,63 +1357,62 @@ theorem union_insert_right_equiv_union_insert [EquivBEq α] [LawfulHashable α]
13571357
⟨@DHashMap.union_insert_right_equiv_union_insert _ _ _ _ m₁.inner m₂.inner _ _ ⟨p.fst, p.snd⟩⟩
13581358

13591359
/- get? -/
1360-
theorem get?_union [LawfulBEq α] {k : α} :
1360+
theorem get?_union [EquivBEq α] [LawfulHashable α] {k : α} :
13611361
(m₁ ∪ m₂).get? k = (m₂.get? k).or (m₁.get? k) :=
13621362
@DHashMap.Const.get?_union _ _ _ _ m₁.inner m₂.inner _ _ k
13631363

1364-
1365-
theorem get?_union_of_not_mem_left [LawfulBEq α]
1364+
theorem get?_union_of_not_mem_left [EquivBEq α] [LawfulHashable α]
13661365
{k : α} (not_mem : ¬k ∈ m₁) :
13671366
(m₁ ∪ m₂).get? k = m₂.get? k :=
13681367
@DHashMap.Const.get?_union_of_not_mem_left _ _ _ _ m₁.inner m₂.inner _ _ k not_mem
13691368

1370-
theorem get?_union_of_not_mem_right [LawfulBEq α]
1369+
theorem get?_union_of_not_mem_right [EquivBEq α] [LawfulHashable α]
13711370
{k : α} (not_mem : ¬k ∈ m₂) :
13721371
(m₁ ∪ m₂).get? k = m₁.get? k :=
13731372
@DHashMap.Const.get?_union_of_not_mem_right _ _ _ _ m₁.inner m₂.inner _ _ k not_mem
13741373

13751374
/- get -/
1376-
theorem get_union_of_mem_right [LawfulBEq α]
1375+
theorem get_union_of_mem_right [EquivBEq α] [LawfulHashable α]
13771376
{k : α} (contains_right : k ∈ m₂) :
13781377
(m₁ ∪ m₂).get k (mem_union_of_right contains_right) = m₂.get k contains_right :=
13791378
@DHashMap.Const.get_union_of_mem_right _ _ _ _ m₁.inner m₂.inner _ _ k contains_right
13801379

1381-
theorem get_union_of_not_mem_left [LawfulBEq α]
1380+
theorem get_union_of_not_mem_left [EquivBEq α] [LawfulHashable α]
13821381
{k : α} (not_mem : ¬k ∈ m₁) {h'} :
13831382
(m₁ ∪ m₂).get k h' = m₂.get k (mem_of_mem_union_of_not_mem_left h' not_mem) :=
13841383
@DHashMap.Const.get_union_of_not_mem_left _ _ _ _ m₁.inner m₂.inner _ _ k not_mem h'
13851384

1386-
theorem get_union_of_not_mem_right [LawfulBEq α]
1385+
theorem get_union_of_not_mem_right [EquivBEq α] [LawfulHashable α]
13871386
{k : α} (not_mem : ¬k ∈ m₂) {h'} :
13881387
(m₁ ∪ m₂).get k h' = m₁.get k (mem_of_mem_union_of_not_mem_right h' not_mem) :=
13891388
@DHashMap.Const.get_union_of_not_mem_right _ _ _ _ m₁.inner m₂.inner _ _ k not_mem h'
13901389

13911390
/- getD -/
1392-
theorem getD_union [LawfulBEq α] {k : α} {fallback : β} :
1391+
theorem getD_union [EquivBEq α] [LawfulHashable α] {k : α} {fallback : β} :
13931392
(m₁ ∪ m₂).getD k fallback = m₂.getD k (m₁.getD k fallback) :=
13941393
@DHashMap.Const.getD_union _ _ _ _ m₁.inner m₂.inner _ _ k fallback
13951394

1396-
theorem getD_union_of_not_mem_left [LawfulBEq α]
1395+
theorem getD_union_of_not_mem_left [EquivBEq α] [LawfulHashable α]
13971396
{k : α} {fallback : β} (not_mem : ¬k ∈ m₁) :
13981397
(m₁ ∪ m₂).getD k fallback = m₂.getD k fallback :=
13991398
@DHashMap.Const.getD_union_of_not_mem_left _ _ _ _ m₁.inner m₂.inner _ _ k fallback not_mem
14001399

1401-
theorem getD_union_of_not_mem_right [LawfulBEq α]
1400+
theorem getD_union_of_not_mem_right [EquivBEq α] [LawfulHashable α]
14021401
{k : α} {fallback : β} (not_mem : ¬k ∈ m₂) :
14031402
(m₁ ∪ m₂).getD k fallback = m₁.getD k fallback :=
14041403
@DHashMap.Const.getD_union_of_not_mem_right _ _ _ _ m₁.inner m₂.inner _ _ k fallback not_mem
14051404

14061405
/- get! -/
1407-
theorem get!_union [LawfulBEq α] {k : α} [Inhabited β] :
1406+
theorem get!_union [EquivBEq α] [LawfulHashable α] {k : α} [Inhabited β] :
14081407
(m₁ ∪ m₂).get! k = m₂.getD k (m₁.get! k) :=
14091408
@DHashMap.Const.get!_union _ _ _ _ m₁.inner m₂.inner _ _ _ k
14101409

1411-
theorem get!_union_of_not_mem_left [LawfulBEq α]
1410+
theorem get!_union_of_not_mem_left [EquivBEq α] [LawfulHashable α]
14121411
{k : α} [Inhabited β] (not_mem : ¬k ∈ m₁) :
14131412
(m₁ ∪ m₂).get! k = m₂.get! k :=
14141413
@DHashMap.Const.get!_union_of_not_mem_left _ _ _ _ m₁.inner m₂.inner _ _ _ k not_mem
14151414

1416-
theorem get!_union_of_not_mem_right [LawfulBEq α]
1415+
theorem get!_union_of_not_mem_right [EquivBEq α] [LawfulHashable α]
14171416
{k : α} [Inhabited β] (not_mem : ¬k ∈ m₂) :
14181417
(m₁ ∪ m₂).get! k = m₁.get! k :=
14191418
@DHashMap.Const.get!_union_of_not_mem_right _ _ _ _ m₁.inner m₂.inner _ _ _ k not_mem

src/Std/Data/HashMap/Raw.lean

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,9 @@ theorem WF.ofList [BEq α] [Hashable α] {l : List (α × β)} : (ofList l).WF :
342342
theorem WF.unitOfList [BEq α] [Hashable α] {l : List α} : (unitOfList l).WF :=
343343
⟨DHashMap.Raw.WF.Const.unitOfList⟩
344344

345+
theorem WF.union [BEq α] [Hashable α] {m₁ m₂ : Raw α β} (h₁ : m₁.WF) (h₂ : m₂.WF) : (m₁.union m₂).WF :=
346+
⟨DHashMap.Raw.WF.union h₁.out h₂.out⟩
347+
345348
end Raw
346349

347350
end HashMap

src/Std/Data/HashSet/Raw.lean

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,9 @@ theorem WF.ofList [BEq α] [Hashable α] {l : List α} :
325325
(ofList l : Raw α).WF :=
326326
⟨HashMap.Raw.WF.unitOfList⟩
327327

328+
theorem WF.union [BEq α] [Hashable α] {m₁ m₂ : Raw α} (h₁ : m₁.WF) (h₂ : m₂.WF) : (m₁.union m₂).WF :=
329+
⟨HashMap.Raw.WF.union h₁.out h₂.out⟩
330+
328331
end Raw
329332

330333
end HashSet

0 commit comments

Comments
 (0)