Skip to main content

warrantlib

A column of PASS cannot say whether anything was decided. A grid sample over a continuous range and an exhaustive enumeration over a declared finite set can both come back clean. Only the second settled the question. warrantlib is a small vocabulary for keeping that difference in a check suite's output instead of losing it there.

pip install warrantlib

Python 3.10 and up. The standard library is the only dependency.

Warrant

Warrant says how well a claim is warranted, by the prover class behind it.

Prover What it does Label
1 pen-and-paper theorem, within stated hypotheses PROVED
2 symbolic computation: closed-form identities, algebraic non-existence PROVED
3 · enumeration exhaustive enumeration over a finite domain PROVED, with a completeness certificate
3 · validated validated numerics over a compact domain CERTIFIED
3 · sample sampling a continuum CORROBORATED

CERTIFIED sits between the other two. Validated numerics prove a universal over a compact domain, and the proof carries the bound it was computed with. Borrowing PROVED overclaims. Borrowing CORROBORATED throws the bound away.

An action sweep over a continuous range is a finite grid over an infinite domain, so it samples. A policy enumeration over a declared finite set enumerates. The warrant follows from which of those the check did, not from how clean the answer looked.

Outcome

Outcome says what a registered falsifier did. A falsifier does not pass. It fires or it does not, and PASS is absent from the vocabulary rather than disambiguated by a column beside it.

Value What happened
NOT_TRIGGERED it ran, the condition did not obtain, the claim survives it
FIRED the condition obtained. The claim is refuted, and that is the result
NOT_RESOLVED it ran and the ordering is genuinely undetermined, because the two quantities' intervals overlap
NOT_APPLICABLE void by construction, so it is evidence for nothing and is not a survivor
NOT_RUN_HERE measured elsewhere, or not yet. The detail says where

Collapsing the last three loses the survivor accounting, and burns the word a real tie needs. The last two never ran, so they carry no warrant, and CheckReport enforces that.

The rest

Tier says what the check was measured against. EXACT against a closed form, BOUNDED against a stated bar, COMPUTED where there is no bar to state. It cuts across the other two rather than ranking them.

CheckReport is what a check emits. Frozen, because editing a report after the check ran is editing the finding. It refuses PROVED with nothing behind it.

Evidence comes in two kinds, one per decisive prover. CompletenessCertificate backs an exhaustive enumeration, recording the domain it covered against the count it visited. SymbolicReduction backs a theorem or a symbolic identity, and names where the symbolic setup was checked by hand against the analytic problem it stands for. A CAS establishes that one expression equals another. Whether those are the right expressions is a human obligation, and this is where it is discharged rather than assumed.

check_summary prints a run as counts per (warrant, outcome).

Use

from warrantlib import (
    CheckReport, Outcome, SymbolicReduction, Tier, Warrant, check_summary,
)

report = CheckReport(
    name="second gap coefficient",
    warrant=Warrant.PROVED,
    outcome=Outcome.NOT_TRIGGERED,
    tier=Tier.EXACT,
    detail="the CAS reduces the integral to the quoted constant",
    evidence=(
        SymbolicReduction(
            claim="the second gap coefficient equals the quoted constant",
            correspondence="hand derivation, section 3",
            assumptions=("the expansion is formal, not convergent",),
        ),
    ),
)

print(check_summary([report]))
1 registered, 1 tested here, none fired
   PROVED        NOT TRIGGERED   1

Registering four falsifiers and testing two is a different claim from testing four, and one number cannot carry both. The header separates them.

Where it comes from

warrantlib was factored out of cpomdp, where it labels a research programme's falsification battery. It is developed in that repository and released separately. The API reference is at cpomdp.inferogenesis.com/api/warrant.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

warrantlib-0.1.0.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

warrantlib-0.1.0-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file warrantlib-0.1.0.tar.gz.

File metadata

  • Download URL: warrantlib-0.1.0.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for warrantlib-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d9b50d9bbfa053dbb2608c45ae34c60d79dff4c25f147a34c73ae6bf00b086c3
MD5 7e3488d13b06986022ab4e463363cb2c
BLAKE2b-256 51574a27766caa300f5a50bf9350d49a0b06cfc7e7c1763c55a342fab7e214a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for warrantlib-0.1.0.tar.gz:

Publisher: publish.yml on inferogenesis/cpomdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file warrantlib-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: warrantlib-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for warrantlib-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0a0d83f706b0701e32a7c08ccc9fa3021d153b95332b89e3316aa8c50fe5f594
MD5 5bc6c560335199fad71e537a8c97ee34
BLAKE2b-256 d48322fd1230e02e6eb6b6a3503a37c46662a17e238140097213b59fda20fdac

See more details on using hashes here.

Provenance

The following attestation bundles were made for warrantlib-0.1.0-py3-none-any.whl:

Publisher: publish.yml on inferogenesis/cpomdp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page