{
  "capability_id": "math.geometry.plane",
  "tool_id": "plane-geometry",
  "engine": "plane-geometry",
  "calculation_version": "1.5.1",
  "generated_at": "2026-10-29T07:58:56.690Z",
  "engine_build": "2026-10-20",
  "test_count": 25,
  "passed": 25,
  "failed": 0,
  "tests_summary": {
    "golden": {
      "passed": 9,
      "total": 9
    },
    "boundary": {
      "passed": 5,
      "total": 5
    },
    "property": {
      "passed": 11,
      "total": 11
    }
  },
  "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/plane-geometry",
  "api": "https://www.calculatorx.com/api/v1/calc/plane-geometry",
  "schema_input": "https://www.calculatorx.com/schemas/math.geometry.plane.input.json",
  "schema_output": "https://www.calculatorx.com/schemas/math.geometry.plane.output.json",
  "assumptions": [
    "Euclidean plane",
    "Regular polygon integer n ≥ 3",
    "Annulus R > r",
    "Parallelogram θ in (0°, 180°)",
    "Isosceles trapezoid a, b, h > 0",
    "Irregular polygon shoelace 3–8 vertices",
    "Not the circle-only page",
    "Not a triangle solver",
    "Not solid geometry",
    "Not /trapezoidal-rule",
    "Not the fluid trapezoid",
    "Not CAS"
  ],
  "limitations": [
    "Positive dimensions and nonzero coordinates must be finite normal binary64; exact zero coordinates allowed. Positive reported measures must be normal binary64. Strict bounded decimal texts and matching active aliases.",
    "Regular n is an integer3–9007199254740991; figures draw at most128 sides, otherwise explicitly omitted.",
    "Simple polygon3–8 ordered distinct vertices, optional closing repetition. Exact predicates reject crossings, nonadjacent contacts, overlaps, backtracking and zero area. Concave, clockwise and collinear nonoverlapping intermediate vertices supported.",
    "Annulus R>r>0; parallelogram0<theta<180 degrees with normal radian conversion; trapezoid assumes isosceles legs.",
    "Thin rings/near-flat figures/topology are sensitive to input rounding. Exact predicates concern normalized binary64, not original arbitrary-precision decimals. Verification relative1e-11 is arithmetic, not input perturbation accuracy.",
    "NUMERIC_UNDERFLOW for nonzero text converted to zero; NUMERIC_RANGE for nonnormal inputs/outputs. Change length units or translate coordinates. No absolute zero clamp.",
    "Interactive solve local; shared URLs, REST/MCP and analytics have separate disclosed data paths."
  ],
  "boundary_conditions": [
    "a ≤ 0 or b ≤ 0 or s ≤ 0 or h ≤ 0 → VALUE_MUST_BE_POSITIVE",
    "n < 3 or non-integer n → INVALID_INPUT",
    "annulus R ≤ r → INVALID_INPUT",
    "parallelogram θ ≤ 0° or θ ≥ 180° → INVALID_INPUT",
    "irregular n < 3 or n > 8 or A=0 → INVALID_INPUT",
    "unknown mode → INVALID_MODE"
  ],
  "sources": [
    {
      "title": "ISO 80000-2:2019 Quantities and units — Mathematics",
      "url": "https://www.iso.org/standard/64973.html",
      "supports": "Mathematical symbols and notation. This standard is not numerical verification or an endorsement of this implementation.",
      "kind": "standard",
      "publisher": "International Organization for Standardization",
      "reference_scope": "all"
    },
    {
      "title": "CRC Standard Mathematical Tables — plane polygons",
      "supports": "Regular n-gon A = (n s²)/(4 tan(π/n)); parallelogram A = ab sin θ; shoelace / Meister–Gauss polygon area",
      "kind": "reference",
      "reference_scope": "model",
      "oracle_class": "O1"
    },
    {
      "title": "Euclid’s Elements — I.35: Parallelograms on the Same Base",
      "url": "https://mathcs.clarku.edu/~djoyce/elements/bookI/propI35.html",
      "supports": "Equal-base, equal-height parallelograms have equal area. Comparing with a rectangle gives A = base × perpendicular height; side length is not generally the height. Mathematical reference only; not validation or endorsement of this implementation.",
      "kind": "reference",
      "publisher": "Clark University, David E. Joyce edition"
    },
    {
      "title": "Gilbert Strang, Calculus — Chapter 9: Polar Coordinates and Complex Numbers (MIT OpenCourseWare)",
      "section": "§§9.1–9.3 Polar Coordinates, Length and Area",
      "url": "https://ocw.mit.edu/courses/res-18-001-calculus-fall-2023/mitres_18_001_f17_ch09.pdf",
      "supports": "Polar coordinates and the circular wedge area r²Δθ/2, together with area = ∫r² dθ/2 and polar arc-length integration. A full turn gives disk area πr² and circumference 2πr. An annulus follows by subtracting disk areas and adding both boundary lengths; these are derived applications. Mathematical reference only; not implementation validation or an endorsement of CalculatorX.",
      "kind": "reference",
      "publisher": "Wellesley-Cambridge Press; hosted by MIT OpenCourseWare"
    },
    {
      "title": "Gilbert Strang, Calculus — Chapter 15: Vector Calculus (MIT OpenCourseWare)",
      "section": "§15.3 Green’s Theorem",
      "url": "https://ocw.mit.edu/courses/res-18-001-calculus-fall-2023/mitres_18_001_f17_ch15.pdf",
      "supports": "The planar area formula A = (1/2) ∮(x dy − y dx). For straight polygon edges it gives the shoelace expression; rectangular/square areas and trapezoid area (B+b)h/2 follow by applying it to the vertices. For x=a cos t, y=b sin t it gives ellipse area πab. Perimeters of these polygons are sums of side lengths. These formulas are derived applications of the theorem. Mathematical reference only; not implementation validation or an endorsement of CalculatorX.",
      "kind": "reference",
      "publisher": "Wellesley-Cambridge Press; hosted by MIT OpenCourseWare"
    },
    {
      "title": "Gilbert Strang, Calculus — Chapter 1: Introduction to Calculus (MIT OpenCourseWare)",
      "section": "§1.5 A Review of Trigonometry",
      "url": "https://ocw.mit.edu/courses/res-18-001-calculus-fall-2023/mitres_18_001_f17_ch01.pdf",
      "supports": "Right-triangle definitions of sine, cosine and tangent, the sine/cosine identities, and the law-of-cosines and parallelogram exercises 31–32. Chord length follows by bisecting the radii triangle. Regular-polygon apothems and areas follow by splitting the polygon into equal triangles. The law of sines follows by equating a triangle’s altitude computed from either adjacent side; SSA can give two triangles. These applications are derived from the stated relations. Mathematical reference only; not implementation validation or an endorsement of CalculatorX.",
      "kind": "reference",
      "publisher": "Wellesley-Cambridge Press; hosted by MIT OpenCourseWare"
    }
  ],
  "methods": [],
  "fingerprint": "sha256:ed5b2c0567c1f0fb08ef3bd846773138b2c121b9bad742ce7b882f213d38495d",
  "tier": "engine_tested",
  "verification": {
    "tests": {
      "passed": 25,
      "total": 25,
      "golden": 9,
      "boundary": 5,
      "property": 11
    },
    "contract_checks": {
      "passed": 5,
      "total": 5
    }
  },
  "evidence_core_generated_at": "2026-10-20T03:50:04.347Z",
  "rendered_at": "2026-10-29T07:58:56.690Z",
  "release_integrity": {
    "status": "verified",
    "scope": "workspace",
    "production_attestation_required": true,
    "calculation_version": "1.5.1",
    "artifacts": {
      "engine": "1.5.1",
      "page": "1.5.1",
      "capability": "1.5.1",
      "evidence": "1.5.1",
      "input_schema": "1.5.1",
      "output_schema": "1.5.1",
      "mcp_contract": "1.5.1"
    },
    "digests": {
      "input_schema_sha256": "fb5fc0f383d8c94a2115d86379345a34809706872792f5c8235afe29db9571f0",
      "output_schema_sha256": "4a40e5b192de5175b7cd2aa97fe9d357b9e7b5ce375eac4bb79637bf0b25f170",
      "evidence_sha256": "6d787585f3726a1bb616fb7fc8bdf24a59485af90ba21c69fff37fc378ce127b",
      "evidence_core_sha256": "6d787585f3726a1bb616fb7fc8bdf24a59485af90ba21c69fff37fc378ce127b",
      "capability_sha256": "287ab847e0668f2da8e3be83c43c647f3e52b6c1243efb2aaf01fc7ccd2c9012",
      "engine_sha256": "c6ebd8436f08b413e1ac6317b2d48550f2e6639a90dff254244e3aa562158b8d",
      "mcp_contract_sha256": "a7e9b259b340e28a7f3f67b87f47d3ec9c44f27cd2956b43765dcb3344452a32"
    },
    "contract_checks": {
      "total": 5,
      "passed": 5,
      "failed": 0,
      "items": [
        {
          "id": "release-artifacts-aligned",
          "status": "pass",
          "detail": "1.5.1"
        },
        {
          "id": "schema-output-required-declared",
          "status": "pass"
        },
        {
          "id": "schema-valid-input-executes",
          "status": "pass"
        },
        {
          "id": "engine-success-output-validates-schema",
          "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"
  }
}
