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 original first-admission records.
For n>1 the exponent gcd and a real beta table classify and witness all positive root degrees. The unit n=1 has a separate uniform certificate for every positive degree. Zero is excluded. NaturalSquarefreeDecomposition is deliberately distinct from the unrelated polynomial definition.
Exact theorem in conservative defined notation
∀ n. ¬n = 0 → ∃ x. PowerProfile(n,x)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 107 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.
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 (6)
01Fix variables and assumptionsL1–2
02Establish hcaseL3–6
03Separate the logical casesL7–7
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L7
cases hcase
04Construct an explicit witnessL8–8
Supply the displayed value, then prove that it has the required property.
- L8
exists 0
05Separate the logical casesL9–10
06Use earlier factsL11–11
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L11
exact hcase_left
07Separate the logical casesL12–12
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L12
split
08Calculate and transport equalitiesL13–13
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L13
refl
09Fix variables and assumptionsL14–15
10Use earlier factsL16–17
11Establish hsupportL18–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime valuation support exists.
- L18
have hsupport : ∃ pb. ∃ pc. ∃ eb. ∃ ec. ∃ vb. ∃ vc. ∃ l. PrimeValuationSupport(n,pb,pc,eb,ec,vb,vc,l)Definitions: PrimeValuationSupport(n,pb,pc,eb,ec,vb,vc,l)Original native command in the exact edition - L19
specialize prime_valuation_support_exists (n) - L20
apply prime_valuation_support_exists - L21
exact hn
12Separate the logical casesL22–28
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
13Establish hgcdL29–33
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime exponent prefix gcd exists.
- L29
have hgcd : ∃ g. PrimeExponentPrefixGCD(x2,x3,x6,g)Definitions: PrimeExponentPrefixGCD(x2,x3,x6,g)Original native command in the exact edition - L30
specialize prime_exponent_prefix_gcd_exists (x6) - L31
specialize prime_exponent_prefix_gcd_exists (x2) - L32
specialize prime_exponent_prefix_gcd_exists (x3) - L33
apply prime_exponent_prefix_gcd_exists
14Separate the logical casesL34–34
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L34
cases hgcd
15Establish hgpositiveL35–44
Establish this local claim before using it. It is not an additional assumption.
- L35
have hgpositive : ~(x7 = 0) - L36
intro hz - L37
specialize prime_valuation_support_exponent_gcd_nonzero (n) - L38
specialize prime_valuation_support_exponent_gcd_nonzero (x) - L39
specialize prime_valuation_support_exponent_gcd_nonzero (x1) - L40
specialize prime_valuation_support_exponent_gcd_nonzero (x2) - L41
specialize prime_valuation_support_exponent_gcd_nonzero (x3) - L42
specialize prime_valuation_support_exponent_gcd_nonzero (x4) - L43
specialize prime_valuation_support_exponent_gcd_nonzero (x5) - L44
specialize prime_valuation_support_exponent_gcd_nonzero (x6)
16Use earlier factsL45–50
Instantiate or apply named facts and discharge the corresponding proof obligations.
17Establish havailableL51–60
Establish this local claim before using it. It is not an additional assumption.
- L51
have havailable : ∀ ppf_degree_profile_roots_available. ¬ppf_degree_profile_roots_available = 0 → Dvd(ppf_degree_profile_roots_available,x7) → ∃ x. Pow(x,ppf_degree_profile_roots_available,n)Definitions: Dvd(ppf_degree_profile_roots_available,x7)Pow(x,ppf_degree_profile_roots_available,n)Original native command in the exact edition - L52
specialize prime_support_exponent_gcd_roots_available (n) - L53
specialize prime_support_exponent_gcd_roots_available (x) - L54
specialize prime_support_exponent_gcd_roots_available (x1) - L55
specialize prime_support_exponent_gcd_roots_available (x2) - L56
specialize prime_support_exponent_gcd_roots_available (x3) - L57
specialize prime_support_exponent_gcd_roots_available (x4) - L58
specialize prime_support_exponent_gcd_roots_available (x5) - L59
specialize prime_support_exponent_gcd_roots_available (x6) - L60
specialize prime_support_exponent_gcd_roots_available (x7)
18Use earlier factsL61–63
19Establish htableL64–69
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply perfect power root table exists.
- L64
have htable : ∃ b. ∃ c. PerfectPowerRootTable(n,x7,b,c)Definitions: PerfectPowerRootTable(n,x7,b,c)Original native command in the exact edition - L65
specialize perfect_power_root_table_exists (n) - L66
specialize perfect_power_root_table_exists (x7) - L67
apply perfect_power_root_table_exists - L68
exact hgpositive - L69
exact havailable
20Separate the logical casesL70–71
21Establish hcodeL72–81
Establish this local claim before using it. It is not an additional assumption.
- L72
have hcode : ∃ w. PerfectPowerProfileCode(w,x,x1,x2,x3,x4,x5,x6,x7,x8,x9)Definitions: PerfectPowerProfileCode(w,x,x1,x2,x3,x4,x5,x6,x7,x8,x9)Original native command in the exact edition - L73
specialize perfect_power_profile_code_exists (x) - L74
specialize perfect_power_profile_code_exists (x1) - L75
specialize perfect_power_profile_code_exists (x2) - L76
specialize perfect_power_profile_code_exists (x3) - L77
specialize perfect_power_profile_code_exists (x4) - L78
specialize perfect_power_profile_code_exists (x5) - L79
specialize perfect_power_profile_code_exists (x6) - L80
specialize perfect_power_profile_code_exists (x7) - L81
specialize perfect_power_profile_code_exists (x8)
22Use earlier factsL82–83
23Separate the logical casesL84–84
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L84
cases hcode
24Construct an explicit witnessL85–85
Supply the displayed value, then prove that it has the required property.
- L85
exists x10
25Separate the logical casesL86–86
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L86
right
26Construct an explicit witnessL87–96
27Separate the logical casesL97–97
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L97
split
28Use earlier factsL98–98
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L98
exact hcase_right
29Separate the logical casesL99–99
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L99
split
30Use earlier factsL100–100
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L100
exact hcode_witness
31Separate the logical casesL101–101
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L101
split
32Use earlier factsL102–102
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L102
exact hsupport_witness_witness_witness_witness_witness_witness_witness
33Separate the logical casesL103–103
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L103
split
34Use earlier factsL104–104
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L104
exact hgcd_witness
35Separate the logical casesL105–105
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L105
split
Original defined command ledger · 107 lines
- 0001
intro n - 0002
intro hn - 0003
have hcase : n = 1 \/ ~(n = 1) - 0004
specialize eq_decidable (n) - 0005
specialize eq_decidable (1) - 0006
apply eq_decidable - 0007
cases hcase - 0008
exists 0 - 0009
left - 0010
split - 0011
exact hcase_left - 0012
split - 0013
refl - 0014
intro k - 0015
intro hk - 0016
specialize power_one_base_exists (k) - 0017
apply power_one_base_exists - 0018
have hsupport : ∃ pb. ∃ pc. ∃ eb. ∃ ec. ∃ vb. ∃ vc. ∃ l. PrimeValuationSupport(n,pb,pc,eb,ec,vb,vc,l) - 0019
specialize prime_valuation_support_exists (n) - 0020
apply prime_valuation_support_exists - 0021
exact hn - 0022
cases hsupport - 0023
cases hsupport_witness - 0024
cases hsupport_witness_witness - 0025
cases hsupport_witness_witness_witness - 0026
cases hsupport_witness_witness_witness_witness - 0027
cases hsupport_witness_witness_witness_witness_witness - 0028
cases hsupport_witness_witness_witness_witness_witness_witness - 0029
have hgcd : ∃ g. PrimeExponentPrefixGCD(x2,x3,x6,g) - 0030
specialize prime_exponent_prefix_gcd_exists (x6) - 0031
specialize prime_exponent_prefix_gcd_exists (x2) - 0032
specialize prime_exponent_prefix_gcd_exists (x3) - 0033
apply prime_exponent_prefix_gcd_exists - 0034
cases hgcd - 0035
have hgpositive : ~(x7 = 0) - 0036
intro hz - 0037
specialize prime_valuation_support_exponent_gcd_nonzero (n) - 0038
specialize prime_valuation_support_exponent_gcd_nonzero (x) - 0039
specialize prime_valuation_support_exponent_gcd_nonzero (x1) - 0040
specialize prime_valuation_support_exponent_gcd_nonzero (x2) - 0041
specialize prime_valuation_support_exponent_gcd_nonzero (x3) - 0042
specialize prime_valuation_support_exponent_gcd_nonzero (x4) - 0043
specialize prime_valuation_support_exponent_gcd_nonzero (x5) - 0044
specialize prime_valuation_support_exponent_gcd_nonzero (x6) - 0045
specialize prime_valuation_support_exponent_gcd_nonzero (x7) - 0046
apply prime_valuation_support_exponent_gcd_nonzero - 0047
exact hsupport_witness_witness_witness_witness_witness_witness_witness - 0048
exact hcase_right - 0049
exact hgcd_witness - 0050
exact hz - 0051
have havailable : ∀ ppf_degree_profile_roots_available. ¬ppf_degree_profile_roots_available = 0 → Dvd(ppf_degree_profile_roots_available,x7) → ∃ x. Pow(x,ppf_degree_profile_roots_available,n) - 0052
specialize prime_support_exponent_gcd_roots_available (n) - 0053
specialize prime_support_exponent_gcd_roots_available (x) - 0054
specialize prime_support_exponent_gcd_roots_available (x1) - 0055
specialize prime_support_exponent_gcd_roots_available (x2) - 0056
specialize prime_support_exponent_gcd_roots_available (x3) - 0057
specialize prime_support_exponent_gcd_roots_available (x4) - 0058
specialize prime_support_exponent_gcd_roots_available (x5) - 0059
specialize prime_support_exponent_gcd_roots_available (x6) - 0060
specialize prime_support_exponent_gcd_roots_available (x7) - 0061
apply prime_support_exponent_gcd_roots_available - 0062
exact hsupport_witness_witness_witness_witness_witness_witness_witness - 0063
exact hgcd_witness - 0064
have htable : ∃ b. ∃ c. PerfectPowerRootTable(n,x7,b,c) - 0065
specialize perfect_power_root_table_exists (n) - 0066
specialize perfect_power_root_table_exists (x7) - 0067
apply perfect_power_root_table_exists - 0068
exact hgpositive - 0069
exact havailable - 0070
cases htable - 0071
cases htable_witness - 0072
have hcode : ∃ w. PerfectPowerProfileCode(w,x,x1,x2,x3,x4,x5,x6,x7,x8,x9) - 0073
specialize perfect_power_profile_code_exists (x) - 0074
specialize perfect_power_profile_code_exists (x1) - 0075
specialize perfect_power_profile_code_exists (x2) - 0076
specialize perfect_power_profile_code_exists (x3) - 0077
specialize perfect_power_profile_code_exists (x4) - 0078
specialize perfect_power_profile_code_exists (x5) - 0079
specialize perfect_power_profile_code_exists (x6) - 0080
specialize perfect_power_profile_code_exists (x7) - 0081
specialize perfect_power_profile_code_exists (x8) - 0082
specialize perfect_power_profile_code_exists (x9) - 0083
apply perfect_power_profile_code_exists - 0084
cases hcode - 0085
exists x10 - 0086
right - 0087
exists x - 0088
exists x1 - 0089
exists x2 - 0090
exists x3 - 0091
exists x4 - 0092
exists x5 - 0093
exists x6 - 0094
exists x7 - 0095
exists x8 - 0096
exists x9 - 0097
split - 0098
exact hcase_right - 0099
split - 0100
exact hcode_witness - 0101
split - 0102
exact hsupport_witness_witness_witness_witness_witness_witness_witness - 0103
split - 0104
exact hgcd_witness - 0105
split - 0106
exact hgpositive - 0107
exact htable_witness_witness