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. ~(m=0) -> (forall eut_divisor_eu_exists_coprime. (exists eut_left_eu_exists_coprime. (a) = eut_divisor_eu_exists_coprime * eut_left_eu_exists_coprime) -> (exists eut_right_eu_exists_coprime. (m) = eut_divisor_eu_exists_coprime * eut_right_eu_exists_coprime) -> eut_divisor_eu_exists_coprime = 1) -> ((~((m)=0) /\ (exists eut_code_eu_exists_phi_count eut_scale_eu_exists_phi_count. (forall eut_index_eu_exists_phi_count_mask. (exists eut_gap_eu_exists_phi_count_mask_bound. eut_gap_eu_exists_phi_count_mask_bound + S (eut_index_eu_exists_phi_count_mask) = (m)) -> exists eut_bit_eu_exists_phi_count_mask. (((exists fs_h_eut_eu_exists_phi_count_mask_entry. fs_h_eut_eu_exists_phi_count_mask_entry + S (eut_bit_eu_exists_phi_count_mask) = S ((S (eut_index_eu_exists_phi_count_mask)) * eut_scale_eu_exists_phi_count)) /\ exists fs_q_eut_eu_exists_phi_count_mask_entry. eut_code_eu_exists_phi_count = fs_q_eut_eu_exists_phi_count_mask_entry * S ((S (eut_index_eu_exists_phi_count_mask)) * eut_scale_eu_exists_phi_count) + (eut_bit_eu_exists_phi_count_mask))) /\ ((((forall eut_divisor_eu_exists_phi_count_mask_choice_coprime. (exists eut_left_eu_exists_phi_count_mask_choice_coprime. (eut_index_eu_exists_phi_count_mask) = eut_divisor_eu_exists_phi_count_mask_choice_coprime * eut_left_eu_exists_phi_count_mask_choice_coprime) -> (exists eut_right_eu_exists_phi_count_mask_choice_coprime. (m) = eut_divisor_eu_exists_phi_count_mask_choice_coprime * eut_right_eu_exists_phi_count_mask_choice_coprime) -> eut_divisor_eu_exists_phi_count_mask_choice_coprime = 1) /\ (eut_bit_eu_exists_phi_count_mask) = 1) \/ (~(forall eut_divisor_eu_exists_phi_count_mask_choice_coprime. (exists eut_left_eu_exists_phi_count_mask_choice_coprime. (eut_index_eu_exists_phi_count_mask) = eut_divisor_eu_exists_phi_count_mask_choice_coprime * eut_left_eu_exists_phi_count_mask_choice_coprime) -> (exists eut_right_eu_exists_phi_count_mask_choice_coprime. (m) = eut_divisor_eu_exists_phi_count_mask_choice_coprime * eut_right_eu_exists_phi_count_mask_choice_coprime) -> eut_divisor_eu_exists_phi_count_mask_choice_coprime = 1) /\ (eut_bit_eu_exists_phi_count_mask) = 0)))) /\ (exists fs_u_eut_eu_exists_phi_count_sum fs_v_eut_eu_exists_phi_count_sum. ((((exists fs_h_eut_eu_exists_phi_count_sum_body_start. fs_h_eut_eu_exists_phi_count_sum_body_start + S (0) = S ((S (0)) * fs_v_eut_eu_exists_phi_count_sum)) /\ exists fs_q_eut_eu_exists_phi_count_sum_body_start. fs_u_eut_eu_exists_phi_count_sum = fs_q_eut_eu_exists_phi_count_sum_body_start * S ((S (0)) * fs_v_eut_eu_exists_phi_count_sum) + (0))) /\ ((((exists fs_h_eut_eu_exists_phi_count_sum_body_terminal. fs_h_eut_eu_exists_phi_count_sum_body_terminal + S (t) = S ((S (m)) * fs_v_eut_eu_exists_phi_count_sum)) /\ exists fs_q_eut_eu_exists_phi_count_sum_body_terminal. fs_u_eut_eu_exists_phi_count_sum = fs_q_eut_eu_exists_phi_count_sum_body_terminal * S ((S (m)) * fs_v_eut_eu_exists_phi_count_sum) + (t))) /\ forall fs_i_eut_eu_exists_phi_count_sum_body_steps. (exists fs_lt_eut_eu_exists_phi_count_sum_body_steps_bound. fs_lt_eut_eu_exists_phi_count_sum_body_steps_bound + S fs_i_eut_eu_exists_phi_count_sum_body_steps = m) -> exists fs_a_eut_eu_exists_phi_count_sum_body_steps fs_r_eut_eu_exists_phi_count_sum_body_steps fs_s_eut_eu_exists_phi_count_sum_body_steps. ((((exists fs_h_eut_eu_exists_phi_count_sum_body_steps_summand. fs_h_eut_eu_exists_phi_count_sum_body_steps_summand + S (fs_a_eut_eu_exists_phi_count_sum_body_steps) = S ((S (fs_i_eut_eu_exists_phi_count_sum_body_steps)) * eut_scale_eu_exists_phi_count)) /\ exists fs_q_eut_eu_exists_phi_count_sum_body_steps_summand. eut_code_eu_exists_phi_count = fs_q_eut_eu_exists_phi_count_sum_body_steps_summand * S ((S (fs_i_eut_eu_exists_phi_count_sum_body_steps)) * eut_scale_eu_exists_phi_count) + (fs_a_eut_eu_exists_phi_count_sum_body_steps))) /\ ((((exists fs_h_eut_eu_exists_phi_count_sum_body_steps_partial. fs_h_eut_eu_exists_phi_count_sum_body_steps_partial + S (fs_r_eut_eu_exists_phi_count_sum_body_steps) = S ((S (fs_i_eut_eu_exists_phi_count_sum_body_steps)) * fs_v_eut_eu_exists_phi_count_sum)) /\ exists fs_q_eut_eu_exists_phi_count_sum_body_steps_partial. fs_u_eut_eu_exists_phi_count_sum = fs_q_eut_eu_exists_phi_count_sum_body_steps_partial * S ((S (fs_i_eut_eu_exists_phi_count_sum_body_steps)) * fs_v_eut_eu_exists_phi_count_sum) + (fs_r_eut_eu_exists_phi_count_sum_body_steps))) /\ ((((exists fs_h_eut_eu_exists_phi_count_sum_body_steps_successor. fs_h_eut_eu_exists_phi_count_sum_body_steps_successor + S (fs_s_eut_eu_exists_phi_count_sum_body_steps) = S ((S (S fs_i_eut_eu_exists_phi_count_sum_body_steps)) * fs_v_eut_eu_exists_phi_count_sum)) /\ exists fs_q_eut_eu_exists_phi_count_sum_body_steps_successor. fs_u_eut_eu_exists_phi_count_sum = fs_q_eut_eu_exists_phi_count_sum_body_steps_successor * S ((S (S fs_i_eut_eu_exists_phi_count_sum_body_steps)) * fs_v_eut_eu_exists_phi_count_sum) + (fs_s_eut_eu_exists_phi_count_sum_body_steps))) /\ fs_s_eut_eu_exists_phi_count_sum_body_steps = fs_r_eut_eu_exists_phi_count_sum_body_steps + fs_a_eut_eu_exists_phi_count_sum_body_steps))))))))) -> exists w. (exists pa_b_euta_eu_exists_power pa_c_euta_eu_exists_power. ((forall pa_i_euta_eu_exists_power_repeat. (exists pa_lt_euta_eu_exists_power_repeat_bound. pa_lt_euta_eu_exists_power_repeat_bound + S pa_i_euta_eu_exists_power_repeat = t) -> (((exists pa_h_euta_eu_exists_power_repeat_decoded. pa_h_euta_eu_exists_power_repeat_decoded + S (a) = S ((S (pa_i_euta_eu_exists_power_repeat)) * pa_c_euta_eu_exists_power)) /\ exists pa_q_euta_eu_exists_power_repeat_decoded. pa_b_euta_eu_exists_power = pa_q_euta_eu_exists_power_repeat_decoded * S ((S (pa_i_euta_eu_exists_power_repeat)) * pa_c_euta_eu_exists_power) + (a)))) /\ (exists pa_u_euta_eu_exists_power_product pa_v_euta_eu_exists_power_product. ((((exists pa_h_euta_eu_exists_power_product_start. pa_h_euta_eu_exists_power_product_start + S (1) = S ((S (0)) * pa_v_euta_eu_exists_power_product)) /\ exists pa_q_euta_eu_exists_power_product_start. pa_u_euta_eu_exists_power_product = pa_q_euta_eu_exists_power_product_start * S ((S (0)) * pa_v_euta_eu_exists_power_product) + (1))) /\ ((((exists pa_h_euta_eu_exists_power_product_terminal. pa_h_euta_eu_exists_power_product_terminal + S (w) = S ((S (t)) * pa_v_euta_eu_exists_power_product)) /\ exists pa_q_euta_eu_exists_power_product_terminal. pa_u_euta_eu_exists_power_product = pa_q_euta_eu_exists_power_product_terminal * S ((S (t)) * pa_v_euta_eu_exists_power_product) + (w))) /\ forall pa_i_euta_eu_exists_power_product. (exists pa_lt_euta_eu_exists_power_product_bound. pa_lt_euta_eu_exists_power_product_bound + S pa_i_euta_eu_exists_power_product = t) -> exists pa_p_euta_eu_exists_power_product pa_r_euta_eu_exists_power_product pa_s_euta_eu_exists_power_product. ((((exists pa_h_euta_eu_exists_power_product_factor. pa_h_euta_eu_exists_power_product_factor + S (pa_p_euta_eu_exists_power_product) = S ((S (pa_i_euta_eu_exists_power_product)) * pa_c_euta_eu_exists_power)) /\ exists pa_q_euta_eu_exists_power_product_factor. pa_b_euta_eu_exists_power = pa_q_euta_eu_exists_power_product_factor * S ((S (pa_i_euta_eu_exists_power_product)) * pa_c_euta_eu_exists_power) + (pa_p_euta_eu_exists_power_product))) /\ ((((exists pa_h_euta_eu_exists_power_product_partial. pa_h_euta_eu_exists_power_product_partial + S (pa_r_euta_eu_exists_power_product) = S ((S (pa_i_euta_eu_exists_power_product)) * pa_v_euta_eu_exists_power_product)) /\ exists pa_q_euta_eu_exists_power_product_partial. pa_u_euta_eu_exists_power_product = pa_q_euta_eu_exists_power_product_partial * S ((S (pa_i_euta_eu_exists_power_product)) * pa_v_euta_eu_exists_power_product) + (pa_r_euta_eu_exists_power_product))) /\ ((((exists pa_h_euta_eu_exists_power_product_successor. pa_h_euta_eu_exists_power_product_successor + S (pa_s_euta_eu_exists_power_product) = S ((S (S pa_i_euta_eu_exists_power_product)) * pa_v_euta_eu_exists_power_product)) /\ exists pa_q_euta_eu_exists_power_product_successor. pa_u_euta_eu_exists_power_product = pa_q_euta_eu_exists_power_product_successor * S ((S (S pa_i_euta_eu_exists_power_product)) * pa_v_euta_eu_exists_power_product) + (pa_s_euta_eu_exists_power_product))) /\ pa_s_euta_eu_exists_power_product = pa_r_euta_eu_exists_power_product * pa_p_euta_eu_exists_power_product)))))))) /\ (exists eu_mod_left_exists_result eu_mod_right_exists_result. (w) + (m) * eu_mod_left_exists_result = (1) + (m) * eu_mod_right_exists_result)Constructive proof overview
Generated structural guide
Construct the actual exponentiation witness for Euler's theorem at every positive modulus, without supplying a power, factor list, or permutation.
The unchanged tactic script uses 2 declared prerequisites and contains 23 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
pow_exists Stable theorem; checked-use authorized EU001F euler_coprime_totient_power_valueDirect 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 (1)
01Fix variables and assumptionsL1–6
02Establish hwL7–10
03Separate the logical casesL11–11
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L11
cases hw
04Construct an explicit witnessL12–12
Supply the displayed value, then prove that it has the required property.
- L12
exists x
05Separate the logical casesL13–13
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L13
split
06Use earlier factsL14–23
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L14
exact hw_witness - L15
specialize euler_coprime_totient_power_value (a) - L16
specialize euler_coprime_totient_power_value (m) - L17
specialize euler_coprime_totient_power_value (t) - L18
specialize euler_coprime_totient_power_value (x) - L19
apply euler_coprime_totient_power_value - L20
exact hm - L21
exact hc - L22
exact ht - L23
exact hw_witness
Original exact command ledger · 23 lines
- 0001
intro a - 0002
intro m - 0003
intro t - 0004
intro hm - 0005
intro hc - 0006
intro ht - 0007
have hw : exists w. (exists pa_b_euta_eu_constructed_power pa_c_euta_eu_constructed_power. ((forall pa_i_euta_eu_constructed_power_repeat. (exists pa_lt_euta_eu_constructed_power_repeat_bound. pa_lt_euta_eu_constructed_power_repeat_bound + S pa_i_euta_eu_constructed_power_repeat = t) -> (((exists pa_h_euta_eu_constructed_power_repeat_decoded. pa_h_euta_eu_constructed_power_repeat_decoded + S (a) = S ((S (pa_i_euta_eu_constructed_power_repeat)) * pa_c_euta_eu_constructed_power)) /\ exists pa_q_euta_eu_constructed_power_repeat_decoded. pa_b_euta_eu_constructed_power = pa_q_euta_eu_constructed_power_repeat_decoded * S ((S (pa_i_euta_eu_constructed_power_repeat)) * pa_c_euta_eu_constructed_power) + (a)))) /\ (exists pa_u_euta_eu_constructed_power_product pa_v_euta_eu_constructed_power_product. ((((exists pa_h_euta_eu_constructed_power_product_start. pa_h_euta_eu_constructed_power_product_start + S (1) = S ((S (0)) * pa_v_euta_eu_constructed_power_product)) /\ exists pa_q_euta_eu_constructed_power_product_start. pa_u_euta_eu_constructed_power_product = pa_q_euta_eu_constructed_power_product_start * S ((S (0)) * pa_v_euta_eu_constructed_power_product) + (1))) /\ ((((exists pa_h_euta_eu_constructed_power_product_terminal. pa_h_euta_eu_constructed_power_product_terminal + S (w) = S ((S (t)) * pa_v_euta_eu_constructed_power_product)) /\ exists pa_q_euta_eu_constructed_power_product_terminal. pa_u_euta_eu_constructed_power_product = pa_q_euta_eu_constructed_power_product_terminal * S ((S (t)) * pa_v_euta_eu_constructed_power_product) + (w))) /\ forall pa_i_euta_eu_constructed_power_product. (exists pa_lt_euta_eu_constructed_power_product_bound. pa_lt_euta_eu_constructed_power_product_bound + S pa_i_euta_eu_constructed_power_product = t) -> exists pa_p_euta_eu_constructed_power_product pa_r_euta_eu_constructed_power_product pa_s_euta_eu_constructed_power_product. ((((exists pa_h_euta_eu_constructed_power_product_factor. pa_h_euta_eu_constructed_power_product_factor + S (pa_p_euta_eu_constructed_power_product) = S ((S (pa_i_euta_eu_constructed_power_product)) * pa_c_euta_eu_constructed_power)) /\ exists pa_q_euta_eu_constructed_power_product_factor. pa_b_euta_eu_constructed_power = pa_q_euta_eu_constructed_power_product_factor * S ((S (pa_i_euta_eu_constructed_power_product)) * pa_c_euta_eu_constructed_power) + (pa_p_euta_eu_constructed_power_product))) /\ ((((exists pa_h_euta_eu_constructed_power_product_partial. pa_h_euta_eu_constructed_power_product_partial + S (pa_r_euta_eu_constructed_power_product) = S ((S (pa_i_euta_eu_constructed_power_product)) * pa_v_euta_eu_constructed_power_product)) /\ exists pa_q_euta_eu_constructed_power_product_partial. pa_u_euta_eu_constructed_power_product = pa_q_euta_eu_constructed_power_product_partial * S ((S (pa_i_euta_eu_constructed_power_product)) * pa_v_euta_eu_constructed_power_product) + (pa_r_euta_eu_constructed_power_product))) /\ ((((exists pa_h_euta_eu_constructed_power_product_successor. pa_h_euta_eu_constructed_power_product_successor + S (pa_s_euta_eu_constructed_power_product) = S ((S (S pa_i_euta_eu_constructed_power_product)) * pa_v_euta_eu_constructed_power_product)) /\ exists pa_q_euta_eu_constructed_power_product_successor. pa_u_euta_eu_constructed_power_product = pa_q_euta_eu_constructed_power_product_successor * S ((S (S pa_i_euta_eu_constructed_power_product)) * pa_v_euta_eu_constructed_power_product) + (pa_s_euta_eu_constructed_power_product))) /\ pa_s_euta_eu_constructed_power_product = pa_r_euta_eu_constructed_power_product * pa_p_euta_eu_constructed_power_product)))))))) - 0008
specialize pow_exists (a) - 0009
specialize pow_exists (t) - 0010
apply pow_exists - 0011
cases hw - 0012
exists x - 0013
split - 0014
exact hw_witness - 0015
specialize euler_coprime_totient_power_value (a) - 0016
specialize euler_coprime_totient_power_value (m) - 0017
specialize euler_coprime_totient_power_value (t) - 0018
specialize euler_coprime_totient_power_value (x) - 0019
apply euler_coprime_totient_power_value - 0020
exact hm - 0021
exact hc - 0022
exact ht - 0023
exact hw_witness