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
∀ s. ∀ u. ∀ U. ∀ v. ∀ V. ∀ t. ∀ a. ∀ b. ∀ c. ∀ d. ∀ z. ConvergentMatrixCode(s,u,U,v,V,z) → ConvergentMatrixCode(t,a,b,c,d,z) → s = t ∧ (u = a ∧ (U = b ∧ (v = c ∧ V = d)))
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 77 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.
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–13
03Separate the logical casesL14–23
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
04Separate the logical casesL24–25
05Establish hoL26–34
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pair code injective.
- L26
have ho : s = t /\ x2 = x5 - L27
specialize pair_code_injective (z) - L28
specialize pair_code_injective (s) - L29
specialize pair_code_injective (x2) - L30
specialize pair_code_injective (t) - L31
specialize pair_code_injective (x5) - L32
apply pair_code_injective - L33
exact h1_witness_witness_witness_right_right_right - L34
exact h2_witness_witness_witness_right_right_right
06Separate the logical casesL35–35
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L35
cases ho
07Establish hmL36–45
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pair code injective.
- L36
have hm : x = x3 /\ x1 = x4 - L37
specialize pair_code_injective (x2) - L38
specialize pair_code_injective (x) - L39
specialize pair_code_injective (x1) - L40
specialize pair_code_injective (x3) - L41
specialize pair_code_injective (x4) - L42
apply pair_code_injective - L43
exact h1_witness_witness_witness_right_right_left - L44
trans x5 - L45
exact ho_right
08Use earlier factsL46–46
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L46
exact h2_witness_witness_witness_right_right_left
09Separate the logical casesL47–47
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L47
cases hm
10Establish hlL48–57
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pair code injective.
- L48
have hl : u = a /\ U = b - L49
specialize pair_code_injective (x) - L50
specialize pair_code_injective (u) - L51
specialize pair_code_injective (U) - L52
specialize pair_code_injective (a) - L53
specialize pair_code_injective (b) - L54
apply pair_code_injective - L55
exact h1_witness_witness_witness_left - L56
trans x3 - L57
exact hm_left
11Use earlier factsL58–58
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L58
exact h2_witness_witness_witness_left
12Separate the logical casesL59–59
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L59
cases hl
13Establish hrL60–69
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pair code injective.
- L60
have hr : v = c /\ V = d - L61
specialize pair_code_injective (x1) - L62
specialize pair_code_injective (v) - L63
specialize pair_code_injective (V) - L64
specialize pair_code_injective (c) - L65
specialize pair_code_injective (d) - L66
apply pair_code_injective - L67
exact h1_witness_witness_witness_right_left - L68
trans x4 - L69
exact hm_right
14Use earlier factsL70–70
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L70
exact h2_witness_witness_witness_right_left
15Separate the logical casesL71–71
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L71
split
16Use earlier factsL72–72
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L72
exact ho_left
17Separate the logical casesL73–73
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L73
split
18Use earlier factsL74–74
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L74
exact hl_left
19Separate the logical casesL75–75
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L75
split
Original defined command ledger · 77 lines
- 0001
intro s - 0002
intro u - 0003
intro U - 0004
intro v - 0005
intro V - 0006
intro t - 0007
intro a - 0008
intro b - 0009
intro c - 0010
intro d - 0011
intro z - 0012
intro h1 - 0013
intro h2 - 0014
cases h1 - 0015
cases h1_witness - 0016
cases h1_witness_witness - 0017
cases h2 - 0018
cases h2_witness - 0019
cases h2_witness_witness - 0020
cases h1_witness_witness_witness - 0021
cases h1_witness_witness_witness_right - 0022
cases h1_witness_witness_witness_right_right - 0023
cases h2_witness_witness_witness - 0024
cases h2_witness_witness_witness_right - 0025
cases h2_witness_witness_witness_right_right - 0026
have ho : s = t /\ x2 = x5 - 0027
specialize pair_code_injective (z) - 0028
specialize pair_code_injective (s) - 0029
specialize pair_code_injective (x2) - 0030
specialize pair_code_injective (t) - 0031
specialize pair_code_injective (x5) - 0032
apply pair_code_injective - 0033
exact h1_witness_witness_witness_right_right_right - 0034
exact h2_witness_witness_witness_right_right_right - 0035
cases ho - 0036
have hm : x = x3 /\ x1 = x4 - 0037
specialize pair_code_injective (x2) - 0038
specialize pair_code_injective (x) - 0039
specialize pair_code_injective (x1) - 0040
specialize pair_code_injective (x3) - 0041
specialize pair_code_injective (x4) - 0042
apply pair_code_injective - 0043
exact h1_witness_witness_witness_right_right_left - 0044
trans x5 - 0045
exact ho_right - 0046
exact h2_witness_witness_witness_right_right_left - 0047
cases hm - 0048
have hl : u = a /\ U = b - 0049
specialize pair_code_injective (x) - 0050
specialize pair_code_injective (u) - 0051
specialize pair_code_injective (U) - 0052
specialize pair_code_injective (a) - 0053
specialize pair_code_injective (b) - 0054
apply pair_code_injective - 0055
exact h1_witness_witness_witness_left - 0056
trans x3 - 0057
exact hm_left - 0058
exact h2_witness_witness_witness_left - 0059
cases hl - 0060
have hr : v = c /\ V = d - 0061
specialize pair_code_injective (x1) - 0062
specialize pair_code_injective (v) - 0063
specialize pair_code_injective (V) - 0064
specialize pair_code_injective (c) - 0065
specialize pair_code_injective (d) - 0066
apply pair_code_injective - 0067
exact h1_witness_witness_witness_right_left - 0068
trans x4 - 0069
exact hm_right - 0070
exact h2_witness_witness_witness_right_left - 0071
split - 0072
exact ho_left - 0073
split - 0074
exact hl_left - 0075
split - 0076
exact hl_right - 0077
exact hr