You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The symbolic executor uses the inductively defined symbolic propositions directly, i.e. we have essentially the two monads β‘(A -> π) -> π and β‘(A -> SHeap -> π) -> SHeap -> π. I think it might be good to introduce an intermediate type class interface for propositions π and/or heap propositions SHeap -> π that has as methods assert/assume etc, i.e. the interface of our symbolic propositions. Specifically the interfaces should encapsulate everything related to the solver and to heaps in its instances and hide it from the rest of the symbolic executor implementation. The symbolic executor would essentially already look as if it is based on separation logic symbolic propositions directly and does not do any solving itself. Making the switch to symbolic separation logic propositions later should be easy after this. There are other definitions that exhibit the same interface as symbolic propositions, see for example the heuristics for quantifier instantiation implemented in solve_evars / solve_uvars. Hooking a spatial solver into the symbolic executor should also be done in such an instance.
The text was updated successfully, but these errors were encountered:
The symbolic executor uses the inductively defined symbolic propositions directly, i.e. we have essentially the two monads
β‘(A -> π) -> π
andβ‘(A -> SHeap -> π) -> SHeap -> π
. I think it might be good to introduce an intermediate type class interface for propositionsπ
and/or heap propositionsSHeap -> π
that has as methods assert/assume etc, i.e. the interface of our symbolic propositions. Specifically the interfaces should encapsulate everything related to the solver and to heaps in its instances and hide it from the rest of the symbolic executor implementation. The symbolic executor would essentially already look as if it is based on separation logic symbolic propositions directly and does not do any solving itself. Making the switch to symbolic separation logic propositions later should be easy after this. There are other definitions that exhibit the same interface as symbolic propositions, see for example the heuristics for quantifier instantiation implemented insolve_evars
/solve_uvars
. Hooking a spatial solver into the symbolic executor should also be done in such an instance.The text was updated successfully, but these errors were encountered: