GT000F

euclidean_trace_terminal_gcd_exists

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

Every complete actual beta-coded Euclidean history contains a witnessed terminal zero state whose encoded value is the genuine gcd of its inputs.

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 s h e l. (exists cf_gcd_egt_trace. ((((exists ff_h_cf_egt_trace_initial_state. ff_h_cf_egt_trace_initial_state + S (((cf_gcd_egt_trace) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_egt_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)) * e)) /\ exists ff_q_cf_egt_trace_initial_state. h = ff_q_cf_egt_trace_initial_state * S ((S (0)) * e) + (((cf_gcd_egt_trace) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_egt_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_egt_trace_terminal_state. ff_h_cf_egt_trace_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 (l)) * e)) /\ exists ff_q_cf_egt_trace_terminal_state. h = ff_q_cf_egt_trace_terminal_state * S ((S (l)) * 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_egt_trace. (exists ff_lt_cf_egt_trace_index. ff_lt_cf_egt_trace_index + S cf_index_egt_trace = l) -> exists cf_old_a_egt_trace cf_old_b_egt_trace cf_tail_egt_trace cf_new_a_egt_trace cf_new_b_egt_trace cf_head_egt_trace cf_quotient_egt_trace. ((((exists ff_h_cf_egt_trace_previous_state. ff_h_cf_egt_trace_previous_state + S (((cf_old_a_egt_trace) + (((cf_old_b_egt_trace) + (cf_tail_egt_trace)) * S ((cf_old_b_egt_trace) + (cf_tail_egt_trace)) + ((cf_tail_egt_trace) + (cf_tail_egt_trace)))) * S ((cf_old_a_egt_trace) + (((cf_old_b_egt_trace) + (cf_tail_egt_trace)) * S ((cf_old_b_egt_trace) + (cf_tail_egt_trace)) + ((cf_tail_egt_trace) + (cf_tail_egt_trace)))) + ((((cf_old_b_egt_trace) + (cf_tail_egt_trace)) * S ((cf_old_b_egt_trace) + (cf_tail_egt_trace)) + ((cf_tail_egt_trace) + (cf_tail_egt_trace))) + (((cf_old_b_egt_trace) + (cf_tail_egt_trace)) * S ((cf_old_b_egt_trace) + (cf_tail_egt_trace)) + ((cf_tail_egt_trace) + (cf_tail_egt_trace))))) = S ((S (cf_index_egt_trace)) * e)) /\ exists ff_q_cf_egt_trace_previous_state. h = ff_q_cf_egt_trace_previous_state * S ((S (cf_index_egt_trace)) * e) + (((cf_old_a_egt_trace) + (((cf_old_b_egt_trace) + (cf_tail_egt_trace)) * S ((cf_old_b_egt_trace) + (cf_tail_egt_trace)) + ((cf_tail_egt_trace) + (cf_tail_egt_trace)))) * S ((cf_old_a_egt_trace) + (((cf_old_b_egt_trace) + (cf_tail_egt_trace)) * S ((cf_old_b_egt_trace) + (cf_tail_egt_trace)) + ((cf_tail_egt_trace) + (cf_tail_egt_trace)))) + ((((cf_old_b_egt_trace) + (cf_tail_egt_trace)) * S ((cf_old_b_egt_trace) + (cf_tail_egt_trace)) + ((cf_tail_egt_trace) + (cf_tail_egt_trace))) + (((cf_old_b_egt_trace) + (cf_tail_egt_trace)) * S ((cf_old_b_egt_trace) + (cf_tail_egt_trace)) + ((cf_tail_egt_trace) + (cf_tail_egt_trace))))))) /\ ((((exists ff_h_cf_egt_trace_following_state. ff_h_cf_egt_trace_following_state + S (((cf_new_a_egt_trace) + (((cf_new_b_egt_trace) + (cf_head_egt_trace)) * S ((cf_new_b_egt_trace) + (cf_head_egt_trace)) + ((cf_head_egt_trace) + (cf_head_egt_trace)))) * S ((cf_new_a_egt_trace) + (((cf_new_b_egt_trace) + (cf_head_egt_trace)) * S ((cf_new_b_egt_trace) + (cf_head_egt_trace)) + ((cf_head_egt_trace) + (cf_head_egt_trace)))) + ((((cf_new_b_egt_trace) + (cf_head_egt_trace)) * S ((cf_new_b_egt_trace) + (cf_head_egt_trace)) + ((cf_head_egt_trace) + (cf_head_egt_trace))) + (((cf_new_b_egt_trace) + (cf_head_egt_trace)) * S ((cf_new_b_egt_trace) + (cf_head_egt_trace)) + ((cf_head_egt_trace) + (cf_head_egt_trace))))) = S ((S (S cf_index_egt_trace)) * e)) /\ exists ff_q_cf_egt_trace_following_state. h = ff_q_cf_egt_trace_following_state * S ((S (S cf_index_egt_trace)) * e) + (((cf_new_a_egt_trace) + (((cf_new_b_egt_trace) + (cf_head_egt_trace)) * S ((cf_new_b_egt_trace) + (cf_head_egt_trace)) + ((cf_head_egt_trace) + (cf_head_egt_trace)))) * S ((cf_new_a_egt_trace) + (((cf_new_b_egt_trace) + (cf_head_egt_trace)) * S ((cf_new_b_egt_trace) + (cf_head_egt_trace)) + ((cf_head_egt_trace) + (cf_head_egt_trace)))) + ((((cf_new_b_egt_trace) + (cf_head_egt_trace)) * S ((cf_new_b_egt_trace) + (cf_head_egt_trace)) + ((cf_head_egt_trace) + (cf_head_egt_trace))) + (((cf_new_b_egt_trace) + (cf_head_egt_trace)) * S ((cf_new_b_egt_trace) + (cf_head_egt_trace)) + ((cf_head_egt_trace) + (cf_head_egt_trace))))))) /\ (cf_new_b_egt_trace = cf_old_a_egt_trace /\ (cf_new_a_egt_trace = cf_new_b_egt_trace * cf_quotient_egt_trace + cf_old_b_egt_trace /\ ((exists ff_lt_cf_egt_trace_remainder. ff_lt_cf_egt_trace_remainder + S cf_old_b_egt_trace = cf_new_b_egt_trace) /\ (cf_head_egt_trace = S ((cf_quotient_egt_trace + cf_tail_egt_trace) * S (cf_quotient_egt_trace + cf_tail_egt_trace) + (cf_tail_egt_trace + cf_tail_egt_trace))))))))))) -> exists g. ((((exists ff_h_cf_egt_start_state. ff_h_cf_egt_start_state + S (((g) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((g) + (((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_egt_start_state. h = ff_q_cf_egt_start_state * S ((S (0)) * e) + (((g) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((g) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0))))))) /\ ((((exists hag_left_factor_egt_terminal. a = g * hag_left_factor_egt_terminal) /\ (exists hag_right_factor_egt_terminal. b = g * hag_right_factor_egt_terminal)) /\ forall hag_divisor_egt_terminal. (exists hag_common_left_egt_terminal. a = hag_divisor_egt_terminal * hag_common_left_egt_terminal) -> (exists hag_common_right_egt_terminal. b = hag_divisor_egt_terminal * hag_common_right_egt_terminal) -> exists hag_greatest_factor_egt_terminal. g = hag_divisor_egt_terminal * hag_greatest_factor_egt_terminal)))

Constructive proof overview

Generated structural guide

Every complete actual beta-coded Euclidean history contains a witnessed terminal zero state whose encoded value is the genuine gcd of its inputs.

The unchanged tactic script uses 1 declared prerequisite and contains 25 exact native proof lines.

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

Proof neighborhood

Direct dependencies

Direct 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

25 script commands · 7 reading checkpoints · 1 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.

Named ingredients (1)

Long local formulas use this family’s existing definitions. Each new abbreviation was expanded back to the identical native formula, including its free-variable context. The original edition is preserved below.

01Fix variables and assumptionsL1–7

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

  1. L1
    intro a
  2. L2
    intro b
  3. L3
    intro s
  4. L4
    intro h
  5. L5
    intro e
  6. L6
    intro l
  7. L7
    intro htrace
02Establish hcopyL8–9

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

  1. L8
    have hcopy : ContinuedFractionTrace(a,b,s,h,e,l)Definitions: ContinuedFractionTrace
  2. L9
    exact htrace
03Separate the logical casesL10–12

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

  1. L10
    cases htrace
  2. L11
    cases htrace_witness
  3. L12
    cases htrace_witness_right
04Construct an explicit witnessL13–13

Supply the displayed value, then prove that it has the required property.

  1. L13
    exists x
05Separate the logical casesL14–14

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

  1. L14
    split
06Use earlier factsL15–24

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

  1. L15
    exact htrace_witness_left
  2. L16
    specialize euclidean_trace_initial_state_is_gcd a
  3. L17
    specialize euclidean_trace_initial_state_is_gcd b
  4. L18
    specialize euclidean_trace_initial_state_is_gcd s
  5. L19
    specialize euclidean_trace_initial_state_is_gcd h
  6. L20
    specialize euclidean_trace_initial_state_is_gcd e
  7. L21
    specialize euclidean_trace_initial_state_is_gcd l
  8. L22
    specialize euclidean_trace_initial_state_is_gcd x
  9. L23
    apply euclidean_trace_initial_state_is_gcd
  10. L24
    exact hcopy
07Use earlier factsL25–25

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

  1. L25
    exact htrace_witness_left

Library-wide reading audit

Original exact command ledger · 25 lines
  1. 0001intro a
  2. 0002intro b
  3. 0003intro s
  4. 0004intro h
  5. 0005intro e
  6. 0006intro l
  7. 0007intro htrace
  8. 0008have hcopy : exists cf_gcd_egt_trace. ((((exists ff_h_cf_egt_trace_initial_state. ff_h_cf_egt_trace_initial_state + S (((cf_gcd_egt_trace) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_egt_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)) * e)) /\ exists ff_q_cf_egt_trace_initial_state. h = ff_q_cf_egt_trace_initial_state * S ((S (0)) * e) + (((cf_gcd_egt_trace) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_egt_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_egt_trace_terminal_state. ff_h_cf_egt_trace_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 (l)) * e)) /\ exists ff_q_cf_egt_trace_terminal_state. h = ff_q_cf_egt_trace_terminal_state * S ((S (l)) * 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_egt_trace. (exists ff_lt_cf_egt_trace_index. ff_lt_cf_egt_trace_index + S cf_index_egt_trace = l) -> exists cf_old_a_egt_trace cf_old_b_egt_trace cf_tail_egt_trace cf_new_a_egt_trace cf_new_b_egt_trace cf_head_egt_trace cf_quotient_egt_trace. ((((exists ff_h_cf_egt_trace_previous_state. ff_h_cf_egt_trace_previous_state + S (((cf_old_a_egt_trace) + (((cf_old_b_egt_trace) + (cf_tail_egt_trace)) * S ((cf_old_b_egt_trace) + (cf_tail_egt_trace)) + ((cf_tail_egt_trace) + (cf_tail_egt_trace)))) * S ((cf_old_a_egt_trace) + (((cf_old_b_egt_trace) + (cf_tail_egt_trace)) * S ((cf_old_b_egt_trace) + (cf_tail_egt_trace)) + ((cf_tail_egt_trace) + (cf_tail_egt_trace)))) + ((((cf_old_b_egt_trace) + (cf_tail_egt_trace)) * S ((cf_old_b_egt_trace) + (cf_tail_egt_trace)) + ((cf_tail_egt_trace) + (cf_tail_egt_trace))) + (((cf_old_b_egt_trace) + (cf_tail_egt_trace)) * S ((cf_old_b_egt_trace) + (cf_tail_egt_trace)) + ((cf_tail_egt_trace) + (cf_tail_egt_trace))))) = S ((S (cf_index_egt_trace)) * e)) /\ exists ff_q_cf_egt_trace_previous_state. h = ff_q_cf_egt_trace_previous_state * S ((S (cf_index_egt_trace)) * e) + (((cf_old_a_egt_trace) + (((cf_old_b_egt_trace) + (cf_tail_egt_trace)) * S ((cf_old_b_egt_trace) + (cf_tail_egt_trace)) + ((cf_tail_egt_trace) + (cf_tail_egt_trace)))) * S ((cf_old_a_egt_trace) + (((cf_old_b_egt_trace) + (cf_tail_egt_trace)) * S ((cf_old_b_egt_trace) + (cf_tail_egt_trace)) + ((cf_tail_egt_trace) + (cf_tail_egt_trace)))) + ((((cf_old_b_egt_trace) + (cf_tail_egt_trace)) * S ((cf_old_b_egt_trace) + (cf_tail_egt_trace)) + ((cf_tail_egt_trace) + (cf_tail_egt_trace))) + (((cf_old_b_egt_trace) + (cf_tail_egt_trace)) * S ((cf_old_b_egt_trace) + (cf_tail_egt_trace)) + ((cf_tail_egt_trace) + (cf_tail_egt_trace))))))) /\ ((((exists ff_h_cf_egt_trace_following_state. ff_h_cf_egt_trace_following_state + S (((cf_new_a_egt_trace) + (((cf_new_b_egt_trace) + (cf_head_egt_trace)) * S ((cf_new_b_egt_trace) + (cf_head_egt_trace)) + ((cf_head_egt_trace) + (cf_head_egt_trace)))) * S ((cf_new_a_egt_trace) + (((cf_new_b_egt_trace) + (cf_head_egt_trace)) * S ((cf_new_b_egt_trace) + (cf_head_egt_trace)) + ((cf_head_egt_trace) + (cf_head_egt_trace)))) + ((((cf_new_b_egt_trace) + (cf_head_egt_trace)) * S ((cf_new_b_egt_trace) + (cf_head_egt_trace)) + ((cf_head_egt_trace) + (cf_head_egt_trace))) + (((cf_new_b_egt_trace) + (cf_head_egt_trace)) * S ((cf_new_b_egt_trace) + (cf_head_egt_trace)) + ((cf_head_egt_trace) + (cf_head_egt_trace))))) = S ((S (S cf_index_egt_trace)) * e)) /\ exists ff_q_cf_egt_trace_following_state. h = ff_q_cf_egt_trace_following_state * S ((S (S cf_index_egt_trace)) * e) + (((cf_new_a_egt_trace) + (((cf_new_b_egt_trace) + (cf_head_egt_trace)) * S ((cf_new_b_egt_trace) + (cf_head_egt_trace)) + ((cf_head_egt_trace) + (cf_head_egt_trace)))) * S ((cf_new_a_egt_trace) + (((cf_new_b_egt_trace) + (cf_head_egt_trace)) * S ((cf_new_b_egt_trace) + (cf_head_egt_trace)) + ((cf_head_egt_trace) + (cf_head_egt_trace)))) + ((((cf_new_b_egt_trace) + (cf_head_egt_trace)) * S ((cf_new_b_egt_trace) + (cf_head_egt_trace)) + ((cf_head_egt_trace) + (cf_head_egt_trace))) + (((cf_new_b_egt_trace) + (cf_head_egt_trace)) * S ((cf_new_b_egt_trace) + (cf_head_egt_trace)) + ((cf_head_egt_trace) + (cf_head_egt_trace))))))) /\ (cf_new_b_egt_trace = cf_old_a_egt_trace /\ (cf_new_a_egt_trace = cf_new_b_egt_trace * cf_quotient_egt_trace + cf_old_b_egt_trace /\ ((exists ff_lt_cf_egt_trace_remainder. ff_lt_cf_egt_trace_remainder + S cf_old_b_egt_trace = cf_new_b_egt_trace) /\ (cf_head_egt_trace = S ((cf_quotient_egt_trace + cf_tail_egt_trace) * S (cf_quotient_egt_trace + cf_tail_egt_trace) + (cf_tail_egt_trace + cf_tail_egt_trace))))))))))
  9. 0009exact htrace
  10. 0010cases htrace
  11. 0011cases htrace_witness
  12. 0012cases htrace_witness_right
  13. 0013exists x
  14. 0014split
  15. 0015exact htrace_witness_left
  16. 0016specialize euclidean_trace_initial_state_is_gcd a
  17. 0017specialize euclidean_trace_initial_state_is_gcd b
  18. 0018specialize euclidean_trace_initial_state_is_gcd s
  19. 0019specialize euclidean_trace_initial_state_is_gcd h
  20. 0020specialize euclidean_trace_initial_state_is_gcd e
  21. 0021specialize euclidean_trace_initial_state_is_gcd l
  22. 0022specialize euclidean_trace_initial_state_is_gcd x
  23. 0023apply euclidean_trace_initial_state_is_gcd
  24. 0024exact hcopy
  25. 0025exact htrace_witness_left