GT000B

euclidean_execution_output_unique

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

Any two Alpha-v21 Euclidean executions for the same input certify the same unique relational gcd output.

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 original first-admission records.

Exact expanded first-order arithmetic statement

forall a b g l G L. (exists ec_list_egt_execution ec_history_egt_execution ec_scale_egt_execution. ((exists cf_gcd_ec_egt_execution_trace. ((((exists ff_h_cf_ec_egt_execution_trace_initial_state. ff_h_cf_ec_egt_execution_trace_initial_state + S (((cf_gcd_ec_egt_execution_trace) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_ec_egt_execution_trace) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0))))) = S ((S (0)) * ec_scale_egt_execution)) /\ exists ff_q_cf_ec_egt_execution_trace_initial_state. ec_history_egt_execution = ff_q_cf_ec_egt_execution_trace_initial_state * S ((S (0)) * ec_scale_egt_execution) + (((cf_gcd_ec_egt_execution_trace) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_ec_egt_execution_trace) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0))))))) /\ ((((exists ff_h_cf_ec_egt_execution_trace_terminal_state. ff_h_cf_ec_egt_execution_trace_terminal_state + S (((a) + (((b) + (ec_list_egt_execution)) * S ((b) + (ec_list_egt_execution)) + ((ec_list_egt_execution) + (ec_list_egt_execution)))) * S ((a) + (((b) + (ec_list_egt_execution)) * S ((b) + (ec_list_egt_execution)) + ((ec_list_egt_execution) + (ec_list_egt_execution)))) + ((((b) + (ec_list_egt_execution)) * S ((b) + (ec_list_egt_execution)) + ((ec_list_egt_execution) + (ec_list_egt_execution))) + (((b) + (ec_list_egt_execution)) * S ((b) + (ec_list_egt_execution)) + ((ec_list_egt_execution) + (ec_list_egt_execution))))) = S ((S (l)) * ec_scale_egt_execution)) /\ exists ff_q_cf_ec_egt_execution_trace_terminal_state. ec_history_egt_execution = ff_q_cf_ec_egt_execution_trace_terminal_state * S ((S (l)) * ec_scale_egt_execution) + (((a) + (((b) + (ec_list_egt_execution)) * S ((b) + (ec_list_egt_execution)) + ((ec_list_egt_execution) + (ec_list_egt_execution)))) * S ((a) + (((b) + (ec_list_egt_execution)) * S ((b) + (ec_list_egt_execution)) + ((ec_list_egt_execution) + (ec_list_egt_execution)))) + ((((b) + (ec_list_egt_execution)) * S ((b) + (ec_list_egt_execution)) + ((ec_list_egt_execution) + (ec_list_egt_execution))) + (((b) + (ec_list_egt_execution)) * S ((b) + (ec_list_egt_execution)) + ((ec_list_egt_execution) + (ec_list_egt_execution))))))) /\ forall cf_index_ec_egt_execution_trace. (exists ff_lt_cf_ec_egt_execution_trace_index. ff_lt_cf_ec_egt_execution_trace_index + S cf_index_ec_egt_execution_trace = l) -> exists cf_old_a_ec_egt_execution_trace cf_old_b_ec_egt_execution_trace cf_tail_ec_egt_execution_trace cf_new_a_ec_egt_execution_trace cf_new_b_ec_egt_execution_trace cf_head_ec_egt_execution_trace cf_quotient_ec_egt_execution_trace. ((((exists ff_h_cf_ec_egt_execution_trace_previous_state. ff_h_cf_ec_egt_execution_trace_previous_state + S (((cf_old_a_ec_egt_execution_trace) + (((cf_old_b_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace)) * S ((cf_old_b_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace)) + ((cf_tail_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace)))) * S ((cf_old_a_ec_egt_execution_trace) + (((cf_old_b_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace)) * S ((cf_old_b_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace)) + ((cf_tail_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace)))) + ((((cf_old_b_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace)) * S ((cf_old_b_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace)) + ((cf_tail_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace))) + (((cf_old_b_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace)) * S ((cf_old_b_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace)) + ((cf_tail_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace))))) = S ((S (cf_index_ec_egt_execution_trace)) * ec_scale_egt_execution)) /\ exists ff_q_cf_ec_egt_execution_trace_previous_state. ec_history_egt_execution = ff_q_cf_ec_egt_execution_trace_previous_state * S ((S (cf_index_ec_egt_execution_trace)) * ec_scale_egt_execution) + (((cf_old_a_ec_egt_execution_trace) + (((cf_old_b_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace)) * S ((cf_old_b_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace)) + ((cf_tail_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace)))) * S ((cf_old_a_ec_egt_execution_trace) + (((cf_old_b_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace)) * S ((cf_old_b_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace)) + ((cf_tail_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace)))) + ((((cf_old_b_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace)) * S ((cf_old_b_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace)) + ((cf_tail_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace))) + (((cf_old_b_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace)) * S ((cf_old_b_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace)) + ((cf_tail_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace))))))) /\ ((((exists ff_h_cf_ec_egt_execution_trace_following_state. ff_h_cf_ec_egt_execution_trace_following_state + S (((cf_new_a_ec_egt_execution_trace) + (((cf_new_b_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace)) * S ((cf_new_b_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace)) + ((cf_head_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace)))) * S ((cf_new_a_ec_egt_execution_trace) + (((cf_new_b_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace)) * S ((cf_new_b_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace)) + ((cf_head_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace)))) + ((((cf_new_b_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace)) * S ((cf_new_b_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace)) + ((cf_head_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace))) + (((cf_new_b_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace)) * S ((cf_new_b_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace)) + ((cf_head_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace))))) = S ((S (S cf_index_ec_egt_execution_trace)) * ec_scale_egt_execution)) /\ exists ff_q_cf_ec_egt_execution_trace_following_state. ec_history_egt_execution = ff_q_cf_ec_egt_execution_trace_following_state * S ((S (S cf_index_ec_egt_execution_trace)) * ec_scale_egt_execution) + (((cf_new_a_ec_egt_execution_trace) + (((cf_new_b_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace)) * S ((cf_new_b_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace)) + ((cf_head_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace)))) * S ((cf_new_a_ec_egt_execution_trace) + (((cf_new_b_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace)) * S ((cf_new_b_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace)) + ((cf_head_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace)))) + ((((cf_new_b_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace)) * S ((cf_new_b_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace)) + ((cf_head_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace))) + (((cf_new_b_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace)) * S ((cf_new_b_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace)) + ((cf_head_ec_egt_execution_trace) + (cf_head_ec_egt_execution_trace))))))) /\ (cf_new_b_ec_egt_execution_trace = cf_old_a_ec_egt_execution_trace /\ (cf_new_a_ec_egt_execution_trace = cf_new_b_ec_egt_execution_trace * cf_quotient_ec_egt_execution_trace + cf_old_b_ec_egt_execution_trace /\ ((exists ff_lt_cf_ec_egt_execution_trace_remainder. ff_lt_cf_ec_egt_execution_trace_remainder + S cf_old_b_ec_egt_execution_trace = cf_new_b_ec_egt_execution_trace) /\ (cf_head_ec_egt_execution_trace = S ((cf_quotient_ec_egt_execution_trace + cf_tail_ec_egt_execution_trace) * S (cf_quotient_ec_egt_execution_trace + cf_tail_ec_egt_execution_trace) + (cf_tail_ec_egt_execution_trace + cf_tail_ec_egt_execution_trace))))))))))) /\ ((((exists ec_gcd_left_egt_execution_result. a = g * ec_gcd_left_egt_execution_result) /\ (exists ec_gcd_right_egt_execution_result. b = g * ec_gcd_right_egt_execution_result)) /\ forall ec_gcd_common_egt_execution_result. (exists ec_gcd_common_left_egt_execution_result. a = ec_gcd_common_egt_execution_result * ec_gcd_common_left_egt_execution_result) -> (exists ec_gcd_common_right_egt_execution_result. b = ec_gcd_common_egt_execution_result * ec_gcd_common_right_egt_execution_result) -> exists ec_gcd_greatest_egt_execution_result. g = ec_gcd_common_egt_execution_result * ec_gcd_greatest_egt_execution_result)))) -> (exists ec_list_egt_other_execution ec_history_egt_other_execution ec_scale_egt_other_execution. ((exists cf_gcd_ec_egt_other_execution_trace. ((((exists ff_h_cf_ec_egt_other_execution_trace_initial_state. ff_h_cf_ec_egt_other_execution_trace_initial_state + S (((cf_gcd_ec_egt_other_execution_trace) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_ec_egt_other_execution_trace) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0))))) = S ((S (0)) * ec_scale_egt_other_execution)) /\ exists ff_q_cf_ec_egt_other_execution_trace_initial_state. ec_history_egt_other_execution = ff_q_cf_ec_egt_other_execution_trace_initial_state * S ((S (0)) * ec_scale_egt_other_execution) + (((cf_gcd_ec_egt_other_execution_trace) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_ec_egt_other_execution_trace) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0))))))) /\ ((((exists ff_h_cf_ec_egt_other_execution_trace_terminal_state. ff_h_cf_ec_egt_other_execution_trace_terminal_state + S (((a) + (((b) + (ec_list_egt_other_execution)) * S ((b) + (ec_list_egt_other_execution)) + ((ec_list_egt_other_execution) + (ec_list_egt_other_execution)))) * S ((a) + (((b) + (ec_list_egt_other_execution)) * S ((b) + (ec_list_egt_other_execution)) + ((ec_list_egt_other_execution) + (ec_list_egt_other_execution)))) + ((((b) + (ec_list_egt_other_execution)) * S ((b) + (ec_list_egt_other_execution)) + ((ec_list_egt_other_execution) + (ec_list_egt_other_execution))) + (((b) + (ec_list_egt_other_execution)) * S ((b) + (ec_list_egt_other_execution)) + ((ec_list_egt_other_execution) + (ec_list_egt_other_execution))))) = S ((S (L)) * ec_scale_egt_other_execution)) /\ exists ff_q_cf_ec_egt_other_execution_trace_terminal_state. ec_history_egt_other_execution = ff_q_cf_ec_egt_other_execution_trace_terminal_state * S ((S (L)) * ec_scale_egt_other_execution) + (((a) + (((b) + (ec_list_egt_other_execution)) * S ((b) + (ec_list_egt_other_execution)) + ((ec_list_egt_other_execution) + (ec_list_egt_other_execution)))) * S ((a) + (((b) + (ec_list_egt_other_execution)) * S ((b) + (ec_list_egt_other_execution)) + ((ec_list_egt_other_execution) + (ec_list_egt_other_execution)))) + ((((b) + (ec_list_egt_other_execution)) * S ((b) + (ec_list_egt_other_execution)) + ((ec_list_egt_other_execution) + (ec_list_egt_other_execution))) + (((b) + (ec_list_egt_other_execution)) * S ((b) + (ec_list_egt_other_execution)) + ((ec_list_egt_other_execution) + (ec_list_egt_other_execution))))))) /\ forall cf_index_ec_egt_other_execution_trace. (exists ff_lt_cf_ec_egt_other_execution_trace_index. ff_lt_cf_ec_egt_other_execution_trace_index + S cf_index_ec_egt_other_execution_trace = L) -> exists cf_old_a_ec_egt_other_execution_trace cf_old_b_ec_egt_other_execution_trace cf_tail_ec_egt_other_execution_trace cf_new_a_ec_egt_other_execution_trace cf_new_b_ec_egt_other_execution_trace cf_head_ec_egt_other_execution_trace cf_quotient_ec_egt_other_execution_trace. ((((exists ff_h_cf_ec_egt_other_execution_trace_previous_state. ff_h_cf_ec_egt_other_execution_trace_previous_state + S (((cf_old_a_ec_egt_other_execution_trace) + (((cf_old_b_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace)) * S ((cf_old_b_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace)) + ((cf_tail_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace)))) * S ((cf_old_a_ec_egt_other_execution_trace) + (((cf_old_b_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace)) * S ((cf_old_b_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace)) + ((cf_tail_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace)))) + ((((cf_old_b_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace)) * S ((cf_old_b_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace)) + ((cf_tail_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace))) + (((cf_old_b_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace)) * S ((cf_old_b_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace)) + ((cf_tail_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace))))) = S ((S (cf_index_ec_egt_other_execution_trace)) * ec_scale_egt_other_execution)) /\ exists ff_q_cf_ec_egt_other_execution_trace_previous_state. ec_history_egt_other_execution = ff_q_cf_ec_egt_other_execution_trace_previous_state * S ((S (cf_index_ec_egt_other_execution_trace)) * ec_scale_egt_other_execution) + (((cf_old_a_ec_egt_other_execution_trace) + (((cf_old_b_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace)) * S ((cf_old_b_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace)) + ((cf_tail_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace)))) * S ((cf_old_a_ec_egt_other_execution_trace) + (((cf_old_b_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace)) * S ((cf_old_b_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace)) + ((cf_tail_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace)))) + ((((cf_old_b_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace)) * S ((cf_old_b_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace)) + ((cf_tail_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace))) + (((cf_old_b_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace)) * S ((cf_old_b_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace)) + ((cf_tail_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace))))))) /\ ((((exists ff_h_cf_ec_egt_other_execution_trace_following_state. ff_h_cf_ec_egt_other_execution_trace_following_state + S (((cf_new_a_ec_egt_other_execution_trace) + (((cf_new_b_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace)) * S ((cf_new_b_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace)) + ((cf_head_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace)))) * S ((cf_new_a_ec_egt_other_execution_trace) + (((cf_new_b_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace)) * S ((cf_new_b_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace)) + ((cf_head_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace)))) + ((((cf_new_b_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace)) * S ((cf_new_b_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace)) + ((cf_head_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace))) + (((cf_new_b_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace)) * S ((cf_new_b_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace)) + ((cf_head_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace))))) = S ((S (S cf_index_ec_egt_other_execution_trace)) * ec_scale_egt_other_execution)) /\ exists ff_q_cf_ec_egt_other_execution_trace_following_state. ec_history_egt_other_execution = ff_q_cf_ec_egt_other_execution_trace_following_state * S ((S (S cf_index_ec_egt_other_execution_trace)) * ec_scale_egt_other_execution) + (((cf_new_a_ec_egt_other_execution_trace) + (((cf_new_b_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace)) * S ((cf_new_b_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace)) + ((cf_head_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace)))) * S ((cf_new_a_ec_egt_other_execution_trace) + (((cf_new_b_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace)) * S ((cf_new_b_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace)) + ((cf_head_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace)))) + ((((cf_new_b_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace)) * S ((cf_new_b_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace)) + ((cf_head_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace))) + (((cf_new_b_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace)) * S ((cf_new_b_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace)) + ((cf_head_ec_egt_other_execution_trace) + (cf_head_ec_egt_other_execution_trace))))))) /\ (cf_new_b_ec_egt_other_execution_trace = cf_old_a_ec_egt_other_execution_trace /\ (cf_new_a_ec_egt_other_execution_trace = cf_new_b_ec_egt_other_execution_trace * cf_quotient_ec_egt_other_execution_trace + cf_old_b_ec_egt_other_execution_trace /\ ((exists ff_lt_cf_ec_egt_other_execution_trace_remainder. ff_lt_cf_ec_egt_other_execution_trace_remainder + S cf_old_b_ec_egt_other_execution_trace = cf_new_b_ec_egt_other_execution_trace) /\ (cf_head_ec_egt_other_execution_trace = S ((cf_quotient_ec_egt_other_execution_trace + cf_tail_ec_egt_other_execution_trace) * S (cf_quotient_ec_egt_other_execution_trace + cf_tail_ec_egt_other_execution_trace) + (cf_tail_ec_egt_other_execution_trace + cf_tail_ec_egt_other_execution_trace))))))))))) /\ ((((exists ec_gcd_left_egt_other_execution_result. a = G * ec_gcd_left_egt_other_execution_result) /\ (exists ec_gcd_right_egt_other_execution_result. b = G * ec_gcd_right_egt_other_execution_result)) /\ forall ec_gcd_common_egt_other_execution_result. (exists ec_gcd_common_left_egt_other_execution_result. a = ec_gcd_common_egt_other_execution_result * ec_gcd_common_left_egt_other_execution_result) -> (exists ec_gcd_common_right_egt_other_execution_result. b = ec_gcd_common_egt_other_execution_result * ec_gcd_common_right_egt_other_execution_result) -> exists ec_gcd_greatest_egt_other_execution_result. G = ec_gcd_common_egt_other_execution_result * ec_gcd_greatest_egt_other_execution_result)))) -> g = G

Constructive proof overview

Generated structural guide

Any two Alpha-v21 Euclidean executions for the same input certify the same unique relational gcd output.

The unchanged tactic script uses 2 declared prerequisites and contains 28 exact native proof lines.

Alpha v34 checked-use · first admitted v22 · independently kernel and Lean verified; not Stable

Proof neighborhood

Direct dependencies

euclidean_execution_gcd_correct Alpha theorem; checked-use authorized is_gcd_unique Stable theorem; checked-use authorized

Direct dependents

none

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

28 script commands · 5 reading checkpoints · 2 local claims

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.

01Fix variables and assumptionsL1–8

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro a
  2. L2
    intro b
  3. L3
    intro g
  4. L4
    intro l
  5. L5
    intro G
  6. L6
    intro L
  7. L7
    intro hfirst
  8. L8
    intro hsecond
02Establish hgL9–15

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply euclidean execution gcd correct.

  1. L9
    have hg : (((exists hag_left_factor_egt_unique_first. a = g * hag_left_factor_egt_unique_first) /\ (exists hag_right_factor_egt_unique_first. b = g * hag_right_factor_egt_unique_first)) /\ forall hag_divisor_egt_unique_first. (exists hag_common_left_egt_unique_first. a = hag_divisor_egt_unique_first * hag_common_left_egt_unique_first) -> (exists hag_common_right_egt_unique_first. b = hag_divisor_egt_unique_first * hag_common_right_egt_unique_first) -> exists hag_greatest_factor_egt_unique_first. g = hag_divisor_egt_unique_first * hag_greatest_factor_egt_unique_first)
  2. L10
    specialize euclidean_execution_gcd_correct a
  3. L11
    specialize euclidean_execution_gcd_correct b
  4. L12
    specialize euclidean_execution_gcd_correct g
  5. L13
    specialize euclidean_execution_gcd_correct l
  6. L14
    apply euclidean_execution_gcd_correct
  7. L15
    exact hfirst
03Establish hGL16–16

Establish this local claim before using it. It is not an additional assumption.

  1. L16
    have hG : (((exists hag_left_factor_egt_unique_second. a = G * hag_left_factor_egt_unique_second) /\ (exists hag_right_factor_egt_unique_second. b = G * hag_right_factor_egt_unique_second)) /\ forall hag_divisor_egt_unique_second. (exists hag_common_left_egt_unique_second. a = hag_divisor_egt_unique_second * hag_common_left_egt_unique_second) -> (exists hag_common_right_egt_unique_second. b = hag_divisor_egt_unique_second * hag_common_right_egt_unique_second) -> exists hag_greatest_factor_egt_unique_second. G = hag_divisor_egt_unique_second * hag_greatest_factor_egt_unique_second)
04Separate the logical casesL17–20

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L17
    cases hsecond
  2. L18
    cases hsecond_witness
  3. L19
    cases hsecond_witness_witness
  4. L20
    cases hsecond_witness_witness_witness
05Use earlier factsL21–28

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L21
    exact hsecond_witness_witness_witness_right
  2. L22
    specialize is_gcd_unique g
  3. L23
    specialize is_gcd_unique G
  4. L24
    specialize is_gcd_unique a
  5. L25
    specialize is_gcd_unique b
  6. L26
    apply is_gcd_unique
  7. L27
    exact hg
  8. L28
    exact hG

Library-wide reading audit

Original exact command ledger · 28 lines
  1. 0001intro a
  2. 0002intro b
  3. 0003intro g
  4. 0004intro l
  5. 0005intro G
  6. 0006intro L
  7. 0007intro hfirst
  8. 0008intro hsecond
  9. 0009have hg : (((exists hag_left_factor_egt_unique_first. a = g * hag_left_factor_egt_unique_first) /\ (exists hag_right_factor_egt_unique_first. b = g * hag_right_factor_egt_unique_first)) /\ forall hag_divisor_egt_unique_first. (exists hag_common_left_egt_unique_first. a = hag_divisor_egt_unique_first * hag_common_left_egt_unique_first) -> (exists hag_common_right_egt_unique_first. b = hag_divisor_egt_unique_first * hag_common_right_egt_unique_first) -> exists hag_greatest_factor_egt_unique_first. g = hag_divisor_egt_unique_first * hag_greatest_factor_egt_unique_first)
  10. 0010specialize euclidean_execution_gcd_correct a
  11. 0011specialize euclidean_execution_gcd_correct b
  12. 0012specialize euclidean_execution_gcd_correct g
  13. 0013specialize euclidean_execution_gcd_correct l
  14. 0014apply euclidean_execution_gcd_correct
  15. 0015exact hfirst
  16. 0016have hG : (((exists hag_left_factor_egt_unique_second. a = G * hag_left_factor_egt_unique_second) /\ (exists hag_right_factor_egt_unique_second. b = G * hag_right_factor_egt_unique_second)) /\ forall hag_divisor_egt_unique_second. (exists hag_common_left_egt_unique_second. a = hag_divisor_egt_unique_second * hag_common_left_egt_unique_second) -> (exists hag_common_right_egt_unique_second. b = hag_divisor_egt_unique_second * hag_common_right_egt_unique_second) -> exists hag_greatest_factor_egt_unique_second. G = hag_divisor_egt_unique_second * hag_greatest_factor_egt_unique_second)
  17. 0017cases hsecond
  18. 0018cases hsecond_witness
  19. 0019cases hsecond_witness_witness
  20. 0020cases hsecond_witness_witness_witness
  21. 0021exact hsecond_witness_witness_witness_right
  22. 0022specialize is_gcd_unique g
  23. 0023specialize is_gcd_unique G
  24. 0024specialize is_gcd_unique a
  25. 0025specialize is_gcd_unique b
  26. 0026apply is_gcd_unique
  27. 0027exact hg
  28. 0028exact hG