Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
The complementary quotient is witnessed by n=d*q at positive divisors. The actual permutation covers indices zero through n, fixing zero and nondivisors. This is the involution foundation for the separate cancellation and full G007 inversion proofs, not an assumed divisor bijection.
Exact theorem in conservative defined notation
∀ n. ∀ b. ∀ c. ¬n = 0 → DivisorComplementPrefix(n,b,c,S n) → PermutationPrefix(b,c,S n)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 83 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (4)
01Fix variables and assumptionsL1–5
02Establish hbL6–8
Establish this local claim before using it. It is not an additional assumption.
- L6
have hb : BoundedPrefix(b,c,S n)Definitions: BoundedPrefix(b,c,S n)Original native command in the exact edition - L7
intro i - L8
intro hi
03Establish hvL9–12
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hp.
- L9
have hv : ∃ q. BetaAt(b,c,i,q) ∧ DivisorComplement(n,i,q)Definitions: BetaAt(b,c,i,q)DivisorComplement(n,i,q)Original native command in the exact edition - L10
specialize hp (i) - L11
apply hp - L12
exact hi
04Separate the logical casesL13–14
05Construct an explicit witnessL15–15
Supply the displayed value, then prove that it has the required property.
- L15
exists x
06Separate the logical casesL16–16
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L16
split
07Use earlier factsL17–26
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L17
exact hv_witness_left - L18
specialize succ_le_succ (x) - L19
specialize succ_le_succ (n) - L20
apply succ_le_succ - L21
specialize divisor_complement_bounded (n) - L22
specialize divisor_complement_bounded (i) - L23
specialize divisor_complement_bounded (x) - L24
apply divisor_complement_bounded - L25
exact hn - L26
specialize le_of_succ_le_succ (i)
08Use earlier factsL27–30
09Establish hinjL31–40
Establish this local claim before using it. It is not an additional assumption.
10Use earlier factsL41–50
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L41
specialize divisor_complement_functional (i) - L42
specialize divisor_complement_functional (j) - L43
apply divisor_complement_functional - L44
specialize divisor_complement_symmetric (n) - L45
specialize divisor_complement_symmetric (i) - L46
specialize divisor_complement_symmetric (a) - L47
apply divisor_complement_symmetric - L48
exact hn - L49
specialize divisor_complement_prefix_lookup (n) - L50
specialize divisor_complement_prefix_lookup (b)
11Use earlier factsL51–60
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L51
specialize divisor_complement_prefix_lookup (c) - L52
specialize divisor_complement_prefix_lookup (S n) - L53
specialize divisor_complement_prefix_lookup (i) - L54
specialize divisor_complement_prefix_lookup (a) - L55
apply divisor_complement_prefix_lookup - L56
exact hp - L57
exact hi - L58
exact hia - L59
specialize divisor_complement_symmetric (n) - L60
specialize divisor_complement_symmetric (j)
12Use earlier factsL61–70
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L61
specialize divisor_complement_symmetric (a) - L62
apply divisor_complement_symmetric - L63
exact hn - L64
specialize divisor_complement_prefix_lookup (n) - L65
specialize divisor_complement_prefix_lookup (b) - L66
specialize divisor_complement_prefix_lookup (c) - L67
specialize divisor_complement_prefix_lookup (S n) - L68
specialize divisor_complement_prefix_lookup (j) - L69
specialize divisor_complement_prefix_lookup (a) - L70
apply divisor_complement_prefix_lookup
13Use earlier factsL71–73
14Separate the logical casesL74–74
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L74
split
15Use earlier factsL75–75
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L75
exact hb
16Separate the logical casesL76–76
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L76
split
17Use earlier factsL77–83
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original defined command ledger · 83 lines
- 0001
intro n - 0002
intro b - 0003
intro c - 0004
intro hn - 0005
intro hp - 0006
have hb : BoundedPrefix(b,c,S n) - 0007
intro i - 0008
intro hi - 0009
have hv : ∃ q. BetaAt(b,c,i,q) ∧ DivisorComplement(n,i,q) - 0010
specialize hp (i) - 0011
apply hp - 0012
exact hi - 0013
cases hv - 0014
cases hv_witness - 0015
exists x - 0016
split - 0017
exact hv_witness_left - 0018
specialize succ_le_succ (x) - 0019
specialize succ_le_succ (n) - 0020
apply succ_le_succ - 0021
specialize divisor_complement_bounded (n) - 0022
specialize divisor_complement_bounded (i) - 0023
specialize divisor_complement_bounded (x) - 0024
apply divisor_complement_bounded - 0025
exact hn - 0026
specialize le_of_succ_le_succ (i) - 0027
specialize le_of_succ_le_succ (n) - 0028
apply le_of_succ_le_succ - 0029
exact hi - 0030
exact hv_witness_right - 0031
have hinj : InjectivePrefix(b,c,S n) - 0032
intro i - 0033
intro j - 0034
intro a - 0035
intro hi - 0036
intro hj - 0037
intro hia - 0038
intro hja - 0039
specialize divisor_complement_functional (n) - 0040
specialize divisor_complement_functional (a) - 0041
specialize divisor_complement_functional (i) - 0042
specialize divisor_complement_functional (j) - 0043
apply divisor_complement_functional - 0044
specialize divisor_complement_symmetric (n) - 0045
specialize divisor_complement_symmetric (i) - 0046
specialize divisor_complement_symmetric (a) - 0047
apply divisor_complement_symmetric - 0048
exact hn - 0049
specialize divisor_complement_prefix_lookup (n) - 0050
specialize divisor_complement_prefix_lookup (b) - 0051
specialize divisor_complement_prefix_lookup (c) - 0052
specialize divisor_complement_prefix_lookup (S n) - 0053
specialize divisor_complement_prefix_lookup (i) - 0054
specialize divisor_complement_prefix_lookup (a) - 0055
apply divisor_complement_prefix_lookup - 0056
exact hp - 0057
exact hi - 0058
exact hia - 0059
specialize divisor_complement_symmetric (n) - 0060
specialize divisor_complement_symmetric (j) - 0061
specialize divisor_complement_symmetric (a) - 0062
apply divisor_complement_symmetric - 0063
exact hn - 0064
specialize divisor_complement_prefix_lookup (n) - 0065
specialize divisor_complement_prefix_lookup (b) - 0066
specialize divisor_complement_prefix_lookup (c) - 0067
specialize divisor_complement_prefix_lookup (S n) - 0068
specialize divisor_complement_prefix_lookup (j) - 0069
specialize divisor_complement_prefix_lookup (a) - 0070
apply divisor_complement_prefix_lookup - 0071
exact hp - 0072
exact hj - 0073
exact hja - 0074
split - 0075
exact hb - 0076
split - 0077
exact hinj - 0078
specialize finite_bounded_injective_surjective (S n) - 0079
specialize finite_bounded_injective_surjective (b) - 0080
specialize finite_bounded_injective_surjective (c) - 0081
apply finite_bounded_injective_surjective - 0082
exact hb - 0083
exact hinj