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 d e f. ~(p=0) -> ((((~(exists pvs_factor_toggle_functional_firstfresh_input. (d) = (p) * pvs_factor_toggle_functional_firstfresh_input)) /\ ((e)=(p)*(d)))) \/ (((((d)=(p)*(e)) /\ (~(exists pvs_factor_toggle_functional_firstfresh_output. (e) = (p) * pvs_factor_toggle_functional_firstfresh_output)))) \/ (((exists pvs_factor_toggle_functional_firstsquare. (d) = ((p)*(p)) * pvs_factor_toggle_functional_firstsquare) /\ ((e)=(d)))))) -> ((((~(exists pvs_factor_toggle_functional_secondfresh_input. (d) = (p) * pvs_factor_toggle_functional_secondfresh_input)) /\ ((f)=(p)*(d)))) \/ (((((d)=(p)*(f)) /\ (~(exists pvs_factor_toggle_functional_secondfresh_output. (f) = (p) * pvs_factor_toggle_functional_secondfresh_output)))) \/ (((exists pvs_factor_toggle_functional_secondsquare. (d) = ((p)*(p)) * pvs_factor_toggle_functional_secondsquare) /\ ((f)=(d)))))) -> e=fConstructive proof overview
Generated structural guide
Fresh, singly divisible and square-divisible branches are disjoint; cancellation of a nonzero p proves exact output uniqueness.
The unchanged tactic script uses 3 declared prerequisites and contains 88 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
multiple_trans Stable theorem; checked-use authorized mul_left_cancel_nonzero Stable theorem; checked-use authorized MC0001 prime_toggle_square_quotient_dividesDirect 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.
Named ingredients (1)
01Fix variables and assumptionsL1–7
02Separate the logical casesL8–11
03Calculate and transport equalitiesL12–12
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L12
trans p*d
04Use earlier factsL13–13
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L13
exact he_left_right
05Calculate and transport equalitiesL14–14
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L14
symm
06Use earlier factsL15–15
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L15
exact hf_left_right
07Separate the logical casesL16–18
08Use earlier factsL19–19
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L19
apply he_left_left
09Construct an explicit witnessL20–20
Supply the displayed value, then prove that it has the required property.
- L20
exists f
10Use earlier factsL21–21
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L21
exact hf_right_left_left
11Separate the logical casesL22–23
12Use earlier factsL24–29
13Construct an explicit witnessL30–30
Supply the displayed value, then prove that it has the required property.
- L30
exists p
14Calculate and transport equalitiesL31–31
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L31
refl
15Separate the logical casesL32–36
16Use earlier factsL37–37
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L37
apply hf_left_left
17Construct an explicit witnessL38–38
Supply the displayed value, then prove that it has the required property.
- L38
exists e
18Use earlier factsL39–39
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L39
exact he_right_left_left
19Separate the logical casesL40–41
20Use earlier factsL42–46
21Calculate and transport equalitiesL47–48
22Use earlier factsL49–50
23Separate the logical casesL51–52
24Use earlier factsL53–60
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L53
apply he_right_left_right - L54
specialize prime_toggle_square_quotient_divides (p) - L55
specialize prime_toggle_square_quotient_divides (d) - L56
specialize prime_toggle_square_quotient_divides (e) - L57
apply prime_toggle_square_quotient_divides - L58
exact hp - L59
exact he_right_left_left - L60
exact hf_right_right_left
25Separate the logical casesL61–64
26Use earlier factsL65–70
27Construct an explicit witnessL71–71
Supply the displayed value, then prove that it has the required property.
- L71
exists p
28Calculate and transport equalitiesL72–72
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L72
refl
29Separate the logical casesL73–75
30Use earlier factsL76–83
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L76
apply hf_right_left_right - L77
specialize prime_toggle_square_quotient_divides (p) - L78
specialize prime_toggle_square_quotient_divides (d) - L79
specialize prime_toggle_square_quotient_divides (f) - L80
apply prime_toggle_square_quotient_divides - L81
exact hp - L82
exact hf_right_left_left - L83
exact he_right_right_left
31Separate the logical casesL84–84
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L84
cases hf_right_right
32Calculate and transport equalitiesL85–85
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L85
trans d
33Use earlier factsL86–86
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L86
exact he_right_right_right
34Calculate and transport equalitiesL87–87
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L87
symm
35Use earlier factsL88–88
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L88
exact hf_right_right_right
Original exact command ledger · 88 lines
- 0001
intro p - 0002
intro d - 0003
intro e - 0004
intro f - 0005
intro hp - 0006
intro he - 0007
intro hf - 0008
cases he - 0009
cases he_left - 0010
cases hf - 0011
cases hf_left - 0012
trans p*d - 0013
exact he_left_right - 0014
symm - 0015
exact hf_left_right - 0016
cases hf_right - 0017
cases hf_right_left - 0018
exfalso - 0019
apply he_left_left - 0020
exists f - 0021
exact hf_right_left_left - 0022
cases hf_right_right - 0023
exfalso - 0024
apply he_left_left - 0025
specialize multiple_trans (p*p) - 0026
specialize multiple_trans (p) - 0027
specialize multiple_trans (d) - 0028
apply multiple_trans - 0029
exact hf_right_right_left - 0030
exists p - 0031
refl - 0032
cases he_right - 0033
cases he_right_left - 0034
cases hf - 0035
cases hf_left - 0036
exfalso - 0037
apply hf_left_left - 0038
exists e - 0039
exact he_right_left_left - 0040
cases hf_right - 0041
cases hf_right_left - 0042
specialize mul_left_cancel_nonzero (p) - 0043
specialize mul_left_cancel_nonzero (e) - 0044
specialize mul_left_cancel_nonzero (f) - 0045
apply mul_left_cancel_nonzero - 0046
exact hp - 0047
trans d - 0048
symm - 0049
exact he_right_left_left - 0050
exact hf_right_left_left - 0051
cases hf_right_right - 0052
exfalso - 0053
apply he_right_left_right - 0054
specialize prime_toggle_square_quotient_divides (p) - 0055
specialize prime_toggle_square_quotient_divides (d) - 0056
specialize prime_toggle_square_quotient_divides (e) - 0057
apply prime_toggle_square_quotient_divides - 0058
exact hp - 0059
exact he_right_left_left - 0060
exact hf_right_right_left - 0061
cases he_right_right - 0062
cases hf - 0063
cases hf_left - 0064
exfalso - 0065
apply hf_left_left - 0066
specialize multiple_trans (p*p) - 0067
specialize multiple_trans (p) - 0068
specialize multiple_trans (d) - 0069
apply multiple_trans - 0070
exact he_right_right_left - 0071
exists p - 0072
refl - 0073
cases hf_right - 0074
cases hf_right_left - 0075
exfalso - 0076
apply hf_right_left_right - 0077
specialize prime_toggle_square_quotient_divides (p) - 0078
specialize prime_toggle_square_quotient_divides (d) - 0079
specialize prime_toggle_square_quotient_divides (f) - 0080
apply prime_toggle_square_quotient_divides - 0081
exact hp - 0082
exact hf_right_left_left - 0083
exact he_right_right_left - 0084
cases hf_right_right - 0085
trans d - 0086
exact he_right_right_right - 0087
symm - 0088
exact hf_right_right_right