Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
The exact G014 theorem covers m>1 and genuinely invertible a. Phi counts coprime residues independently of the conclusion. The broader coprime theorem handles m=1 by congruence, not by asserting that one is a canonical remainder. Multiplicative-order and RSA statements are not claimed.
Exact theorem in conservative defined notation
∀ l. ∀ m. ∀ b. ∀ c. ∀ P. UnitProductPrefix(m,b,c,l) → Product(b,c,l,P) → Coprime(P,m)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 65 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 (3)
01Induction on lL1–7
02Establish heL8–17
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta product zero.
03Fix variables and assumptionsL18–22
04Establish hdL23–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta product succ decompose.
- L23
have hd : ∃ v. ∃ Q. BetaAt(b,c,l,v) ∧ (Product(b,c,l,Q) ∧ P = Q · v)Definitions: BetaAt(b,c,l,v)Product(b,c,l,Q)Original native command in the exact edition - L24
specialize beta_product_succ_decompose (b) - L25
specialize beta_product_succ_decompose (c) - L26
specialize beta_product_succ_decompose (l) - L27
specialize beta_product_succ_decompose (P) - L28
apply beta_product_succ_decompose - L29
exact hP
05Separate the logical casesL30–33
06Calculate and transport equalitiesL34–34
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L34
rewrite hd_witness_witness_right_right
07Use earlier factsL35–44
Instantiate or apply named facts and discharge the corresponding proof obligations.
08Use earlier factsL45–54
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L45
specialize euler_unit_product_prefix_drop_last (b) - L46
specialize euler_unit_product_prefix_drop_last (c) - L47
specialize euler_unit_product_prefix_drop_last (l) - L48
apply euler_unit_product_prefix_drop_last - L49
exact hf - L50
exact hd_witness_witness_right_left - L51
specialize euler_unit_product_factor_coprime (m) - L52
specialize euler_unit_product_factor_coprime (l) - L53
specialize euler_unit_product_factor_coprime (x) - L54
apply euler_unit_product_factor_coprime
09Use earlier factsL55–64
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L55
specialize euler_unit_product_prefix_entry (m) - L56
specialize euler_unit_product_prefix_entry (b) - L57
specialize euler_unit_product_prefix_entry (c) - L58
specialize euler_unit_product_prefix_entry (S l) - L59
specialize euler_unit_product_prefix_entry (l) - L60
specialize euler_unit_product_prefix_entry (x) - L61
apply euler_unit_product_prefix_entry - L62
exact hf - L63
specialize le_refl (S l) - L64
apply le_refl
10Use earlier factsL65–65
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L65
exact hd_witness_witness_left
Original defined command ledger · 65 lines
- 0001
induction l - 0002
intro m - 0003
intro b - 0004
intro c - 0005
intro P - 0006
intro hf - 0007
intro hP - 0008
have he : P=1 - 0009
specialize beta_product_zero (b) - 0010
specialize beta_product_zero (c) - 0011
specialize beta_product_zero (P) - 0012
apply beta_product_zero - 0013
exact hP - 0014
rewrite he - 0015
specialize coprime_one_left (m) - 0016
apply coprime_one_left - 0017
intro m - 0018
intro b - 0019
intro c - 0020
intro P - 0021
intro hf - 0022
intro hP - 0023
have hd : ∃ v. ∃ Q. BetaAt(b,c,l,v) ∧ (Product(b,c,l,Q) ∧ P = Q · v) - 0024
specialize beta_product_succ_decompose (b) - 0025
specialize beta_product_succ_decompose (c) - 0026
specialize beta_product_succ_decompose (l) - 0027
specialize beta_product_succ_decompose (P) - 0028
apply beta_product_succ_decompose - 0029
exact hP - 0030
cases hd - 0031
cases hd_witness - 0032
cases hd_witness_witness - 0033
cases hd_witness_witness_right - 0034
rewrite hd_witness_witness_right_right - 0035
specialize coprime_mul_left (x1) - 0036
specialize coprime_mul_left (x) - 0037
specialize coprime_mul_left (m) - 0038
apply coprime_mul_left - 0039
specialize IH (m) - 0040
specialize IH (b) - 0041
specialize IH (c) - 0042
specialize IH (x1) - 0043
apply IH - 0044
specialize euler_unit_product_prefix_drop_last (m) - 0045
specialize euler_unit_product_prefix_drop_last (b) - 0046
specialize euler_unit_product_prefix_drop_last (c) - 0047
specialize euler_unit_product_prefix_drop_last (l) - 0048
apply euler_unit_product_prefix_drop_last - 0049
exact hf - 0050
exact hd_witness_witness_right_left - 0051
specialize euler_unit_product_factor_coprime (m) - 0052
specialize euler_unit_product_factor_coprime (l) - 0053
specialize euler_unit_product_factor_coprime (x) - 0054
apply euler_unit_product_factor_coprime - 0055
specialize euler_unit_product_prefix_entry (m) - 0056
specialize euler_unit_product_prefix_entry (b) - 0057
specialize euler_unit_product_prefix_entry (c) - 0058
specialize euler_unit_product_prefix_entry (S l) - 0059
specialize euler_unit_product_prefix_entry (l) - 0060
specialize euler_unit_product_prefix_entry (x) - 0061
apply euler_unit_product_prefix_entry - 0062
exact hf - 0063
specialize le_refl (S l) - 0064
apply le_refl - 0065
exact hd_witness_witness_left