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.
The exact G101 milestone is fully proved, including the stronger checked bound k≤2·BitLen(b), a real beta-coded execution, and its actual terminal gcd. The independent T13 determinant/rank/integer-span substrate is now closed in the separate Alpha-v27 integer-linear-algebra branch. Full T13 proof · Alpha v27
Exact theorem in conservative defined notation
∀ a. ∀ b. ∀ l. BitLen(b,l) → ∃ x. ∃ y. EuclideanAnchoredExecution(a,b,x,y) ∧ Le(y,2 · l + 1)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 29 lines are the exact independently kernel-checked original script.
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–4
02Use earlier factsL5–7
03Establish hstrongL8–10
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply euclidean log execution strong.
- L8
have hstrong : ∃ g. ∃ k. EuclideanAnchoredExecution(a,b,g,k) ∧ Le(k,l + l)Definitions: EuclideanAnchoredExecutionLeOriginal native command in the exact edition - L9
apply euclidean_log_execution_strong - L10
exact hlength
04Separate the logical casesL11–13
05Construct an explicit witnessL14–15
06Separate the logical casesL16–16
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L16
split
07Use earlier factsL17–19
08Establish hweakenedL20–22
09Separate the logical casesL23–23
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L23
cases hweakened
10Construct an explicit witnessL24–24
Supply the displayed value, then prove that it has the required property.
- L24
exists x2
11Use earlier factsL25–25
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L25
specialize two_mul_eq_add_self l
12Calculate and transport equalitiesL26–28
13Use earlier factsL29–29
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L29
exact hweakened_witness
Original defined command ledger · 29 lines
- 0001
intro a - 0002
intro b - 0003
intro l - 0004
intro hlength - 0005
specialize euclidean_log_execution_strong a - 0006
specialize euclidean_log_execution_strong b - 0007
specialize euclidean_log_execution_strong l - 0008
have hstrong : exists g k. ((exists egt_list_elb_anchored egt_history_elb_anchored egt_scale_elb_anchored. ((exists cf_gcd_egt_elb_anchored_trace. ((((exists ff_h_cf_egt_elb_anchored_trace_initial_state. ff_h_cf_egt_elb_anchored_trace_initial_state + S (((cf_gcd_egt_elb_anchored_trace) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_egt_elb_anchored_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)) * egt_scale_elb_anchored)) /\ exists ff_q_cf_egt_elb_anchored_trace_initial_state. egt_history_elb_anchored = ff_q_cf_egt_elb_anchored_trace_initial_state * S ((S (0)) * egt_scale_elb_anchored) + (((cf_gcd_egt_elb_anchored_trace) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_egt_elb_anchored_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_elb_anchored_trace_terminal_state. ff_h_cf_egt_elb_anchored_trace_terminal_state + S (((a) + (((b) + (egt_list_elb_anchored)) * S ((b) + (egt_list_elb_anchored)) + ((egt_list_elb_anchored) + (egt_list_elb_anchored)))) * S ((a) + (((b) + (egt_list_elb_anchored)) * S ((b) + (egt_list_elb_anchored)) + ((egt_list_elb_anchored) + (egt_list_elb_anchored)))) + ((((b) + (egt_list_elb_anchored)) * S ((b) + (egt_list_elb_anchored)) + ((egt_list_elb_anchored) + (egt_list_elb_anchored))) + (((b) + (egt_list_elb_anchored)) * S ((b) + (egt_list_elb_anchored)) + ((egt_list_elb_anchored) + (egt_list_elb_anchored))))) = S ((S (k)) * egt_scale_elb_anchored)) /\ exists ff_q_cf_egt_elb_anchored_trace_terminal_state. egt_history_elb_anchored = ff_q_cf_egt_elb_anchored_trace_terminal_state * S ((S (k)) * egt_scale_elb_anchored) + (((a) + (((b) + (egt_list_elb_anchored)) * S ((b) + (egt_list_elb_anchored)) + ((egt_list_elb_anchored) + (egt_list_elb_anchored)))) * S ((a) + (((b) + (egt_list_elb_anchored)) * S ((b) + (egt_list_elb_anchored)) + ((egt_list_elb_anchored) + (egt_list_elb_anchored)))) + ((((b) + (egt_list_elb_anchored)) * S ((b) + (egt_list_elb_anchored)) + ((egt_list_elb_anchored) + (egt_list_elb_anchored))) + (((b) + (egt_list_elb_anchored)) * S ((b) + (egt_list_elb_anchored)) + ((egt_list_elb_anchored) + (egt_list_elb_anchored))))))) /\ forall cf_index_egt_elb_anchored_trace. (exists ff_lt_cf_egt_elb_anchored_trace_index. ff_lt_cf_egt_elb_anchored_trace_index + S cf_index_egt_elb_anchored_trace = k) -> exists cf_old_a_egt_elb_anchored_trace cf_old_b_egt_elb_anchored_trace cf_tail_egt_elb_anchored_trace cf_new_a_egt_elb_anchored_trace cf_new_b_egt_elb_anchored_trace cf_head_egt_elb_anchored_trace cf_quotient_egt_elb_anchored_trace. ((((exists ff_h_cf_egt_elb_anchored_trace_previous_state. ff_h_cf_egt_elb_anchored_trace_previous_state + S (((cf_old_a_egt_elb_anchored_trace) + (((cf_old_b_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace)) * S ((cf_old_b_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace)) + ((cf_tail_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace)))) * S ((cf_old_a_egt_elb_anchored_trace) + (((cf_old_b_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace)) * S ((cf_old_b_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace)) + ((cf_tail_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace)))) + ((((cf_old_b_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace)) * S ((cf_old_b_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace)) + ((cf_tail_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace))) + (((cf_old_b_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace)) * S ((cf_old_b_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace)) + ((cf_tail_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace))))) = S ((S (cf_index_egt_elb_anchored_trace)) * egt_scale_elb_anchored)) /\ exists ff_q_cf_egt_elb_anchored_trace_previous_state. egt_history_elb_anchored = ff_q_cf_egt_elb_anchored_trace_previous_state * S ((S (cf_index_egt_elb_anchored_trace)) * egt_scale_elb_anchored) + (((cf_old_a_egt_elb_anchored_trace) + (((cf_old_b_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace)) * S ((cf_old_b_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace)) + ((cf_tail_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace)))) * S ((cf_old_a_egt_elb_anchored_trace) + (((cf_old_b_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace)) * S ((cf_old_b_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace)) + ((cf_tail_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace)))) + ((((cf_old_b_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace)) * S ((cf_old_b_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace)) + ((cf_tail_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace))) + (((cf_old_b_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace)) * S ((cf_old_b_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace)) + ((cf_tail_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace))))))) /\ ((((exists ff_h_cf_egt_elb_anchored_trace_following_state. ff_h_cf_egt_elb_anchored_trace_following_state + S (((cf_new_a_egt_elb_anchored_trace) + (((cf_new_b_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace)) * S ((cf_new_b_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace)) + ((cf_head_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace)))) * S ((cf_new_a_egt_elb_anchored_trace) + (((cf_new_b_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace)) * S ((cf_new_b_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace)) + ((cf_head_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace)))) + ((((cf_new_b_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace)) * S ((cf_new_b_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace)) + ((cf_head_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace))) + (((cf_new_b_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace)) * S ((cf_new_b_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace)) + ((cf_head_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace))))) = S ((S (S cf_index_egt_elb_anchored_trace)) * egt_scale_elb_anchored)) /\ exists ff_q_cf_egt_elb_anchored_trace_following_state. egt_history_elb_anchored = ff_q_cf_egt_elb_anchored_trace_following_state * S ((S (S cf_index_egt_elb_anchored_trace)) * egt_scale_elb_anchored) + (((cf_new_a_egt_elb_anchored_trace) + (((cf_new_b_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace)) * S ((cf_new_b_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace)) + ((cf_head_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace)))) * S ((cf_new_a_egt_elb_anchored_trace) + (((cf_new_b_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace)) * S ((cf_new_b_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace)) + ((cf_head_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace)))) + ((((cf_new_b_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace)) * S ((cf_new_b_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace)) + ((cf_head_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace))) + (((cf_new_b_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace)) * S ((cf_new_b_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace)) + ((cf_head_egt_elb_anchored_trace) + (cf_head_egt_elb_anchored_trace))))))) /\ (cf_new_b_egt_elb_anchored_trace = cf_old_a_egt_elb_anchored_trace /\ (cf_new_a_egt_elb_anchored_trace = cf_new_b_egt_elb_anchored_trace * cf_quotient_egt_elb_anchored_trace + cf_old_b_egt_elb_anchored_trace /\ ((exists ff_lt_cf_egt_elb_anchored_trace_remainder. ff_lt_cf_egt_elb_anchored_trace_remainder + S cf_old_b_egt_elb_anchored_trace = cf_new_b_egt_elb_anchored_trace) /\ (cf_head_egt_elb_anchored_trace = S ((cf_quotient_egt_elb_anchored_trace + cf_tail_egt_elb_anchored_trace) * S (cf_quotient_egt_elb_anchored_trace + cf_tail_egt_elb_anchored_trace) + (cf_tail_egt_elb_anchored_trace + cf_tail_egt_elb_anchored_trace))))))))))) /\ ((((exists ff_h_cf_egt_elb_anchored_initial_state. ff_h_cf_egt_elb_anchored_initial_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)) * egt_scale_elb_anchored)) /\ exists ff_q_cf_egt_elb_anchored_initial_state. egt_history_elb_anchored = ff_q_cf_egt_elb_anchored_initial_state * S ((S (0)) * egt_scale_elb_anchored) + (((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 ec_gcd_left_egt_elb_anchored_result. a = g * ec_gcd_left_egt_elb_anchored_result) /\ (exists ec_gcd_right_egt_elb_anchored_result. b = g * ec_gcd_right_egt_elb_anchored_result)) /\ forall ec_gcd_common_egt_elb_anchored_result. (exists ec_gcd_common_left_egt_elb_anchored_result. a = ec_gcd_common_egt_elb_anchored_result * ec_gcd_common_left_egt_elb_anchored_result) -> (exists ec_gcd_common_right_egt_elb_anchored_result. b = ec_gcd_common_egt_elb_anchored_result * ec_gcd_common_right_egt_elb_anchored_result) -> exists ec_gcd_greatest_egt_elb_anchored_result. g = ec_gcd_common_egt_elb_anchored_result * ec_gcd_greatest_egt_elb_anchored_result))))) /\ exists gap. gap + k = l + l) - 0009
apply euclidean_log_execution_strong - 0010
exact hlength - 0011
cases hstrong - 0012
cases hstrong_witness - 0013
cases hstrong_witness_witness - 0014
exists x - 0015
exists x1 - 0016
split - 0017
exact hstrong_witness_witness_left - 0018
specialize le_succ x1 - 0019
specialize le_succ (l + l) - 0020
have hweakened : exists gap. gap + x1 = S (l + l) - 0021
apply le_succ - 0022
exact hstrong_witness_witness_right - 0023
cases hweakened - 0024
exists x2 - 0025
specialize two_mul_eq_add_self l - 0026
rewrite two_mul_eq_add_self - 0027
rewrite PA4 - 0028
rewrite PA3 - 0029
exact hweakened_witness