{"abstract":"The section is not allpass; its DC gain differs from 1.","category":"Digital signal filters","checks":7,"contract":"Input [a, samples]: y[n] = a x[n] + x[n-1] - a y[n-1] with zero state, \"unstable\" if |a| >= 1. Return exact fraction strings.","contract_signature":"x","evaluation_group":"w2-digital_signal_filters-first-order-allpass","failed_approach":"The attempted repair uses -a x[n].","family":"w2-digital_signal_filters-first-order-allpass-allpass-direct-path","id":"FA-91831","implementations":{"attempt":{"sha256":"6ff1b8d102c530efe3bb3df8b18c5fb2c3af66bd7733390ad055ef022be26372","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    a, xs = Fraction(x[0]), x[1]\n    if abs(a) >= 1:\n        return 'unstable'\n    x1 = y1 = Fraction(0)\n    out = []\n    for v in xs:\n        y = -a * v + x1 - a * y1\n        x1, y1 = v, y\n        out.append(str(y))\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: impulse a=1/2', ['1/2', [1, 0, 0, 0]], ['1/2', '3/4', '-3/8', '3/16']], ['regression: negative coefficient', ['-1/3', [2, -1, 0]], ['-2/3', '19/9', '-8/27']], ['regression: random allpass 0', ['1/4', [1, 2, 2, 4]], ['1/4', '23/16', '137/64', '631/256']], ['control: unstable', ['1', [1]], 'unstable'], ['regression: a zero is delay', ['0', [1, 2, 3]], ['0', '1', '2']], ['regression: random allpass 1', ['1/2', [0, -1, -1, 0]], ['0', '-1/2', '-5/4', '-3/8']], ['regression: random allpass 2', ['-1/2', [-2, -1, -3, 3]], ['1', '-1', '0', '-9/2']]], [['regression: random allpass 0', ['1/4', [1, 2, 2, 4]], ['1/4', '23/16', '137/64', '631/256']], ['regression: random allpass 1', ['1/2', [0, -1, -1, 0]], ['0', '-1/2', '-5/4', '-3/8']], ['regression: random allpass 2', ['-1/2', [-2, -1, -3, 3]], ['1', '-1', '0', '-9/2']], ['control: unstable', ['1', [1]], 'unstable'], ['regression: a zero is delay', ['0', [1, 2, 3]], ['0', '1', '2']], ['regression: random allpass 3', ['3/5', [1, -1, 0, 4, 1, 4]], ['3/5', '1/25', '-128/125', '1884/625', '8723/3125', '26956/15625']], ['regression: random allpass 4', ['1/2', [4, 2, -3, 0, 3, -3]], ['2', '4', '-3/2', '-9/4', '21/8', '3/16']]], [['regression: random allpass 3', ['3/5', [1, -1, 0, 4, 1, 4]], ['3/5', '1/25', '-128/125', '1884/625', '8723/3125', '26956/15625']], ['regression: random allpass 4', ['1/2', [4, 2, -3, 0, 3, -3]], ['2', '4', '-3/2', '-9/4', '21/8', '3/16']], ['regression: random allpass 2', ['-1/2', [-2, -1, -3, 3]], ['1', '-1', '0', '-9/2']], ['control: unstable', ['1', [1]], 'unstable'], ['regression: random allpass 0', ['1/4', [1, 2, 2, 4]], ['1/4', '23/16', '137/64', '631/256']], ['regression: random allpass 1', ['1/2', [0, -1, -1, 0]], ['0', '-1/2', '-5/4', '-3/8']], ['regression: random allpass 5', ['-1/2', [3, 4, -2, 1, -1]], ['-3/2', '1/4', '41/8', '1/16', '49/32']]], [['regression: random allpass 6', ['-1/2', [-3, 3, 3, 2]], ['3/2', '-15/4', '-3/8', '29/16']], ['regression: random allpass 7', ['-2/3', [4, 3, 3, -3]], ['-8/3', '2/9', '31/27', '467/81']], ['regression: random allpass 4', ['1/2', [4, 2, -3, 0, 3, -3]], ['2', '4', '-3/2', '-9/4', '21/8', '3/16']], ['control: unstable', ['1', [1]], 'unstable'], ['regression: random allpass 1', ['1/2', [0, -1, -1, 0]], ['0', '-1/2', '-5/4', '-3/8']], ['regression: random allpass 2', ['-1/2', [-2, -1, -3, 3]], ['1', '-1', '0', '-9/2']], ['regression: random allpass 3', ['3/5', [1, -1, 0, 4, 1, 4]], ['3/5', '1/25', '-128/125', '1884/625', '8723/3125', '26956/15625']]], [['regression: random allpass 9', ['1/4', [1, -3, 3, 2, -1, 4]], ['1/4', '3/16', '-147/64', '1043/256', '749/1024', '-749/4096']], ['regression: random allpass 10', ['1/4', [-3, 4, 3, 2, -3]], ['-3/4', '-29/16', '333/64', '563/256', '717/1024']], ['regression: random allpass 6', ['-1/2', [-3, 3, 3, 2]], ['3/2', '-15/4', '-3/8', '29/16']], ['control: unstable', ['1', [1]], 'unstable'], ['regression: random allpass 2', ['-1/2', [-2, -1, -3, 3]], ['1', '-1', '0', '-9/2']], ['regression: random allpass 3', ['3/5', [1, -1, 0, 4, 1, 4]], ['3/5', '1/25', '-128/125', '1884/625', '8723/3125', '26956/15625']], ['regression: random allpass 4', ['1/2', [4, 2, -3, 0, 3, -3]], ['2', '4', '-3/2', '-9/4', '21/8', '3/16']]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"bbf90a3276311343c7088a511635ec499583363162ed677de0da233d520fd302","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    a, xs = Fraction(x[0]), x[1]\n    if abs(a) >= 1:\n        return 'unstable'\n    x1 = y1 = Fraction(0)\n    out = []\n    for v in xs:\n        y = v + x1 - a * y1\n        x1, y1 = v, y\n        out.append(str(y))\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: impulse a=1/2', ['1/2', [1, 0, 0, 0]], ['1/2', '3/4', '-3/8', '3/16']], ['regression: negative coefficient', ['-1/3', [2, -1, 0]], ['-2/3', '19/9', '-8/27']], ['regression: random allpass 0', ['1/4', [1, 2, 2, 4]], ['1/4', '23/16', '137/64', '631/256']], ['control: unstable', ['1', [1]], 'unstable'], ['regression: a zero is delay', ['0', [1, 2, 3]], ['0', '1', '2']], ['regression: random allpass 1', ['1/2', [0, -1, -1, 0]], ['0', '-1/2', '-5/4', '-3/8']], ['regression: random allpass 2', ['-1/2', [-2, -1, -3, 3]], ['1', '-1', '0', '-9/2']]], [['regression: random allpass 0', ['1/4', [1, 2, 2, 4]], ['1/4', '23/16', '137/64', '631/256']], ['regression: random allpass 1', ['1/2', [0, -1, -1, 0]], ['0', '-1/2', '-5/4', '-3/8']], ['regression: random allpass 2', ['-1/2', [-2, -1, -3, 3]], ['1', '-1', '0', '-9/2']], ['control: unstable', ['1', [1]], 'unstable'], ['regression: a zero is delay', ['0', [1, 2, 3]], ['0', '1', '2']], ['regression: random allpass 3', ['3/5', [1, -1, 0, 4, 1, 4]], ['3/5', '1/25', '-128/125', '1884/625', '8723/3125', '26956/15625']], ['regression: random allpass 4', ['1/2', [4, 2, -3, 0, 3, -3]], ['2', '4', '-3/2', '-9/4', '21/8', '3/16']]], [['regression: random allpass 3', ['3/5', [1, -1, 0, 4, 1, 4]], ['3/5', '1/25', '-128/125', '1884/625', '8723/3125', '26956/15625']], ['regression: random allpass 4', ['1/2', [4, 2, -3, 0, 3, -3]], ['2', '4', '-3/2', '-9/4', '21/8', '3/16']], ['regression: random allpass 2', ['-1/2', [-2, -1, -3, 3]], ['1', '-1', '0', '-9/2']], ['control: unstable', ['1', [1]], 'unstable'], ['regression: random allpass 0', ['1/4', [1, 2, 2, 4]], ['1/4', '23/16', '137/64', '631/256']], ['regression: random allpass 1', ['1/2', [0, -1, -1, 0]], ['0', '-1/2', '-5/4', '-3/8']], ['regression: random allpass 5', ['-1/2', [3, 4, -2, 1, -1]], ['-3/2', '1/4', '41/8', '1/16', '49/32']]], [['regression: random allpass 6', ['-1/2', [-3, 3, 3, 2]], ['3/2', '-15/4', '-3/8', '29/16']], ['regression: random allpass 7', ['-2/3', [4, 3, 3, -3]], ['-8/3', '2/9', '31/27', '467/81']], ['regression: random allpass 4', ['1/2', [4, 2, -3, 0, 3, -3]], ['2', '4', '-3/2', '-9/4', '21/8', '3/16']], ['control: unstable', ['1', [1]], 'unstable'], ['regression: random allpass 1', ['1/2', [0, -1, -1, 0]], ['0', '-1/2', '-5/4', '-3/8']], ['regression: random allpass 2', ['-1/2', [-2, -1, -3, 3]], ['1', '-1', '0', '-9/2']], ['regression: random allpass 3', ['3/5', [1, -1, 0, 4, 1, 4]], ['3/5', '1/25', '-128/125', '1884/625', '8723/3125', '26956/15625']]], [['regression: random allpass 9', ['1/4', [1, -3, 3, 2, -1, 4]], ['1/4', '3/16', '-147/64', '1043/256', '749/1024', '-749/4096']], ['regression: random allpass 10', ['1/4', [-3, 4, 3, 2, -3]], ['-3/4', '-29/16', '333/64', '563/256', '717/1024']], ['regression: random allpass 6', ['-1/2', [-3, 3, 3, 2]], ['3/2', '-15/4', '-3/8', '29/16']], ['control: unstable', ['1', [1]], 'unstable'], ['regression: random allpass 2', ['-1/2', [-2, -1, -3, 3]], ['1', '-1', '0', '-9/2']], ['regression: random allpass 3', ['3/5', [1, -1, 0, 4, 1, 4]], ['3/5', '1/25', '-128/125', '1884/625', '8723/3125', '26956/15625']], ['regression: random allpass 4', ['1/2', [4, 2, -3, 0, 3, -3]], ['2', '4', '-3/2', '-9/4', '21/8', '3/16']]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"A deterministic bounded teaching model with a stipulated toy contract; exact rational arithmetic or fixed-decimal rounding keeps outputs strict JSON. It is not a production DSP library and claims no standards conformance. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-digital_signal_filters-first-order-allpass-allpass-direct-path","generated_at":"2026-09-29T14:51:39.622828+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Allpass sections build phase equalizers and fractional delays; any coefficient slip breaks the unit-magnitude property.","root_cause":"The direct term uses x[n] instead of a x[n].","sha256":"064c9a0e97b4a4b45fa94ff2e5baa5ec160c3e008a5ccc6833a80af9fa4b49d4","title":"Allpass passes the input without the a coefficient · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":44.54,"exit_code":1,"observations":[{"actual":["-1/2","5/4","-5/8","5/16"],"check":"regression: impulse a=1/2","expected":["1/2","3/4","-3/8","3/16"],"passed":false},{"actual":["2/3","17/9","-10/27"],"check":"regression: negative coefficient","expected":["-2/3","19/9","-8/27"],"passed":false},{"actual":["-1/4","9/16","87/64","169/256"],"check":"regression: random allpass 0","expected":["1/4","23/16","137/64","631/256"],"passed":false},{"actual":"unstable","check":"control: unstable","expected":"unstable","passed":true},{"actual":["0","1","2"],"check":"regression: a zero is delay","expected":["0","1","2"],"passed":true},{"actual":["0","1/2","-3/4","-5/8"],"check":"regression: random allpass 1","expected":["0","-1/2","-5/4","-3/8"],"passed":false},{"actual":["-1","-3","-4","-7/2"],"check":"regression: random allpass 2","expected":["1","-1","0","-9/2"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: impulse a=1/2\", \"actual\": [\"-1/2\", \"5/4\", \"-5/8\", \"5/16\"], \"expected\": [\"1/2\", \"3/4\", \"-3/8\", \"3/16\"], \"passed\": false}, {\"check\": \"regression: negative coefficient\", \"actual\": [\"2/3\", \"17/9\", \"-10/27\"], \"expected\": [\"-2/3\", \"19/9\", \"-8/27\"], \"passed\": false}, {\"check\": \"regression: random allpass 0\", \"actual\": [\"-1/4\", \"9/16\", \"87/64\", \"169/256\"], \"expected\": [\"1/4\", \"23/16\", \"137/64\", \"631/256\"], \"passed\": false}, {\"check\": \"control: unstable\", \"actual\": \"unstable\", \"expected\": \"unstable\", \"passed\": true}, {\"check\": \"regression: a zero is delay\", \"actual\": [\"0\", \"1\", \"2\"], \"expected\": [\"0\", \"1\", \"2\"], \"passed\": true}, {\"check\": \"regression: random allpass 1\", \"actual\": [\"0\", \"1/2\", \"-3/4\", \"-5/8\"], \"expected\": [\"0\", \"-1/2\", \"-5/4\", \"-3/8\"], \"passed\": false}, {\"check\": \"regression: random allpass 2\", \"actual\": [\"-1\", \"-3\", \"-4\", \"-7/2\"], \"expected\": [\"1\", \"-1\", \"0\", \"-9/2\"], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":44.124,"exit_code":1,"observations":[{"actual":["1","1/2","-1/4","1/8"],"check":"regression: impulse a=1/2","expected":["1/2","3/4","-3/8","3/16"],"passed":false},{"actual":["2","5/3","-4/9"],"check":"regression: negative coefficient","expected":["-2/3","19/9","-8/27"],"passed":false},{"actual":["1","11/4","53/16","331/64"],"check":"regression: random allpass 0","expected":["1/4","23/16","137/64","631/256"],"passed":false},{"actual":"unstable","check":"control: unstable","expected":"unstable","passed":true},{"actual":["1","3","5"],"check":"regression: a zero is delay","expected":["0","1","2"],"passed":false},{"actual":["0","-1","-3/2","-1/4"],"check":"regression: random allpass 1","expected":["0","-1/2","-5/4","-3/8"],"passed":false},{"actual":["-2","-4","-6","-3"],"check":"regression: random allpass 2","expected":["1","-1","0","-9/2"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: impulse a=1/2\", \"actual\": [\"1\", \"1/2\", \"-1/4\", \"1/8\"], \"expected\": [\"1/2\", \"3/4\", \"-3/8\", \"3/16\"], \"passed\": false}, {\"check\": \"regression: negative coefficient\", \"actual\": [\"2\", \"5/3\", \"-4/9\"], \"expected\": [\"-2/3\", \"19/9\", \"-8/27\"], \"passed\": false}, {\"check\": \"regression: random allpass 0\", \"actual\": [\"1\", \"11/4\", \"53/16\", \"331/64\"], \"expected\": [\"1/4\", \"23/16\", \"137/64\", \"631/256\"], \"passed\": false}, {\"check\": \"control: unstable\", \"actual\": \"unstable\", \"expected\": \"unstable\", \"passed\": true}, {\"check\": \"regression: a zero is delay\", \"actual\": [\"1\", \"3\", \"5\"], \"expected\": [\"0\", \"1\", \"2\"], \"passed\": false}, {\"check\": \"regression: random allpass 1\", \"actual\": [\"0\", \"-1\", \"-3/2\", \"-1/4\"], \"expected\": [\"0\", \"-1/2\", \"-5/4\", \"-3/8\"], \"passed\": false}, {\"check\": \"regression: random allpass 2\", \"actual\": [\"-2\", \"-4\", \"-6\", \"-3\"], \"expected\": [\"1\", \"-1\", \"0\", \"-9/2\"], \"passed\": false}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}