Non-recursive LRAT chain generation in minimize, vivify
domschrei opened this issue · comments
Hi! First of all, many thanks to @florianpollitt @m-fleury @arminbiere for your great work on LRAT-producing CaDiCaL. I'm currently using it in Mallob for multiple purposes and preparing a paper on it.
In experiments at scale, a few instances from SAT Comp 2023 caused a stack overflow. This concerns the recursive methods Internal::minimize_literal
in minimize.cpp
and Internal::vivify_build_lrat
in vivify.cpp
. Examples are grs-32-256.cnf
for the SO in minimize and shift1add.28943.cnf
for the SO in vivify. It's a possibility that these errors don't occur normally but are indirect consequences of my changes to CaDiCaL or due to restrictions on the used cluster.
In any way, I mitigated this by translating the methods into iterative procedures with an explicit stack (see commits vivify, minimize).
Would you be interested in integrating this in some way?
It is not released yet, but we met the same problem 30c6580
EDIT: only for minimize, not for vivify
This should be addressed on the development branch and soon be part of our next release.
Fixed in the latest 2.0.0 release.