Home Developers Evidence math.linear_algebra

Public evidence

math.linear_algebra

Machine-checked verification for calculation version 1.14.0 · tier engine_tested

CVP status

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

Order 2–4 square for solve/det/inverse/LU/Cholesky. qr, svd, and lstsq accept rectangular A with rows,cols ∈ [2,4]. Cholesky is SPD only (A = LLᵀ). 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.14.0 · CVP protocol 1.0.0-proposed · Evidence 2026-09-22.la-hardening-lu-svd
Verification revision
2026-09-22.la-hardening-lu-svd · 7/7 property · digest 7307c47e0dc1

Verification

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

Three distinct suites: educational examples on the calculator page, this legacy regression count (58/58 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 · Last attested schema matched 1.14.0 snapshot / local build · 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.la-hardening-lu-svd. Calculation version 1.14.0. CVP 1.0.0-proposed. 24/24 golden · 8/8 CVP boundary · 14/14 invalid · 7/7 property · 9/9 cross-interface · 2/2 cross-calculator · 5/5 CVP contract. digest 7307c47e0dc1.

  • Golden (oracle-backed) 24 / 24
  • CVP boundary 8 / 8
  • Invalid input 14 / 14
  • Property 7 / 7
  • Cross-interface 9 / 9
  • 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:1cad4414f9587599b973fb3d47843cdf5db9c72bf4968fc0cf836677b32ac33e

Input schema sha256:46776f45ad33a244a7ecd4f3e1f3b48e6968445b5b67fa6418a9497c06d9870a · Output schema sha256:344160041140379c4334e7f0e951ed6c9ee7731792a1c83b176f1106da3d0f55 · 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-22T09:23:00.957Z
Rendered
2026-09-22T09:25:28.769Z
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
  • qr, svd, and lstsq accept rectangular m×n with m,n ∈ [2,4]; solve / det / inverse / LU / Cholesky 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 · residual_2=0 · backward_error=0
golden-detgoldenpassExpected det=-2 · Actual mode=det · order=2 · det=-2 · formula=det(A) · algorithm=gaussian_elimination · numeric_backend=float64 · singularity_threshold=1.7763568394002505e-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=1.7763568394002505e-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 · residual_2=0
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 · rows=2 · cols=2 · reconstruction_residual=0 · orthogonality_residual=0 · formula=A = QR (Householder) · algorithm=householder_qr
golden-qr-rect-overgoldenpassExpected reconstruction_residual=0 · orthogonality_residual=0 · rows=3 · cols=2 · Actual mode=qr · order=2 · rows=3 · cols=2 · reconstruction_residual=0 · orthogonality_residual=0 · formula=A = QR (Householder) · algorithm=householder_qr
golden-svd-rect-undergoldenpassExpected rank_numeric=2 · reconstruction_residual=0 · Actual mode=svd · order=3 · rows=2 · cols=3 · rank_numeric=2 · reconstruction_residual=0 · u_orthogonality_residual=0 · v_orthogonality_residual=0
golden-cholgoldenpassExpected reconstruction_residual=0 · Actual mode=chol · order=2 · reconstruction_residual=0 · formula=A = LLᵀ · algorithm=cholesky · numeric_backend=float64 · singularity_threshold=1.7763568394002505e-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=6.52811138479592e-14 · condition_number=10209.3611111
golden-svd-diaggoldenpassExpected rank_numeric=2 · Actual mode=svd · order=2 · rows=2 · cols=2 · rank_numeric=2 · reconstruction_residual=0 · u_orthogonality_residual=0 · v_orthogonality_residual=0
golden-svd-symgoldenpassExpected reconstruction_residual=0 · Actual mode=svd · order=2 · rows=2 · cols=2 · rank_numeric=2 · reconstruction_residual=0 · u_orthogonality_residual=0 · v_orthogonality_residual=0
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=1.7763568394002505e-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=1.7763568394002505e-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-qr-rectpropertypassrectangular 3×2 QR
property-la-svd-rectpropertypassrectangular 2×3 SVD
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