TauLib is the Lean 4 formalization of the Panta Rhei Research Program — Category τ built from 7 axioms, 5 generators, and 1 operator, applied across mathematics, physics, biology, and metaphysics. As of April 2026, the project is solo-authored by Thorsten Fuchs, and this is the first time we are opening the door to community engagement.
External contributions are welcome. If you have spotted a typo, a missed simp simplification, a broken link, or an outright error in a registry entry, please open a PR or issue. Larger changes start with a conversation — see below.
Open a PR directly. No issue required. Expect a review turnaround measured in days, not weeks.
- Typo fixes in docstrings, comments, and Markdown.
- Docstring corrections and clarifications.
- Tactic simplifications using
simp,omega,decide,ring,norm_num, etc. — provided the kernel axiom count andsorrycount do not change. - Registry bookkeeping: wrong registry ID cross-reference, missing
[Book.TypeIndex]tag, mismatched scope label. - Broken links in docs and README.
- CI hygiene: workflow fixes,
lake-manifest.jsonupdates,lean-toolchainbumps that keep the build green.
Describe what you want to do in a short issue, get a nod, then open the PR. This keeps us from colliding on the same work.
- New lemmas that support existing theorems.
- Alternative proofs of existing theorems. Must not add axioms. Must keep the theorem statement intact.
- doc-gen4 improvements: better navigation, cross-linking, tagging.
- New
#evalchecks, especially where they tighten a compute-then-axiomatize pattern.
These are architectural. Use a GitHub issue labelled discussion, or raise it on Zulip once the thread is announced (see below).
- Adding new axioms (the current count is 3, and any increase needs a registry entry and explicit sign-off).
- Changing scope labels (
established,τ-effective,conjectural,metaphorical). - Refactors inside
BookI/Kernel— the K0–K6 axioms are load-bearing. - Proposals to merge
Mathlibcontent modules (the project is tactics-only-Mathlib; see below).
Maintainers will not accept these changes. They will fail CI, or get closed with a pointer here.
- Adding
sorry. CI enforcessorry = 0across Books I–VI and the current methodological count in Book VII. If you genuinely need a hole, declare a clearly-labelledaxiomwith (a) a docstring explaining why it is conjectural, (b) a compute-then-axiomatize finite check via#evalordecide, and (c) a registry entry marking itconjectural. - Importing Mathlib content modules. Anything under
Mathlib.Algebra.*,Mathlib.CategoryTheory.*,Mathlib.Order.*,Mathlib.Topology.*, etc. is out. TauLib builds its mathematics from scratch on the K0–K6 kernel. Onlyimport Mathlib.Tactic(and its sub-imports for specific tactics) is permitted. A CI grep-guard enforces this. - Changing the K0–K6 kernel axioms without prior discussion.
- Increasing the axiom count from 3 without a registry entry and a discussion thread.
- Branch from
main. Small PRs can be opened directly; medium and large changes should reference their issue. - Commit messages: imperative mood, short title (< 72 chars), body explaining the why. No emojis.
- DCO sign-off required. End each commit with
Signed-off-by: Your Name <email>.git commit -sdoes this automatically. There is no separate CLA. - CI must be green:
lake buildpasses with zero errors and zero warnings you introduced.scripts/check_no_sorry.pyreportsaxioms=3, sorry=0.- The tactics-only Mathlib grep-guard passes.
- Registry updates: if your PR touches a registry-tracked object (any declaration tagged
[Book.TypeIndex]), update the matching row inregistry/bookN_registry.tsvin the same PR.
Small, focused PRs are easier to review and get merged faster. If a change grows beyond a few files, consider splitting it.
Use the issue tracker for:
- Typos too large for a drive-by PR, or scattered across many files.
- Factual errors in registry entries.
- Proof-style feedback.
- Questions about Panta Rhei's conventions (naming, scope tiers, kernel structure).
- Feature requests.
Issue template:
- Module path (e.g.
TauLib.BookIV.Electroweak.EWSynthesis). - Theorem or definition name (e.g.
nine_ew_quantities). - Expected vs. actual behaviour, or the nature of the error.
- Your
lean --versionoutput. - A minimal repro if the issue is a build or elaboration failure.
Longer discussions, design questions, and help requests are best routed to the leanprover-community Zulip. The project will open an announcement thread in #new members — URL to be announced once it lands. Until then, the GitHub issue tracker is the primary async channel.
TauLib is licensed under Apache-2.0. See LICENSE. There is no Contributor License Agreement — a DCO sign-off on each commit is sufficient.
We follow the Lean Community standards: https://leanprover-community.github.io/meta.html
- Issues: triaged within 7 calendar days.
- Small PRs: reviewed within 14 days.
- Medium and large PRs, and substantive issues: addressed publicly in the issue or PR thread, with a visible trace of the decision-making. If something is going to take longer than the standard window, the maintainer will say so in-thread.
The conventions below apply to all TauLib code. A contribution that respects them will move faster through review.
Tau.{Family}.{Module}
Examples: Tau.Kernel.Axioms, Tau.Boundary.SplitComplex, Tau.Electroweak.EWSynthesis.
| Element | Convention | Example |
|---|---|---|
| Theorems / lemmas | lowercase_with_underscores |
rigidity_non_omega |
| Definitions | lowercase_with_underscores |
iota_tau_float |
| Structures | PascalCase |
TauObj, SplitComplex |
| Inductive types | PascalCase |
Generator, OrbitRay |
| Instances | Named explicitly | instAddSplitComplex |
| Type aliases | PascalCase |
TauIdx |
Every .lean file starts with a /-! -/ block:
/-!
# TauLib.BookN.Family.Module
Brief description of the module's mathematical content.
## Registry Cross-References
- [N.DX] DefinitionName -- `lean_identifier`
- [N.TX] TheoremName -- `lean_identifier`
## Mathematical Content
Why this module exists and how it fits into the larger structure.
## Ground Truth Sources
- Chapter X of Book N (section X.Y)
-/Every def, theorem, lemma, structure, class, and inductive has a /-- -/ docstring that mentions its registry ID where one exists:
/-- The master constant ι_τ = 2/(π + e) ≈ 0.341304.
Governs all quantitative predictions in Category τ.
Registry: [I.D45] -/
def iota_tau_float : Float := 2.0 / (Float.pi + Float.exp 1.0)| Prefix | Meaning | Example |
|---|---|---|
I. – VII. |
Book number | IV.T140 |
K |
Kernel axiom | I.K1 |
D |
Definition | V.D317 |
T |
Theorem | IV.T66 |
P |
Proposition | V.P176 |
R |
Remark | IV.R260 |
OP |
Open Problem | V.OP12 |
| Tier | Meaning |
|---|---|
| established | Classical mathematics, independently verified. |
| τ-effective | Quantitative prediction derived within the τ framework. |
| conjectural | Structural claim, computationally verified but not derived from axioms. |
| metaphorical | Philosophical or analogical extension. |
See docs/SCOPE_LABELS.md for full details.
lake build # full build
lake build TauLib.BookI # a single book
cat lean-toolchain # pinned Lean versionThe first build fetches Mathlib and takes several minutes; subsequent builds are cached.
@software{taulib2026,
author = {Fuchs, Thorsten and Fuchs, Anna-Sophie},
title = {{TauLib}: Mechanized Formalization of Category $\tau$},
year = {2026},
version = {2.0.0},
url = {https://github.com/panta-rhei-research/taulib},
license = {Apache-2.0}
}Or use the CITATION.cff file via GitHub's "Cite this repository" feature.