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 p n d. (~((p) = 1) /\ forall pvs_left_fresh_prime pvs_right_fresh_prime. (p) = pvs_left_fresh_prime * pvs_right_fresh_prime -> pvs_left_fresh_prime = 1 \/ pvs_right_fresh_prime = 1) -> (exists pvs_factor_fresh_p_divisor. (n) = (p) * pvs_factor_fresh_p_divisor) -> (exists pvs_factor_fresh_d_divisor. (n) = (d) * pvs_factor_fresh_d_divisor) -> ~(exists pvs_factor_fresh_guard. (d) = (p) * pvs_factor_fresh_guard) -> (exists pvs_factor_fresh_product_divisor. (n) = (p*d) * pvs_factor_fresh_product_divisor)Constructive proof overview
Generated structural guide
A prime divisor of n not dividing d can be adjoined to an actual divisor d: Euclid cancellation constructs the required quotient.
The unchanged tactic script uses 4 declared prerequisites and contains 38 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
prime_coprime_or_divides Stable theorem; checked-use authorized gauss_coprime_cancel Stable theorem; checked-use authorized natural_mul_swap_right_tail Alpha theorem; checked-use authorized mul_assoc 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–7
02Establish hcL8–8
Establish this local claim before using it. It is not an additional assumption.
- L8
have hc : forall sfd_common_divisor_fresh_coprime. (exists pvs_factor_fresh_coprimeleft. (p) = (sfd_common_divisor_fresh_coprime) * pvs_factor_fresh_coprimeleft) -> (exists pvs_factor_fresh_coprimeright. (d) = (sfd_common_divisor_fresh_coprime) * pvs_factor_fresh_coprimeright) -> sfd_common_divisor_fresh_coprime = 1
03Establish hcasesL9–13
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime coprime or divides.
- L9
have hcases : (forall sfd_common_divisor_fresh_coprime_cases. (exists pvs_factor_fresh_coprime_casesleft. (p) = (sfd_common_divisor_fresh_coprime_cases) * pvs_factor_fresh_coprime_casesleft) -> (exists pvs_factor_fresh_coprime_casesright. (d) = (sfd_common_divisor_fresh_coprime_cases) * pvs_factor_fresh_coprime_casesright) -> sfd_common_divisor_fresh_coprime_cases = 1) \/ (exists pvs_factor_fresh_divisor_cases. (d) = (p) * pvs_factor_fresh_divisor_cases) - L10
specialize prime_coprime_or_divides (p) - L11
specialize prime_coprime_or_divides (d) - L12
apply prime_coprime_or_divides - L13
exact hp
04Separate the logical casesL14–14
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L14
cases hcases
05Use earlier factsL15–15
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L15
exact hcases_left
06Separate the logical casesL16–16
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L16
exfalso
07Use earlier factsL17–18
08Separate the logical casesL19–19
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L19
cases hdn
09Establish hqL20–27
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gauss coprime cancel.
10Separate the logical casesL28–28
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L28
cases hq
11Construct an explicit witnessL29–29
Supply the displayed value, then prove that it has the required property.
- L29
exists x1
12Calculate and transport equalitiesL30–30
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L30
trans d*x
13Use earlier factsL31–31
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L31
exact hdn_witness
14Calculate and transport equalitiesL32–35
15Use earlier factsL36–36
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L36
apply natural_mul_swap_right_tail
16Calculate and transport equalitiesL37–37
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L37
symm
17Use earlier factsL38–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
apply mul_assoc
Original exact command ledger · 38 lines
- 0001
intro p - 0002
intro n - 0003
intro d - 0004
intro hp - 0005
intro hpn - 0006
intro hdn - 0007
intro hfresh - 0008
have hc : forall sfd_common_divisor_fresh_coprime. (exists pvs_factor_fresh_coprimeleft. (p) = (sfd_common_divisor_fresh_coprime) * pvs_factor_fresh_coprimeleft) -> (exists pvs_factor_fresh_coprimeright. (d) = (sfd_common_divisor_fresh_coprime) * pvs_factor_fresh_coprimeright) -> sfd_common_divisor_fresh_coprime = 1 - 0009
have hcases : (forall sfd_common_divisor_fresh_coprime_cases. (exists pvs_factor_fresh_coprime_casesleft. (p) = (sfd_common_divisor_fresh_coprime_cases) * pvs_factor_fresh_coprime_casesleft) -> (exists pvs_factor_fresh_coprime_casesright. (d) = (sfd_common_divisor_fresh_coprime_cases) * pvs_factor_fresh_coprime_casesright) -> sfd_common_divisor_fresh_coprime_cases = 1) \/ (exists pvs_factor_fresh_divisor_cases. (d) = (p) * pvs_factor_fresh_divisor_cases) - 0010
specialize prime_coprime_or_divides (p) - 0011
specialize prime_coprime_or_divides (d) - 0012
apply prime_coprime_or_divides - 0013
exact hp - 0014
cases hcases - 0015
exact hcases_left - 0016
exfalso - 0017
apply hfresh - 0018
exact hcases_right - 0019
cases hdn - 0020
have hq : exists pvs_factor_fresh_quotient. (x) = (p) * pvs_factor_fresh_quotient - 0021
specialize gauss_coprime_cancel (p) - 0022
specialize gauss_coprime_cancel (d) - 0023
specialize gauss_coprime_cancel (x) - 0024
apply gauss_coprime_cancel - 0025
exact hc - 0026
rewrite hdn_witness at hpn - 0027
exact hpn - 0028
cases hq - 0029
exists x1 - 0030
trans d*x - 0031
exact hdn_witness - 0032
trans d*(p*x1) - 0033
rewrite hq_witness - 0034
refl - 0035
trans p*(d*x1) - 0036
apply natural_mul_swap_right_tail - 0037
symm - 0038
apply mul_assoc