Home Developers Evidence math.linear_algebra

Public evidence

math.linear_algebra

Machine-checked verification for calculation version 1.12.0 · tier engine_tested

Historical evidence. This page is version 1.12.0 · engine_tested · 54/54 tests. It is not the current published claim. Current evidence is 1.14.0 (58/58 tests) · latest.

CVP status

CVP VERIFIED · production STALE · CVP protocol 1.0.0-proposed · Core assurance · all published modes

Order 2–4 square for factorizations / solve. Cholesky is SPD only (A = LLᵀ). lstsq accepts rectangular A with rows,cols ∈ [2,4]. Discovery pages lock one mode. Not a CAS, not Statistics regression, not large-matrix server compute.

Declared partition coverage
PASS · 19/19 declared partitions (solve, det, inverse, multiply, transpose, rank, eigen, lu, chol, qr, svd, lstsq, rref, condition, nullspace, columnspace, rowspace, leftnullspace, invalid-domain)
Versions
Calculation 1.12.0 · CVP protocol 1.0.0-proposed · Evidence 2026-09-22.vector-la-cvp
Verification revision
2026-09-22.vector-la-cvp · 5/5 property · digest 81ab2bb4ee85

Verification

Legacy regression suite: 54/54 calculation tests · Production surface contract 5/5

Three distinct suites: educational examples on the calculator page, this legacy regression count (54/54 golden + boundary), and the CVP verification suite below. They are not the same number. Property, metamorphic, round-trip, O3, and interface statuses/checks are recorded in the CVP Manifest . SKIP (0/0) means that suite has no published vectors.

    STALE · Semantic contract ✓ · Last attestation PASS · current evidence changed · re-attestation required · CVP STALE · attestation STALE — Production CURRENT withheld · Public/cache ✓ · Origin ✓

CVP verification suite

Protocol checks from the Evidence Manifest. Distinct from the legacy regression suite above. Verification revision 2026-09-22.vector-la-cvp. Calculation version 1.12.0. CVP 1.0.0-proposed. 20/20 golden · 8/8 CVP boundary · 14/14 invalid · 5/5 property · 6/6 cross-interface · 2/2 cross-calculator · 5/5 CVP contract. digest 81ab2bb4ee85.

  • Golden (oracle-backed) 20 / 20
  • CVP boundary 8 / 8
  • Invalid input 14 / 14
  • Property 5 / 5
  • Cross-interface 6 / 6
  • Cross-calculator 2 / 2
  • CVP contract 5 / 5
  • Interfaces PASS · UI (SSR) / REST / MCP
  • Interface claim ui-ssr is query-result HTML, not a live browser session. Error-path engine·REST·MCP 1/1 (status, code, calculation_version). SSR compared on URL-canonical requested calculations; empty query is idle (not an error) and JSON-typed object/array inputs are REST/MCP-only.
  • Verified scope all published modes
  • Assurance Core
  • release artifacts aligned PASS
  • schema output required declared PASS
  • schema valid input executes PASS
  • engine success output validates schema PASS
  • rest success payload validates schema PASS

Fingerprint sha256:ed31b7d82f3338cc39164fca6ad7c137855bf27eb8a720232078bda719af1d97

Input schema sha256:e4850ca416c7f13aaf6cee9812ad0faae69e431bab6d712a3f7614e4738613ba · Output schema sha256:6e6216e8a012c7844acf14941b4b7dc9ceef5296ad5e2274ecdca757cad16f8b · Build-time SHA-256 digests prove published artifacts agree with each other (release_integrity.scope=workspace). Production attestation GETs canonical URLs twice (public/cached view and origin), including Capability HTML, via npm run attest:production --write (published at /.well-known/calculatorx-production-attestation.json) and fails if the public Capability page advertises a different calculation_version. This is artifact consistency, not an independent immutable release log.

Build & scope

Engine identity and declared limitations.

Tool
linear-system
Engine
linear-algebra
Engine build
2026-09-22
Evidence core
2026-09-22T07:23:03.591Z
Rendered
2026-09-22T07:25:48.832Z
Last reviewed

Assumptions

  • Real matrices
  • Order ≤ 4 square for solve/det/inverse/factorizations
  • lstsq also A ∈ R^{m×n} with m,n ∈ [2,4]
  • Planar ℝ² figure when 2×2; other shapes omit it
  • Not a CAS

Limitations

  • Order ≤ 4 (local small-matrix seed)
  • Singular inverse → SINGULAR_MATRIX
  • lstsq accepts rectangular m×n with m,n ∈ [2,4]; other modes stay square
  • Cholesky is SPD only (NOT_SYMMETRIC / NOT_POSITIVE_DEFINITE)
  • Not Statistics regression / large-matrix server compute
  • Not 2-norm κ₂ as a product / CAS / Jordan form

Sources

Standards and references supporting this tool specification. Methods are listed separately — they are algorithms, not bibliographic sources.

Legacy published checks

Golden and boundary cases from the legacy Evidence JSON. CVP property, metamorphic, round-trip, O3, and interface statuses/checks are recorded in the Manifest — including SKIP when a suite has no vectors.

IDKindStatusDetail
golden-2x2goldenpassExpected x=2 · y=1 · status=unique · Actual mode=solve · order=2 · x=2 · y=1 · status=unique · det=1 · formula=Ax = b · algorithm=inverse_multiply
golden-detgoldenpassExpected det=-2 · Actual mode=det · order=2 · det=-2 · formula=det(A) · algorithm=gaussian_elimination · numeric_backend=float64 · singularity_threshold=1e-15 · condition_number=21
golden-rank-singulargoldenpassExpected rank=1 · det=0 · Actual mode=rank · order=2 · rank=1 · det=0 · formula=rank via Gaussian elimination · algorithm=gaussian_elimination · numeric_backend=float64 · singularity_threshold=1e-15
golden-identity-3goldenpassExpected x=4 · y=5 · z=6 · Actual mode=solve · order=3 · x=4 · y=5 · z=6 · status=unique · det=1 · formula=Ax = b
golden-eigen-diaggoldenpassExpected {"eigenvalues":[{"re":2,"im":0},{"re":3,"im":0}]} · Actual mode=eigen · order=2 · eigenvectors_found=2 · residual_max=0 · char_poly=x² − 5x + 6 · solver=quadratic · det=6 · formula=det(A − λI) = 0
golden-lugoldenpassExpected singular=false · Actual mode=lu · order=2 · singular=false · reconstruction_residual=0 · det=1 · formula=PA = LU · algorithm=lu_partial_pivoting · numeric_backend=float64
golden-qrgoldenpassExpected reconstruction_residual=0 · Actual mode=qr · order=2 · reconstruction_residual=0 · orthogonality_residual=0 · formula=A = QR (Householder) · algorithm=householder_qr · numeric_backend=float64 · singularity_threshold=1e-15
golden-cholgoldenpassExpected reconstruction_residual=0 · Actual mode=chol · order=2 · reconstruction_residual=0 · formula=A = LLᵀ · algorithm=cholesky · numeric_backend=float64 · singularity_threshold=1e-15 · condition_number=9
golden-chol-3goldenpassExpected reconstruction_residual=0 · Actual mode=chol · order=3 · reconstruction_residual=0 · formula=A = LLᵀ · algorithm=cholesky · numeric_backend=float64 · singularity_threshold=1e-15 · condition_number=10209.3611111
golden-svd-diaggoldenpassExpected rank_numeric=2 · Actual mode=svd · order=2 · rank_numeric=2 · reconstruction_residual=0 · u_orthogonality_residual=0 · v_orthogonality_residual=0 · formula=A = U Σ Vᵀ · algorithm=ata_jacobi + Av/σ
golden-svd-symgoldenpassExpected reconstruction_residual=0 · Actual mode=svd · order=2 · rank_numeric=2 · reconstruction_residual=0 · u_orthogonality_residual=0 · v_orthogonality_residual=0 · formula=A = U Σ Vᵀ · algorithm=ata_jacobi + Av/σ
golden-lstsq-uniquegoldenpassExpected x=2 · y=1 · residual_2=0 · Actual mode=lstsq · order=2 · rows=2 · cols=2 · x=2 · y=1 · residual_2=0 · rank_numeric=2
golden-lstsq-rank1goldenpassExpected x=0.04 · y=0.08 · rank_numeric=1 · Actual mode=lstsq · order=2 · rows=2 · cols=2 · x=0.04 · y=0.08 · residual_2=0.894427191 · rank_numeric=1
golden-lstsq-rect-overgoldenpassExpected x=0.6666666666666666 · y=0.5 · method=qr · status=unique · Actual mode=lstsq · order=2 · rows=3 · cols=2 · x=0.666666666667 · y=0.5 · residual_2=0.408248290464 · rank_numeric=2
golden-lstsq-rect-undergoldenpassExpected x=3 · y=4 · z=0 · method=svd_pinv · status=min_norm · Actual mode=lstsq · order=3 · rows=2 · cols=3 · x=3 · y=4 · z=0 · residual_2=0
golden-rref-rank1goldenpassExpected rank=1 · Actual mode=rref · order=2 · rank=1 · det=0 · formula=Gauss–Jordan → RREF · algorithm=gauss_jordan_rref · numeric_backend=float64 · singularity_threshold=1e-15
golden-rref-fullgoldenpassExpected rank=2 · Actual mode=rref · order=2 · rank=2 · det=-2 · formula=Gauss–Jordan → RREF · algorithm=gauss_jordan_rref · numeric_backend=float64 · singularity_threshold=1e-15
golden-condition-diaggoldenpassExpected condition_number=2 · infinite=false · status=finite · Actual mode=condition · order=2 · condition_number=2 · infinite=false · status=finite · norm=1 · det=2 · formula=κ₁(A) = ‖A‖₁ ‖A⁻¹‖₁
golden-condition-singulargoldenpassExpected infinite=true · status=singular · Actual mode=condition · order=2 · infinite=true · status=singular · norm=1 · det=0 · formula=κ₁(A) = ‖A‖₁ ‖A⁻¹‖₁ · algorithm=one_norm_inverse
golden-nullspace-rank1goldenpassExpected dimension=1 · rank=1 · trivial=false · Actual mode=nullspace · order=2 · dimension=1 · rank=1 · trivial=false · residual_max=0 · det=0 · formula=dim ker A = n − rank A
golden-nullspace-fullgoldenpassExpected dimension=0 · trivial=true · Actual mode=nullspace · order=2 · dimension=0 · rank=2 · trivial=true · residual_max=0 · det=1 · formula=dim ker A = n − rank A
golden-colspace-rank1goldenpassExpected dimension=1 · rank=1 · trivial=false · Actual mode=columnspace · order=2 · dimension=1 · rank=1 · trivial=false · residual_max=0 · det=0 · formula=dim im A = rank A
golden-colspace-fullgoldenpassExpected dimension=2 · trivial=false · Actual mode=columnspace · order=2 · dimension=2 · rank=2 · trivial=false · residual_max=0 · det=1 · formula=dim im A = rank A
golden-rowspace-rank1goldenpassExpected dimension=1 · rank=1 · trivial=false · Actual mode=rowspace · order=2 · dimension=1 · rank=1 · trivial=false · residual_max=0 · det=0 · formula=dim row A = rank A
golden-rowspace-fullgoldenpassExpected dimension=2 · trivial=false · Actual mode=rowspace · order=2 · dimension=2 · rank=2 · trivial=false · residual_max=0 · det=1 · formula=dim row A = rank A
golden-leftnullspace-rank1goldenpassExpected dimension=1 · rank=1 · trivial=false · Actual mode=leftnullspace · order=2 · dimension=1 · rank=1 · trivial=false · residual_max=0 · det=0 · formula=dim ker Aᵀ = n − rank A
golden-leftnullspace-fullgoldenpassExpected dimension=0 · trivial=true · Actual mode=leftnullspace · order=2 · dimension=0 · rank=2 · trivial=true · residual_max=0 · det=1 · formula=dim ker Aᵀ = n − rank A
boundary-singularboundarypassExpected SINGULAR_MATRIX · Actual SINGULAR_MATRIX
boundary-jordan-formboundarypassExpected INVALID_MODE · Actual INVALID_MODE
boundary-lstsq-rowsboundarypassExpected INVALID_INPUT · Actual INVALID_INPUT
boundary-rect-solveboundarypassExpected INVALID_INPUT · Actual INVALID_INPUT
boundary-chol-nonsymboundarypassExpected NOT_SYMMETRIC · Actual NOT_SYMMETRIC
boundary-chol-indefboundarypassExpected NOT_POSITIVE_DEFINITE · Actual NOT_POSITIVE_DEFINITE
property-la-solvepropertypass2x+y=5
property-la-detpropertypassdet
property-la-invpropertypassdiag inverse
property-la-rankpropertypassrank-1 singular
property-la-tpropertypasstranspose
property-la-qrpropertypassQR residual
property-la-lupropertypassLU residual
property-la-cholpropertypassCholesky LLᵀ
property-la-eigenpropertypassdiag eigen
property-la-svdpropertypassdiag SVD
property-la-svd-sympropertypasssym SVD residual
property-la-lstsqpropertypasslstsq QR unique
property-la-lstsq-pinvpropertypasslstsq SVD min-norm
property-la-lstsq-rectpropertypassrectangular 3×2 QR
property-la-rrefpropertypassrank-1 RREF
property-la-conditionpropertypassκ₁ diag 2,1
property-la-nullspacepropertypassrank-1 kernel
property-la-colspacepropertypassrank-1 image
property-la-rowspacepropertypassrank-1 rowspace
property-la-leftnullspacepropertypassrank-1 left kernel ≠ right kernel
property-la-id3propertypassI₃ solve