| 354 | | |
| | 354 | <K,V> $set<K> $map_domain( $map<K,V> m ); // returns the domain of the map (the set of keys) |
| | 355 | <K,V> $set<V> $map_range( $map<K,V> m ); // returns the range of the map (the set of values) |
| | 356 | |
| | 357 | <K,V> $seq<$pair<K,V>> $map_seq( $map<K,V> m ); // key value pairs of m arranged in a sequence |
| | 358 | |
| | 359 | <K,V> $map<K,V> $map_add( $map<K,V> m, K k, V v ); // result of (re)defining k to map to v. |
| | 360 | <K,V> $map<K,V> $map_add( $map<K,V> m, $set<$pair<K,V>> kvs); // result of (re)defining k to map to v for every pair (k,v) in kvs |
| | 361 | <K,V> $map<K,V> $map_remove( $map<K,V> m, K k ); // result of declaring k undefined |
| | 362 | <K,V> $map<K,V> $map_remove( $map<K,V> m, $set<K> ks ); // result of declaring k undefined for every k in ks |
| | 363 | <K,V> $bool $map_contains( $map<K,V> m, K k ); // is k defined in the map? |
| | 364 | <K,V> V $map_get( $map<K,V> m, K k ); // get the value defined at k. Should check $map_contains first (what do we do when k is not defined?) |
| | 365 | |
| | 366 | <K,V> $bool $map_injective( $map<K,V> m ); // does m form an injection? |
| | 367 | <K,V> $map<K,V> $map_inverse( $map<K,V> m ); // returns the inverse map of m. Should check $map_injective first (what do we do when m is not injective?) |