{
  "vector_set": "VECTORS-1.0",
  "specification": "PCIST-1.0",
  "date": "2026-09-22",
  "conformance": "An implementation conforms where every vector's value is reproduced to a relative tolerance of 1e-6.",
  "diagnostic_note": "Where a vector fails, compare the observed value against `mutation_values`. A match names the clause most likely mis-implemented. Four of the ten mutations are errors an implementation written from the pre-specification standard actually made (gate/RESULT-DUAL.md).",
  "mutations": {
    "k_in_snr": {
      "clause": "2.6",
      "description": "`k` divided into the signal-to-noise ratio instead of multiplying the baseline count at step 5",
      "observed_in_practice": true
    },
    "range_pooled": {
      "clause": "4",
      "description": "threshold swept from the minimum to the maximum of the pooled distances instead of the baseline median to the response maximum",
      "observed_in_practice": true
    },
    "no_differencing": {
      "clause": "4.2",
      "description": "transitions counted as thresholded distances instead of changes in the recurrence relation",
      "observed_in_practice": true
    },
    "weight_both": {
      "clause": "5",
      "description": "each window's count weighted by its own length instead of the response length alone",
      "observed_in_practice": true
    },
    "windows_inclusive": {
      "clause": "Notation",
      "description": "windows taken inclusive of the upper bound instead of half-open",
      "observed_in_practice": false
    },
    "norm_offdiag": {
      "clause": "4.3",
      "description": "transitions normalized by the off-diagonal pair count instead of n squared",
      "observed_in_practice": false
    },
    "resample_interp": {
      "clause": "1.4",
      "description": "linear interpolation used for resampling instead of the Fourier method",
      "observed_in_practice": false
    },
    "symmetric_diff": {
      "clause": "4.2",
      "description": "transition matrix symmetrized after differencing",
      "observed_in_practice": false
    }
  },
  "immaterial_choices": {
    "svd_no_transpose": {
      "clause": "2.2",
      "proof": "Decomposing the response rather than its transpose gives the SAME channel-space basis. For A = U S Vt, the right-singular matrix of At is U; so taking Vt.T from SVD(At) equals U from SVD(A). A per-component sign flip is possible and is immaterial because every later step uses |x_i - x_j|."
    },
    "recurrence_ge": {
      "clause": "4.1",
      "proof": "Taking the recurrence mask as distance >= epsilon rather than <= epsilon gives the SAME transition count. If R' = 1 - R then diff(R') = -diff(R), and the transition matrix is the absolute value of that difference. The inequality direction cannot survive differencing."
    }
  },
  "immaterial_note": "These two were warned about in the first draft of PCIST-1.0 and are provably immaterial. The vector set's completeness gate found them by being unable to distinguish them, and now asserts their invariance on every vector. The annex was corrected rather than the vectors extended.",
  "vectors": [
    {
      "id": "V1",
      "purpose": "Taking the recurrence mask as distance >= epsilon rather than <= epsilon gives the SAME transition count. If R' = 1 - R then diff(R') = -diff(R), and the transition matrix is the absolute value of that difference. The inequality direction cannot survive differencing.",
      "generator": {
        "kind": "noise",
        "channels": 20,
        "seed": 11,
        "source_fs_hz": 2000.0,
        "t_start_ms": -800,
        "t_end_ms": 800,
        "amplitude": 0.0,
        "note": "input = standard normal (numpy PCG64, this seed) plus the named construction on samples t > 0"
      },
      "parameters": {
        "baseline_window": [
          -800,
          -2
        ],
        "response_window": [
          2,
          800
        ],
        "k": 1.2,
        "min_snr": 1.1,
        "max_var": 99,
        "embed": false,
        "n_steps": 100,
        "resample": 500
      },
      "expected": 87.27860315579066,
      "tolerance_relative": 1e-06,
      "mutations_detected": 7,
      "mutation_values": {
        "k_in_snr": 0.0,
        "range_pooled": 87.06077132226798,
        "no_differencing": 0.0,
        "weight_both": 86.63935088978732,
        "windows_inclusive": 87.27860315579066,
        "norm_offdiag": 87.50005871100926,
        "resample_interp": 68.66783091025634,
        "symmetric_diff": 141.37356678051728
      }
    },
    {
      "id": "V2",
      "purpose": "Taking the recurrence mask as distance >= epsilon rather than <= epsilon gives the SAME transition count. If R' = 1 - R then diff(R') = -diff(R), and the transition matrix is the absolute value of that difference. The inequality direction cannot survive differencing.",
      "generator": {
        "kind": "damped_multifreq",
        "channels": 20,
        "seed": 12,
        "source_fs_hz": 2000.0,
        "t_start_ms": -800,
        "t_end_ms": 800,
        "amplitude": 6.0,
        "note": "input = standard normal (numpy PCG64, this seed) plus the named construction on samples t > 0"
      },
      "parameters": {
        "baseline_window": [
          -800,
          -2
        ],
        "response_window": [
          2,
          800
        ],
        "k": 1.2,
        "min_snr": 1.1,
        "max_var": 99,
        "embed": false,
        "n_steps": 100,
        "resample": 500
      },
      "expected": 438.2911254692443,
      "tolerance_relative": 1e-06,
      "mutations_detected": 6,
      "mutation_values": {
        "k_in_snr": 438.29112546924426,
        "range_pooled": 436.15848801358817,
        "no_differencing": 0.0,
        "weight_both": 437.7725960630219,
        "windows_inclusive": 438.29112546924426,
        "norm_offdiag": 439.3964394613738,
        "resample_interp": 373.918312822143,
        "symmetric_diff": 765.5346323548697
      }
    },
    {
      "id": "V3",
      "purpose": "Taking the recurrence mask as distance >= epsilon rather than <= epsilon gives the SAME transition count. If R' = 1 - R then diff(R') = -diff(R), and the transition matrix is the absolute value of that difference. The inequality direction cannot survive differencing.",
      "generator": {
        "kind": "damped_multifreq",
        "channels": 8,
        "seed": 13,
        "source_fs_hz": 2000.0,
        "t_start_ms": -800,
        "t_end_ms": 800,
        "amplitude": 6.0,
        "note": "input = standard normal (numpy PCG64, this seed) plus the named construction on samples t > 0"
      },
      "parameters": {
        "baseline_window": [
          -800,
          -2
        ],
        "response_window": [
          2,
          800
        ],
        "k": 1.2,
        "min_snr": 1.1,
        "max_var": 99,
        "embed": false,
        "n_steps": 100,
        "resample": 500
      },
      "expected": 220.6174799033326,
      "tolerance_relative": 1e-06,
      "mutations_detected": 6,
      "mutation_values": {
        "k_in_snr": 220.6174799033326,
        "range_pooled": 220.67449842727498,
        "no_differencing": 0.0,
        "weight_both": 220.46169947481772,
        "windows_inclusive": 220.6174799033326,
        "norm_offdiag": 221.17358383363953,
        "resample_interp": 170.20611761011705,
        "symmetric_diff": 383.525888871118
      }
    },
    {
      "id": "V4",
      "purpose": "Taking the recurrence mask as distance >= epsilon rather than <= epsilon gives the SAME transition count. If R' = 1 - R then diff(R') = -diff(R), and the transition matrix is the absolute value of that difference. The inequality direction cannot survive differencing.",
      "generator": {
        "kind": "rank_one",
        "channels": 24,
        "seed": 14,
        "source_fs_hz": 2000.0,
        "t_start_ms": -800,
        "t_end_ms": 800,
        "amplitude": 8.0,
        "note": "input = standard normal (numpy PCG64, this seed) plus the named construction on samples t > 0"
      },
      "parameters": {
        "baseline_window": [
          -800,
          -2
        ],
        "response_window": [
          2,
          800
        ],
        "k": 1.2,
        "min_snr": 1.1,
        "max_var": 99,
        "embed": false,
        "n_steps": 100,
        "resample": 500
      },
      "expected": 131.64432725748327,
      "tolerance_relative": 1e-06,
      "mutations_detected": 7,
      "mutation_values": {
        "k_in_snr": 15.261278228631616,
        "range_pooled": 132.00392868293076,
        "no_differencing": 0.0,
        "weight_both": 131.00086145010766,
        "windows_inclusive": 131.64432725748327,
        "norm_offdiag": 131.97754587981288,
        "resample_interp": 102.77506581468599,
        "symmetric_diff": 215.63188879555221
      }
    },
    {
      "id": "V5",
      "purpose": "Taking the recurrence mask as distance >= epsilon rather than <= epsilon gives the SAME transition count. If R' = 1 - R then diff(R') = -diff(R), and the transition matrix is the absolute value of that difference. The inequality direction cannot survive differencing.",
      "generator": {
        "kind": "single_tone",
        "channels": 16,
        "seed": 15,
        "source_fs_hz": 2000.0,
        "t_start_ms": -800,
        "t_end_ms": 800,
        "amplitude": 5.0,
        "note": "input = standard normal (numpy PCG64, this seed) plus the named construction on samples t > 0"
      },
      "parameters": {
        "baseline_window": [
          -800,
          -2
        ],
        "response_window": [
          2,
          800
        ],
        "k": 1.2,
        "min_snr": 1.1,
        "max_var": 99,
        "embed": false,
        "n_steps": 100,
        "resample": 500
      },
      "expected": 45.290661165703774,
      "tolerance_relative": 1e-06,
      "mutations_detected": 7,
      "mutation_values": {
        "k_in_snr": 21.323485376834235,
        "range_pooled": 45.28894732770263,
        "no_differencing": 0.0,
        "weight_both": 45.122677296255716,
        "windows_inclusive": 45.290661165703774,
        "norm_offdiag": 45.40516656881498,
        "resample_interp": 53.64977175435663,
        "symmetric_diff": 74.32486179176357
      }
    },
    {
      "id": "V6",
      "purpose": "Taking the recurrence mask as distance >= epsilon rather than <= epsilon gives the SAME transition count. If R' = 1 - R then diff(R') = -diff(R), and the transition matrix is the absolute value of that difference. The inequality direction cannot survive differencing.",
      "generator": {
        "kind": "step",
        "channels": 16,
        "seed": 16,
        "source_fs_hz": 2000.0,
        "t_start_ms": -800,
        "t_end_ms": 800,
        "amplitude": 3.0,
        "note": "input = standard normal (numpy PCG64, this seed) plus the named construction on samples t > 0"
      },
      "parameters": {
        "baseline_window": [
          -800,
          -2
        ],
        "response_window": [
          2,
          800
        ],
        "k": 1.2,
        "min_snr": 1.1,
        "max_var": 99,
        "embed": false,
        "n_steps": 100,
        "resample": 500
      },
      "expected": 75.68481823442501,
      "tolerance_relative": 1e-06,
      "mutations_detected": 7,
      "mutation_values": {
        "k_in_snr": 0.0,
        "range_pooled": 75.48851443415657,
        "no_differencing": 0.0,
        "weight_both": 75.25300185136207,
        "windows_inclusive": 75.68481823442501,
        "norm_offdiag": 75.87654779265544,
        "resample_interp": 51.89473188960994,
        "symmetric_diff": 121.34110576816092
      }
    },
    {
      "id": "V7",
      "purpose": "Taking the recurrence mask as distance >= epsilon rather than <= epsilon gives the SAME transition count. If R' = 1 - R then diff(R') = -diff(R), and the transition matrix is the absolute value of that difference. The inequality direction cannot survive differencing.",
      "generator": {
        "kind": "damped_multifreq",
        "channels": 20,
        "seed": 17,
        "source_fs_hz": 1000.0,
        "t_start_ms": -400,
        "t_end_ms": 300,
        "amplitude": 6.0,
        "note": "input = standard normal (numpy PCG64, this seed) plus the named construction on samples t > 0"
      },
      "parameters": {
        "baseline_window": [
          -400,
          -50
        ],
        "response_window": [
          15,
          300
        ],
        "k": 1.2,
        "min_snr": 1.1,
        "max_var": 99,
        "embed": false,
        "n_steps": 100,
        "resample": 725
      },
      "expected": 194.86785442945146,
      "tolerance_relative": 1e-06,
      "mutations_detected": 8,
      "mutation_values": {
        "k_in_snr": 188.9594426724276,
        "range_pooled": 194.70187478186853,
        "no_differencing": 0.0,
        "weight_both": 184.87777351394908,
        "windows_inclusive": 195.20620717552117,
        "norm_offdiag": 195.8616499795715,
        "resample_interp": 178.75285220054766,
        "symmetric_diff": 337.6660326741067
      }
    },
    {
      "id": "V8",
      "purpose": "Taking the recurrence mask as distance >= epsilon rather than <= epsilon gives the SAME transition count. If R' = 1 - R then diff(R') = -diff(R), and the transition matrix is the absolute value of that difference. The inequality direction cannot survive differencing.",
      "generator": {
        "kind": "damped_multifreq",
        "channels": 32,
        "seed": 18,
        "source_fs_hz": 2500.0,
        "t_start_ms": -400,
        "t_end_ms": 300,
        "amplitude": 4.0,
        "note": "input = standard normal (numpy PCG64, this seed) plus the named construction on samples t > 0"
      },
      "parameters": {
        "baseline_window": [
          -400,
          -50
        ],
        "response_window": [
          15,
          300
        ],
        "k": 1.2,
        "min_snr": 1.1,
        "max_var": 99,
        "embed": false,
        "n_steps": 100,
        "resample": 725
      },
      "expected": 349.11713815854813,
      "tolerance_relative": 1e-06,
      "mutations_detected": 7,
      "mutation_values": {
        "k_in_snr": 294.7510413312089,
        "range_pooled": 348.32705902110837,
        "no_differencing": 0.0,
        "weight_both": 315.3452641235379,
        "windows_inclusive": 349.11713815854813,
        "norm_offdiag": 350.97804111370306,
        "resample_interp": 297.93050345906516,
        "symmetric_diff": 597.0153477394333
      }
    }
  ]
}