{
  "capability_id": "engineering.uncertainty.type_b",
  "calculation_version": "1.0.0",
  "protocol_version": "1.0.0-proposed",
  "protocol_document_status": "proposed",
  "verification_revision": "2026-09-16.o2-o3",
  "oracle": {
    "class": "O3",
    "library": "mpmath 1.4.1",
    "mpmath_dps": 80,
    "backend": null,
    "rounding": null,
    "generator_id": "type-b-mpmath-o3",
    "generator_version": "1.0.0",
    "generator_sha256": "0033671b03acdd8364affc573f1c3fc403afa8c0407f977c9362b9581d4a20ac",
    "table_sha256": "f08068b5c7c20a016fc09d5ae27fb9d0c8bec9e522b914e5392d03dc63776c06",
    "seed": "20260916.type-b-o3",
    "independent_of_iut": true
  },
  "claim_scope": "O2: u_B = a/√3 (rectangular) or a/√6 (triangular) vs separate-module identities (≤2 ULP). Not GUM combination, not trapezoidal, not Monte Carlo. ≤2 ULP vs O3 applies only to the published tabulated Type B vectors (rectangular, triangular, default, uniform alias, a=1, a=0.5 triangular, scale, half_width). It is not a whole-domain Type B guarantee and does not cover trapezoidal.",
  "commands": {
    "regenerate_table": "python3 generate-type-b-o3.py",
    "regenerate_table_repo": "python3 scripts/lib/cvp/oracles/generate-type-b-o3.py",
    "independent_rest": "Compare POST /api/v1/calc/type-b against /developers/cvp/reproduce/type-b-o3-tables.json",
    "run_cvp": "npm run cvp:run -- --capability engineering.uncertainty.type_b",
    "rest_example": "POST https://www.calculatorx.com/api/v1/calc/type-b"
  },
  "public_files": {
    "table": "/developers/cvp/reproduce/type-b-o3-tables.json",
    "table_url": "https://www.calculatorx.com/developers/cvp/reproduce/type-b-o3-tables.json",
    "generator": "/developers/cvp/reproduce/generate-type-b-o3.py",
    "generator_url": "https://www.calculatorx.com/developers/cvp/reproduce/generate-type-b-o3.py",
    "checker": "/developers/cvp/reproduce/check-math-o3-rest.py",
    "checker_url": "https://www.calculatorx.com/developers/cvp/reproduce/check-math-o3-rest.py",
    "manifest": "/evidence/engineering.uncertainty.type_b/1.0.0.cvp.json",
    "this_file": "/evidence/engineering.uncertainty.type_b/reproduce.json"
  },
  "result_summary": {
    "passed": 8,
    "total": 8,
    "failed": 0,
    "max_error_ulp": 1,
    "threshold_ulp": 2,
    "max_threshold_ulp": 2
  },
  "vectors": [
    {
      "id": "o3-rect",
      "kind": "rectangular",
      "inputs": {
        "a": 3,
        "distribution": "rectangular"
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "u_B": 1.7320508075688772,
        "a": 3
      },
      "actual": {
        "u_B": 1.7320508075688774,
        "a": 3,
        "distribution": "rectangular"
      },
      "error_ulp": 1,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-tri",
      "kind": "triangular",
      "inputs": {
        "a": 3,
        "distribution": "triangular"
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "u_B": 1.224744871391589,
        "a": 3
      },
      "actual": {
        "u_B": 1.2247448713915892,
        "a": 3,
        "distribution": "triangular"
      },
      "error_ulp": 1,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-default",
      "kind": "default-rectangular",
      "inputs": {
        "a": 3
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "u_B": 1.7320508075688772,
        "a": 3
      },
      "actual": {
        "u_B": 1.7320508075688774,
        "a": 3,
        "distribution": "rectangular"
      },
      "error_ulp": 1,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-uniform",
      "kind": "uniform-alias",
      "inputs": {
        "a": 3,
        "distribution": "uniform"
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "u_B": 1.7320508075688772,
        "a": 3
      },
      "actual": {
        "u_B": 1.7320508075688774,
        "a": 3,
        "distribution": "rectangular"
      },
      "error_ulp": 1,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-one",
      "kind": "unit-rect",
      "inputs": {
        "a": 1,
        "distribution": "rectangular"
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "u_B": 0.5773502691896257,
        "a": 1
      },
      "actual": {
        "u_B": 0.5773502691896258,
        "a": 1,
        "distribution": "rectangular"
      },
      "error_ulp": 1,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-half",
      "kind": "half-tri",
      "inputs": {
        "a": 0.5,
        "distribution": "triangular"
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "u_B": 0.2041241452319315,
        "a": 0.5
      },
      "actual": {
        "u_B": 0.20412414523193154,
        "a": 0.5,
        "distribution": "triangular"
      },
      "error_ulp": 1,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-scale",
      "kind": "scale",
      "inputs": {
        "a": 6,
        "distribution": "rectangular"
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "u_B": 3.4641016151377544,
        "a": 6
      },
      "actual": {
        "u_B": 3.464101615137755,
        "a": 6,
        "distribution": "rectangular"
      },
      "error_ulp": 1,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-hw",
      "kind": "half-width-alias",
      "inputs": {
        "half_width": 3
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "u_B": 1.7320508075688772,
        "a": 3
      },
      "actual": {
        "u_B": 1.7320508075688774,
        "a": 3,
        "distribution": "rectangular"
      },
      "error_ulp": 1,
      "threshold_ulp": 2,
      "ok": true
    }
  ]
}
