Exact expanded first-order arithmetic statement
forall a m i r. (forall eut_divisor_eu_multiplier_unit. (exists eut_left_eu_multiplier_unit. (a) = eut_divisor_eu_multiplier_unit * eut_left_eu_multiplier_unit) -> (exists eut_right_eu_multiplier_unit. (m) = eut_divisor_eu_multiplier_unit * eut_right_eu_multiplier_unit) -> eut_divisor_eu_multiplier_unit = 1) -> (exists eu_mod_left_multiplier_congruence eu_mod_right_multiplier_congruence. (a*i) + (m) * eu_mod_left_multiplier_congruence = (r) + (m) * eu_mod_right_multiplier_congruence) -> (((forall eut_divisor_eu_source_unit. (exists eut_left_eu_source_unit. (i) = eut_divisor_eu_source_unit * eut_left_eu_source_unit) -> (exists eut_right_eu_source_unit. (m) = eut_divisor_eu_source_unit * eut_right_eu_source_unit) -> eut_divisor_eu_source_unit = 1) -> (forall eut_divisor_eu_target_unit. (exists eut_left_eu_target_unit. (r) = eut_divisor_eu_target_unit * eut_left_eu_target_unit) -> (exists eut_right_eu_target_unit. (m) = eut_divisor_eu_target_unit * eut_right_eu_target_unit) -> eut_divisor_eu_target_unit = 1)) /\ ((forall eut_divisor_eu_target_unit_back. (exists eut_left_eu_target_unit_back. (r) = eut_divisor_eu_target_unit_back * eut_left_eu_target_unit_back) -> (exists eut_right_eu_target_unit_back. (m) = eut_divisor_eu_target_unit_back * eut_right_eu_target_unit_back) -> eut_divisor_eu_target_unit_back = 1) -> (forall eut_divisor_eu_source_unit_back. (exists eut_left_eu_source_unit_back. (i) = eut_divisor_eu_source_unit_back * eut_left_eu_source_unit_back) -> (exists eut_right_eu_source_unit_back. (m) = eut_divisor_eu_source_unit_back * eut_right_eu_source_unit_back) -> eut_divisor_eu_source_unit_back = 1)))Constructive proof overview
Generated structural guide
Multiplication by a coprime multiplier preserves and reflects precisely the unit predicate used by Phi.
The unchanged tactic script uses 4 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
EU0001 euler_coprime_mod_transport coprime_mul_left Alpha theorem; checked-use authorized totient_coprime_cancel_unit_factor Alpha theorem; checked-use authorized mod_eq_symm Alpha 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. 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 (1)
01Fix variables and assumptionsL1–6
02Separate the logical casesL7–7
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L7
split
03Fix variables and assumptionsL8–8
Work with arbitrary variables or the premises of the current implication.
- L8
intro hi
04Use earlier factsL9–18
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L9
specialize euler_coprime_mod_transport (m) - L10
specialize euler_coprime_mod_transport (a*i) - L11
specialize euler_coprime_mod_transport (r) - L12
apply euler_coprime_mod_transport - L13
specialize coprime_mul_left (a) - L14
specialize coprime_mul_left (i) - L15
specialize coprime_mul_left (m) - L16
apply coprime_mul_left - L17
exact ha - L18
exact hi
05Use earlier factsL19–19
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L19
exact hmod
06Fix variables and assumptionsL20–20
Work with arbitrary variables or the premises of the current implication.
- L20
intro hr
07Use earlier factsL21–23
08Establish hcL24–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply totient coprime cancel unit factor.
09Separate the logical casesL27–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L27
cases hc
10Use earlier factsL28–37
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L28
apply hc_left - L29
specialize euler_coprime_mod_transport (m) - L30
specialize euler_coprime_mod_transport (r) - L31
specialize euler_coprime_mod_transport (a*i) - L32
apply euler_coprime_mod_transport - L33
exact hr - L34
specialize mod_eq_symm (m) - L35
specialize mod_eq_symm (a*i) - L36
specialize mod_eq_symm (r) - L37
apply mod_eq_symm
11Use 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 ha - 0006
intro hmod - 0007
split - 0008
intro hi - 0009
specialize euler_coprime_mod_transport (m) - 0010
specialize euler_coprime_mod_transport (a*i) - 0011
specialize euler_coprime_mod_transport (r) - 0012
apply euler_coprime_mod_transport - 0013
specialize coprime_mul_left (a) - 0014
specialize coprime_mul_left (i) - 0015
specialize coprime_mul_left (m) - 0016
apply coprime_mul_left - 0017
exact ha - 0018
exact hi - 0019
exact hmod - 0020
intro hr - 0021
specialize totient_coprime_cancel_unit_factor a - 0022
specialize totient_coprime_cancel_unit_factor m - 0023
specialize totient_coprime_cancel_unit_factor i - 0024
have hc : ((forall eut_divisor_eu_cancel_product. (exists eut_left_eu_cancel_product. (a*i) = eut_divisor_eu_cancel_product * eut_left_eu_cancel_product) -> (exists eut_right_eu_cancel_product. (m) = eut_divisor_eu_cancel_product * eut_right_eu_cancel_product) -> eut_divisor_eu_cancel_product = 1) -> (forall eut_divisor_eu_cancel_factor. (exists eut_left_eu_cancel_factor. (i) = eut_divisor_eu_cancel_factor * eut_left_eu_cancel_factor) -> (exists eut_right_eu_cancel_factor. (m) = eut_divisor_eu_cancel_factor * eut_right_eu_cancel_factor) -> eut_divisor_eu_cancel_factor = 1)) /\ ((forall eut_divisor_eu_cancel_factor_back. (exists eut_left_eu_cancel_factor_back. (i) = eut_divisor_eu_cancel_factor_back * eut_left_eu_cancel_factor_back) -> (exists eut_right_eu_cancel_factor_back. (m) = eut_divisor_eu_cancel_factor_back * eut_right_eu_cancel_factor_back) -> eut_divisor_eu_cancel_factor_back = 1) -> (forall eut_divisor_eu_cancel_product_back. (exists eut_left_eu_cancel_product_back. (a*i) = eut_divisor_eu_cancel_product_back * eut_left_eu_cancel_product_back) -> (exists eut_right_eu_cancel_product_back. (m) = eut_divisor_eu_cancel_product_back * eut_right_eu_cancel_product_back) -> eut_divisor_eu_cancel_product_back = 1)) - 0025
apply totient_coprime_cancel_unit_factor - 0026
exact ha - 0027
cases hc - 0028
apply hc_left - 0029
specialize euler_coprime_mod_transport (m) - 0030
specialize euler_coprime_mod_transport (r) - 0031
specialize euler_coprime_mod_transport (a*i) - 0032
apply euler_coprime_mod_transport - 0033
exact hr - 0034
specialize mod_eq_symm (m) - 0035
specialize mod_eq_symm (a*i) - 0036
specialize mod_eq_symm (r) - 0037
apply mod_eq_symm - 0038
exact hmod