Exact expanded first-order arithmetic statement
forall a m i r u v. (forall eut_divisor_eu_scale_multiplier. (exists eut_left_eu_scale_multiplier. (a) = eut_divisor_eu_scale_multiplier * eut_left_eu_scale_multiplier) -> (exists eut_right_eu_scale_multiplier. (m) = eut_divisor_eu_scale_multiplier * eut_right_eu_scale_multiplier) -> eut_divisor_eu_scale_multiplier = 1) -> (exists eu_mod_left_scale_residue eu_mod_right_scale_residue. (a*i) + (m) * eu_mod_left_scale_residue = (r) + (m) * eu_mod_right_scale_residue) -> ((((forall eut_divisor_eu_scale_source_coprime. (exists eut_left_eu_scale_source_coprime. (i) = eut_divisor_eu_scale_source_coprime * eut_left_eu_scale_source_coprime) -> (exists eut_right_eu_scale_source_coprime. (m) = eut_divisor_eu_scale_source_coprime * eut_right_eu_scale_source_coprime) -> eut_divisor_eu_scale_source_coprime = 1) /\ (u)=(i)) \/ (~(forall eut_divisor_eu_scale_source_coprime. (exists eut_left_eu_scale_source_coprime. (i) = eut_divisor_eu_scale_source_coprime * eut_left_eu_scale_source_coprime) -> (exists eut_right_eu_scale_source_coprime. (m) = eut_divisor_eu_scale_source_coprime * eut_right_eu_scale_source_coprime) -> eut_divisor_eu_scale_source_coprime = 1) /\ (u)=1))) -> ((((forall eut_divisor_eu_scale_target_coprime. (exists eut_left_eu_scale_target_coprime. (r) = eut_divisor_eu_scale_target_coprime * eut_left_eu_scale_target_coprime) -> (exists eut_right_eu_scale_target_coprime. (m) = eut_divisor_eu_scale_target_coprime * eut_right_eu_scale_target_coprime) -> eut_divisor_eu_scale_target_coprime = 1) /\ (v)=(r)) \/ (~(forall eut_divisor_eu_scale_target_coprime. (exists eut_left_eu_scale_target_coprime. (r) = eut_divisor_eu_scale_target_coprime * eut_left_eu_scale_target_coprime) -> (exists eut_right_eu_scale_target_coprime. (m) = eut_divisor_eu_scale_target_coprime * eut_right_eu_scale_target_coprime) -> eut_divisor_eu_scale_target_coprime = 1) /\ (v)=1))) -> (forall eut_divisor_eu_scale_index_unit. (exists eut_left_eu_scale_index_unit. (i) = eut_divisor_eu_scale_index_unit * eut_left_eu_scale_index_unit) -> (exists eut_right_eu_scale_index_unit. (m) = eut_divisor_eu_scale_index_unit * eut_right_eu_scale_index_unit) -> eut_divisor_eu_scale_index_unit = 1) -> (exists eu_mod_left_scale_result eu_mod_right_scale_result. (a*u) + (m) * eu_mod_left_scale_result = (v) + (m) * eu_mod_right_scale_result)Constructive proof overview
Generated structural guide
A unit index contributes exactly one multiplier factor under the actual residue permutation.
The unchanged tactic script uses 2 declared prerequisites and contains 38 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
Direct 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.
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 unit 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 unit value.
07Use earlier factsL38–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
exact hmod
Original exact command ledger · 38 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_scale_left. (exists eut_left_eu_scale_left. (i) = eut_divisor_eu_scale_left * eut_left_eu_scale_left) -> (exists eut_right_eu_scale_left. (m) = eut_divisor_eu_scale_left * eut_right_eu_scale_left) -> eut_divisor_eu_scale_left = 1) -> (forall eut_divisor_eu_scale_right. (exists eut_left_eu_scale_right. (r) = eut_divisor_eu_scale_right * eut_left_eu_scale_right) -> (exists eut_right_eu_scale_right. (m) = eut_divisor_eu_scale_right * eut_right_eu_scale_right) -> eut_divisor_eu_scale_right = 1)) /\ ((forall eut_divisor_eu_scale_right_back. (exists eut_left_eu_scale_right_back. (r) = eut_divisor_eu_scale_right_back * eut_left_eu_scale_right_back) -> (exists eut_right_eu_scale_right_back. (m) = eut_divisor_eu_scale_right_back * eut_right_eu_scale_right_back) -> eut_divisor_eu_scale_right_back = 1) -> (forall eut_divisor_eu_scale_left_back. (exists eut_left_eu_scale_left_back. (i) = eut_divisor_eu_scale_left_back * eut_left_eu_scale_left_back) -> (exists eut_right_eu_scale_left_back. (m) = eut_divisor_eu_scale_left_back * eut_right_eu_scale_left_back) -> eut_divisor_eu_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=i - 0022
specialize euler_unit_product_factor_unit_value (m) - 0023
specialize euler_unit_product_factor_unit_value (i) - 0024
specialize euler_unit_product_factor_unit_value (u) - 0025
apply euler_unit_product_factor_unit_value - 0026
exact hi - 0027
exact hu - 0028
have hf : v=r - 0029
specialize euler_unit_product_factor_unit_value (m) - 0030
specialize euler_unit_product_factor_unit_value (r) - 0031
specialize euler_unit_product_factor_unit_value (v) - 0032
apply euler_unit_product_factor_unit_value - 0033
apply hequiv_left - 0034
exact hi - 0035
exact hv - 0036
rewrite he - 0037
rewrite hf - 0038
exact hmod