Closed benbrastmckie closed 6 months ago
I merged the min_declare
branch without issues and was able to remove the declaration of alternative
with noticeable decrease in computation time for cf_excl_mid.py
. Without doing benchmarks I think it is safe to conclude that adding extra declarations can slow down Z3.
I had thought it would be a good idea to introduce as few declarations as need be (thinking of these as the primitives). In particular,
possible
,verify
, andfalsify
. The other declarations ofparthood
,world
, andalternative
were added to ease the extraction of information from Z3 models. Their interpretation was then constrained to accord with the defined notions ofis_part_of
,is_world
, andis_alternative
. However, having succeeded in eliminating these extra declarations, the models seem to fair somewhat worse (they don't seem to generate the alternative worlds that they should) though seem to run much faster. I have left the branchremove_alt
for further investigation between these strategies. It may be worth creating a new branch which adds all the declarations as currentlymaster
does not include reference to the declarationsworld
orparthood
. It may also worth running these different branches against benchmarks to get a better sense of how they compare.