{
  "capability_id": "math.fractions",
  "tool_id": "fractions",
  "engine": "fractions",
  "calculation_version": "1.0.8",
  "generated_at": "2026-10-21T01:08:25.775Z",
  "engine_build": "2026-10-20",
  "test_count": 32,
  "passed": 32,
  "failed": 0,
  "tests_summary": {
    "golden": {
      "passed": 20,
      "total": 20
    },
    "boundary": {
      "passed": 8,
      "total": 8
    },
    "property": {
      "passed": 4,
      "total": 4
    }
  },
  "engine_tested": true,
  "expert_reviewed": false,
  "internally_reviewed": false,
  "review_kind": null,
  "source_checked": true,
  "reviewed_by": null,
  "reviewer_role": null,
  "last_reviewed": null,
  "expert_review": {
    "status": "optional_not_performed",
    "reviewer": null,
    "scope": [
      "formula",
      "input semantics",
      "assumptions",
      "limitations",
      "sources",
      "tests"
    ],
    "note": "Domain expert review is optional under CVP (CVP-EXP-01). Absence does not block CVP Verified. See Review policy for supplemental domain assurance."
  },
  "internal_review": {
    "status": "not_applicable",
    "reviewer": null
  },
  "page": "https://www.calculatorx.com/calc/math/fractions",
  "api": "https://www.calculatorx.com/api/v1/calc/fractions",
  "schema_input": "https://www.calculatorx.com/schemas/math.fractions.input.json",
  "schema_output": "https://www.calculatorx.com/schemas/math.fractions.output.json",
  "assumptions": [
    "Fraction inputs and every arithmetic intermediate must be safe integers (absolute value at most 2^53−1); otherwise VALUE_OUT_OF_RANGE.",
    "From decimal converts the shortest normalized binary64 decimal exactly within the reduced safe-integer envelope; all four modes are in the current numerical verification scope.",
    "Results reduced by GCF; signs normalized onto the numerator."
  ],
  "limitations": [
    "Integer numerators and denominators only (optional mixed-number whole)",
    "Denominator 0 → DENOMINATOR_MUST_BE_NONZERO",
    "Division by 0/n → DIVISION_BY_ZERO",
    "Add/subtract use LCD = LCM(b, d); (ad ± bc)/bd is an equivalent check only",
    "Negative sign is normalized onto the numerator after reduction",
    "Expert review pending — L1 engine-tested / source-checked",
    "Required numerator/denominator or decimal never default; whole alone may be absent/empty. Unknown mode/op/field and conflicting aliases rejected.",
    "From-dec uses shortest decimal serialization after binary64 normalization, not the exact binary float fraction. Nonzero-to-zero rejected; reduced numerator and denominator must be safe integers.",
    "rational_exact describes n/d; decimal/decimal_display are rounded previews (12 significant digits normally,9 scientific). Full structured result available in native exports."
  ],
  "boundary_conditions": [
    "Denominator 0 → undefined",
    "Division by 0/n → undefined",
    "Unsafe integer input or intermediate → VALUE_OUT_OF_RANGE"
  ],
  "sources": [
    {
      "title": "Margaret Stevens — The Maths Workbook (University of Oxford)",
      "section": "Chapter 1, §1: Algebraic Expressions and Fractions; §3: Equations",
      "url": "https://www.some.ox.ac.uk/wp-content/uploads/2024/08/Maths-Workbook.pdf",
      "supports": "Algebraic addition/subtraction, multiplication/division, distributive rules, equivalent fractions, common denominators and reciprocals. Ratios are interpreted as quotients. Equality of ratios with nonzero denominators permits cross multiplication, and solving a proportion uses the chapter’s equation transformations. A zero divisor is excluded; integer quotient/remainder uses the separately cited Euclidean-division reference. Mathematical reference only; not implementation validation or an endorsement of CalculatorX.",
      "kind": "reference",
      "publisher": "University of Oxford, Department of Economics; hosted by Somerville College"
    },
    {
      "title": "Python fractions — Rational numbers",
      "url": "https://docs.python.org/3/library/fractions.html",
      "supports": "Independent Fraction arithmetic, normalized positive denominator, and the distinction between decimal-string rational conversion and the exact binary fraction represented by a float.",
      "kind": "reference",
      "publisher": "Python Software Foundation"
    }
  ],
  "methods": [
    "LCD / LCM addition and subtraction",
    "Cross-product identity (equivalent to LCD, used as a check)",
    "GCF reduction",
    "Reciprocal (keep–change–flip) division"
  ],
  "fingerprint": "sha256:202226dcdb1309cb985e97c6d276b6c473f4ba83f1c93812b8a4f198f96811aa",
  "tier": "engine_tested",
  "verification": {
    "tests": {
      "passed": 32,
      "total": 32,
      "golden": 20,
      "boundary": 8,
      "property": 4
    },
    "contract_checks": {
      "passed": 6,
      "total": 6
    }
  },
  "evidence_core_generated_at": "2026-10-20T13:36:01.263Z",
  "rendered_at": "2026-10-21T01:08:25.775Z",
  "release_integrity": {
    "status": "verified",
    "scope": "workspace",
    "production_attestation_required": true,
    "calculation_version": "1.0.8",
    "artifacts": {
      "engine": "1.0.8",
      "page": "1.0.8",
      "capability": "1.0.8",
      "evidence": "1.0.8",
      "input_schema": "1.0.8",
      "output_schema": "1.0.8",
      "mcp_contract": "1.0.8"
    },
    "digests": {
      "input_schema_sha256": "454b6e55dc71046ea4bcbf5483ac86c4d82025bd005d603d51bd4b55c68cdd56",
      "output_schema_sha256": "d451b0103e2d597a9c2cb024fadad14d981603f09616ad1a288ee1780ccfb850",
      "evidence_sha256": "0b0c63acb50d3967532470d204eed573c80924b98a6a12c03432d52d23103cc1",
      "evidence_core_sha256": "0b0c63acb50d3967532470d204eed573c80924b98a6a12c03432d52d23103cc1",
      "capability_sha256": "26ef26e5cb3d857a83e3784aae43aa35d90a9d05b4eca193f0462e3a904106c7",
      "engine_sha256": "6ef38e64f6a7018cce0538e78ba57c8e2a141f11e8779e9e3f91408a668b7b71",
      "mcp_contract_sha256": "8307790535111ad6b9a68ce3411add19b7dfc039b2f2cbcc1cf3bc68ab5fd4a1"
    },
    "contract_checks": {
      "total": 6,
      "passed": 6,
      "failed": 0,
      "items": [
        {
          "id": "release-artifacts-aligned",
          "status": "pass",
          "detail": "1.0.8"
        },
        {
          "id": "schema-output-required-declared",
          "status": "pass"
        },
        {
          "id": "schema-valid-input-executes",
          "status": "pass"
        },
        {
          "id": "engine-success-output-validates-schema",
          "status": "pass"
        },
        {
          "id": "schema-rejects-incomplete-input",
          "status": "pass"
        },
        {
          "id": "rest-success-payload-validates-schema",
          "status": "pass"
        }
      ]
    },
    "report": "https://www.calculatorx.com/.well-known/calculatorx-release-integrity.json"
  },
  "tests": [],
  "disclosure": {
    "policy": "calculatorx-public-evidence-v1",
    "full_validation": "private",
    "representation": "summary"
  }
}
