Open shmarovfedor opened 7 years ago
I'll check it soon.
We know that tau_t == time_0 == 60.0
but apparently dReal doesn't see this relation in ODE solving.
Without this information, dReal tries to integrate until time = 3600
which will generate ODE exceptions. Over time, it branches on time (and on other dimensions as well). But all ODE pruning fails due to ODE exceptions. As a result, it ends up with a random box (whose size is smaller than delta) and reports it back to the user.
Some observations:
I manually added a constraint (= time_0 tau_0_t)
to the smt2
file and it gets me to the right solution. Inferring closed-form relational constraints between time
variables and other variables should help.
I need to investigate why the branching on time_0
takes us to [334.1148811626434, 334.1157394609451]
instead of a smaller one. I think we need to favor a smaller interval, at least for this special time variable for ODEs.
I think there was a similar issue before when you introduce a variable behaving as
time
. Here is thesmt2
formula:The result returned by
dReal v3.16.12 (commit 5af96ed851a8)
:I think that the result is correct but the witness is not as the differential equation for
tau
isd/dt[tau]=1.0
.