Software, properties & evidence

Verification catalog.

Find what a claim covers.
See what still needs to be shown.

Each record concerns one bounded property of identified code. Inclusion does not certify a package or imply endorsement by its maintainers.

2 software records · 1 own component record

Snapshot · Reviewed evidence snapshot

Explore the scope.

How to read a status

Scanpy has a proved output checker with a trusted execution bridge. DESeq2 has translated-model invariants with finite output comparisons. Neither has an implementation-refinement proof.

Existing software Normalization

DESeq2

Translated-model proof with finite numerical-consistency certificates

Model only

A theorem covers the stated mathematical model. This status does not establish correspondence with the deployed software.

Source pin 1.52.0 · 16aeab6d6158bd8cbb8e98764c2f33399b1a3fd3

Bounded claim

In the real-valued translation, positive sample scaling preserves the retained rows and normalized between-sample ratios. Size factors follow a proved scaling identity.

Boundary

A chosen 10^-12 tolerance checks recorded-output consistency. It does not prove accuracy against the ideal estimator or R/libm refinement.

Read scope, assumptions & evidence for DESeq2
Source identity

Bioconductor DESeq2 · Pinned source

Official DESeq2_1.52.0.tar.gz archive. R/core.R and the repository commit are pinned separately in sources.json.

SHA-256 8c91699286336350e66eec132ce6fdf5bb4af78e2a4d015a5a61224f62a95984
Precise statement
The exact-real estimator is exp(median(log ratios)); even medians average central log values. For positive scales c and nonempty all-positive retained rows, s(K scaled by c)[j] = (c[j] / G(c)) * s(K)[j], where G(c) = exp(mean(log(c))).
Assumptions
  • The mathematical model has finite real-valued count rows, positive sample scales and at least one row positive in every sample.
  • The target uses the default ratio method and stats::median; even medians average the central log values.
  • The production interpretation uses dense nonnegative counts, at least one sample and one all-positive row, without missing or nonfinite values.
  • R execution, binary-output recording and Python decoding faithfully represent the executed function and observed values.
Outside the claim
  • A chosen 10^-12 tolerance checks recorded-output consistency. It does not prove accuracy against the ideal estimator or R/libm refinement.
  • No formal R refinement, universal floating-point accuracy bound, full-package verification or statistical validity claim.
  • No poscounts, supplied geoMeans, custom location functions, control-gene indexing or other DESeq2 routines.
  • Execution used the unchanged upstream function assignment with dependencies; the full package namespace/S4 route was not tested or proved.
Proof artifact

Lean 4.32.2 and pinned Mathlib prove invariants of exp(median(log ratios)), including even-row log medians. An independent mathematical review passed 10 scope and theorem checks.

  • DESeq2Verification.estimateRatio_scale
  • DESeq2Verification.normalized_ratio_scaled
  • DESeq2Verification.retained_scale
  • DESeq2Verification.sizeFactor_global_scale
  • DESeq2Verification.checkRelative_sound
Source files & artifact hashes
Execution bridge

R/libm floating-point correspondence remains unproved. Exact rational certificates compare recorded outputs, not output accuracy against the ideal estimator. The unchanged upstream function assignment ran with dependencies; the full package namespace/S4 route was not exercised.

  • bridge.RSHA-256 f2911fb5efedeeb7569cfd42bfba717a031bf65cf0cc691aad378904d794f41d
  • certify.pySHA-256 c563c74d2b1337c6cdd0d022a3fe503b1d64c4db83dcfb78fd6b3888e4766b33
Runtime evidence

The unchanged function assignment ran on 10 synthetic matrices. The 59 kernel-checked comparisons satisfy a chosen 10^-12 tolerance, not a proved numerical error bound or accuracy guarantee against the ideal estimator. The largest observed residual is about 3.7e-15.

  • certificates.jsonSHA-256 aed417f09efd35a6d9b733bdad2b3bab13fee02d1c95cf7121728ea513e99f46
  • cases.tsvSHA-256 557f6a81fb9f095c7eb0db4685b9d81f4279fce4b92f4f33346bb8df25605553
  • boundaries.tsvSHA-256 852124914c66d241dee55f41ba245d3378784711e4617beb31863b679ed20f11
  • repeatability.jsonSHA-256 003af1d5ccd5bd6acfc3c49218c228475bf1b45ae94da5b1622d7b06b9698b6f
  • sources.jsonSHA-256 853fbcb116de8479204fd818bd5bf5ad4edb35d225d25e6f5fa91823f8a8235e
Runtime contract

estimateSizeFactorsForMatrix(..., type="ratio", locfunc=stats::median)

Count rows by sample columns

  • At least one sample and one row positive in every sample; missing and nonfinite values are excluded.
  • Demonstrated integer inputs and their scaled values remain below 2^53.
  • Finite evidence covers 59 nontrivial comparisons across 10 synthetic matrices; 31 residuals are nonzero.
  • The checker rejects a 1% altered output and a zero reference denominator.

Backends

  • Dense nonnegative count matrix; unchanged upstream function assignment evaluated from R/core.R. No full DESeq2 package installation.

Pinned stack DESeq2 source 1.52.0; R 4.6.1; MatrixGenerics 1.24.0; matrixStats 1.5.0; Lean 4.32.2

Configuration method=ratio; location=stats::median; recorded_output=binary64; chosen_comparison_tolerance=1/1000000000000

DESeq2 commit 16aeab6d6158bd8cbb8e98764c2f33399b1a3fd3Mathlib commit 905b95818eb32af7874a58b427f50c1711a5e96c
Trusted base
  • Lean 4.32.2 kernel, pinned Mathlib and axioms propext, Classical.choice and Quot.sound.
  • Source/hash checks, unchanged R function execution, R/libm, binary-output recording and Python binary64 decoding.
  • The connection from the intended algorithm to the real-valued translation; no proof of numerical implementation correspondence.
Review basis
Independent mathematical review reported 10 passed checks at the pinned contribution commit. Reviewed source hashes match this catalog. The full contribution gate was replayed separately in an isolated copy.
Next obligation
Establish accuracy against the ideal estimator and production floating-point correspondence before considering an implementation-refinement claim.
Revision history
  1. 2026-10-02 · revision 1 · created. Review target recorded; results remain in progress.
  2. 2026-10-02 · revision 2 · corrected. Accepted translated-model invariants and finite production-output comparisons after a copied gate rerun. Kept the main claim at model-only assurance.
  3. 2026-10-02 · revision 3 · corrected. Attached the passed independent mathematical review. Retained model-only status and clarified that consistency certificates do not establish ideal-estimator accuracy.

Existing software Aggregation

Scanpy

Grouped-count sums · proved output checker

Runtime checked

Identified outputs passed the stated checks. The result applies to those runs; it is not a universal implementation proof.

Source pin 1.12.4 · ff2133115f639fccce9633aa7f5309c36a0972e7

Bounded claim

A proved checker accepted outputs from 41 actual Scanpy runs on synthetic count matrices. It checked grouped sums, labels and supplied source witnesses.

Boundary

No Scanpy implementation refinement. Python extraction and adapter-supplied source witnesses remain trusted.

Read scope, assumptions & evidence for Scanpy
Source identity

scverse / Scanpy · Pinned source

src/scanpy/get/_aggregated.py at the recorded official Scanpy commit. Full package, dependency and inspected-file pins are in pins.json.

SHA-256 44462822c465c704ff1526ea7af97b39894c26879463677a6eb0da8d1732c67d
Precise statement
ScanpyAggregate.check_sound proves the stated contract for accepted serialized input/output pairs. This checks observed outputs; it does not refine the original Scanpy implementation.
Assumptions
  • Python faithfully extracts and serializes the actual input and output, and decodes observed binary64 values with as_integer_ratio.
  • Source-index/name witnesses are adapter-supplied. Scanpy does not return them; Lean checks them against the serialized input.
  • The pinned packages, JIT configuration and runtime load correctly. The execution environment remains trusted.
  • The declared input domain, group ordering, labels and Boolean mask match the actual call.
Outside the claim
  • No Scanpy implementation refinement. Python extraction and adapter-supplied source witnesses remain trusted.
  • No Python, Numba, SciPy or AnnData refinement; no IEEE-754 reduction proof.
  • No other reducers or axes, multiple group columns, negative/general floating inputs, layers, GPU, Dask or backed data.
  • No whole-package correctness, statistical calibration, biological validity or upstream endorsement.
Proof artifact

A general Lean-proved output checker establishes sum, identity, coverage and bound properties. Fourteen corrupted or unsupported transcripts have kernel-proved rejections. Independent mathematical review passed 10 checks; original Scanpy implementation refinement remains unproved.

  • ScanpyAggregate.check_sound
  • ScanpyAggregate.filtered_sum_eq
  • ScanpyAggregate.accepted_group_identity
  • ScanpyAggregate.accepted_source_identity
  • ScanpyAggregate.accepted_feature_identity
  • ScanpyAggregate.accepted_group_coverage
  • ScanpyAggregate.accepted_sum_bound
  • ScanpyAggregate.bounded_prefix_no_wrap
  • ScanpyAggregate.bounded_wordSum_exact
Source files & artifact hashes
Execution bridge

Python extraction, serialization and binary64 decoding are trusted. Source-index/name witnesses are adapter-supplied, not returned by Scanpy. Lean checks these witnesses against the serialized input; it does not establish their origin in execution.

  • bridge.pySHA-256 f47b9c942cad96188ae2825047f04dfce8eb199a94a36af4458dd0fed3f3d0a4
Runtime evidence

41 actual Scanpy executions on synthetic matrices passed the proved checker across dense, CSR and CSC backends. The copied contribution gate reproduced all seven deterministic artifacts.

  • results.jsonSHA-256 8ea6d5ae6452012cb092457db084c4924c070f5f09e5f0094cb28739fec928e6
  • cases.jsonSHA-256 e1022ca51113506968807f5bec7a963b60ff9f0ca36909a2ce4fb2c6b0ca6e7a
  • pins.jsonSHA-256 bac08a8f81e5df0282a3d206249c2813fb766c60c953ccfa10cf22eeba985f9a
  • runtime-backends.jsonSHA-256 c43dc46ac9ec130dc2e1bd31edfcdde17c4878ab9467853cec5a9e6134f1afc9
  • limit-probes.jsonSHA-256 7f02e24c75f2c96a852d13c92efb722e4db45a43d4beab26ea2dec229881948b
  • catalog-entry.jsonSHA-256 887a86c0192f0d92b6dbe38664abb2a76ac6cd05ebdac09e8220a5822dba5d5f
  • uv.lockSHA-256 ac31930d86faf4e8fa2308b746c59fa002b41c0f96648590a104606d243565b5
Runtime contract

scanpy.get.aggregate(adata, by='group', func='sum', axis='obs', mask='keep')

observations by features

  • Nonempty observations and features, with at least one assigned category; observations are rows and features are columns.
  • One categorical group column with explicit order and a Boolean inclusion mask.
  • Nonnegative int64 counts; each entry and selected group/feature sum is at most 2^53 (9,007,199,254,740,992).
  • Canonical sparse storage with unique indices; explicit and implicit zeros are allowed.
  • Unique, nonempty printable ASCII labels. Missing assignments are excluded; unused categories are removed.
  • Observed groups whose members are all masked remain with zero counts and sums.

Backends

  • numpy.ndarray int64 -> float64
  • scipy.sparse.csr_matrix int64 -> int64
  • scipy.sparse.csc_matrix int64 -> int64

Pinned stack Python 3.13.15; Lean 4.34.1; anndata 0.13.4; fast-array-utils 1.5.1; llvmlite 0.50.0; numba 0.68.0; numpy 2.5.3; pandas 3.0.6; scanpy 1.12.4; scipy 1.18.1

Configuration disable_jit=0; threading_layer=workqueue; threads=2

anndata commit a487b81d38d4bfe7c7d76f01eed72a8622665c65scanpy commit ff2133115f639fccce9633aa7f5309c36a0972e7
Trusted base
  • Lean 4.34.1 kernel and standard logical foundations: propext and Quot.sound.
  • Python, package loading, AnnData input/output extraction, as_integer_ratio binary64 decoding and serialization.
  • Adapter-supplied source witnesses and their correspondence with the executed data; the compiler/JIT, runtime and operating system.
Review basis
Independent mathematical review reported 10 passed checks at the pinned contribution commit. Both reviewed proof source hashes match this catalog. Module compilation and replay passed; that review did not rerun Scanpy or rebuild the imported dependency environment. The contribution gate was replayed separately in an isolated copy.
Next obligation
Establish execution correspondence before considering any implementation-refinement claim. Python extraction, serialization, binary64 decoding and adapter-supplied source witnesses remain trusted.
Revision history
  1. 2026-10-02 · revision 1 · created. Review target recorded; results remain in progress.
  2. 2026-10-02 · revision 2 · corrected. Accepted the completed proved-output-checker contribution after an isolated full gate rerun; status describes runtime output checks, not Scanpy refinement.
  3. 2026-10-02 · revision 3 · corrected. Attached the passed independent mathematical review after matching both proof sources. Retained runtime-checked status and explicit trusted adapter/source-witness boundaries.

Our component · Veriformatics Multiple testing

Veriformatics Holm component

Finite-model family-wise error bound

Model only

A theorem covers the stated mathematical model. This status does not establish correspondence with the deployed software.

Source pin 0.1.0 · frozen mathematical source

Bounded claim

In a finite rational probability model, the chance of any reported false rejection is at most the fixed alpha, under the listed premises.

Boundary

This is Veriformatics’ own component. It does not verify R stats::p.adjust, DESeq2 or Scanpy.

Read scope, assumptions & evidence for Veriformatics Holm component
Source identity

Veriformatics source snapshot · Pinned source

Bridge.lean in the retained proof snapshot. Every supporting source file has a separate artifact hash.

SHA-256 eb6eb8b1801db92dc1213287b739bd4659a360f005745fa698af9ce8af1cd0c0
Precise statement
HolmStat.checked_reporting_fwer bounds the unconditional accepted-and-false-rejection event for the frozen exact Holm formula. It does not bound error conditional on acceptance.
Assumptions
  • A finite probability law has nonnegative rational weights that sum to one, with represented rational p-values.
  • The hypothesis family, true-null subset and alpha are fixed across outcomes.
  • Each true-null p-value meets the stated marginal validity bound. Independence is not required.
  • Only checker-accepted decisions are reported; failed checks report no rejections.
Outside the claim
  • This is Veriformatics’ own component. It does not verify R stats::p.adjust, DESeq2 or Scanpy.
  • No proof of real-data p-value validity, selection practice, biological truth or arbitrary continuous probability laws.
  • No native compiler, parser, R/Python adapter or deployed execution correspondence is proved here.
Proof artifact

The retained Lean 4.34.1 sources rebuilt locally. All 24 audited declarations use only the listed standard axioms. The build record is unsigned.

  • HolmStat.finite_holm_fwer
  • HolmStat.frozen_formula_eq
  • HolmStat.checked_reporting_fwer
Source files & artifact hashes
  • Conditional.leanSHA-256 dd981dde8a8ca1cf83013a3670b96e72aaeddee06e8fcc797a76c854094c7c55
  • Bridge.leanSHA-256 eb6eb8b1801db92dc1213287b739bd4659a360f005745fa698af9ce8af1cd0c0
  • FrozenPrototype.leanSHA-256 3ac9e49a4735514e483ab359445efa3c379912acadb2e9643fb79b50d059df5c
  • Examples.leanSHA-256 84a132635f55ad6b9adf4e1207e84a5764170ef2cd74ca04f2f443865c56f027
  • Audit.leanSHA-256 4763e1b471a08cda6cb7732c954cee4e99f22adc8bcd489f3ca84d8f60096c06
  • lakefile.tomlSHA-256 2d3bb02f236652d29ac7b05b18a0fa121ef8d8fd019c203bc668f38c91f2b514
  • lake-manifest.jsonSHA-256 a8be097ea7ff5cc65686eeb436627ac513ffcb042a8fcb72f9da590c3e980747
  • lean-toolchainSHA-256 d5edba4e4b8faad9c1baeadb265716d20d03be4d1a2647dc5e35b0c0325bea7b
  • CONTRACT.mdSHA-256 4e8f0cba2d8f3379e0bc3d2f76d842ae1eaa64ab2fea32a77be9172aa532b5a9
  • local-check.jsonSHA-256 b10ff417a5aec29615ee9c9fcb6165e7f96e3671bdc58d144f6106814145663d
Execution bridge

Formal equality connects the theorem to the frozen pure Lean formula and checker. A deployed software refinement is not established.

  • Bridge.leanSHA-256 eb6eb8b1801db92dc1213287b739bd4659a360f005745fa698af9ce8af1cd0c0
Runtime evidence

No claim about an actual R or bioinformatics package execution is made by this entry.

Trusted base
  • Lean 4.34.1 kernel and standard library; axioms propext, Classical.choice and Quot.sound.
  • The written specification and its interpretation as the intended statistical question.
  • Any deployed use would additionally trust the unproved compiler, parser, adapters, runtime and operating system.
Review basis
Local mathematical proof snapshot and review record inspected. This is not an external software certification or an independent audit of this catalog.
Next obligation
Review execution correspondence and applicability of the statistical premises before applying this theorem to a workflow.
Revision history
  1. 2026-10-02 · revision 1 · created. Own mathematical component recorded separately from third-party package reviews.

Methodology

A status describes evidence.
It has a boundary.

The four statuses describe different results. A runtime check does not become a universal proof because it passed many examples.

Every entry identifies the code, property, premises, artifacts, execution connection and trusted base. Missing evidence stays visible.

In progress
A review is underway. No completed proof or runtime result is claimed.
Model only
A theorem covers the stated mathematical model. This status does not establish correspondence with the deployed software.
Runtime checked
Identified outputs passed the stated checks. The result applies to those runs; it is not a universal implementation proof.
Refinement proved
A proof connects the identified implementation to the stated specification. Assumptions and the execution trust boundary still apply.

Keeping the record honest

Versions and corrections.

The review date records the evidence snapshot. It does not promise coverage of a newer release or a different configuration.

  1. Pin the claim. Record the exact source version and hashes. Keep assumptions and exclusions alongside the result.
  2. Review a change. New code, dependencies or proof obligations require a new review. Evidence is never inherited silently.
  3. Correct the record. Record the reason, date and revision. Preserve the previous entry and its artifact identities.
  4. Withdraw when needed. Mark an unsupported claim as withdrawn, with a reason. Retain its stable link and remove it from current results.
  5. Show the replacement. Link any successor record. A reinstated claim needs fresh evidence and owner review.

To flag a correction, retain the record ID, revision, source hash and supporting example. The inquiry channel is still being prepared.

Scoped project work

Bring one property
that matters.

A useful review begins with a named function, an exact version and a failure you need to rule out.

Possible deliverables include a precise contract, a proof artifact, an execution check or a documented unresolved obligation.

Prepare a review brief

Record the software, intended property, input limits and the evidence you need.

Download the scope brief Explore project work

The inquiry channel is being prepared. Downloading the brief does not submit a request or create an engagement.