Skip to content

Commit 49e3c6e

Browse files
Better contains spec in ListMap (#152)
* better contains spec * remove one check * format
1 parent c769bb4 commit 49e3c6e

File tree

1 file changed

+13
-1
lines changed
  • data-structures/maps/mutablemaps/src/main/scala/com/mutablemaps/map

1 file changed

+13
-1
lines changed

data-structures/maps/mutablemaps/src/main/scala/com/mutablemaps/map/ListMap.scala

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,27 @@ case class ListMap[K, B](toList: List[(K, B)]) {
4949
if (res) {
5050
TupleListOpsGenK.lemmaContainsKeyImpliesGetValueByKeyDefined(toList, key)
5151
TupleListOpsGenK.lemmaInListThenGetKeysListContains(toList, key)
52+
if (this.keys().contains(key)) {
53+
TupleListOpsGenK.lemmaInGetKeysListThenContainsKey(toList, key)
54+
// check(false)
55+
}
5256
} else {
5357
if (this.keys().contains(key)) {
5458
TupleListOpsGenK.lemmaInGetKeysListThenContainsKey(toList, key)
59+
TupleListOpsGenK.lemmaInListThenGetKeysListContains(toList, key)
60+
}
61+
if (this.get(key).isDefined) {
62+
TupleListOpsGenK.lemmaGetValueByKeyIsDefinedImpliesContainsKey(toList, key)
5563
check(false)
5664
}
5765
}
5866
res
5967

60-
}.ensuring(res => (!res && !this.keys().contains(key)) || (this.get(key).isDefined && this.keys().contains(key)))
68+
}.ensuring(res =>
69+
(!res && !this.keys().contains(key) && !this.keys().contains(key) && this.get(key).isEmpty)
70+
||
71+
(res && this.get(key).isDefined && this.keys().contains(key))
72+
)
6173

6274
@inline
6375
def get(key: K): Option[B] = {

0 commit comments

Comments
 (0)