Open
Description
With Z3 it's possible to declare special relations such as partial order, linear order, etc. The documentation explains that the decision procedure is efficient and avoids the quadratic number of quantifier instantiations of a naive axiomatization. These special relations would be very convenient in our axiomatization of mathematical data types (subset relations, contains relations, probably even equality relations etc).
With Z3 there is even a way to declare a "transitive closure" relation, which is not first-order axiomatizable.
I'm not sure what the limitations of these special relations are, but the potential benefits sound great.