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 t. ((exists eut_gap_eu_unit_endpoint_domain. eut_gap_eu_unit_endpoint_domain + S (1) = (m)) /\ exists eu_inverse_unit_endpoint. (exists eut_gap_eu_unit_endpoint_bound. eut_gap_eu_unit_endpoint_bound + S (eu_inverse_unit_endpoint) = (m)) /\ (exists eu_mod_left_unit_endpoint_inverse eu_mod_right_unit_endpoint_inverse. ((a)*eu_inverse_unit_endpoint) + (m) * eu_mod_left_unit_endpoint_inverse = (1) + (m) * eu_mod_right_unit_endpoint_inverse)) -> ((~((m)=0) /\ (exists eut_code_eu_unit_endpoint_phi_count eut_scale_eu_unit_endpoint_phi_count. (forall eut_index_eu_unit_endpoint_phi_count_mask. (exists eut_gap_eu_unit_endpoint_phi_count_mask_bound. eut_gap_eu_unit_endpoint_phi_count_mask_bound + S (eut_index_eu_unit_endpoint_phi_count_mask) = (m)) -> exists eut_bit_eu_unit_endpoint_phi_count_mask. (((exists fs_h_eut_eu_unit_endpoint_phi_count_mask_entry. fs_h_eut_eu_unit_endpoint_phi_count_mask_entry + S (eut_bit_eu_unit_endpoint_phi_count_mask) = S ((S (eut_index_eu_unit_endpoint_phi_count_mask)) * eut_scale_eu_unit_endpoint_phi_count)) /\ exists fs_q_eut_eu_unit_endpoint_phi_count_mask_entry. eut_code_eu_unit_endpoint_phi_count = fs_q_eut_eu_unit_endpoint_phi_count_mask_entry * S ((S (eut_index_eu_unit_endpoint_phi_count_mask)) * eut_scale_eu_unit_endpoint_phi_count) + (eut_bit_eu_unit_endpoint_phi_count_mask))) /\ ((((forall eut_divisor_eu_unit_endpoint_phi_count_mask_choice_coprime. (exists eut_left_eu_unit_endpoint_phi_count_mask_choice_coprime. (eut_index_eu_unit_endpoint_phi_count_mask) = eut_divisor_eu_unit_endpoint_phi_count_mask_choice_coprime * eut_left_eu_unit_endpoint_phi_count_mask_choice_coprime) -> (exists eut_right_eu_unit_endpoint_phi_count_mask_choice_coprime. (m) = eut_divisor_eu_unit_endpoint_phi_count_mask_choice_coprime * eut_right_eu_unit_endpoint_phi_count_mask_choice_coprime) -> eut_divisor_eu_unit_endpoint_phi_count_mask_choice_coprime = 1) /\ (eut_bit_eu_unit_endpoint_phi_count_mask) = 1) \/ (~(forall eut_divisor_eu_unit_endpoint_phi_count_mask_choice_coprime. (exists eut_left_eu_unit_endpoint_phi_count_mask_choice_coprime. (eut_index_eu_unit_endpoint_phi_count_mask) = eut_divisor_eu_unit_endpoint_phi_count_mask_choice_coprime * eut_left_eu_unit_endpoint_phi_count_mask_choice_coprime) -> (exists eut_right_eu_unit_endpoint_phi_count_mask_choice_coprime. (m) = eut_divisor_eu_unit_endpoint_phi_count_mask_choice_coprime * eut_right_eu_unit_endpoint_phi_count_mask_choice_coprime) -> eut_divisor_eu_unit_endpoint_phi_count_mask_choice_coprime = 1) /\ (eut_bit_eu_unit_endpoint_phi_count_mask) = 0)))) /\ (exists fs_u_eut_eu_unit_endpoint_phi_count_sum fs_v_eut_eu_unit_endpoint_phi_count_sum. ((((exists fs_h_eut_eu_unit_endpoint_phi_count_sum_body_start. fs_h_eut_eu_unit_endpoint_phi_count_sum_body_start + S (0) = S ((S (0)) * fs_v_eut_eu_unit_endpoint_phi_count_sum)) /\ exists fs_q_eut_eu_unit_endpoint_phi_count_sum_body_start. fs_u_eut_eu_unit_endpoint_phi_count_sum = fs_q_eut_eu_unit_endpoint_phi_count_sum_body_start * S ((S (0)) * fs_v_eut_eu_unit_endpoint_phi_count_sum) + (0))) /\ ((((exists fs_h_eut_eu_unit_endpoint_phi_count_sum_body_terminal. fs_h_eut_eu_unit_endpoint_phi_count_sum_body_terminal + S (t) = S ((S (m)) * fs_v_eut_eu_unit_endpoint_phi_count_sum)) /\ exists fs_q_eut_eu_unit_endpoint_phi_count_sum_body_terminal. fs_u_eut_eu_unit_endpoint_phi_count_sum = fs_q_eut_eu_unit_endpoint_phi_count_sum_body_terminal * S ((S (m)) * fs_v_eut_eu_unit_endpoint_phi_count_sum) + (t))) /\ forall fs_i_eut_eu_unit_endpoint_phi_count_sum_body_steps. (exists fs_lt_eut_eu_unit_endpoint_phi_count_sum_body_steps_bound. fs_lt_eut_eu_unit_endpoint_phi_count_sum_body_steps_bound + S fs_i_eut_eu_unit_endpoint_phi_count_sum_body_steps = m) -> exists fs_a_eut_eu_unit_endpoint_phi_count_sum_body_steps fs_r_eut_eu_unit_endpoint_phi_count_sum_body_steps fs_s_eut_eu_unit_endpoint_phi_count_sum_body_steps. ((((exists fs_h_eut_eu_unit_endpoint_phi_count_sum_body_steps_summand. fs_h_eut_eu_unit_endpoint_phi_count_sum_body_steps_summand + S (fs_a_eut_eu_unit_endpoint_phi_count_sum_body_steps) = S ((S (fs_i_eut_eu_unit_endpoint_phi_count_sum_body_steps)) * eut_scale_eu_unit_endpoint_phi_count)) /\ exists fs_q_eut_eu_unit_endpoint_phi_count_sum_body_steps_summand. eut_code_eu_unit_endpoint_phi_count = fs_q_eut_eu_unit_endpoint_phi_count_sum_body_steps_summand * S ((S (fs_i_eut_eu_unit_endpoint_phi_count_sum_body_steps)) * eut_scale_eu_unit_endpoint_phi_count) + (fs_a_eut_eu_unit_endpoint_phi_count_sum_body_steps))) /\ ((((exists fs_h_eut_eu_unit_endpoint_phi_count_sum_body_steps_partial. fs_h_eut_eu_unit_endpoint_phi_count_sum_body_steps_partial + S (fs_r_eut_eu_unit_endpoint_phi_count_sum_body_steps) = S ((S (fs_i_eut_eu_unit_endpoint_phi_count_sum_body_steps)) * fs_v_eut_eu_unit_endpoint_phi_count_sum)) /\ exists fs_q_eut_eu_unit_endpoint_phi_count_sum_body_steps_partial. fs_u_eut_eu_unit_endpoint_phi_count_sum = fs_q_eut_eu_unit_endpoint_phi_count_sum_body_steps_partial * S ((S (fs_i_eut_eu_unit_endpoint_phi_count_sum_body_steps)) * fs_v_eut_eu_unit_endpoint_phi_count_sum) + (fs_r_eut_eu_unit_endpoint_phi_count_sum_body_steps))) /\ ((((exists fs_h_eut_eu_unit_endpoint_phi_count_sum_body_steps_successor. fs_h_eut_eu_unit_endpoint_phi_count_sum_body_steps_successor + S (fs_s_eut_eu_unit_endpoint_phi_count_sum_body_steps) = S ((S (S fs_i_eut_eu_unit_endpoint_phi_count_sum_body_steps)) * fs_v_eut_eu_unit_endpoint_phi_count_sum)) /\ exists fs_q_eut_eu_unit_endpoint_phi_count_sum_body_steps_successor. fs_u_eut_eu_unit_endpoint_phi_count_sum = fs_q_eut_eu_unit_endpoint_phi_count_sum_body_steps_successor * S ((S (S fs_i_eut_eu_unit_endpoint_phi_count_sum_body_steps)) * fs_v_eut_eu_unit_endpoint_phi_count_sum) + (fs_s_eut_eu_unit_endpoint_phi_count_sum_body_steps))) /\ fs_s_eut_eu_unit_endpoint_phi_count_sum_body_steps = fs_r_eut_eu_unit_endpoint_phi_count_sum_body_steps + fs_a_eut_eu_unit_endpoint_phi_count_sum_body_steps))))))))) -> exists w. (exists pa_b_euta_eu_unit_endpoint_power pa_c_euta_eu_unit_endpoint_power. ((forall pa_i_euta_eu_unit_endpoint_power_repeat. (exists pa_lt_euta_eu_unit_endpoint_power_repeat_bound. pa_lt_euta_eu_unit_endpoint_power_repeat_bound + S pa_i_euta_eu_unit_endpoint_power_repeat = t) -> (((exists pa_h_euta_eu_unit_endpoint_power_repeat_decoded. pa_h_euta_eu_unit_endpoint_power_repeat_decoded + S (a) = S ((S (pa_i_euta_eu_unit_endpoint_power_repeat)) * pa_c_euta_eu_unit_endpoint_power)) /\ exists pa_q_euta_eu_unit_endpoint_power_repeat_decoded. pa_b_euta_eu_unit_endpoint_power = pa_q_euta_eu_unit_endpoint_power_repeat_decoded * S ((S (pa_i_euta_eu_unit_endpoint_power_repeat)) * pa_c_euta_eu_unit_endpoint_power) + (a)))) /\ (exists pa_u_euta_eu_unit_endpoint_power_product pa_v_euta_eu_unit_endpoint_power_product. ((((exists pa_h_euta_eu_unit_endpoint_power_product_start. pa_h_euta_eu_unit_endpoint_power_product_start + S (1) = S ((S (0)) * pa_v_euta_eu_unit_endpoint_power_product)) /\ exists pa_q_euta_eu_unit_endpoint_power_product_start. pa_u_euta_eu_unit_endpoint_power_product = pa_q_euta_eu_unit_endpoint_power_product_start * S ((S (0)) * pa_v_euta_eu_unit_endpoint_power_product) + (1))) /\ ((((exists pa_h_euta_eu_unit_endpoint_power_product_terminal. pa_h_euta_eu_unit_endpoint_power_product_terminal + S (w) = S ((S (t)) * pa_v_euta_eu_unit_endpoint_power_product)) /\ exists pa_q_euta_eu_unit_endpoint_power_product_terminal. pa_u_euta_eu_unit_endpoint_power_product = pa_q_euta_eu_unit_endpoint_power_product_terminal * S ((S (t)) * pa_v_euta_eu_unit_endpoint_power_product) + (w))) /\ forall pa_i_euta_eu_unit_endpoint_power_product. (exists pa_lt_euta_eu_unit_endpoint_power_product_bound. pa_lt_euta_eu_unit_endpoint_power_product_bound + S pa_i_euta_eu_unit_endpoint_power_product = t) -> exists pa_p_euta_eu_unit_endpoint_power_product pa_r_euta_eu_unit_endpoint_power_product pa_s_euta_eu_unit_endpoint_power_product. ((((exists pa_h_euta_eu_unit_endpoint_power_product_factor. pa_h_euta_eu_unit_endpoint_power_product_factor + S (pa_p_euta_eu_unit_endpoint_power_product) = S ((S (pa_i_euta_eu_unit_endpoint_power_product)) * pa_c_euta_eu_unit_endpoint_power)) /\ exists pa_q_euta_eu_unit_endpoint_power_product_factor. pa_b_euta_eu_unit_endpoint_power = pa_q_euta_eu_unit_endpoint_power_product_factor * S ((S (pa_i_euta_eu_unit_endpoint_power_product)) * pa_c_euta_eu_unit_endpoint_power) + (pa_p_euta_eu_unit_endpoint_power_product))) /\ ((((exists pa_h_euta_eu_unit_endpoint_power_product_partial. pa_h_euta_eu_unit_endpoint_power_product_partial + S (pa_r_euta_eu_unit_endpoint_power_product) = S ((S (pa_i_euta_eu_unit_endpoint_power_product)) * pa_v_euta_eu_unit_endpoint_power_product)) /\ exists pa_q_euta_eu_unit_endpoint_power_product_partial. pa_u_euta_eu_unit_endpoint_power_product = pa_q_euta_eu_unit_endpoint_power_product_partial * S ((S (pa_i_euta_eu_unit_endpoint_power_product)) * pa_v_euta_eu_unit_endpoint_power_product) + (pa_r_euta_eu_unit_endpoint_power_product))) /\ ((((exists pa_h_euta_eu_unit_endpoint_power_product_successor. pa_h_euta_eu_unit_endpoint_power_product_successor + S (pa_s_euta_eu_unit_endpoint_power_product) = S ((S (S pa_i_euta_eu_unit_endpoint_power_product)) * pa_v_euta_eu_unit_endpoint_power_product)) /\ exists pa_q_euta_eu_unit_endpoint_power_product_successor. pa_u_euta_eu_unit_endpoint_power_product = pa_q_euta_eu_unit_endpoint_power_product_successor * S ((S (S pa_i_euta_eu_unit_endpoint_power_product)) * pa_v_euta_eu_unit_endpoint_power_product) + (pa_s_euta_eu_unit_endpoint_power_product))) /\ pa_s_euta_eu_unit_endpoint_power_product = pa_r_euta_eu_unit_endpoint_power_product * pa_p_euta_eu_unit_endpoint_power_product)))))))) /\ (exists eu_mod_left_unit_endpoint_result eu_mod_right_unit_endpoint_result. (w) + (m) * eu_mod_left_unit_endpoint_result = (1) + (m) * eu_mod_right_unit_endpoint_result)Constructive proof overview
Generated structural guide
The exact actual-inverse Unit graph suffices for a constructed Euler power; no prime-modulus restriction is introduced.
The unchanged tactic script uses 3 declared prerequisites and contains 20 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
EU0020 euler_coprime_totient_power binary_modulus_nontrivial_nonzero Alpha theorem; checked-use authorized EU0004 euler_modular_unit_coprimeDirect 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–5
02Separate the logical casesL6–6
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L6
cases hu
03Use earlier factsL7–10
04Fix variables and assumptionsL11–11
Work with arbitrary variables or the premises of the current implication.
- L11
intro hz
05Use earlier factsL12–20
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 20 lines
- 0001
intro a - 0002
intro m - 0003
intro t - 0004
intro hu - 0005
intro ht - 0006
cases hu - 0007
specialize euler_coprime_totient_power (a) - 0008
specialize euler_coprime_totient_power (m) - 0009
specialize euler_coprime_totient_power (t) - 0010
apply euler_coprime_totient_power - 0011
intro hz - 0012
specialize binary_modulus_nontrivial_nonzero (m) - 0013
apply binary_modulus_nontrivial_nonzero - 0014
exact hu_left - 0015
exact hz - 0016
specialize euler_modular_unit_coprime (a) - 0017
specialize euler_modular_unit_coprime (m) - 0018
apply euler_modular_unit_coprime - 0019
exact hu - 0020
exact ht