I need to prove some properties about the map data structure (such as emptiness, domain, update, etc). Is there support for maps in Z3?
I found a proposal: https://www.kroening.com/smt-lib-lsm.pdf and its associated SMT theory http://www.philipp.ruemmer.org/smt-lsm/SMT-LIB.tar.gz. This proposal treats maps as arrays with corresponding axioms. However, I cannot find an off-the-shelf implementation in a theorem prover.
Any suggestion of where to start if I'd like to have support for maps in Z3?
My best bet is that i need to add a new theory in Z3, which assumes good knowledge of Z3's implementation - assumption which doesn't hold in my case.