🧭 New here?
Take a guided tour of the site.

1. Request flow

A user request lands on Fly.io's edge proxy, then on a single Flask process running in a shared-cpu-1x 256 MB Docker container. The Flask app opens the certified data/registry.db snapshot read-only and immutable. Page-view statistics and feedback are the only mutable website state, kept separately on the Fly volume at /persist/site.db.

User browser researcher / API HTTPS Fly.io edge bom.fly.dev auto-stops idle :8080 Routes (33) /families · /family/<id> /verify · /api/v2/* Mutable site state views + feedback only /persist/site.db Jinja2 templates + Canvas charts No JS framework, no build step SQL SQLite data/registry.db immutable release snapshot digest-bound read-only at runtime no external DB server read only
Why SQLite? The certified corpus is read-heavy, compact, and distributed as one validated file. The deployed app opens it with mode=ro&immutable=1 and query_only=ON.
Offline release pipeline. Candidate data and verification runs are generated outside the public web process, reviewed, and admitted only by the correctness release gate.
Fly auto-stop lets the machine sleep when idle. The separate /persist/site.db volume retains view totals and feedback; it never changes the certified registry snapshot.

2. The verification engine, inside out

The boundary-circle verifier certifies whether Re(z·f'(z)/f(z)) > 0 on the disk |z| ≤ r. A positive scan is a finite-disk bound only after zero-freeness and object identity are certified; it is not a whole-unit-disk proof. A disproof requires a certified interior counterexample point. Below is what happens when you call POST /api/v2/verify_sandbox with a closed form.

Closed form input "z*exp(z/2)" SymPy parse + validate requires f(0)=0, f'(0)=1 add_family._build_iv_g_* Derive g(z) = z·f'/f SymPy: f', f", S(f), T(f) Verify limit at z=0 Compile to mpmath.iv Taylor + fingerprint 20 coefficients via SymPy SHA-256 of rotation-norm form A. Argument-principle zero check winding# of p(z)=f/z on |z|=r if ≠ 0 → f has a zero in D → DISPROVE (not even univalent) B. Partition |z|=r into arcs initial: 2π in one box best-first priority queue (min Re g first) C. Centered eval on arc p(Z) ⊆ p(c) + (Z-c)·p'(box) tightens vs naive Horner [lo, hi] of Re(z·f'/f) at <30 dps precision D. Branch on the interval lo > 0 → arc proven ✓ hi < 0 → witness ✗ straddles 0 → bisect arc bisect until 0-budget or all arcs resolved bounded all arcs: lo>0 → finite certified r disproven some arc: hi<0 → witness z, Re g ≤ ε inconclusive box budget hit → partial proof up to r-1 Return verdict to caller {direction, disk_radius, witness?, confidence, runtime_ms} · NOT persisted (sandbox)
Soundness contract The verifier never says "proven" by sampling. Interval arithmetic can certify a finite-disk bound only when the same object is checked and zero-freeness is established on that disk. Negativity (hi<0) is sound only because interval arithmetic guarantees the bound holds across the whole arc, not just at a point.
Centered form vs naive Naive Horner evaluates the polynomial with z as a single interval - each occurrence of z gets enlarged independently, producing exponentially wide bounds on slowly-decaying truncations. The centered form anchors at the arc midpoint (a thin interval) and bounds only the variation across the arc by the derivative, scaling with arc width rather than polynomial degree.
Why exact-form-first matters A 20-term truncation of z/(1-z) = z+z²+z³+… has zeros near |z|=1 and genuinely isn't starlike there - the polynomial is a different function than f. When a SymPy closed form is available we verify the true f, not its truncation.

3. Offline release pipeline

Screening, interval verification, literature ingestion, and family additions happen outside the public web process. Candidate records retain their evidence scope: numerical screens, finite-disk bounds, whole-domain proofs, and certified disproofs are not collapsed into one label.

1. Generate candidates. Researchers run the same verifier components locally and preserve assumptions, parameters, witnesses, and object identity with each result.
2. Review and validate. Evidence-policy checks reject unsupported upgrades and conflicting certified conclusions. Database and artifact tests run against the exact proposed snapshot.
3. Publish atomically. A successful correctness release binds the database digest and code commit. Fly serves that snapshot read-only; runtime requests cannot alter its mathematical contents.

4. Data model

The encyclopedia centers on function_families - the canonical mathematical entities. Concrete points in parameter space become function_instances. Statements about them become facts. Every verifier run leaves a record in verification_runs. Papers cited in support attach via evidence. No NULL-link tombstones: every paper claim's provenance is preserved.

function_families 137 rows · the unit of identity name, canonical_key, closed_form param_spec_json, coeff_decay application_areas_json is_parametric, family_group gft_properties 19 rows · the property dictionary starlike, convex, univalent, nehari_univalent, becker, mobius, schwarzian_norm, ma_minda, … property_implications 12 edges · containment lattice convex → starlike → univalent function_instances 418 rows · concrete parameter points param_values_json, coefficients_json, coeff_fingerprint facts 939 rows · what's known fact_kind: membership | radius | bound | functional status, confidence, holds, disk_radius, fact_hash UNIQUE verification_runs 849 rows · audit trail verifier, direction, outcome, domain_radius, witness_json, engine_version, runtime_ms never deleted - full history verification_queue legacy audit rows inactive at runtime; offline pipeline only evidence 7514 rows · facts ↔ papers theorem_number, page_number, statement_text, evidence_type paper_claim_id (provenance) papers 1,067 rows · the literature title, authors, year, structured_json has instance has fact verified by proven in references implies
immutable runs, fail-closed facts Verification runs are appended, never deleted. Facts are recomputed from registered routes, explicit scope, applicability, and object identity. Conflicting certified conclusions clear the public result and enter review.
Fingerprint deduplication Every instance has a SHA-256 fingerprint based on its rotation-normalized coefficient sequence. Before inserting a new family, add_family checks for fingerprint collisions and surfaces merge candidates.
Paper → evidence → fact A paper claim (extracted by text mining) becomes a piece of evidence when a human curator or an automated matcher links it to an existing fact. This creates the cross-tab between literature and the encyclopedia.
↑↓ navigate↵ openesc closeall results
✦ 267 explorers have wandered the registry - thanks for stopping by. Tell us what you'd like to see →
Usage & privacy

We use first-party site metrics to improve navigation: page visits, internal clicks, search result counts (not search terms), and approximate active time. A random tab ID groups events for seven days; GPC/DNT turns this off. The separate visitor count uses a self-hosted pseudonymous fingerprint and also respects GPC/DNT.

💬 Feedback