File tree Expand file tree Collapse file tree 13 files changed +27
-0
lines changed
Expand file tree Collapse file tree 13 files changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -240,6 +240,9 @@ theorem getElem_of_getElem? [GetElem? cont idx elem dom] [LawfulGetElem cont idx
240240 {c : cont} {i : idx} [Decidable (dom c i)] (h : c[i]? = some e) : Exists fun h : dom c i => c[i] = e :=
241241 getElem?_eq_some_iff.mp h
242242
243+ theorem of_getElem_eq [GetElem? cont idx elem dom] [LawfulGetElem cont idx elem dom]
244+ {c : cont} {i : idx} [Decidable (dom c i)] {h} (_ : c[i] = e) : dom c i := h
245+
243246@[simp] theorem some_getElem_eq_getElem?_iff [GetElem? cont idx elem dom] [LawfulGetElem cont idx elem dom]
244247 {c : cont} {i : idx} [Decidable (dom c i)] (h : dom c i):
245248 (some c[i] = c[i]?) ↔ True := by
Original file line number Diff line number Diff line change @@ -1115,6 +1115,8 @@ theorem getThenInsertIfNew?_snd [LawfulBEq α] {k : α} {v : β k} :
11151115 (m.getThenInsertIfNew? k v).2 = m.insertIfNew k v :=
11161116 ext <| congrArg Subtype.val (Raw₀.getThenInsertIfNew?_snd _ (k := k))
11171117
1118+ theorem mem_of_get_eq [LawfulBEq α] {k : α} {v : β k} {w} (_ : m.get k w = v) : k ∈ m := w
1119+
11181120namespace Const
11191121
11201122variable {β : Type v} {m : DHashMap α (fun _ => β)}
Original file line number Diff line number Diff line change @@ -1181,6 +1181,8 @@ theorem getThenInsertIfNew?_snd [LawfulBEq α] (h : m.WF) {k : α} {v : β k} :
11811181 (m.getThenInsertIfNew? k v).2 = m.insertIfNew k v := by
11821182 simp_to_raw using congrArg Subtype.val (Raw₀.getThenInsertIfNew?_snd _)
11831183
1184+ theorem mem_of_get_eq [LawfulBEq α] {k : α} {v : β k} {w} (_ : m.get k w = v) : k ∈ m := w
1185+
11841186namespace Const
11851187
11861188variable {β : Type v} {m : DHashMap.Raw α (fun _ => β)} (h : m.WF)
Original file line number Diff line number Diff line change @@ -1058,6 +1058,8 @@ theorem getThenInsertIfNew?_snd [TransCmp cmp] [LawfulEqCmp cmp] {k : α} {v :
10581058 (t.getThenInsertIfNew? k v).2 = t.insertIfNew k v :=
10591059 ext <| Impl.getThenInsertIfNew?_snd t.wf
10601060
1061+ theorem mem_of_get_eq [LawfulEqCmp cmp] {k : α} {v : β k} {w} (_ : t.get k w = v) : k ∈ t := w
1062+
10611063namespace Const
10621064
10631065variable {β : Type v} {t : DTreeMap α β cmp}
Original file line number Diff line number Diff line change @@ -1068,6 +1068,8 @@ theorem getThenInsertIfNew?_snd [TransCmp cmp] [LawfulEqCmp cmp] (h : t.WF) {k :
10681068 (t.getThenInsertIfNew? k v).2 = t.insertIfNew k v :=
10691069 ext <| Impl.getThenInsertIfNew?!_snd h
10701070
1071+ theorem mem_of_get_eq [LawfulEqCmp cmp] {k : α} {v : β k} {w} (_ : t.get k w = v) : k ∈ t := w
1072+
10711073namespace Const
10721074
10731075variable {β : Type v} {t : Raw α β cmp}
Original file line number Diff line number Diff line change @@ -951,6 +951,8 @@ theorem getThenInsertIfNew?_snd [LawfulBEq α] {k : α} {v : β k} :
951951 (m.getThenInsertIfNew? k v).2 = m.insertIfNew k v :=
952952 m.inductionOn fun _ => congrArg mk DHashMap.getThenInsertIfNew?_snd
953953
954+ theorem mem_of_get_eq [LawfulBEq α] {k : α} {v : β k} {w} (_ : m.get k w = v) : k ∈ m := w
955+
954956namespace Const
955957
956958variable {β : Type v} {m : ExtDHashMap α (fun _ => β)}
Original file line number Diff line number Diff line change @@ -1004,6 +1004,8 @@ theorem getThenInsertIfNew?_snd [TransCmp cmp] [LawfulEqCmp cmp] {k : α} {v :
10041004 (t.getThenInsertIfNew? k v).2 = t.insertIfNew k v :=
10051005 t.inductionOn fun _ => congrArg mk DTreeMap.getThenInsertIfNew?_snd
10061006
1007+ theorem mem_of_get_eq [TransCmp cmp] [LawfulEqCmp cmp] {k : α} {v : β k} {w} (_ : t.get k w = v) : k ∈ t := w
1008+
10071009namespace Const
10081010
10091011variable {β : Type v} {t : ExtDTreeMap α β cmp}
Original file line number Diff line number Diff line change @@ -123,6 +123,8 @@ theorem mem_of_mem_insert' [EquivBEq α] [LawfulHashable α] {k a : α} :
123123theorem contains_insert_self [EquivBEq α] [LawfulHashable α] {k : α} : (m.insert k).contains k := by
124124 simp
125125
126+ theorem mem_of_get_eq [LawfulBEq α] (m : ExtHashSet α) {k v : α} {w} (_ : m.get k w = v) : k ∈ m := w
127+
126128theorem mem_insert_self [EquivBEq α] [LawfulHashable α] {k : α} : k ∈ m.insert k := by simp
127129
128130@[simp, grind =]
Original file line number Diff line number Diff line change @@ -107,6 +107,8 @@ theorem contains_insert_self [TransCmp cmp] {k : α} :
107107 (t.insert k).contains k :=
108108 ExtTreeMap.contains_insertIfNew_self
109109
110+ theorem mem_of_get_eq [TransCmp cmp] {k v : α} {w} (_ : t.get k w = v) : k ∈ t := w
111+
110112theorem mem_insert_self [TransCmp cmp] {k : α} :
111113 k ∈ t.insert k :=
112114 ExtTreeMap.mem_insertIfNew_self
Original file line number Diff line number Diff line change @@ -140,6 +140,8 @@ theorem contains_insert_self [EquivBEq α] [LawfulHashable α] {k : α} : (m.ins
140140
141141theorem mem_insert_self [EquivBEq α] [LawfulHashable α] {k : α} : k ∈ m.insert k := by simp
142142
143+ theorem mem_of_get_eq {k v : α} {w} (_ : m.get k w = v) : k ∈ m := w
144+
143145@[simp, grind =]
144146theorem size_emptyWithCapacity {c} : (emptyWithCapacity c : HashSet α).size = 0 :=
145147 HashMap.size_emptyWithCapacity
You can’t perform that action at this time.
0 commit comments