@@ -405,11 +405,51 @@ theorem getₘ_eq_getValue [BEq α] [Hashable α] [LawfulBEq α] {m : Raw₀ α
405405 apply_bucket_with_proof hm a AssocList.getCast List.getValueCast AssocList.getCast_eq
406406 List.getValueCast_of_perm List.getValueCast_append_of_containsKey_eq_false
407407
408+ theorem getEntryₘ_eq_getEntry [BEq α] [PartialEquivBEq α] [Hashable α] [LawfulHashable α] {m : Raw₀ α β} (hm : Raw.WFImp m.1 )
409+ {a : α} {h : m.containsₘ a} :
410+ m.getEntryₘ a h = List.getEntry a (toListModel m.1 .buckets) (containsₘ_eq_containsKey hm ▸ h) :=
411+ apply_bucket_with_proof hm a AssocList.getEntry List.getEntry AssocList.getEntry_eq getEntry_of_perm getEntry_append_of_containsKey_eq_false
412+
413+ theorem getEntry ?ₘ_eq_getEntry ? [BEq α] [PartialEquivBEq α] [Hashable α] [LawfulHashable α] {m : Raw₀ α β} (hm : Raw.WFImp m.1 )
414+ {a : α} :
415+ m.getEntry?ₘ a = List.getEntry? a (toListModel m.1 .buckets) :=
416+ apply_bucket hm AssocList.getEntry?_eq getEntry?_of_perm getEntry?_append_of_containsKey_eq_false
417+
408418theorem get_eq_getValueCast [BEq α] [Hashable α] [LawfulBEq α] {m : Raw₀ α β} (hm : Raw.WFImp m.1 )
409419 {a : α} {h : m.contains a} :
410420 m.get a h = getValueCast a (toListModel m.1 .buckets) (contains_eq_containsKey hm ▸ h) := by
411421 rw [get_eq_getₘ, getₘ_eq_getValue hm]
412422
423+ theorem getEntry_eq_getEntry [BEq α] [Hashable α] [PartialEquivBEq α] [LawfulHashable α] {m : Raw₀ α β} (hm : Raw.WFImp m.1 )
424+ {a : α} {h : m.contains a} :
425+ m.getEntry a h = List.getEntry a (toListModel m.1 .buckets) (contains_eq_containsKey hm ▸ h) := by
426+ rw [getEntry_eq_getEntryₘ, getEntryₘ_eq_getEntry hm]
427+
428+ theorem getEntry ?_eq_getEntry ? [BEq α] [Hashable α] [PartialEquivBEq α] [LawfulHashable α] {m : Raw₀ α β} (hm : Raw.WFImp m.1 )
429+ {a : α} :
430+ m.getEntry? a = List.getEntry? a (toListModel m.1 .buckets) := by
431+ rw [getEntry?_eq_getEntry?ₘ, getEntry?ₘ_eq_getEntry? hm]
432+
433+ theorem getEntryDₘ_eq_getEntryD [BEq α] [PartialEquivBEq α] [Hashable α] [LawfulHashable α] {m : Raw₀ α β} (hm : Raw.WFImp m.1 )
434+ {a : α} {fallback : (a : α) × β a} :
435+ m.getEntryDₘ a fallback = List.getEntryD a fallback (toListModel m.1 .buckets) :=
436+ apply_bucket hm AssocList.getEntryD_eq getEntryD_of_perm getEntryD_append_of_containsKey_eq_false
437+
438+ theorem getEntryD_eq_getEntryD [BEq α] [Hashable α] [PartialEquivBEq α] [LawfulHashable α] {m : Raw₀ α β} (hm : Raw.WFImp m.1 )
439+ {a : α} {fallback : (a : α) × β a} :
440+ m.getEntryD a fallback = List.getEntryD a fallback (toListModel m.1 .buckets) := by
441+ rw [getEntryD_eq_getEntryDₘ, getEntryDₘ_eq_getEntryD hm]
442+
443+ theorem getEntry !ₘ_eq_getEntry ! [BEq α] [PartialEquivBEq α] [Hashable α] [LawfulHashable α] {m : Raw₀ α β} (hm : Raw.WFImp m.1 )
444+ {a : α} [Inhabited ((a : α) × β a)] :
445+ m.getEntry!ₘ a = List.getEntry! a (toListModel m.1 .buckets) :=
446+ apply_bucket hm AssocList.getEntry!_eq getEntry!_of_perm getEntry!_append_of_containsKey_eq_false
447+
448+ theorem getEntry !_eq_getEntry ! [BEq α] [Hashable α] [PartialEquivBEq α] [LawfulHashable α] {m : Raw₀ α β} (hm : Raw.WFImp m.1 )
449+ {a : α} [Inhabited ((a : α) × β a)] :
450+ m.getEntry! a = List.getEntry! a (toListModel m.1 .buckets) := by
451+ rw [getEntry!_eq_getEntry!ₘ, getEntry!ₘ_eq_getEntry! hm]
452+
413453theorem get !ₘ_eq_getValueCast ! [BEq α] [Hashable α] [LawfulBEq α] {m : Raw₀ α β}
414454 (hm : Raw.WFImp m.1 ) {a : α} [Inhabited (β a)] :
415455 m.get!ₘ a = getValueCast! a (toListModel m.1 .buckets) := by
0 commit comments