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 a m i r u v. (forall eut_divisor_eu_no_scale_multiplier. (exists eut_left_eu_no_scale_multiplier. (a) = eut_divisor_eu_no_scale_multiplier * eut_left_eu_no_scale_multiplier) -> (exists eut_right_eu_no_scale_multiplier. (m) = eut_divisor_eu_no_scale_multiplier * eut_right_eu_no_scale_multiplier) -> eut_divisor_eu_no_scale_multiplier = 1) -> (exists eu_mod_left_no_scale_residue eu_mod_right_no_scale_residue. (a*i) + (m) * eu_mod_left_no_scale_residue = (r) + (m) * eu_mod_right_no_scale_residue) -> ((((forall eut_divisor_eu_no_scale_source_coprime. (exists eut_left_eu_no_scale_source_coprime. (i) = eut_divisor_eu_no_scale_source_coprime * eut_left_eu_no_scale_source_coprime) -> (exists eut_right_eu_no_scale_source_coprime. (m) = eut_divisor_eu_no_scale_source_coprime * eut_right_eu_no_scale_source_coprime) -> eut_divisor_eu_no_scale_source_coprime = 1) /\ (u)=(i)) \/ (~(forall eut_divisor_eu_no_scale_source_coprime. (exists eut_left_eu_no_scale_source_coprime. (i) = eut_divisor_eu_no_scale_source_coprime * eut_left_eu_no_scale_source_coprime) -> (exists eut_right_eu_no_scale_source_coprime. (m) = eut_divisor_eu_no_scale_source_coprime * eut_right_eu_no_scale_source_coprime) -> eut_divisor_eu_no_scale_source_coprime = 1) /\ (u)=1))) -> ((((forall eut_divisor_eu_no_scale_target_coprime. (exists eut_left_eu_no_scale_target_coprime. (r) = eut_divisor_eu_no_scale_target_coprime * eut_left_eu_no_scale_target_coprime) -> (exists eut_right_eu_no_scale_target_coprime. (m) = eut_divisor_eu_no_scale_target_coprime * eut_right_eu_no_scale_target_coprime) -> eut_divisor_eu_no_scale_target_coprime = 1) /\ (v)=(r)) \/ (~(forall eut_divisor_eu_no_scale_target_coprime. (exists eut_left_eu_no_scale_target_coprime. (r) = eut_divisor_eu_no_scale_target_coprime * eut_left_eu_no_scale_target_coprime) -> (exists eut_right_eu_no_scale_target_coprime. (m) = eut_divisor_eu_no_scale_target_coprime * eut_right_eu_no_scale_target_coprime) -> eut_divisor_eu_no_scale_target_coprime = 1) /\ (v)=1))) -> ~(forall eut_divisor_eu_no_scale_index. (exists eut_left_eu_no_scale_index. (i) = eut_divisor_eu_no_scale_index * eut_left_eu_no_scale_index) -> (exists eut_right_eu_no_scale_index. (m) = eut_divisor_eu_no_scale_index * eut_right_eu_no_scale_index) -> eut_divisor_eu_no_scale_index = 1) -> (exists eu_mod_left_no_scale_result eu_mod_right_no_scale_result. (u) + (m) * eu_mod_left_no_scale_result = (v) + (m) * eu_mod_right_no_scale_result)Constructive proof overview
Generated structural guide
A nonunit index and its image both contribute one, so neither adds to the exponent.
The unchanged tactic script uses 3 declared prerequisites and contains 42 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
EU0002 euler_multiplier_coprime_iff EU0010 euler_unit_product_factor_nonunit_value mod_eq_refl Stable 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. 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 (2)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–11
Work with arbitrary variables or the premises of the current implication.
- L11
intro hi
03Establish hequivL12–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply euler multiplier coprime iff.
- L12
have hequiv : (Coprime(i,m) → Coprime(r,m)) ∧ (Coprime(r,m) → Coprime(i,m))Definitions: Coprime - L13
specialize euler_multiplier_coprime_iff (a) - L14
specialize euler_multiplier_coprime_iff (m) - L15
specialize euler_multiplier_coprime_iff (i) - L16
specialize euler_multiplier_coprime_iff (r) - L17
apply euler_multiplier_coprime_iff - L18
exact ha - L19
exact hmod
04Separate the logical casesL20–20
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L20
cases hequiv
05Establish heL21–27
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply euler unit product factor nonunit value.
06Establish hfL28–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply euler unit product factor nonunit value.
- L28
have hf : v=1 - L29
specialize euler_unit_product_factor_nonunit_value (m) - L30
specialize euler_unit_product_factor_nonunit_value (r) - L31
specialize euler_unit_product_factor_nonunit_value (v) - L32
apply euler_unit_product_factor_nonunit_value - L33
intro hr - L34
apply hi - L35
apply hequiv_right - L36
exact hr - L37
exact hv
07Calculate and transport equalitiesL38–39
Original exact command ledger · 42 lines
- 0001
intro a - 0002
intro m - 0003
intro i - 0004
intro r - 0005
intro u - 0006
intro v - 0007
intro ha - 0008
intro hmod - 0009
intro hu - 0010
intro hv - 0011
intro hi - 0012
have hequiv : ((forall eut_divisor_eu_no_scale_left. (exists eut_left_eu_no_scale_left. (i) = eut_divisor_eu_no_scale_left * eut_left_eu_no_scale_left) -> (exists eut_right_eu_no_scale_left. (m) = eut_divisor_eu_no_scale_left * eut_right_eu_no_scale_left) -> eut_divisor_eu_no_scale_left = 1) -> (forall eut_divisor_eu_no_scale_right. (exists eut_left_eu_no_scale_right. (r) = eut_divisor_eu_no_scale_right * eut_left_eu_no_scale_right) -> (exists eut_right_eu_no_scale_right. (m) = eut_divisor_eu_no_scale_right * eut_right_eu_no_scale_right) -> eut_divisor_eu_no_scale_right = 1)) /\ ((forall eut_divisor_eu_no_scale_right_back. (exists eut_left_eu_no_scale_right_back. (r) = eut_divisor_eu_no_scale_right_back * eut_left_eu_no_scale_right_back) -> (exists eut_right_eu_no_scale_right_back. (m) = eut_divisor_eu_no_scale_right_back * eut_right_eu_no_scale_right_back) -> eut_divisor_eu_no_scale_right_back = 1) -> (forall eut_divisor_eu_no_scale_left_back. (exists eut_left_eu_no_scale_left_back. (i) = eut_divisor_eu_no_scale_left_back * eut_left_eu_no_scale_left_back) -> (exists eut_right_eu_no_scale_left_back. (m) = eut_divisor_eu_no_scale_left_back * eut_right_eu_no_scale_left_back) -> eut_divisor_eu_no_scale_left_back = 1)) - 0013
specialize euler_multiplier_coprime_iff (a) - 0014
specialize euler_multiplier_coprime_iff (m) - 0015
specialize euler_multiplier_coprime_iff (i) - 0016
specialize euler_multiplier_coprime_iff (r) - 0017
apply euler_multiplier_coprime_iff - 0018
exact ha - 0019
exact hmod - 0020
cases hequiv - 0021
have he : u=1 - 0022
specialize euler_unit_product_factor_nonunit_value (m) - 0023
specialize euler_unit_product_factor_nonunit_value (i) - 0024
specialize euler_unit_product_factor_nonunit_value (u) - 0025
apply euler_unit_product_factor_nonunit_value - 0026
exact hi - 0027
exact hu - 0028
have hf : v=1 - 0029
specialize euler_unit_product_factor_nonunit_value (m) - 0030
specialize euler_unit_product_factor_nonunit_value (r) - 0031
specialize euler_unit_product_factor_nonunit_value (v) - 0032
apply euler_unit_product_factor_nonunit_value - 0033
intro hr - 0034
apply hi - 0035
apply hequiv_right - 0036
exact hr - 0037
exact hv - 0038
rewrite he - 0039
rewrite hf - 0040
specialize mod_eq_refl (m) - 0041
specialize mod_eq_refl (1) - 0042
apply mod_eq_refl