Understand the failure.
Verify the repair.
Small, reproducible software failures. The broken implementation, the fix that didn’t work, and the one that passed—preserved together.
Explore the cases ↓How results are verified ↗WHAT THE ARCHIVE CONTAINS
100840 executable cases. 20168 are open.
Every case records the implementation that fails, the fix that did not work, and the repair that passed its checks—with recorded outputs and source hashes. This release adds 100840 cases across 20168 failure mechanisms and 254 domains.
The open tier gives you the failure and the unsuccessful fix for one case in every mechanism. The remaining 80672 cases, 5 variants per mechanism, are member-only: the verified repair, its recorded checks, and the full fixture suite are held in the member archive. Read the methodology ↗
A RECORD OF WHAT WENT WRONG
Browse the archive / 100840
Repetition decoder counts erasures as corrections · case 01
The corrected-symbol statistic is inflated by erasures.
Repetition decoder counts erasures as corrections · case 02
The corrected-symbol statistic is inflated by erasures.
Repetition decoder counts erasures as corrections · case 03
The corrected-symbol statistic is inflated by erasures.
Repetition decoder counts erasures as corrections · case 04
The corrected-symbol statistic is inflated by erasures.
Repetition decoder counts erasures as corrections · case 05
The corrected-symbol statistic is inflated by erasures.
Repetition decoder accepts a truncated final block · case 01
A stream cut mid-block decodes a partial block as if complete.
Repetition decoder accepts a truncated final block · case 02
A stream cut mid-block decodes a partial block as if complete.
Repetition decoder accepts a truncated final block · case 03
A stream cut mid-block decodes a partial block as if complete.
Repetition decoder accepts a truncated final block · case 04
A stream cut mid-block decodes a partial block as if complete.
Repetition decoder accepts a truncated final block · case 05
A stream cut mid-block decodes a partial block as if complete.
Deinterleaver splits the stream by row length · case 01
Non-square interleavers put flags in the wrong codewords.
Deinterleaver splits the stream by row length · case 02
Non-square interleavers put flags in the wrong codewords.
Deinterleaver splits the stream by row length · case 03
Non-square interleavers put flags in the wrong codewords.
Deinterleaver splits the stream by row length · case 04
Non-square interleavers put flags in the wrong codewords.
Deinterleaver splits the stream by row length · case 05
Non-square interleavers put flags in the wrong codewords.
Deinterleaver measures the burst before deinterleaving · case 01
Bursts are judged uncorrectable although interleaving spreads them.
Deinterleaver measures the burst before deinterleaving · case 02
Bursts are judged uncorrectable although interleaving spreads them.
Deinterleaver measures the burst before deinterleaving · case 03
Bursts are judged uncorrectable although interleaving spreads them.
Deinterleaver measures the burst before deinterleaving · case 04
Bursts are judged uncorrectable although interleaving spreads them.
Deinterleaver measures the burst before deinterleaving · case 05
Bursts are judged uncorrectable although interleaving spreads them.
Deinterleaver treats exactly t errors as uncorrectable · case 01
Codewords with exactly t errors are reported uncorrectable.
Deinterleaver treats exactly t errors as uncorrectable · case 02
Codewords with exactly t errors are reported uncorrectable.
Deinterleaver treats exactly t errors as uncorrectable · case 03
Codewords with exactly t errors are reported uncorrectable.
Deinterleaver treats exactly t errors as uncorrectable · case 04
Codewords with exactly t errors are reported uncorrectable.
Deinterleaver treats exactly t errors as uncorrectable · case 05
Codewords with exactly t errors are reported uncorrectable.
Convolutional encoder omits the zero tail · case 01
Decoders cannot terminate in state 0 and the last bits decode unreliably.
Convolutional encoder omits the zero tail · case 02
Decoders cannot terminate in state 0 and the last bits decode unreliably.
Convolutional encoder omits the zero tail · case 03
Decoders cannot terminate in state 0 and the last bits decode unreliably.
Convolutional encoder omits the zero tail · case 04
Decoders cannot terminate in state 0 and the last bits decode unreliably.
Convolutional encoder omits the zero tail · case 05
Decoders cannot terminate in state 0 and the last bits decode unreliably.
Convolutional encoder keeps the oldest bits · case 01
Output parities stop depending on the latest input bits.
Convolutional encoder keeps the oldest bits · case 02
Output parities stop depending on the latest input bits.
Convolutional encoder keeps the oldest bits · case 03
Output parities stop depending on the latest input bits.
Convolutional encoder keeps the oldest bits · case 04
Output parities stop depending on the latest input bits.
Convolutional encoder keeps the oldest bits · case 05
Output parities stop depending on the latest input bits.
Convolutional encoder emits the g=5 parity first · case 01
Receivers pair the parity streams the wrong way round.
Convolutional encoder emits the g=5 parity first · case 02
Receivers pair the parity streams the wrong way round.
Convolutional encoder emits the g=5 parity first · case 03
Receivers pair the parity streams the wrong way round.
Convolutional encoder emits the g=5 parity first · case 04
Receivers pair the parity streams the wrong way round.
Convolutional encoder emits the g=5 parity first · case 05
Receivers pair the parity streams the wrong way round.
Viterbi reports the best metric of any state · case 01
The reported path metric understates the errors on the terminated path.
Viterbi reports the best metric of any state · case 02
The reported path metric understates the errors on the terminated path.
Viterbi reports the best metric of any state · case 03
The reported path metric understates the errors on the terminated path.
Viterbi reports the best metric of any state · case 04
The reported path metric understates the errors on the terminated path.
Viterbi reports the best metric of any state · case 05
The reported path metric understates the errors on the terminated path.
Viterbi returns the tail bits as data · case 01
Every decoded frame has two extra trailing zeros.
Viterbi returns the tail bits as data · case 02
Every decoded frame has two extra trailing zeros.
Viterbi returns the tail bits as data · case 03
Every decoded frame has two extra trailing zeros.
Viterbi returns the tail bits as data · case 04
Every decoded frame has two extra trailing zeros.
Viterbi returns the tail bits as data · case 05
Every decoded frame has two extra trailing zeros.
Viterbi scores a pair mismatch as one error · case 01
Pairs with both bits wrong are penalised like a single error, so wrong paths win.
Viterbi scores a pair mismatch as one error · case 02
Pairs with both bits wrong are penalised like a single error, so wrong paths win.
Viterbi scores a pair mismatch as one error · case 03
Pairs with both bits wrong are penalised like a single error, so wrong paths win.
Viterbi scores a pair mismatch as one error · case 04
Pairs with both bits wrong are penalised like a single error, so wrong paths win.
Viterbi scores a pair mismatch as one error · case 05
Pairs with both bits wrong are penalised like a single error, so wrong paths win.
GF(256) multiply reduces with the AES polynomial · case 01
Products that overflow the byte disagree with the Reed-Solomon field.
GF(256) multiply reduces with the AES polynomial · case 02
Products that overflow the byte disagree with the Reed-Solomon field.
GF(256) multiply reduces with the AES polynomial · case 03
Products that overflow the byte disagree with the Reed-Solomon field.
GF(256) multiply reduces with the AES polynomial · case 04
Products that overflow the byte disagree with the Reed-Solomon field.
GF(256) multiply reduces with the AES polynomial · case 05
Products that overflow the byte disagree with the Reed-Solomon field.
GF(256) multiply accumulates with integer addition · case 01
Products exceed 255 or differ from the field product.
GF(256) multiply accumulates with integer addition · case 02
Products exceed 255 or differ from the field product.
GF(256) multiply accumulates with integer addition · case 03
Products exceed 255 or differ from the field product.
GF(256) multiply accumulates with integer addition · case 04
Products exceed 255 or differ from the field product.
GF(256) multiply accumulates with integer addition · case 05
Products exceed 255 or differ from the field product.
GF(256) multiply tests the carry after shifting · case 01
Operands with the top bit set are not reduced.
GF(256) multiply tests the carry after shifting · case 02
Operands with the top bit set are not reduced.
GF(256) multiply tests the carry after shifting · case 03
Operands with the top bit set are not reduced.
GF(256) multiply tests the carry after shifting · case 04
Operands with the top bit set are not reduced.
GF(256) multiply tests the carry after shifting · case 05
Operands with the top bit set are not reduced.
GF(256) division reduces logarithms modulo 256 · case 01
Quotients are wrong whenever the log difference is negative.
GF(256) division reduces logarithms modulo 256 · case 02
Quotients are wrong whenever the log difference is negative.
GF(256) division reduces logarithms modulo 256 · case 03
Quotients are wrong whenever the log difference is negative.
GF(256) division reduces logarithms modulo 256 · case 04
Quotients are wrong whenever the log difference is negative.
GF(256) division reduces logarithms modulo 256 · case 05
Quotients are wrong whenever the log difference is negative.
GF(256) antilog table is not extended · case 01
The inverse of 1 is reported as 0.
GF(256) antilog table is not extended · case 02
The inverse of 1 is reported as 0.
GF(256) antilog table is not extended · case 03
The inverse of 1 is reported as 0.
GF(256) antilog table is not extended · case 04
The inverse of 1 is reported as 0.
GF(256) antilog table is not extended · case 05
The inverse of 1 is reported as 0.
GF(256) power returns zero for zero to the zero · case 01
Polynomial evaluation at 0 loses its constant term.
GF(256) power returns zero for zero to the zero · case 02
Polynomial evaluation at 0 loses its constant term.
GF(256) power returns zero for zero to the zero · case 03
Polynomial evaluation at 0 loses its constant term.
GF(256) power returns zero for zero to the zero · case 04
Polynomial evaluation at 0 loses its constant term.
GF(256) power returns zero for zero to the zero · case 05
Polynomial evaluation at 0 loses its constant term.
GF(256) division by zero returns zero for a zero dividend · case 01
0/0 silently yields 0.
GF(256) division by zero returns zero for a zero dividend · case 02
0/0 silently yields 0.
GF(256) division by zero returns zero for a zero dividend · case 03
0/0 silently yields 0.
GF(256) division by zero returns zero for a zero dividend · case 04
0/0 silently yields 0.
GF(256) division by zero returns zero for a zero dividend · case 05
0/0 silently yields 0.
RS syndromes evaluate the polynomial reversed · case 01
Error-free codewords report nonzero syndromes.
RS syndromes evaluate the polynomial reversed · case 02
Error-free codewords report nonzero syndromes.
RS syndromes evaluate the polynomial reversed · case 03
Error-free codewords report nonzero syndromes.
RS syndromes evaluate the polynomial reversed · case 04
Error-free codewords report nonzero syndromes.
RS syndromes evaluate the polynomial reversed · case 05
Error-free codewords report nonzero syndromes.
RS syndromes start at alpha to the first power · case 01
Codewords generated with roots alpha^0, alpha^1 fail the check.
RS syndromes start at alpha to the first power · case 02
Codewords generated with roots alpha^0, alpha^1 fail the check.
RS syndromes start at alpha to the first power · case 03
Codewords generated with roots alpha^0, alpha^1 fail the check.
RS syndromes start at alpha to the first power · case 04
Codewords generated with roots alpha^0, alpha^1 fail the check.
RS syndromes start at alpha to the first power · case 05
Codewords generated with roots alpha^0, alpha^1 fail the check.
INSPECTABLE BY DESIGN
Every result has a runnable source.
Runnable implementations with recorded outputs, source hashes, and explicit contracts. Related variants share a failure mechanism and belong together in evaluation splits.
Read the methodology ↗