CVP verified calculation capability
Simplify, scale, and compare ratios; solve proportions; split a total; convert part-to-part ratios to fraction, decimal, and part-of-whole percent using exact rationals.
Math Capability ID math.ratio version 1.0.3 CVP VERIFIED CURRENT Core
Simplify
r₁:⋯:rₙ → exact rationals; L=LCM(d₁,…,dₙ); rᵢ′=L·rᵢ; g=GCF(|r₁′|,…,|rₙ′|); (r₁′÷g):⋯:(rₙ′÷g)A/B = C/D → A·D = B·Cr₁:⋯:rₙ → (k·r₁):⋯:(k·rₙ)partᵢ = total × (termᵢ / Σ terms) with every term ≥ 0 and Σ terms > 0Modes: simplify · proportion · scale · split · compare · convert · simp · reduce · prop · solve · multiply · divide · share · allocate · eq · equivalent · fraction · percent · pct
Canonical symbols for this capability. Agent schemas remain the contract.
| Symbol | Quantity | Unit | Role |
|---|---|---|---|
a | Exact strings:48 decimal digits per integer/decimal or numerator/denominator; total token≤128 characters | — | input |
aInput | Exact strings:48 decimal digits per integer/decimal or numerator/denominator; total token≤128 characters | — | input |
A | Exact strings:48 decimal digits per integer/decimal or numerator/denominator; total token≤128 characters | — | input / output |
b | Exact strings:48 decimal digits per integer/decimal or numerator/denominator; total token≤128 characters | — | input |
bInput | Exact strings:48 decimal digits per integer/decimal or numerator/denominator; total token≤128 characters | — | input |
B | Exact strings:48 decimal digits per integer/decimal or numerator/denominator; total token≤128 characters | — | input / output |
c | Exact strings:48 decimal digits per integer/decimal or numerator/denominator; total token≤128 characters | — | input |
cInput | Exact strings:48 decimal digits per integer/decimal or numerator/denominator; total token≤128 characters | — | input |
C | Exact strings:48 decimal digits per integer/decimal or numerator/denominator; total token≤128 characters | — | input / output |
d | Exact strings:48 decimal digits per integer/decimal or numerator/denominator; total token≤128 characters | — | input |
dInput | Exact strings:48 decimal digits per integer/decimal or numerator/denominator; total token≤128 characters | — | input |
D | Exact strings:48 decimal digits per integer/decimal or numerator/denominator; total token≤128 characters | — | input / output |
k | Exact strings:48 decimal digits per integer/decimal or numerator/denominator; total token≤128 characters | — | input / output |
kInput | Exact strings:48 decimal digits per integer/decimal or numerator/denominator; total token≤128 characters | — | input |
factor | Exact strings:48 decimal digits per integer/decimal or numerator/denominator; total token≤128 characters | — | input |
total | Exact strings:48 decimal digits per integer/decimal or numerator/denominator; total token≤128 characters | — | input |
totalInput | Exact strings:48 decimal digits per integer/decimal or numerator/denominator; total token≤128 characters | — | input |
terms | — | — | input / output |
termCount | — | — | input |
scaleOp | — | — | input / output |
scale_op | — | — | input |
op | — | — | input |
value | — | — | output |
ratio | — | — | output |
terms_exact | — | — | output |
gcf | — | — | output |
clearing_factor | — | — | output |
shares | — | — | output |
solved | — | — | output |
solved_for | — | — | output |
equivalent | — | — | output |
part_to_part | — | — | output |
part_of_whole | — | A | output |
part_of_whole_B | — | — | output |
simplified | — | — | output |
viz_terms | — | — | output |
viz_labels | — | — | output |
Inspectable numeric contract for this Capability@Version. Not a rewrite of the engine.
| Field | Declaration |
|---|---|
numeric_domain | rational |
exactness | exact |
algorithm | Six exact-rational modes; denominator clearing/GCF, cross multiplication, scaling, allocation, comparison and conversion |
valid_domain | Integer, decimal or fraction tokens,48 digits per component,128 characters;2/3 terms. JSON unsafe integers rejected; exact relative to accepted normalized tokens. |
singularity_policy | ALL_ZERO for simplify; proportion requires exactly one blank and nonzero B,D, unique solution; scale factor nonzero; split nonnegative terms and total, positive sum; convert marks undefined fractions/percentages null. |
branch_policy | Six explicit modes; signed rationals reduced to positive denominators;2/3 terms where supported; undefined quotients and nonunique proportions rejected |
tolerance | not applicable — exact rational identity; approximate graphical percentages are presentation only |
convergence | not applicable — finite rational algebra; Euclidean reduction terminates, no iterative numeric solver |
conditioning | Rational arithmetic adds no roundoff, but small divisors amplify perturbations in quotients and solved proportions. Exactness does not recover input information lost during JSON parsing. |
rounding | none for exact accepted rational tokens; binary64 JSON numbers may already round; bars and percent labels are explicitly approximate |
overflow | bounded48-digit input components; BigInt rational results serialized as exact strings or safe integers |
reproducibility | deterministic exact rational arithmetic relative to accepted normalized tokens + Capability@Version |
independent_oracle | cvp:math.ratio / Evidence published cases |
golden_vectors | Evidence golden + boundary + property (and published_reference_case when listed) |
Declared scope for this capability. Do not use it outside this domain.
Assumptions
One numerical check. The calculator page holds worked steps and FAQ.
12:18 → 2:3; 1.5:2.25 → 2:3; 3/4:5/6 → 9:10; 4:7 = x:21 → x=12
CVP VERIFIED · CVP protocol 1.0.0-proposed · Core assurance · all published modes. Computational verification is defined by CVP. Supplemental domain review (internal) and named expert review are defined by the Review policy and do not by themselves determine CVP conformance.
Human page, REST, and MCP share the same engine and calculation_version.
Build verified hashes workspace artifacts only. After deploy, attest:production GETs canonical URLs twice — the public/cached view an Agent actually hits, and origin — including every /capabilities/{id} HTML page. Public Capability HTML version must match catalog before production attestation passes. Live Trust rows above fetch /.well-known/calculatorx-production-attestation.json
and the output schema const. Build hashes: release integrity. That proves currently published page / engine / schema / evidence / MCP agree — not that a historical version is independently immutable. Production surface contract 10/10.
curl -sS -X POST 'https://www.calculatorx.com/api/v1/calc/ratio' \
-H 'Content-Type: application/json' \
-d '{"inputs":{"mode":"simplify","a":12,"b":18},"calculation_version":"1.0.3"}'{
"inputs": {
"mode": "simplify",
"a": 12,
"b": 18
},
"calculation_version": "1.0.3"
}POST /api/v1/calc/ratio. This is a POST calculate endpoint — do not GET it.
Full REST contract: REST API docs.
Human-readable sources plus CVP reference evidence classes.
Sources
Derived identities
Reference evidence classes: O1 model · O2 expected_values · O2 numerical_behavior
Inspect, then execute. Same engine as REST and the human calculator.
curl -sS -X POST 'https://www.calculatorx.com/mcp' \
-H 'Content-Type: application/json' \
-H 'MCP-Protocol-Version: 2026-07-28' \
-H 'Mcp-Method: tools/call' \
-H 'Mcp-Name: inspect_capability' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"inspect_capability","arguments":{"capability_id":"math.ratio"},"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientInfo":{"name":"calculatorx-docs-example","version":"1.0.0"},"io.modelcontextprotocol/clientCapabilities":{}}}}'curl -sS -X POST 'https://www.calculatorx.com/mcp' \
-H 'Content-Type: application/json' \
-H 'MCP-Protocol-Version: 2026-07-28' \
-H 'Mcp-Method: tools/call' \
-H 'Mcp-Name: execute_calculation' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"execute_calculation","arguments":{"capability_id":"math.ratio","inputs":{"mode":"simplify","a":12,"b":18},"calculation_version":"1.0.3"},"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientInfo":{"name":"calculatorx-docs-example","version":"1.0.0"},"io.modelcontextprotocol/clientCapabilities":{}}}}'Pin calculation_version (1.0.3) when the result must stay reproducible.
Inspect the trust tier and required assurance level before execution. Full protocol notes: MCP docs.