{
  "capability_id": "mechanical.statics.slip_or_tip",
  "calculation_version": "1.0.0",
  "protocol_version": "1.0.0-proposed",
  "protocol_document_status": "proposed",
  "verification_revision": "2026-09-27.o2-o3",
  "oracle": {
    "class": "O3",
    "library": "mpmath 1.4.1",
    "mpmath_dps": 80,
    "backend": null,
    "rounding": null,
    "generator_id": "slip-or-tip-mpmath-o3",
    "generator_version": "1.0.0",
    "generator_sha256": "870968ae02ec8e9c177cc470734da501fb00a3bbe6e328e0bda99c747fa07ca1",
    "table_sha256": "874c2f9b535d1e68d448314631909c9ff7c02e3b0cec5eb0d898b213cba40574",
    "seed": "20260927.slip-or-tip-o3",
    "independent_of_iut": true
  },
  "claim_scope": "O2: P vs a separate-module identity (≤2 ULP). Not an incline, not wedges, not screws, and not belts. ≤2 ULP vs O3 applies only to the published tabulated slip-or-tip vectors.",
  "commands": {
    "regenerate_table": "python3 generate-slip-or-tip-o3.py",
    "regenerate_table_repo": "python3 scripts/lib/cvp/oracles/generate-slip-or-tip-o3.py",
    "independent_rest": "Compare POST /api/v1/calc/slip-or-tip against /developers/cvp/reproduce/slip-or-tip-o3-tables.json",
    "run_cvp": "npm run cvp:run -- --capability mechanical.statics.slip_or_tip",
    "rest_example": "POST https://www.calculatorx.com/api/v1/calc/slip-or-tip"
  },
  "public_files": {
    "table": "/developers/cvp/reproduce/slip-or-tip-o3-tables.json",
    "table_url": "https://www.calculatorx.com/developers/cvp/reproduce/slip-or-tip-o3-tables.json",
    "generator": "/developers/cvp/reproduce/generate-slip-or-tip-o3.py",
    "generator_url": "https://www.calculatorx.com/developers/cvp/reproduce/generate-slip-or-tip-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/mechanical.statics.slip_or_tip/1.0.0.cvp.json",
    "this_file": "/evidence/mechanical.statics.slip_or_tip/reproduce.json"
  },
  "result_summary": {
    "passed": 8,
    "total": 8,
    "failed": 0,
    "max_error_ulp": 0,
    "threshold_ulp": 2,
    "max_threshold_ulp": 2
  },
  "vectors": [
    {
      "id": "o3-slip",
      "kind": "slip",
      "inputs": {
        "W": "100",
        "mu": "0.25",
        "b": "2",
        "d": "2"
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "P": 25,
        "P_slip": 25,
        "P_tip": 50
      },
      "actual": {
        "model": "slip_or_tip",
        "W": 100,
        "mu": 0.25,
        "b": 2,
        "d": 2,
        "N": 100,
        "P_slip": 25,
        "P_tip": 50,
        "P": 25,
        "mode": "slip",
        "solver": "friction + moment about the leading edge",
        "convention": "The surface is level. P is horizontal at height d. The weight acts through the center of a base of width b. Slip uses F = μN with N = W. Tip is the moment of W about the leading edge."
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-tip",
      "kind": "tip",
      "inputs": {
        "W": "100",
        "mu": "0.6",
        "b": "2",
        "d": "2"
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "P": 50,
        "P_slip": 60,
        "P_tip": 50
      },
      "actual": {
        "model": "slip_or_tip",
        "W": 100,
        "mu": 0.6,
        "b": 2,
        "d": 2,
        "N": 100,
        "P_slip": 60,
        "P_tip": 50,
        "P": 50,
        "mode": "tip",
        "solver": "friction + moment about the leading edge",
        "convention": "The surface is level. P is horizontal at height d. The weight acts through the center of a base of width b. Slip uses F = μN with N = W. Tip is the moment of W about the leading edge."
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-either",
      "kind": "either",
      "inputs": {
        "W": "100",
        "mu": "0.5",
        "b": "2",
        "d": "2"
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "P": 50,
        "P_slip": 50,
        "P_tip": 50
      },
      "actual": {
        "model": "slip_or_tip",
        "W": 100,
        "mu": 0.5,
        "b": 2,
        "d": 2,
        "N": 100,
        "P_slip": 50,
        "P_tip": 50,
        "P": 50,
        "mode": "either",
        "solver": "friction + moment about the leading edge",
        "convention": "The surface is level. P is horizontal at height d. The weight acts through the center of a base of width b. Slip uses F = μN with N = W. Tip is the moment of W about the leading edge."
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-alias",
      "kind": "alias",
      "inputs": {
        "weight": "80",
        "mu_s": "0.2",
        "width": "3",
        "height": "1.5"
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "P": 16,
        "P_slip": 16,
        "P_tip": 80
      },
      "actual": {
        "model": "slip_or_tip",
        "W": 80,
        "mu": 0.2,
        "b": 3,
        "d": 1.5,
        "N": 80,
        "P_slip": 16,
        "P_tip": 80,
        "P": 16,
        "mode": "slip",
        "solver": "friction + moment about the leading edge",
        "convention": "The surface is level. P is horizontal at height d. The weight acts through the center of a base of width b. Slip uses F = μN with N = W. Tip is the moment of W about the leading edge."
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-awkward",
      "kind": "awkward",
      "inputs": {
        "W": "137",
        "mu": "0.37",
        "b": "2.5",
        "d": "1.8"
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "P": 50.69,
        "P_slip": 50.69,
        "P_tip": 95.13888888888889
      },
      "actual": {
        "model": "slip_or_tip",
        "W": 137,
        "mu": 0.37,
        "b": 2.5,
        "d": 1.8,
        "N": 137,
        "P_slip": 50.69,
        "P_tip": 95.13888888888889,
        "P": 50.69,
        "mode": "slip",
        "solver": "friction + moment about the leading edge",
        "convention": "The surface is level. P is horizontal at height d. The weight acts through the center of a base of width b. Slip uses F = μN with N = W. Tip is the moment of W about the leading edge."
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-small",
      "kind": "small",
      "inputs": {
        "W": "1",
        "mu": "0.1",
        "b": "0.4",
        "d": "0.2"
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "P": 0.1,
        "P_slip": 0.1,
        "P_tip": 1
      },
      "actual": {
        "model": "slip_or_tip",
        "W": 1,
        "mu": 0.1,
        "b": 0.4,
        "d": 0.2,
        "N": 1,
        "P_slip": 0.1,
        "P_tip": 1,
        "P": 0.1,
        "mode": "slip",
        "solver": "friction + moment about the leading edge",
        "convention": "The surface is level. P is horizontal at height d. The weight acts through the center of a base of width b. Slip uses F = μN with N = W. Tip is the moment of W about the leading edge."
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-tall",
      "kind": "tall",
      "inputs": {
        "W": "200",
        "mu": "0.3",
        "b": "1",
        "d": "4"
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "P": 25,
        "P_slip": 60,
        "P_tip": 25
      },
      "actual": {
        "model": "slip_or_tip",
        "W": 200,
        "mu": 0.3,
        "b": 1,
        "d": 4,
        "N": 200,
        "P_slip": 60,
        "P_tip": 25,
        "P": 25,
        "mode": "tip",
        "solver": "friction + moment about the leading edge",
        "convention": "The surface is level. P is horizontal at height d. The weight acts through the center of a base of width b. Slip uses F = μN with N = W. Tip is the moment of W about the leading edge."
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-wide",
      "kind": "wide",
      "inputs": {
        "W": "50",
        "mu": "0.4",
        "b": "6",
        "d": "1"
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "P": 20,
        "P_slip": 20,
        "P_tip": 150
      },
      "actual": {
        "model": "slip_or_tip",
        "W": 50,
        "mu": 0.4,
        "b": 6,
        "d": 1,
        "N": 50,
        "P_slip": 20,
        "P_tip": 150,
        "P": 20,
        "mode": "slip",
        "solver": "friction + moment about the leading edge",
        "convention": "The surface is level. P is horizontal at height d. The weight acts through the center of a base of width b. Slip uses F = μN with N = W. Tip is the moment of W about the leading edge."
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    }
  ]
}
