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.
G101 was OPEN at this family's Alpha-v22 first admission: its complete anchored trace and actual terminal gcd were proved but its logarithmic bound was not. G101 is now CLOSED in Alpha v23, including the exact first-order bound steps≤2*BitLen(b)+1.
Exact theorem in conservative defined notation
∀ a. ∀ b. ∀ s. ∀ h. ∀ e. ∀ l. ∀ g. ContinuedFractionTrace(a,b,s,h,e,l) → EuclideanStateAt(h,e,0,g,0,0) → ∀ x. Le(x,l) → ∃ y. ∃ z. ∃ n. EuclideanStateAt(h,e,x,y,z,n) ∧ IsGCD(g,y,z)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 84 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–9
02Separate the logical casesL10–12
03Fix variables and assumptionsL13–13
Work with arbitrary variables or the premises of the current implication.
- L13
intro i
04Induction on iL14–15
05Construct an explicit witnessL16–18
06Separate the logical casesL19–19
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L19
split
07Use earlier factsL20–22
08Fix variables and assumptionsL23–23
Work with arbitrary variables or the premises of the current implication.
- L23
intro hbound
09Establish hprevboundL24–28
10Establish hpreviousL29–31
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L29
have hprevious : ∃ egt_left_previous. ∃ egt_right_previous. ∃ egt_list_previous. EuclideanStateAt(h,e,i,egt_left_previous,egt_right_previous,egt_list_previous) ∧ IsGCD(g,egt_left_previous,egt_right_previous)Definitions: EuclideanStateAtIsGCDOriginal native command in the exact edition - L30
apply IH - L31
exact hprevbound
11Separate the logical casesL32–35
12Establish htransitionL36–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply htrace witness right right.
- L36Definitions: ListCellEuclideanStateAtLtOriginal native command in the exact edition
have htransition · expand full local formula (636 characters)
have htransition : ∃ egt_old_a_induction. ∃ egt_old_b_induction. ∃ egt_old_list_induction. ∃ egt_new_a_induction. ∃ egt_new_b_induction. ∃ egt_new_list_induction. ∃ egt_quotient_induction. EuclideanStateAt(h,e,i,egt_old_a_induction,egt_old_b_induction,egt_old_list_induction) ∧ (EuclideanStateAt(h,e,S i,egt_new_a_induction,egt_new_b_induction,egt_new_list_induction) ∧ (egt_new_b_induction = egt_old_a_induction ∧ (egt_new_a_induction = egt_new_b_induction · egt_quotient_induction + egt_old_b_induction ∧ (Lt(egt_old_b_induction,egt_new_b_induction) ∧ ListCell(egt_new_list_induction,egt_quotient_induction,egt_old_list_induction))))) - L37
specialize htrace_witness_right_right i - L38
apply htrace_witness_right_right - L39
exact hbound
13Separate the logical casesL40–49
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L40
cases htransition - L41
cases htransition_witness - L42
cases htransition_witness_witness - L43
cases htransition_witness_witness_witness - L44
cases htransition_witness_witness_witness_witness - L45
cases htransition_witness_witness_witness_witness_witness - L46
cases htransition_witness_witness_witness_witness_witness_witness - L47
cases htransition_witness_witness_witness_witness_witness_witness_witness - L48
cases htransition_witness_witness_witness_witness_witness_witness_witness_right - L49
cases htransition_witness_witness_witness_witness_witness_witness_witness_right_right
14Separate the logical casesL50–50
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L50
cases htransition_witness_witness_witness_witness_witness_witness_witness_right_right_right
15Establish halignL51–60
Establish this local claim before using it. It is not an additional assumption.
- L51
have halign : x1 = x4 /\ (x2 = x5 /\ x3 = x6) - L52
specialize euclidean_beta_state_functional h - L53
specialize euclidean_beta_state_functional e - L54
specialize euclidean_beta_state_functional i - L55
specialize euclidean_beta_state_functional x1 - L56
specialize euclidean_beta_state_functional x2 - L57
specialize euclidean_beta_state_functional x3 - L58
specialize euclidean_beta_state_functional x4 - L59
specialize euclidean_beta_state_functional x5 - L60
specialize euclidean_beta_state_functional x6
16Use earlier factsL61–63
17Separate the logical casesL64–65
18Calculate and transport equalitiesL66–69
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
19Construct an explicit witnessL70–72
20Separate the logical casesL73–73
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L73
split
21Use earlier factsL74–81
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L74
exact htransition_witness_witness_witness_witness_witness_witness_witness_right_left - L75
specialize is_gcd_euclid_forward g - L76
specialize is_gcd_euclid_forward x7 - L77
specialize is_gcd_euclid_forward x8 - L78
specialize is_gcd_euclid_forward x10 - L79
specialize is_gcd_euclid_forward x5 - L80
apply is_gcd_euclid_forward - L81
exact htransition_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
22Calculate and transport equalitiesL82–83
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
23Use earlier factsL84–84
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L84
exact hprevious_witness_witness_witness_right
Original defined command ledger · 84 lines
- 0001
intro a - 0002
intro b - 0003
intro s - 0004
intro h - 0005
intro e - 0006
intro l - 0007
intro g - 0008
intro htrace - 0009
intro hstart - 0010
cases htrace - 0011
cases htrace_witness - 0012
cases htrace_witness_right - 0013
intro i - 0014
induction i - 0015
intro hbound - 0016
exists g - 0017
exists 0 - 0018
exists 0 - 0019
split - 0020
exact hstart - 0021
specialize is_gcd_zero_right g - 0022
exact is_gcd_zero_right - 0023
intro hbound - 0024
have hprevbound : exists gap. gap + i = l - 0025
specialize lt_to_le i - 0026
specialize lt_to_le l - 0027
apply lt_to_le - 0028
exact hbound - 0029
have hprevious : exists egt_left_previous egt_right_previous egt_list_previous. ((((exists ff_h_cf_egt_previous_state_state. ff_h_cf_egt_previous_state_state + S (((egt_left_previous) + (((egt_right_previous) + (egt_list_previous)) * S ((egt_right_previous) + (egt_list_previous)) + ((egt_list_previous) + (egt_list_previous)))) * S ((egt_left_previous) + (((egt_right_previous) + (egt_list_previous)) * S ((egt_right_previous) + (egt_list_previous)) + ((egt_list_previous) + (egt_list_previous)))) + ((((egt_right_previous) + (egt_list_previous)) * S ((egt_right_previous) + (egt_list_previous)) + ((egt_list_previous) + (egt_list_previous))) + (((egt_right_previous) + (egt_list_previous)) * S ((egt_right_previous) + (egt_list_previous)) + ((egt_list_previous) + (egt_list_previous))))) = S ((S (i)) * e)) /\ exists ff_q_cf_egt_previous_state_state. h = ff_q_cf_egt_previous_state_state * S ((S (i)) * e) + (((egt_left_previous) + (((egt_right_previous) + (egt_list_previous)) * S ((egt_right_previous) + (egt_list_previous)) + ((egt_list_previous) + (egt_list_previous)))) * S ((egt_left_previous) + (((egt_right_previous) + (egt_list_previous)) * S ((egt_right_previous) + (egt_list_previous)) + ((egt_list_previous) + (egt_list_previous)))) + ((((egt_right_previous) + (egt_list_previous)) * S ((egt_right_previous) + (egt_list_previous)) + ((egt_list_previous) + (egt_list_previous))) + (((egt_right_previous) + (egt_list_previous)) * S ((egt_right_previous) + (egt_list_previous)) + ((egt_list_previous) + (egt_list_previous))))))) /\ ((((exists ec_gcd_left_egt_previous_gcd. egt_left_previous = g * ec_gcd_left_egt_previous_gcd) /\ (exists ec_gcd_right_egt_previous_gcd. egt_right_previous = g * ec_gcd_right_egt_previous_gcd)) /\ forall ec_gcd_common_egt_previous_gcd. (exists ec_gcd_common_left_egt_previous_gcd. egt_left_previous = ec_gcd_common_egt_previous_gcd * ec_gcd_common_left_egt_previous_gcd) -> (exists ec_gcd_common_right_egt_previous_gcd. egt_right_previous = ec_gcd_common_egt_previous_gcd * ec_gcd_common_right_egt_previous_gcd) -> exists ec_gcd_greatest_egt_previous_gcd. g = ec_gcd_common_egt_previous_gcd * ec_gcd_greatest_egt_previous_gcd))) - 0030
apply IH - 0031
exact hprevbound - 0032
cases hprevious - 0033
cases hprevious_witness - 0034
cases hprevious_witness_witness - 0035
cases hprevious_witness_witness_witness - 0036
have htransition : exists egt_old_a_induction egt_old_b_induction egt_old_list_induction egt_new_a_induction egt_new_b_induction egt_new_list_induction egt_quotient_induction. ((((exists ff_h_cf_egt_induction_previous_state. ff_h_cf_egt_induction_previous_state + S (((egt_old_a_induction) + (((egt_old_b_induction) + (egt_old_list_induction)) * S ((egt_old_b_induction) + (egt_old_list_induction)) + ((egt_old_list_induction) + (egt_old_list_induction)))) * S ((egt_old_a_induction) + (((egt_old_b_induction) + (egt_old_list_induction)) * S ((egt_old_b_induction) + (egt_old_list_induction)) + ((egt_old_list_induction) + (egt_old_list_induction)))) + ((((egt_old_b_induction) + (egt_old_list_induction)) * S ((egt_old_b_induction) + (egt_old_list_induction)) + ((egt_old_list_induction) + (egt_old_list_induction))) + (((egt_old_b_induction) + (egt_old_list_induction)) * S ((egt_old_b_induction) + (egt_old_list_induction)) + ((egt_old_list_induction) + (egt_old_list_induction))))) = S ((S (i)) * e)) /\ exists ff_q_cf_egt_induction_previous_state. h = ff_q_cf_egt_induction_previous_state * S ((S (i)) * e) + (((egt_old_a_induction) + (((egt_old_b_induction) + (egt_old_list_induction)) * S ((egt_old_b_induction) + (egt_old_list_induction)) + ((egt_old_list_induction) + (egt_old_list_induction)))) * S ((egt_old_a_induction) + (((egt_old_b_induction) + (egt_old_list_induction)) * S ((egt_old_b_induction) + (egt_old_list_induction)) + ((egt_old_list_induction) + (egt_old_list_induction)))) + ((((egt_old_b_induction) + (egt_old_list_induction)) * S ((egt_old_b_induction) + (egt_old_list_induction)) + ((egt_old_list_induction) + (egt_old_list_induction))) + (((egt_old_b_induction) + (egt_old_list_induction)) * S ((egt_old_b_induction) + (egt_old_list_induction)) + ((egt_old_list_induction) + (egt_old_list_induction))))))) /\ ((((exists ff_h_cf_egt_induction_following_state. ff_h_cf_egt_induction_following_state + S (((egt_new_a_induction) + (((egt_new_b_induction) + (egt_new_list_induction)) * S ((egt_new_b_induction) + (egt_new_list_induction)) + ((egt_new_list_induction) + (egt_new_list_induction)))) * S ((egt_new_a_induction) + (((egt_new_b_induction) + (egt_new_list_induction)) * S ((egt_new_b_induction) + (egt_new_list_induction)) + ((egt_new_list_induction) + (egt_new_list_induction)))) + ((((egt_new_b_induction) + (egt_new_list_induction)) * S ((egt_new_b_induction) + (egt_new_list_induction)) + ((egt_new_list_induction) + (egt_new_list_induction))) + (((egt_new_b_induction) + (egt_new_list_induction)) * S ((egt_new_b_induction) + (egt_new_list_induction)) + ((egt_new_list_induction) + (egt_new_list_induction))))) = S ((S (S i)) * e)) /\ exists ff_q_cf_egt_induction_following_state. h = ff_q_cf_egt_induction_following_state * S ((S (S i)) * e) + (((egt_new_a_induction) + (((egt_new_b_induction) + (egt_new_list_induction)) * S ((egt_new_b_induction) + (egt_new_list_induction)) + ((egt_new_list_induction) + (egt_new_list_induction)))) * S ((egt_new_a_induction) + (((egt_new_b_induction) + (egt_new_list_induction)) * S ((egt_new_b_induction) + (egt_new_list_induction)) + ((egt_new_list_induction) + (egt_new_list_induction)))) + ((((egt_new_b_induction) + (egt_new_list_induction)) * S ((egt_new_b_induction) + (egt_new_list_induction)) + ((egt_new_list_induction) + (egt_new_list_induction))) + (((egt_new_b_induction) + (egt_new_list_induction)) * S ((egt_new_b_induction) + (egt_new_list_induction)) + ((egt_new_list_induction) + (egt_new_list_induction))))))) /\ (egt_new_b_induction = egt_old_a_induction /\ (egt_new_a_induction = egt_new_b_induction * egt_quotient_induction + egt_old_b_induction /\ ((exists ff_lt_egt_induction_remainder. ff_lt_egt_induction_remainder + S egt_old_b_induction = egt_new_b_induction) /\ (egt_new_list_induction = S ((egt_quotient_induction + egt_old_list_induction) * S (egt_quotient_induction + egt_old_list_induction) + (egt_old_list_induction + egt_old_list_induction)))))))) - 0037
specialize htrace_witness_right_right i - 0038
apply htrace_witness_right_right - 0039
exact hbound - 0040
cases htransition - 0041
cases htransition_witness - 0042
cases htransition_witness_witness - 0043
cases htransition_witness_witness_witness - 0044
cases htransition_witness_witness_witness_witness - 0045
cases htransition_witness_witness_witness_witness_witness - 0046
cases htransition_witness_witness_witness_witness_witness_witness - 0047
cases htransition_witness_witness_witness_witness_witness_witness_witness - 0048
cases htransition_witness_witness_witness_witness_witness_witness_witness_right - 0049
cases htransition_witness_witness_witness_witness_witness_witness_witness_right_right - 0050
cases htransition_witness_witness_witness_witness_witness_witness_witness_right_right_right - 0051
have halign : x1 = x4 /\ (x2 = x5 /\ x3 = x6) - 0052
specialize euclidean_beta_state_functional h - 0053
specialize euclidean_beta_state_functional e - 0054
specialize euclidean_beta_state_functional i - 0055
specialize euclidean_beta_state_functional x1 - 0056
specialize euclidean_beta_state_functional x2 - 0057
specialize euclidean_beta_state_functional x3 - 0058
specialize euclidean_beta_state_functional x4 - 0059
specialize euclidean_beta_state_functional x5 - 0060
specialize euclidean_beta_state_functional x6 - 0061
apply euclidean_beta_state_functional - 0062
exact hprevious_witness_witness_witness_left - 0063
exact htransition_witness_witness_witness_witness_witness_witness_witness_left - 0064
cases halign - 0065
cases halign_right - 0066
rewrite halign_left at hprevious_witness_witness_witness_right - 0067
rewrite halign_left at hprevious_witness_witness_witness_right - 0068
rewrite halign_right_left at hprevious_witness_witness_witness_right - 0069
rewrite halign_right_left at hprevious_witness_witness_witness_right - 0070
exists x7 - 0071
exists x8 - 0072
exists x9 - 0073
split - 0074
exact htransition_witness_witness_witness_witness_witness_witness_witness_right_left - 0075
specialize is_gcd_euclid_forward g - 0076
specialize is_gcd_euclid_forward x7 - 0077
specialize is_gcd_euclid_forward x8 - 0078
specialize is_gcd_euclid_forward x10 - 0079
specialize is_gcd_euclid_forward x5 - 0080
apply is_gcd_euclid_forward - 0081
exact htransition_witness_witness_witness_witness_witness_witness_witness_right_right_right_left - 0082
rewrite htransition_witness_witness_witness_witness_witness_witness_witness_right_right_left - 0083
rewrite htransition_witness_witness_witness_witness_witness_witness_witness_right_right_left - 0084
exact hprevious_witness_witness_witness_right