Commit 900e793
committed
Optimise propositional encoding of object_size
Avoid creating equalities over the postponed bitvector when the object
literals trivially aren't equal, and directly encode bitwise equality
when the object literals are trivially equal (and stop searching for a
matching object). In all other cases, avoid unnecessary Tseitin
variables to encode the postponed bitvector equality.
When running on various proofs done for AWS open-source projects, this
changes the performance as follows (when comparing to #7021): with
CaDiCaL as back-end, the total solver time for the hardest 46 proofs
changes from 26779.7 to 22409.9 seconds (4369.8 seconds speed-up); with
Minisat, however, the hardest 49 proofs take 28616.7 instead of 28420.4
seconds (196.3 seconds slow-down). Across these benchmarks, 11.7% of
variables and 12.8% of clauses are removed.1 parent 02a74fa commit 900e793
1 file changed
+17
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
958 | 958 | | |
959 | 959 | | |
960 | 960 | | |
| 961 | + | |
| 962 | + | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
| 969 | + | |
| 970 | + | |
961 | 971 | | |
962 | 972 | | |
963 | 973 | | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
964 | 981 | | |
965 | 982 | | |
966 | 983 | | |
| |||
0 commit comments