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. ~(b = 0) -> exists g k. (exists ec_list_positive ec_history_positive ec_scale_positive. ((exists cf_gcd_ec_positive_trace. ((((exists ff_h_cf_ec_positive_trace_initial_state. ff_h_cf_ec_positive_trace_initial_state + S (((cf_gcd_ec_positive_trace) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_ec_positive_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_positive)) /\ exists ff_q_cf_ec_positive_trace_initial_state. ec_history_positive = ff_q_cf_ec_positive_trace_initial_state * S ((S (0)) * ec_scale_positive) + (((cf_gcd_ec_positive_trace) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_ec_positive_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_positive_trace_terminal_state. ff_h_cf_ec_positive_trace_terminal_state + S (((a) + (((b) + (ec_list_positive)) * S ((b) + (ec_list_positive)) + ((ec_list_positive) + (ec_list_positive)))) * S ((a) + (((b) + (ec_list_positive)) * S ((b) + (ec_list_positive)) + ((ec_list_positive) + (ec_list_positive)))) + ((((b) + (ec_list_positive)) * S ((b) + (ec_list_positive)) + ((ec_list_positive) + (ec_list_positive))) + (((b) + (ec_list_positive)) * S ((b) + (ec_list_positive)) + ((ec_list_positive) + (ec_list_positive))))) = S ((S (S k)) * ec_scale_positive)) /\ exists ff_q_cf_ec_positive_trace_terminal_state. ec_history_positive = ff_q_cf_ec_positive_trace_terminal_state * S ((S (S k)) * ec_scale_positive) + (((a) + (((b) + (ec_list_positive)) * S ((b) + (ec_list_positive)) + ((ec_list_positive) + (ec_list_positive)))) * S ((a) + (((b) + (ec_list_positive)) * S ((b) + (ec_list_positive)) + ((ec_list_positive) + (ec_list_positive)))) + ((((b) + (ec_list_positive)) * S ((b) + (ec_list_positive)) + ((ec_list_positive) + (ec_list_positive))) + (((b) + (ec_list_positive)) * S ((b) + (ec_list_positive)) + ((ec_list_positive) + (ec_list_positive))))))) /\ forall cf_index_ec_positive_trace. (exists ff_lt_cf_ec_positive_trace_index. ff_lt_cf_ec_positive_trace_index + S cf_index_ec_positive_trace = S k) -> exists cf_old_a_ec_positive_trace cf_old_b_ec_positive_trace cf_tail_ec_positive_trace cf_new_a_ec_positive_trace cf_new_b_ec_positive_trace cf_head_ec_positive_trace cf_quotient_ec_positive_trace. ((((exists ff_h_cf_ec_positive_trace_previous_state. ff_h_cf_ec_positive_trace_previous_state + S (((cf_old_a_ec_positive_trace) + (((cf_old_b_ec_positive_trace) + (cf_tail_ec_positive_trace)) * S ((cf_old_b_ec_positive_trace) + (cf_tail_ec_positive_trace)) + ((cf_tail_ec_positive_trace) + (cf_tail_ec_positive_trace)))) * S ((cf_old_a_ec_positive_trace) + (((cf_old_b_ec_positive_trace) + (cf_tail_ec_positive_trace)) * S ((cf_old_b_ec_positive_trace) + (cf_tail_ec_positive_trace)) + ((cf_tail_ec_positive_trace) + (cf_tail_ec_positive_trace)))) + ((((cf_old_b_ec_positive_trace) + (cf_tail_ec_positive_trace)) * S ((cf_old_b_ec_positive_trace) + (cf_tail_ec_positive_trace)) + ((cf_tail_ec_positive_trace) + (cf_tail_ec_positive_trace))) + (((cf_old_b_ec_positive_trace) + (cf_tail_ec_positive_trace)) * S ((cf_old_b_ec_positive_trace) + (cf_tail_ec_positive_trace)) + ((cf_tail_ec_positive_trace) + (cf_tail_ec_positive_trace))))) = S ((S (cf_index_ec_positive_trace)) * ec_scale_positive)) /\ exists ff_q_cf_ec_positive_trace_previous_state. ec_history_positive = ff_q_cf_ec_positive_trace_previous_state * S ((S (cf_index_ec_positive_trace)) * ec_scale_positive) + (((cf_old_a_ec_positive_trace) + (((cf_old_b_ec_positive_trace) + (cf_tail_ec_positive_trace)) * S ((cf_old_b_ec_positive_trace) + (cf_tail_ec_positive_trace)) + ((cf_tail_ec_positive_trace) + (cf_tail_ec_positive_trace)))) * S ((cf_old_a_ec_positive_trace) + (((cf_old_b_ec_positive_trace) + (cf_tail_ec_positive_trace)) * S ((cf_old_b_ec_positive_trace) + (cf_tail_ec_positive_trace)) + ((cf_tail_ec_positive_trace) + (cf_tail_ec_positive_trace)))) + ((((cf_old_b_ec_positive_trace) + (cf_tail_ec_positive_trace)) * S ((cf_old_b_ec_positive_trace) + (cf_tail_ec_positive_trace)) + ((cf_tail_ec_positive_trace) + (cf_tail_ec_positive_trace))) + (((cf_old_b_ec_positive_trace) + (cf_tail_ec_positive_trace)) * S ((cf_old_b_ec_positive_trace) + (cf_tail_ec_positive_trace)) + ((cf_tail_ec_positive_trace) + (cf_tail_ec_positive_trace))))))) /\ ((((exists ff_h_cf_ec_positive_trace_following_state. ff_h_cf_ec_positive_trace_following_state + S (((cf_new_a_ec_positive_trace) + (((cf_new_b_ec_positive_trace) + (cf_head_ec_positive_trace)) * S ((cf_new_b_ec_positive_trace) + (cf_head_ec_positive_trace)) + ((cf_head_ec_positive_trace) + (cf_head_ec_positive_trace)))) * S ((cf_new_a_ec_positive_trace) + (((cf_new_b_ec_positive_trace) + (cf_head_ec_positive_trace)) * S ((cf_new_b_ec_positive_trace) + (cf_head_ec_positive_trace)) + ((cf_head_ec_positive_trace) + (cf_head_ec_positive_trace)))) + ((((cf_new_b_ec_positive_trace) + (cf_head_ec_positive_trace)) * S ((cf_new_b_ec_positive_trace) + (cf_head_ec_positive_trace)) + ((cf_head_ec_positive_trace) + (cf_head_ec_positive_trace))) + (((cf_new_b_ec_positive_trace) + (cf_head_ec_positive_trace)) * S ((cf_new_b_ec_positive_trace) + (cf_head_ec_positive_trace)) + ((cf_head_ec_positive_trace) + (cf_head_ec_positive_trace))))) = S ((S (S cf_index_ec_positive_trace)) * ec_scale_positive)) /\ exists ff_q_cf_ec_positive_trace_following_state. ec_history_positive = ff_q_cf_ec_positive_trace_following_state * S ((S (S cf_index_ec_positive_trace)) * ec_scale_positive) + (((cf_new_a_ec_positive_trace) + (((cf_new_b_ec_positive_trace) + (cf_head_ec_positive_trace)) * S ((cf_new_b_ec_positive_trace) + (cf_head_ec_positive_trace)) + ((cf_head_ec_positive_trace) + (cf_head_ec_positive_trace)))) * S ((cf_new_a_ec_positive_trace) + (((cf_new_b_ec_positive_trace) + (cf_head_ec_positive_trace)) * S ((cf_new_b_ec_positive_trace) + (cf_head_ec_positive_trace)) + ((cf_head_ec_positive_trace) + (cf_head_ec_positive_trace)))) + ((((cf_new_b_ec_positive_trace) + (cf_head_ec_positive_trace)) * S ((cf_new_b_ec_positive_trace) + (cf_head_ec_positive_trace)) + ((cf_head_ec_positive_trace) + (cf_head_ec_positive_trace))) + (((cf_new_b_ec_positive_trace) + (cf_head_ec_positive_trace)) * S ((cf_new_b_ec_positive_trace) + (cf_head_ec_positive_trace)) + ((cf_head_ec_positive_trace) + (cf_head_ec_positive_trace))))))) /\ (cf_new_b_ec_positive_trace = cf_old_a_ec_positive_trace /\ (cf_new_a_ec_positive_trace = cf_new_b_ec_positive_trace * cf_quotient_ec_positive_trace + cf_old_b_ec_positive_trace /\ ((exists ff_lt_cf_ec_positive_trace_remainder. ff_lt_cf_ec_positive_trace_remainder + S cf_old_b_ec_positive_trace = cf_new_b_ec_positive_trace) /\ (cf_head_ec_positive_trace = S ((cf_quotient_ec_positive_trace + cf_tail_ec_positive_trace) * S (cf_quotient_ec_positive_trace + cf_tail_ec_positive_trace) + (cf_tail_ec_positive_trace + cf_tail_ec_positive_trace))))))))))) /\ ((((exists ec_gcd_left_positive_result. a = g * ec_gcd_left_positive_result) /\ (exists ec_gcd_right_positive_result. b = g * ec_gcd_right_positive_result)) /\ forall ec_gcd_common_positive_result. (exists ec_gcd_common_left_positive_result. a = ec_gcd_common_positive_result * ec_gcd_common_left_positive_result) -> (exists ec_gcd_common_right_positive_result. b = ec_gcd_common_positive_result * ec_gcd_common_right_positive_result) -> exists ec_gcd_greatest_positive_result. g = ec_gcd_common_positive_result * ec_gcd_greatest_positive_result))))Constructive proof overview
Generated structural guide
For every nonzero initial divisor, an actual certified Euclidean execution exists and makes at least one division.
The unchanged tactic script uses 2 declared prerequisites and contains 24 exact native proof lines.
Alpha v34 checked-use · first admitted v21 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
continued_fraction_nonzero_divisor_exists Alpha theorem; checked-use authorized gcd_exists_relational Stable 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. 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.
01Fix variables and assumptionsL1–3
02Use earlier factsL4–5
03Separate the logical casesL6–6
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L6
cases gcd_exists_relational
04Use earlier factsL7–8
05Establish htraceL9–11
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply continued fraction nonzero divisor exists.
- L9
have htrace : ∃ s. ∃ h. ∃ e. ∃ k. ¬s = 0 ∧ ContinuedFractionTrace(a,b,s,h,e,S k)Definitions: ContinuedFractionTrace - L10
apply continued_fraction_nonzero_divisor_exists - L11
exact hb
06Separate the logical casesL12–16
07Construct an explicit witnessL17–21
08Separate the logical casesL22–22
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L22
split
Original exact command ledger · 24 lines
- 0001
intro a - 0002
intro b - 0003
intro hb - 0004
specialize gcd_exists_relational a - 0005
specialize gcd_exists_relational b - 0006
cases gcd_exists_relational - 0007
specialize continued_fraction_nonzero_divisor_exists a - 0008
specialize continued_fraction_nonzero_divisor_exists b - 0009
have htrace : exists s h e k. (~(s = 0) /\ (exists cf_gcd_ec_nonzero_have. ((((exists ff_h_cf_ec_nonzero_have_initial_state. ff_h_cf_ec_nonzero_have_initial_state + S (((cf_gcd_ec_nonzero_have) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_ec_nonzero_have) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0))))) = S ((S (0)) * e)) /\ exists ff_q_cf_ec_nonzero_have_initial_state. h = ff_q_cf_ec_nonzero_have_initial_state * S ((S (0)) * e) + (((cf_gcd_ec_nonzero_have) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_ec_nonzero_have) + (((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_nonzero_have_terminal_state. ff_h_cf_ec_nonzero_have_terminal_state + S (((a) + (((b) + (s)) * S ((b) + (s)) + ((s) + (s)))) * S ((a) + (((b) + (s)) * S ((b) + (s)) + ((s) + (s)))) + ((((b) + (s)) * S ((b) + (s)) + ((s) + (s))) + (((b) + (s)) * S ((b) + (s)) + ((s) + (s))))) = S ((S (S k)) * e)) /\ exists ff_q_cf_ec_nonzero_have_terminal_state. h = ff_q_cf_ec_nonzero_have_terminal_state * S ((S (S k)) * e) + (((a) + (((b) + (s)) * S ((b) + (s)) + ((s) + (s)))) * S ((a) + (((b) + (s)) * S ((b) + (s)) + ((s) + (s)))) + ((((b) + (s)) * S ((b) + (s)) + ((s) + (s))) + (((b) + (s)) * S ((b) + (s)) + ((s) + (s))))))) /\ forall cf_index_ec_nonzero_have. (exists ff_lt_cf_ec_nonzero_have_index. ff_lt_cf_ec_nonzero_have_index + S cf_index_ec_nonzero_have = S k) -> exists cf_old_a_ec_nonzero_have cf_old_b_ec_nonzero_have cf_tail_ec_nonzero_have cf_new_a_ec_nonzero_have cf_new_b_ec_nonzero_have cf_head_ec_nonzero_have cf_quotient_ec_nonzero_have. ((((exists ff_h_cf_ec_nonzero_have_previous_state. ff_h_cf_ec_nonzero_have_previous_state + S (((cf_old_a_ec_nonzero_have) + (((cf_old_b_ec_nonzero_have) + (cf_tail_ec_nonzero_have)) * S ((cf_old_b_ec_nonzero_have) + (cf_tail_ec_nonzero_have)) + ((cf_tail_ec_nonzero_have) + (cf_tail_ec_nonzero_have)))) * S ((cf_old_a_ec_nonzero_have) + (((cf_old_b_ec_nonzero_have) + (cf_tail_ec_nonzero_have)) * S ((cf_old_b_ec_nonzero_have) + (cf_tail_ec_nonzero_have)) + ((cf_tail_ec_nonzero_have) + (cf_tail_ec_nonzero_have)))) + ((((cf_old_b_ec_nonzero_have) + (cf_tail_ec_nonzero_have)) * S ((cf_old_b_ec_nonzero_have) + (cf_tail_ec_nonzero_have)) + ((cf_tail_ec_nonzero_have) + (cf_tail_ec_nonzero_have))) + (((cf_old_b_ec_nonzero_have) + (cf_tail_ec_nonzero_have)) * S ((cf_old_b_ec_nonzero_have) + (cf_tail_ec_nonzero_have)) + ((cf_tail_ec_nonzero_have) + (cf_tail_ec_nonzero_have))))) = S ((S (cf_index_ec_nonzero_have)) * e)) /\ exists ff_q_cf_ec_nonzero_have_previous_state. h = ff_q_cf_ec_nonzero_have_previous_state * S ((S (cf_index_ec_nonzero_have)) * e) + (((cf_old_a_ec_nonzero_have) + (((cf_old_b_ec_nonzero_have) + (cf_tail_ec_nonzero_have)) * S ((cf_old_b_ec_nonzero_have) + (cf_tail_ec_nonzero_have)) + ((cf_tail_ec_nonzero_have) + (cf_tail_ec_nonzero_have)))) * S ((cf_old_a_ec_nonzero_have) + (((cf_old_b_ec_nonzero_have) + (cf_tail_ec_nonzero_have)) * S ((cf_old_b_ec_nonzero_have) + (cf_tail_ec_nonzero_have)) + ((cf_tail_ec_nonzero_have) + (cf_tail_ec_nonzero_have)))) + ((((cf_old_b_ec_nonzero_have) + (cf_tail_ec_nonzero_have)) * S ((cf_old_b_ec_nonzero_have) + (cf_tail_ec_nonzero_have)) + ((cf_tail_ec_nonzero_have) + (cf_tail_ec_nonzero_have))) + (((cf_old_b_ec_nonzero_have) + (cf_tail_ec_nonzero_have)) * S ((cf_old_b_ec_nonzero_have) + (cf_tail_ec_nonzero_have)) + ((cf_tail_ec_nonzero_have) + (cf_tail_ec_nonzero_have))))))) /\ ((((exists ff_h_cf_ec_nonzero_have_following_state. ff_h_cf_ec_nonzero_have_following_state + S (((cf_new_a_ec_nonzero_have) + (((cf_new_b_ec_nonzero_have) + (cf_head_ec_nonzero_have)) * S ((cf_new_b_ec_nonzero_have) + (cf_head_ec_nonzero_have)) + ((cf_head_ec_nonzero_have) + (cf_head_ec_nonzero_have)))) * S ((cf_new_a_ec_nonzero_have) + (((cf_new_b_ec_nonzero_have) + (cf_head_ec_nonzero_have)) * S ((cf_new_b_ec_nonzero_have) + (cf_head_ec_nonzero_have)) + ((cf_head_ec_nonzero_have) + (cf_head_ec_nonzero_have)))) + ((((cf_new_b_ec_nonzero_have) + (cf_head_ec_nonzero_have)) * S ((cf_new_b_ec_nonzero_have) + (cf_head_ec_nonzero_have)) + ((cf_head_ec_nonzero_have) + (cf_head_ec_nonzero_have))) + (((cf_new_b_ec_nonzero_have) + (cf_head_ec_nonzero_have)) * S ((cf_new_b_ec_nonzero_have) + (cf_head_ec_nonzero_have)) + ((cf_head_ec_nonzero_have) + (cf_head_ec_nonzero_have))))) = S ((S (S cf_index_ec_nonzero_have)) * e)) /\ exists ff_q_cf_ec_nonzero_have_following_state. h = ff_q_cf_ec_nonzero_have_following_state * S ((S (S cf_index_ec_nonzero_have)) * e) + (((cf_new_a_ec_nonzero_have) + (((cf_new_b_ec_nonzero_have) + (cf_head_ec_nonzero_have)) * S ((cf_new_b_ec_nonzero_have) + (cf_head_ec_nonzero_have)) + ((cf_head_ec_nonzero_have) + (cf_head_ec_nonzero_have)))) * S ((cf_new_a_ec_nonzero_have) + (((cf_new_b_ec_nonzero_have) + (cf_head_ec_nonzero_have)) * S ((cf_new_b_ec_nonzero_have) + (cf_head_ec_nonzero_have)) + ((cf_head_ec_nonzero_have) + (cf_head_ec_nonzero_have)))) + ((((cf_new_b_ec_nonzero_have) + (cf_head_ec_nonzero_have)) * S ((cf_new_b_ec_nonzero_have) + (cf_head_ec_nonzero_have)) + ((cf_head_ec_nonzero_have) + (cf_head_ec_nonzero_have))) + (((cf_new_b_ec_nonzero_have) + (cf_head_ec_nonzero_have)) * S ((cf_new_b_ec_nonzero_have) + (cf_head_ec_nonzero_have)) + ((cf_head_ec_nonzero_have) + (cf_head_ec_nonzero_have))))))) /\ (cf_new_b_ec_nonzero_have = cf_old_a_ec_nonzero_have /\ (cf_new_a_ec_nonzero_have = cf_new_b_ec_nonzero_have * cf_quotient_ec_nonzero_have + cf_old_b_ec_nonzero_have /\ ((exists ff_lt_cf_ec_nonzero_have_remainder. ff_lt_cf_ec_nonzero_have_remainder + S cf_old_b_ec_nonzero_have = cf_new_b_ec_nonzero_have) /\ (cf_head_ec_nonzero_have = S ((cf_quotient_ec_nonzero_have + cf_tail_ec_nonzero_have) * S (cf_quotient_ec_nonzero_have + cf_tail_ec_nonzero_have) + (cf_tail_ec_nonzero_have + cf_tail_ec_nonzero_have)))))))))))) - 0010
apply continued_fraction_nonzero_divisor_exists - 0011
exact hb - 0012
cases htrace - 0013
cases htrace_witness - 0014
cases htrace_witness_witness - 0015
cases htrace_witness_witness_witness - 0016
cases htrace_witness_witness_witness_witness - 0017
exists x - 0018
exists x4 - 0019
exists x1 - 0020
exists x2 - 0021
exists x3 - 0022
split - 0023
exact htrace_witness_witness_witness_witness_right - 0024
exact gcd_exists_relational_witness