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. ∀ l. ¬n = 0 → ∃ x. ∃ y. DivisorComplementPrefix(n,x,y,l)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 68 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 (1)
01Fix variables and assumptionsL1–2
02Induction on lL3–4
03Construct an explicit witnessL5–6
04Fix variables and assumptionsL7–8
05Separate the logical casesL9–9
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L9
exfalso
06Use earlier factsL10–12
07Fix variables and assumptionsL13–13
Work with arbitrary variables or the premises of the current implication.
- L13
intro hn
08Establish hprevL14–16
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L14
have hprev : ∃ b. ∃ c. DivisorComplementPrefix(n,b,c,l)Definitions: DivisorComplementPrefix(n,b,c,l)Original native command in the exact edition - L15
apply IH - L16
exact hn
09Separate the logical casesL17–18
10Establish hvL19–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor complement exists.
- L19
have hv : ∃ v. DivisorComplement(n,l,v)Definitions: DivisorComplement(n,l,v)Original native command in the exact edition - L20
specialize divisor_complement_exists (n) - L21
specialize divisor_complement_exists (l) - L22
apply divisor_complement_exists - L23
exact hn
11Separate the logical casesL24–24
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L24
cases hv
12Establish hextL25–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta prefix extend.
- L25
have hext : ∃ b. ∃ c. BetaAt(b,c,l,x2) ∧ (∀ y. ∀ z. Lt(y,l) → BetaAt(x,x1,y,z) → BetaAt(b,c,y,z))Definitions: BetaAt(b,c,l,x2)Lt(y,l)BetaAt(x,x1,y,z)BetaAt(b,c,y,z)Original native command in the exact edition - L26
specialize beta_prefix_extend (l) - L27
specialize beta_prefix_extend (x) - L28
specialize beta_prefix_extend (x1) - L29
specialize beta_prefix_extend (x2) - L30
apply beta_prefix_extend
13Separate the logical casesL31–33
14Construct an explicit witnessL34–35
15Fix variables and assumptionsL36–37
16Establish hcL38–42
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
17Separate the logical casesL43–43
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L43
cases hc
18Calculate and transport equalitiesL44–50
19Construct an explicit witnessL51–51
Supply the displayed value, then prove that it has the required property.
- L51
exists x2
20Separate the logical casesL52–52
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L52
split
21Use earlier factsL53–54
22Establish holdL55–58
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprev witness witness.
- L55
have hold : ∃ v. BetaAt(x,x1,i,v) ∧ DivisorComplement(n,i,v)Definitions: BetaAt(x,x1,i,v)DivisorComplement(n,i,v)Original native command in the exact edition - L56
specialize hprev_witness_witness (i) - L57
apply hprev_witness_witness - L58
exact hc_right
23Separate the logical casesL59–60
24Construct an explicit witnessL61–61
Supply the displayed value, then prove that it has the required property.
- L61
exists x5
25Separate the logical casesL62–62
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L62
split
26Use earlier factsL63–68
Original defined command ledger · 68 lines
- 0001
intro n - 0002
intro l - 0003
induction l - 0004
intro hn - 0005
exists 0 - 0006
exists 0 - 0007
intro i - 0008
intro hi - 0009
exfalso - 0010
specialize factor_permutation_below_zero_impossible (i) - 0011
apply factor_permutation_below_zero_impossible - 0012
exact hi - 0013
intro hn - 0014
have hprev : ∃ b. ∃ c. DivisorComplementPrefix(n,b,c,l) - 0015
apply IH - 0016
exact hn - 0017
cases hprev - 0018
cases hprev_witness - 0019
have hv : ∃ v. DivisorComplement(n,l,v) - 0020
specialize divisor_complement_exists (n) - 0021
specialize divisor_complement_exists (l) - 0022
apply divisor_complement_exists - 0023
exact hn - 0024
cases hv - 0025
have hext : ∃ b. ∃ c. BetaAt(b,c,l,x2) ∧ (∀ y. ∀ z. Lt(y,l) → BetaAt(x,x1,y,z) → BetaAt(b,c,y,z)) - 0026
specialize beta_prefix_extend (l) - 0027
specialize beta_prefix_extend (x) - 0028
specialize beta_prefix_extend (x1) - 0029
specialize beta_prefix_extend (x2) - 0030
apply beta_prefix_extend - 0031
cases hext - 0032
cases hext_witness - 0033
cases hext_witness_witness - 0034
exists x3 - 0035
exists x4 - 0036
intro i - 0037
intro hi - 0038
have hc : i = l ∨ Lt(i,l) - 0039
specialize finite_lt_succ_eq_or_lt (l) - 0040
specialize finite_lt_succ_eq_or_lt (i) - 0041
apply finite_lt_succ_eq_or_lt - 0042
exact hi - 0043
cases hc - 0044
rewrite hc_left - 0045
rewrite hc_left - 0046
rewrite hc_left - 0047
rewrite hc_left - 0048
rewrite hc_left - 0049
rewrite hc_left - 0050
rewrite hc_left - 0051
exists x2 - 0052
split - 0053
exact hext_witness_witness_left - 0054
exact hv_witness - 0055
have hold : ∃ v. BetaAt(x,x1,i,v) ∧ DivisorComplement(n,i,v) - 0056
specialize hprev_witness_witness (i) - 0057
apply hprev_witness_witness - 0058
exact hc_right - 0059
cases hold - 0060
cases hold_witness - 0061
exists x5 - 0062
split - 0063
specialize hext_witness_witness_right (i) - 0064
specialize hext_witness_witness_right (x5) - 0065
apply hext_witness_witness_right - 0066
exact hc_right - 0067
exact hold_witness_left - 0068
exact hold_witness_right