Exact expanded first-order arithmetic statement
forall p n. (~((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) -> (((~((n) = 0)) /\ (forall sfd_prime_fresh_squarefree. (~((sfd_prime_fresh_squarefree) = 1) /\ forall pvs_left_fresh_squarefreedomain pvs_right_fresh_squarefreedomain. (sfd_prime_fresh_squarefree) = pvs_left_fresh_squarefreedomain * pvs_right_fresh_squarefreedomain -> pvs_left_fresh_squarefreedomain = 1 \/ pvs_right_fresh_squarefreedomain = 1) -> (exists pvs_le_gap_fresh_squarefreebound. pvs_le_gap_fresh_squarefreebound + (sfd_prime_fresh_squarefree) = (n)) -> ~(exists pvs_factor_fresh_squarefreesquare. (n) = (sfd_prime_fresh_squarefree * sfd_prime_fresh_squarefree) * pvs_factor_fresh_squarefreesquare)))) -> ~(exists pvs_factor_fresh_nondivisor. (n) = (p) * pvs_factor_fresh_nondivisor) -> (((~((p * n) = 0)) /\ (forall sfd_prime_fresh_product. (~((sfd_prime_fresh_product) = 1) /\ forall pvs_left_fresh_productdomain pvs_right_fresh_productdomain. (sfd_prime_fresh_product) = pvs_left_fresh_productdomain * pvs_right_fresh_productdomain -> pvs_left_fresh_productdomain = 1 \/ pvs_right_fresh_productdomain = 1) -> (exists pvs_le_gap_fresh_productbound. pvs_le_gap_fresh_productbound + (sfd_prime_fresh_product) = (p * n)) -> ~(exists pvs_factor_fresh_productsquare. (p * n) = (sfd_prime_fresh_product * sfd_prime_fresh_product) * pvs_factor_fresh_productsquare))))Constructive proof overview
Generated structural guide
Adjoining an actual prime not dividing a squarefree input preserves squarefreeness; Euclid cancellation excludes every possible squared prime divisor.
The unchanged tactic script uses 9 declared prerequisites and contains 70 exact native proof lines.
Public research checkpoint: original HA and independently compiled Lean verified; not Alpha-enrolled, no Alpha checked-use authority; not Stable
Proof neighborhood
Direct dependencies
prime_nonzero Alpha theorem; checked-use authorized mul_ne_zero Alpha theorem; checked-use authorized eq_decidable Alpha theorem; checked-use authorized mul_left_cancel_nonzero Alpha theorem; checked-use authorized mul_assoc Alpha theorem; checked-use authorized squarefree_excludes_prime_square Alpha theorem; checked-use authorized gauss_coprime_cancel Alpha theorem; checked-use authorized coprime_mul_left Alpha theorem; checked-use authorized distinct_primes_coprime Alpha 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. The literal dependency-closed bundle is checked by original HA and the independently compiled Lean verifier. Public delivery grants no Alpha checked-use authority or 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–5
02Separate the logical casesL6–7
03Fix variables and assumptionsL8–8
Work with arbitrary variables or the premises of the current implication.
- L8
intro hz
04Use earlier factsL9–11
05Fix variables and assumptionsL12–12
Work with arbitrary variables or the premises of the current implication.
- L12
intro hpz
06Use earlier factsL13–18
07Fix variables and assumptionsL19–22
08Establish heqL23–26
09Separate the logical casesL27–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L27
cases heq
10Use earlier factsL28–28
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L28
apply hfresh
11Calculate and transport equalitiesL29–30
12Separate the logical casesL31–31
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L31
cases hdiv
13Construct an explicit witnessL32–32
Supply the displayed value, then prove that it has the required property.
- L32
exists x
14Use earlier factsL33–36
15Fix variables and assumptionsL37–37
Work with arbitrary variables or the premises of the current implication.
- L37
intro hz
16Use earlier factsL38–41
17Calculate and transport equalitiesL42–42
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L42
trans (p * p) * x
18Use earlier factsL43–52
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L43
exact hdiv_witness - L44
apply mul_assoc - L45
specialize squarefree_excludes_prime_square (n) - L46
specialize squarefree_excludes_prime_square (q) - L47
apply squarefree_excludes_prime_square - L48
exact hsf - L49
exact hq - L50
specialize gauss_coprime_cancel (q * q) - L51
specialize gauss_coprime_cancel (p) - L52
specialize gauss_coprime_cancel (n)
19Use earlier factsL53–62
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 70 lines
- 0001
intro p - 0002
intro n - 0003
intro hp - 0004
intro hsf - 0005
intro hfresh - 0006
cases hsf - 0007
split - 0008
intro hz - 0009
specialize mul_ne_zero (p) - 0010
specialize mul_ne_zero (n) - 0011
apply mul_ne_zero - 0012
intro hpz - 0013
specialize prime_nonzero (p) - 0014
apply prime_nonzero - 0015
exact hp - 0016
exact hpz - 0017
exact hsf_left - 0018
exact hz - 0019
intro q - 0020
intro hq - 0021
intro hbound - 0022
intro hdiv - 0023
have heq : q = p \/ ~(q = p) - 0024
specialize eq_decidable (q) - 0025
specialize eq_decidable (p) - 0026
apply eq_decidable - 0027
cases heq - 0028
apply hfresh - 0029
rewrite heq_left at hdiv - 0030
rewrite heq_left at hdiv - 0031
cases hdiv - 0032
exists x - 0033
specialize mul_left_cancel_nonzero (p) - 0034
specialize mul_left_cancel_nonzero (n) - 0035
specialize mul_left_cancel_nonzero (p * x) - 0036
apply mul_left_cancel_nonzero - 0037
intro hz - 0038
specialize prime_nonzero (p) - 0039
apply prime_nonzero - 0040
exact hp - 0041
exact hz - 0042
trans (p * p) * x - 0043
exact hdiv_witness - 0044
apply mul_assoc - 0045
specialize squarefree_excludes_prime_square (n) - 0046
specialize squarefree_excludes_prime_square (q) - 0047
apply squarefree_excludes_prime_square - 0048
exact hsf - 0049
exact hq - 0050
specialize gauss_coprime_cancel (q * q) - 0051
specialize gauss_coprime_cancel (p) - 0052
specialize gauss_coprime_cancel (n) - 0053
apply gauss_coprime_cancel - 0054
specialize coprime_mul_left (q) - 0055
specialize coprime_mul_left (q) - 0056
specialize coprime_mul_left (p) - 0057
apply coprime_mul_left - 0058
specialize distinct_primes_coprime (q) - 0059
specialize distinct_primes_coprime (p) - 0060
apply distinct_primes_coprime - 0061
exact hq - 0062
exact hp - 0063
exact heq_right - 0064
specialize distinct_primes_coprime (q) - 0065
specialize distinct_primes_coprime (p) - 0066
apply distinct_primes_coprime - 0067
exact hq - 0068
exact hp - 0069
exact heq_right - 0070
exact hdiv