Description
Currently Dafny pins z3 to v4.8.5.
However this is not the current version of z3.
The verification performance/stability for different versions of z3 and different code bases is large enough that there does not seem to be a single simple z3 version.
I suggest adding some kind of compile attribute to let people use older versions of z3.
This would let the Dafny project stay more current on versions of z3,
but still give customers a way to unblock themselves if verification times begin to time out.
I suggest taking 2 arguments, a version and a path.
Like this:
{ :vcs_z3_runtime v4.8.5, path/to/binary }
Obviously this would complicate the Dafny CI pipeline because it would need to test agains multiple versions of z3.
But this would unblock both Dafny and many Dafny projects to track more recent versions of z3.
The longer we wait to upgrade the more pain and work it will be.
And I don't see a path to a zero touch upgrade were ever proof obligation is just faster.