Currently, we convert sign_extend and repeat to the appropriate concatenations and extractions at the term level. This has the advantage that it is simple, but the inconvenient that we create a potentially large amount of terms that do not appear in the original problem (proportional to the size of the sign extension or repetition).
In addition to preventing obvious simplifications with extractions, the creation of many terms clutters the union-find which drastically slows down the solver in presence of sign extensions to large bit-widths.
Currently, we convert
sign_extend
andrepeat
to the appropriate concatenations and extractions at the term level. This has the advantage that it is simple, but the inconvenient that we create a potentially large amount of terms that do not appear in the original problem (proportional to the size of the sign extension or repetition).In addition to preventing obvious simplifications with extractions, the creation of many terms clutters the union-find which drastically slows down the solver in presence of sign extensions to large bit-widths.
Note: this impacts some of the Décysif datasets.