Exact expanded first-order arithmetic statement
forall p. (~((p) = 1) /\ forall pvs_left_squarefree_prime pvs_right_squarefree_prime. (p) = pvs_left_squarefree_prime * pvs_right_squarefree_prime -> pvs_left_squarefree_prime = 1 \/ pvs_right_squarefree_prime = 1) -> (((~((p) = 0)) /\ (forall sfd_prime_prime_result. (~((sfd_prime_prime_result) = 1) /\ forall pvs_left_prime_resultdomain pvs_right_prime_resultdomain. (sfd_prime_prime_result) = pvs_left_prime_resultdomain * pvs_right_prime_resultdomain -> pvs_left_prime_resultdomain = 1 \/ pvs_right_prime_resultdomain = 1) -> (exists pvs_le_gap_prime_resultbound. pvs_le_gap_prime_resultbound + (sfd_prime_prime_result) = (p)) -> ~(exists pvs_factor_prime_resultsquare. (p) = (sfd_prime_prime_result * sfd_prime_prime_result) * pvs_factor_prime_resultsquare))))Constructive proof overview
Generated structural guide
No genuine prime has a squared prime divisor; both nonzero and nonunit boundaries are proved from primality.
The unchanged tactic script uses 7 declared prerequisites and contains 49 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 multiple_trans Alpha theorem; checked-use authorized prime_divisor_of_prime_forces_equality Alpha theorem; checked-use authorized mul_left_cancel_nonzero Alpha theorem; checked-use authorized mul_one Alpha theorem; checked-use authorized mul_assoc Alpha theorem; checked-use authorized divisor_one 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–2
02Separate the logical casesL3–3
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L3
split
03Fix variables and assumptionsL4–4
Work with arbitrary variables or the premises of the current implication.
- L4
intro hz
04Use earlier factsL5–8
05Fix variables and assumptionsL9–12
06Establish heqL13–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime divisor of prime forces equality.
- L13
have heq : q = p - L14
specialize prime_divisor_of_prime_forces_equality (q) - L15
specialize prime_divisor_of_prime_forces_equality (p) - L16
apply prime_divisor_of_prime_forces_equality - L17
exact hq - L18
exact hp - L19
specialize multiple_trans (q * q) - L20
specialize multiple_trans (q) - L21
specialize multiple_trans (p) - L22
apply multiple_trans
07Use earlier factsL23–23
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L23
exact hdiv
08Construct an explicit witnessL24–24
Supply the displayed value, then prove that it has the required property.
- L24
exists q
09Calculate and transport equalitiesL25–27
10Separate the logical casesL28–28
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L28
cases hdiv
11Establish honeL29–38
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul left cancel nonzero.
12Calculate and transport equalitiesL39–39
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L39
trans p
13Use earlier factsL40–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L40
apply mul_one
14Calculate and transport equalitiesL41–41
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L41
trans (p * p) * x
15Use earlier factsL42–43
16Separate the logical casesL44–44
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L44
cases hp
17Use earlier factsL45–47
18Construct an explicit witnessL48–48
Supply the displayed value, then prove that it has the required property.
- L48
exists x
19Use earlier factsL49–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
exact hone
Original exact command ledger · 49 lines
- 0001
intro p - 0002
intro hp - 0003
split - 0004
intro hz - 0005
specialize prime_nonzero (p) - 0006
apply prime_nonzero - 0007
exact hp - 0008
exact hz - 0009
intro q - 0010
intro hq - 0011
intro hbound - 0012
intro hdiv - 0013
have heq : q = p - 0014
specialize prime_divisor_of_prime_forces_equality (q) - 0015
specialize prime_divisor_of_prime_forces_equality (p) - 0016
apply prime_divisor_of_prime_forces_equality - 0017
exact hq - 0018
exact hp - 0019
specialize multiple_trans (q * q) - 0020
specialize multiple_trans (q) - 0021
specialize multiple_trans (p) - 0022
apply multiple_trans - 0023
exact hdiv - 0024
exists q - 0025
refl - 0026
rewrite heq at hdiv - 0027
rewrite heq at hdiv - 0028
cases hdiv - 0029
have hone : 1 = p * x - 0030
specialize mul_left_cancel_nonzero (p) - 0031
specialize mul_left_cancel_nonzero (1) - 0032
specialize mul_left_cancel_nonzero (p * x) - 0033
apply mul_left_cancel_nonzero - 0034
intro hz - 0035
specialize prime_nonzero (p) - 0036
apply prime_nonzero - 0037
exact hp - 0038
exact hz - 0039
trans p - 0040
apply mul_one - 0041
trans (p * p) * x - 0042
exact hdiv_witness - 0043
apply mul_assoc - 0044
cases hp - 0045
apply hp_left - 0046
specialize divisor_one (p) - 0047
apply divisor_one - 0048
exists x - 0049
exact hone