Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
Exact expanded first-order arithmetic statement
forall n d. ~(n=0) -> (exists pvs_factor_quotient_input. (n) = (d) * pvs_factor_quotient_input) -> exists q. (((n=d*q) /\ (((~(q=0)) /\ (((exists pvs_factor_quotient_divisor. (n) = (q) * pvs_factor_quotient_divisor) /\ (((exists pvs_le_gap_quotient_bound. pvs_le_gap_quotient_bound + (q) = (n)) /\ (forall r. n=d*r -> r=q)))))))))Constructive proof overview
Generated structural guide
Every divisor of a positive input has a unique actual positive quotient, itself a divisor bounded by the input.
The unchanged tactic script uses 5 declared prerequisites and contains 49 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
factor_nonzero_right Alpha theorem; checked-use authorized mul_comm Stable theorem; checked-use authorized divisor_le_nonzero Stable theorem; checked-use authorized mul_left_cancel_nonzero Stable theorem; checked-use authorized factor_nonzero_left Stable theorem; checked-use authorizedDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
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.
01Fix variables and assumptionsL1–4
02Separate the logical casesL5–5
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L5
cases hd
03Construct an explicit witnessL6–6
Supply the displayed value, then prove that it has the required property.
- L6
exists x
04Separate the logical casesL7–7
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L7
split
05Use earlier factsL8–8
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L8
exact hd_witness
06Separate the logical casesL9–9
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L9
split
07Fix variables and assumptionsL10–10
Work with arbitrary variables or the premises of the current implication.
- L10
intro hqzero
08Use earlier factsL11–17
09Separate the logical casesL18–18
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L18
split
10Construct an explicit witnessL19–19
Supply the displayed value, then prove that it has the required property.
- L19
exists d
11Calculate and transport equalitiesL20–20
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L20
trans d*x
12Use earlier factsL21–22
13Separate the logical casesL23–23
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L23
split
14Use earlier factsL24–27
15Construct an explicit witnessL28–28
Supply the displayed value, then prove that it has the required property.
- L28
exists d
16Calculate and transport equalitiesL29–29
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L29
trans d*x
17Use earlier factsL30–31
18Fix variables and assumptionsL32–33
19Use earlier factsL34–37
20Fix variables and assumptionsL38–38
Work with arbitrary variables or the premises of the current implication.
- L38
intro hdzero
21Use earlier factsL39–45
22Calculate and transport equalitiesL46–47
Original exact command ledger · 49 lines
- 0001
intro n - 0002
intro d - 0003
intro hn - 0004
intro hd - 0005
cases hd - 0006
exists x - 0007
split - 0008
exact hd_witness - 0009
split - 0010
intro hqzero - 0011
specialize factor_nonzero_right (n) - 0012
specialize factor_nonzero_right (d) - 0013
specialize factor_nonzero_right (x) - 0014
apply factor_nonzero_right - 0015
exact hn - 0016
exact hd_witness - 0017
exact hqzero - 0018
split - 0019
exists d - 0020
trans d*x - 0021
exact hd_witness - 0022
apply mul_comm - 0023
split - 0024
specialize divisor_le_nonzero (x) - 0025
specialize divisor_le_nonzero (n) - 0026
apply divisor_le_nonzero - 0027
exact hn - 0028
exists d - 0029
trans d*x - 0030
exact hd_witness - 0031
apply mul_comm - 0032
intro r - 0033
intro hr - 0034
specialize mul_left_cancel_nonzero (d) - 0035
specialize mul_left_cancel_nonzero (r) - 0036
specialize mul_left_cancel_nonzero (x) - 0037
apply mul_left_cancel_nonzero - 0038
intro hdzero - 0039
specialize factor_nonzero_left (n) - 0040
specialize factor_nonzero_left (d) - 0041
specialize factor_nonzero_left (x) - 0042
apply factor_nonzero_left - 0043
exact hn - 0044
exact hd_witness - 0045
exact hdzero - 0046
trans n - 0047
symm - 0048
exact hr - 0049
exact hd_witness