You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The reason for this becomes more apparent when running hexdump -c to do some ASCII decoding.
Linux:
0000000 a 024 002 \0 002 004 \0 d 004 \0 a 026 U \0 002 006
0000010 \0 d 006 \b \n \f \0 a 030 024 \0 026 016 \0 d 016
0000020 \0 a 032 \0 030 020 \0
0000027
Windows:
0000000 a 024 002 \0 002 004 \0 d 004 \0 a 026 U \0 002 006
0000010 \0 d 006 \b \r \n \f \0 a 030 024 \0 026 016 \0 d
0000020 016 \0 a 032 \0 030 020 \0
0000028
As you can observe the proof contains a literal identifier that, just by chance, happens to be ASCII equivalent to \n. On Windows this is expanded to \r\n automatically by libc APIs. This can presumably be fixed by inserting O_BINARY at the appropriate locations in the solver. Note that this behavior also breaks other output formats. For example the clear text LRAT one should contain \n as a newline delimiter according to https://www.cs.utexas.edu/~marijn/publications/lrat.pdf but does instead contain \r\n due to (presumably) the same reason.
Unfortunately this makes using the binary LRAT format reliably for Windows applications (my specific use case runs on both Linux and Windows system) impossible.
The text was updated successfully, but these errors were encountered:
Consider the following UNSAT CNF:
Solving this with cadical 1.9.5 like so:
Yields a fine binary UNSAT proof on Linux. However on Windows the output ends up getting corrupted.
Hexdump Linux:
Hexdump Windows:
The reason for this becomes more apparent when running
hexdump -c
to do some ASCII decoding.Linux:
Windows:
As you can observe the proof contains a literal identifier that, just by chance, happens to be ASCII equivalent to
\n
. On Windows this is expanded to\r\n
automatically by libc APIs. This can presumably be fixed by insertingO_BINARY
at the appropriate locations in the solver. Note that this behavior also breaks other output formats. For example the clear text LRAT one should contain\n
as a newline delimiter according to https://www.cs.utexas.edu/~marijn/publications/lrat.pdf but does instead contain\r\n
due to (presumably) the same reason.Unfortunately this makes using the binary LRAT format reliably for Windows applications (my specific use case runs on both Linux and Windows system) impossible.
The text was updated successfully, but these errors were encountered: