Hidden-Assumption Audits
Drop each hypothesis and ask Z3 for a model of the rest: the deletion audit for load-bearing premises plus the catalogue of audits the engine runs.
A theorem is stated with four hypotheses. Which of them does the proof actually use?
The question matters in both directions. A hypothesis the proof does not use is a needless restriction. One the proof quietly relies on without stating it is a hole. Reading the proof is one way to find out. A mechanical test is another, and it catches cases a reader misses.
This chapter gives a repeatable test for which premises a conclusion really depends on, and a catalogue of the related audits the engine already runs. It builds on assumptions (Chapter 2), solvers (Chapter 10) and the cross-system ladder (Chapter 15).
The deletion audit
For a claim “$H_1 \land \dots \land H_n \implies G$”, drop one hypothesis $H_i$ and ask Z3 for a model of (the other hypotheses) $\land \lnot G$.
sat: the model is a concrete case where everything except $H_i$ holds and $G$ fails. $H_i$ is load-bearing, and the model shows why.unsat: either $H_i$ is redundant (it follows from the others), or the claim is vacuous without it.
Here is the audit, executed on claims from earlier chapters.
The algebraic Lorentz claim
| Test | Result | Reading |
|---|---|---|
| Full claim | unsat |
Consistent with the verified theorem |
| Drop $\gamma^2(1-v^2)=1$ | sat, $v=0$, $t=0$, $\gamma=0$, $x=-1$ |
The gamma relation is load-bearing |
| Is $\lvert v\rvert<1$ implied by the gamma relation? | unsat |
Redundant. $\gamma^2(1-v^2)=1$ forces $1-v^2>0$ |
| Does the gamma relation force $\gamma>0$? | sat, $\gamma=-1$, $v=0$ |
No. Negative $\gamma$ satisfies it too |
Two findings that a reader of the Lean statement might miss. First, the physical side condition $\lvert v\rvert<1$ is a consequence of the algebraic hypothesis, so the algebraic theorem carries it silently. Second, the algebraic theorem covers $\gamma<0$ (a boost combined with a time reversal), which the physical claim, with $\gamma = 1/\sqrt{1-v^2} > 0$, never mentions. Chapter 26 returns to this.
The Pythagorean coordinate claim
| Test | Result | Reading |
|---|---|---|
| Full claim | unsat |
Consistent with the verified theorem |
| Drop orthogonality | sat, $a=(0,0)$, $b=c=(0,-1)$ |
Orthogonality is load-bearing |
The model Z3 returned has $B=C$: a degenerate triple, and a legitimate counterexample to the unconditioned claim. It is a useful accident. Chapter 25 records that the modern theorem permits degenerate point triples, and here the solver found one first. The P6 witness $(0,0)$, $(1,0)$, $(1,1)$ is not degenerate; it was chosen on purpose.
Timelike order
Hypotheses: $\gamma>0$, $\gamma^2(1-v^2)=1$, $t>0$, $t^2>x^2$. Goal: $\gamma(t-vx)>0$.
| Dropped | Result | Counter-case |
|---|---|---|
| nothing | unsat |
|
| $\gamma>0$ | sat |
$\gamma=-1$, $v=0$, $t=1$, $x=0$ |
| gamma relation | sat |
$v=3$, $t=1$, $x=1/2$, $\gamma=1$ |
| $t>0$ | sat |
$t=-1$, $x=0$, $v=0$, $\gamma=1$ |
| timelike $t^2>x^2$ | sat |
$t=1$, $x=-2$, $v\approx-0.87$, $\gamma=2$ |
Every hypothesis here is load-bearing. The $t>0$ row deserves a pause. For a past-directed timelike separation the order is also preserved, but the goal $\gamma(t-vx)>0$ asks for a positive result: the claim as written says “future”. The audit caught the direction hypothesis without anyone asking.
What the deletion audit cannot see
- What a hypothesis means. Z3 encodes the square root as a relation with $s>0$; Lean uses a total function with junk values (Chapter 11). Deleting $\lvert v\rvert<1$ from the bridge makes the claim vacuous in Z3 (no $s$ exists for $\lvert v\rvert\ge1$) and false in Lean ($\gamma=0$). The audit is only as meaningful as the encoding.
- Hypotheses that were never written down. If a claim silently assumes inertial frames or Einstein synchronization (Chapter 17), there is no $H_i$ to delete. The audit works only on stated hypotheses.
- Whether the whole set is consistent. Each $H_i$ can be load-bearing while the full set is inconsistent, in which case the claim is vacuously true (Candidate C in Chapter 27). Run a satisfiability check on the full set of hypotheses as well.
The audits the engine already runs
| Audit | Catches | Chapters |
|---|---|---|
| Placeholder screening | sorry, admit, added axioms in a proof source |
3, 11 |
Kernel-axiom audit (#print axioms, Print Assumptions) |
Unexpected logical axioms; sorryAx |
3, 11, 12 |
| Statement alignment (L1) | Differences in hypotheses, conclusion or binders between formal sources and the claim | 15 |
| Declared-binding audit (L0) | Quantifier, assumption, unit or convention mismatches between tools | 15 |
| Non-vacuity (P7) | Premises that cannot be satisfied | 27 |
| Reconstruction contract (P6) | Retained obligations: coordinates versus synthetic geometry, degenerate triples, area as squared distance | 25 |
| Catalogue consistency (P8) | Disagreement between documentation and metadata | 28 |
Each is narrow. Together they cover many ways a hidden assumption can fail, and by design none of them proves that a claim means what its author meant.
What this establishes
A hidden-assumption audit finds where a conclusion’s support actually lies. It can turn “this theorem needs $\lvert v\rvert<1$” into “it needs nothing beyond the gamma relation, and $\lvert v\rvert<1$ comes free”, a mathematical fact a physicist may find clarifying.
The results here are illustrative only. The underlying theorems are
kernel-accepted (Chapter 20 and Chapter 25) or
Lean-checked as illustration (Chapter 22); the deletion audit
itself has no claim contract. Each unsat and sat reading can be checked by
hand. For example, $\gamma^2(1-v^2)=1$ and $\gamma^2\ge0$ give
$1-v^2 = 1/\gamma^2 > 0$. No review is recorded.
The audit is also relative to the tool. Because Z3 encodes the square root as a relation and Lean as a total function with junk values, the same “delete $\lvert v\rvert<1$” test returns different verdicts.
Try it yourself
uv run python content/examples/math/part4/part4_assumption_deletion_demo.py
Boundary check. Executed on 2026-11-09 with Z3 5.3.1, using
ch05_10_18_22_24_checks.py:
add $v=0$ as an extra hypothesis to the algebraic claim. With $v=0$, the negated
interval equality is unsat once the gamma relation is present, so the relation
stays load-bearing at the boundary. Without it the audit returns sat. The
solver’s model is $\gamma=0$, $t=-1$, $x=0$, and $\gamma=2$, $t=1$, $x=0$ is also a
valid model with the hypothesis dropped.
Exercise. Check the last row of the timelike-order table by hand. With $\gamma=2$, what must $v^2$ be, and why does $t=1$, $x=-2$ make $\gamma(t-vx)$ negative for $v<0$? (Answer: $\gamma^2(1-v^2)=1$ gives $v^2 = 3/4$, so $v = -\sqrt3/2 \approx -0.87$; then $t - vx = 1 - \sqrt3 < 0$.)
Open questions.
- Is deletion the right granularity? Weakening a hypothesis (replacing $<$ with $\le$) is a finer probe that this audit does not run.
- Should the engine run this audit automatically on every claim and record the result as evidence, or is it a reader’s tool? An automated version would need a claim contract of its own.
- How should the engine report a hypothesis that is redundant under one encoding and load-bearing under another?
Sources
No external literature is cited. In the repository:
docs/methodology/evidence-policy.md, formalization rules 1 and 2 (record all
quantifiers and side conditions; track assumptions introduced to make a theorem
tractable).