ABC aborts with an assertion failure in Gia_ManChoiceLevel when running dch followed by &get; &if -K 4 on the attached combinational AIGER testcase.
The crash is reproducible with the current locally built ABC:
UC Berkeley, ABC 1.01 (compiled Jun 25 2026 20:02:32)
Reproducer
Input testcase:
input.po-set-reduced.aag
input.po-set-reduced.aig
The ASCII AIGER header is:
Command:
abc -c "read input.po-set-reduced.aig; strash; dch; &get; &if -K 4"
The same failure also reproduces with dch -f:
abc -c "read input.po-set-reduced.aig; strash; dch -f; &get; &if -K 4"
Actual Behavior
ABC aborts:
abc: src/aig/gia/giaIf.c:836: Gia_ManChoiceLevel: Assertion `Gia_ObjLevel(p, pObj) > 0' failed.
Aborted (core dumped)
In shell, the command exits with status 134. In Python subprocess, this appears as signal return code -6.
Expected Behavior
ABC should not abort on a valid combinational AIGER input. If the command sequence is unsupported for this network, ABC should return a normal error instead of hitting an internal assertion.
Additional Notes
The shortest command sequence I found is:
abc -c "read input.po-set-reduced.aig; strash; dch; &get; &if -K 4"
Without dch, the command does not hit this assertion:
abc -c "read input.po-set-reduced.aig; strash; &get; &if -K 4"
The failure is not specific to K=4; it reproduced for K=2,3,4,5,6,8 on the original testcase.
repro-1.zip
ABC aborts with an assertion failure in
Gia_ManChoiceLevelwhen runningdchfollowed by&get; &if -K 4on the attached combinational AIGER testcase.The crash is reproducible with the current locally built ABC:
Reproducer
Input testcase:
The ASCII AIGER header is:
Command:
abc -c "read input.po-set-reduced.aig; strash; dch; &get; &if -K 4"The same failure also reproduces with
dch -f:abc -c "read input.po-set-reduced.aig; strash; dch -f; &get; &if -K 4"Actual Behavior
ABC aborts:
In shell, the command exits with status
134. In Pythonsubprocess, this appears as signal return code-6.Expected Behavior
ABC should not abort on a valid combinational AIGER input. If the command sequence is unsupported for this network, ABC should return a normal error instead of hitting an internal assertion.
Additional Notes
The shortest command sequence I found is:
abc -c "read input.po-set-reduced.aig; strash; dch; &get; &if -K 4"Without
dch, the command does not hit this assertion:abc -c "read input.po-set-reduced.aig; strash; &get; &if -K 4"The failure is not specific to
K=4; it reproduced forK=2,3,4,5,6,8on the original testcase.repro-1.zip