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 initial 0/1 convergent is included: u is natural, not necessarily positive. Comparison denominators are strictly smaller and positive. Signed competitors are represented by an arbitrary difference rp−rn. Approximation inequalities are proved from the trace, never stored as assumptions in Convergent.
Exact theorem in conservative defined notation
∀ a. ∀ b. ∀ s. ContinuedFraction(a,b,s) → Lt(a,b) → Convergent(s,0,0,1)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 52 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay 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 (3)
01Fix variables and assumptionsL1–5
02Separate the logical casesL6–12
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
03Establish hpL13–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply cf convergent old history successor elimination.
- L13
have hp : ∃ q. ∃ r. ∃ t. a = b · q + r ∧ (Lt(r,b) ∧ (ListCell(s,q,t) ∧ ContinuedFractionTrace(b,r,t,x2,x3,x4)))Definitions: Lt(r,b)ListCell(s,q,t)ContinuedFractionTrace(b,r,t,x2,x3,x4)Original native command in the exact edition - L14
specialize cf_convergent_old_history_successor_elimination (a) - L15
specialize cf_convergent_old_history_successor_elimination (b) - L16
specialize cf_convergent_old_history_successor_elimination (s) - L17
specialize cf_convergent_old_history_successor_elimination (x2) - L18
specialize cf_convergent_old_history_successor_elimination (x3) - L19
specialize cf_convergent_old_history_successor_elimination (x4) - L20
apply cf_convergent_old_history_successor_elimination - L21
exact hcf_witness_witness_witness_witness_witness_right_right
04Separate the logical casesL22–27
05Establish hqL28–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply division remainder unique.
- L28
have hq : x5 = 0 /\ x6 = a - L29
specialize division_remainder_unique (b) - L30
specialize division_remainder_unique (a) - L31
specialize division_remainder_unique (x5) - L32
specialize division_remainder_unique (x6) - L33
specialize division_remainder_unique (0) - L34
specialize division_remainder_unique (a) - L35
apply division_remainder_unique - L36
exact hp_witness_witness_witness_left - L37
exact hp_witness_witness_witness_right_left
06Calculate and transport equalitiesL38–38
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L38
simp [zero_add]
07Use earlier factsL39–39
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L39
exact hlt
08Separate the logical casesL40–40
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L40
cases hq
09Use earlier factsL41–50
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L41
specialize cf_convergent_numerator_transport (s) - L42
specialize cf_convergent_numerator_transport (0) - L43
specialize cf_convergent_numerator_transport (x5) - L44
specialize cf_convergent_numerator_transport (0) - L45
specialize cf_convergent_numerator_transport (1) - L46
apply cf_convergent_numerator_transport - L47
exact hq_left - L48
specialize continued_fraction_first_cell_is_initial_convergent (s) - L49
specialize continued_fraction_first_cell_is_initial_convergent (x5) - L50
specialize continued_fraction_first_cell_is_initial_convergent (x7)
Original defined command ledger · 52 lines
- 0001
intro a - 0002
intro b - 0003
intro s - 0004
intro hcf - 0005
intro hlt - 0006
cases hcf - 0007
cases hcf_witness - 0008
cases hcf_witness_witness - 0009
cases hcf_witness_witness_witness - 0010
cases hcf_witness_witness_witness_witness - 0011
cases hcf_witness_witness_witness_witness_witness - 0012
cases hcf_witness_witness_witness_witness_witness_right - 0013
have hp : ∃ q. ∃ r. ∃ t. a = b · q + r ∧ (Lt(r,b) ∧ (ListCell(s,q,t) ∧ ContinuedFractionTrace(b,r,t,x2,x3,x4))) - 0014
specialize cf_convergent_old_history_successor_elimination (a) - 0015
specialize cf_convergent_old_history_successor_elimination (b) - 0016
specialize cf_convergent_old_history_successor_elimination (s) - 0017
specialize cf_convergent_old_history_successor_elimination (x2) - 0018
specialize cf_convergent_old_history_successor_elimination (x3) - 0019
specialize cf_convergent_old_history_successor_elimination (x4) - 0020
apply cf_convergent_old_history_successor_elimination - 0021
exact hcf_witness_witness_witness_witness_witness_right_right - 0022
cases hp - 0023
cases hp_witness - 0024
cases hp_witness_witness - 0025
cases hp_witness_witness_witness - 0026
cases hp_witness_witness_witness_right - 0027
cases hp_witness_witness_witness_right_right - 0028
have hq : x5 = 0 /\ x6 = a - 0029
specialize division_remainder_unique (b) - 0030
specialize division_remainder_unique (a) - 0031
specialize division_remainder_unique (x5) - 0032
specialize division_remainder_unique (x6) - 0033
specialize division_remainder_unique (0) - 0034
specialize division_remainder_unique (a) - 0035
apply division_remainder_unique - 0036
exact hp_witness_witness_witness_left - 0037
exact hp_witness_witness_witness_right_left - 0038
simp [zero_add] - 0039
exact hlt - 0040
cases hq - 0041
specialize cf_convergent_numerator_transport (s) - 0042
specialize cf_convergent_numerator_transport (0) - 0043
specialize cf_convergent_numerator_transport (x5) - 0044
specialize cf_convergent_numerator_transport (0) - 0045
specialize cf_convergent_numerator_transport (1) - 0046
apply cf_convergent_numerator_transport - 0047
exact hq_left - 0048
specialize continued_fraction_first_cell_is_initial_convergent (s) - 0049
specialize continued_fraction_first_cell_is_initial_convergent (x5) - 0050
specialize continued_fraction_first_cell_is_initial_convergent (x7) - 0051
apply continued_fraction_first_cell_is_initial_convergent - 0052
exact hp_witness_witness_witness_right_right_left