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 b c l B. (forall fom_index_mrf_bounded_yes. (exists fom_gap_mrf_bounded_yes_index_bound. fom_gap_mrf_bounded_yes_index_bound + S (fom_index_mrf_bounded_yes) = l) -> exists fom_value_mrf_bounded_yes. ((((exists fom_beta_height_mrf_bounded_yes_entry. fom_beta_height_mrf_bounded_yes_entry + S (fom_value_mrf_bounded_yes) = S ((S (fom_index_mrf_bounded_yes)) * c)) /\ exists fom_beta_quotient_mrf_bounded_yes_entry. b = fom_beta_quotient_mrf_bounded_yes_entry * S ((S (fom_index_mrf_bounded_yes)) * c) + (fom_value_mrf_bounded_yes))) /\ (exists fom_gap_mrf_bounded_yes_value_bound. fom_gap_mrf_bounded_yes_value_bound + S (fom_value_mrf_bounded_yes) = B))) \/ ~(forall fom_index_mrf_bounded_no. (exists fom_gap_mrf_bounded_no_index_bound. fom_gap_mrf_bounded_no_index_bound + S (fom_index_mrf_bounded_no) = l) -> exists fom_value_mrf_bounded_no. ((((exists fom_beta_height_mrf_bounded_no_entry. fom_beta_height_mrf_bounded_no_entry + S (fom_value_mrf_bounded_no) = S ((S (fom_index_mrf_bounded_no)) * c)) /\ exists fom_beta_quotient_mrf_bounded_no_entry. b = fom_beta_quotient_mrf_bounded_no_entry * S ((S (fom_index_mrf_bounded_no)) * c) + (fom_value_mrf_bounded_no))) /\ (exists fom_gap_mrf_bounded_no_value_bound. fom_gap_mrf_bounded_no_value_bound + S (fom_value_mrf_bounded_no) = B)))Constructive proof overview
Generated structural guide
Actual finite prefix value bounds are decidable by HA induction and comparison of each decoded entry, without an unbounded-existential decision axiom.
The unchanged tactic script uses 8 declared prerequisites and contains 63 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
DL0038 matrix_rank_bounded_prefix_empty DL0039 matrix_rank_bounded_prefix_drop_last DL003A matrix_rank_bounded_prefix_extend beta_at_exists Stable theorem; checked-use authorized le_or_lt Stable theorem; checked-use authorized le_refl Stable theorem; checked-use authorized DL002D matrix_rank_bounded_prefix_value lt_not_le Stable theorem; checked-use authorizedDirect 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
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 (4)
01Fix variables and assumptionsL1–2
02Induction on lL3–4
03Separate the logical casesL5–5
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L5
left
04Use earlier factsL6–9
05Fix variables and assumptionsL10–10
Work with arbitrary variables or the premises of the current implication.
- L10
intro B
06Establish hpreviousL11–13
07Separate the logical casesL14–14
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L14
cases hprevious
08Establish hlastL15–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L15
have hlast : exists a. ((exists ff_h_mdr_decision_last. ff_h_mdr_decision_last + S (a) = S ((S (l)) * c)) /\ exists ff_q_mdr_decision_last. b = ff_q_mdr_decision_last * S ((S (l)) * c) + (a)) - L16
specialize beta_at_exists (b) - L17
specialize beta_at_exists (c) - L18
specialize beta_at_exists (l) - L19
apply beta_at_exists
09Separate the logical casesL20–20
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L20
cases hlast
10Establish horderL21–24
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le or lt.
11Separate the logical casesL25–26
12Fix variables and assumptionsL27–27
Work with arbitrary variables or the premises of the current implication.
- L27
intro hfull
13Establish hcontradictionL28–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix rank bounded prefix value.
- L28
have hcontradiction : exists mdr_gap_contradiction_bound. mdr_gap_contradiction_bound + S (x) = (B) - L29
specialize matrix_rank_bounded_prefix_value (b) - L30
specialize matrix_rank_bounded_prefix_value (c) - L31
specialize matrix_rank_bounded_prefix_value (S l) - L32
specialize matrix_rank_bounded_prefix_value (B) - L33
specialize matrix_rank_bounded_prefix_value (l) - L34
specialize matrix_rank_bounded_prefix_value (x) - L35
apply matrix_rank_bounded_prefix_value - L36
exact hfull - L37
specialize le_refl (S l)
14Use earlier factsL38–44
15Separate the logical casesL45–45
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L45
left
16Use earlier factsL46–54
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L46
specialize matrix_rank_bounded_prefix_extend (b) - L47
specialize matrix_rank_bounded_prefix_extend (c) - L48
specialize matrix_rank_bounded_prefix_extend (l) - L49
specialize matrix_rank_bounded_prefix_extend (B) - L50
specialize matrix_rank_bounded_prefix_extend (x) - L51
apply matrix_rank_bounded_prefix_extend - L52
exact hprevious_left - L53
exact hlast_witness - L54
exact horder_right
17Separate the logical casesL55–55
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L55
right
18Fix variables and assumptionsL56–56
Work with arbitrary variables or the premises of the current implication.
- L56
intro hfull
19Use earlier factsL57–63
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 63 lines
- 0001
intro b - 0002
intro c - 0003
induction l - 0004
intro B - 0005
left - 0006
specialize matrix_rank_bounded_prefix_empty (b) - 0007
specialize matrix_rank_bounded_prefix_empty (c) - 0008
specialize matrix_rank_bounded_prefix_empty (B) - 0009
apply matrix_rank_bounded_prefix_empty - 0010
intro B - 0011
have hprevious : (forall fom_index_mrf_decision_previous. (exists fom_gap_mrf_decision_previous_index_bound. fom_gap_mrf_decision_previous_index_bound + S (fom_index_mrf_decision_previous) = l) -> exists fom_value_mrf_decision_previous. ((((exists fom_beta_height_mrf_decision_previous_entry. fom_beta_height_mrf_decision_previous_entry + S (fom_value_mrf_decision_previous) = S ((S (fom_index_mrf_decision_previous)) * c)) /\ exists fom_beta_quotient_mrf_decision_previous_entry. b = fom_beta_quotient_mrf_decision_previous_entry * S ((S (fom_index_mrf_decision_previous)) * c) + (fom_value_mrf_decision_previous))) /\ (exists fom_gap_mrf_decision_previous_value_bound. fom_gap_mrf_decision_previous_value_bound + S (fom_value_mrf_decision_previous) = B))) \/ ~(forall fom_index_mrf_decision_absent. (exists fom_gap_mrf_decision_absent_index_bound. fom_gap_mrf_decision_absent_index_bound + S (fom_index_mrf_decision_absent) = l) -> exists fom_value_mrf_decision_absent. ((((exists fom_beta_height_mrf_decision_absent_entry. fom_beta_height_mrf_decision_absent_entry + S (fom_value_mrf_decision_absent) = S ((S (fom_index_mrf_decision_absent)) * c)) /\ exists fom_beta_quotient_mrf_decision_absent_entry. b = fom_beta_quotient_mrf_decision_absent_entry * S ((S (fom_index_mrf_decision_absent)) * c) + (fom_value_mrf_decision_absent))) /\ (exists fom_gap_mrf_decision_absent_value_bound. fom_gap_mrf_decision_absent_value_bound + S (fom_value_mrf_decision_absent) = B))) - 0012
specialize IH (B) - 0013
apply IH - 0014
cases hprevious - 0015
have hlast : exists a. ((exists ff_h_mdr_decision_last. ff_h_mdr_decision_last + S (a) = S ((S (l)) * c)) /\ exists ff_q_mdr_decision_last. b = ff_q_mdr_decision_last * S ((S (l)) * c) + (a)) - 0016
specialize beta_at_exists (b) - 0017
specialize beta_at_exists (c) - 0018
specialize beta_at_exists (l) - 0019
apply beta_at_exists - 0020
cases hlast - 0021
have horder : (exists mdr_gap_last_too_large. mdr_gap_last_too_large + (B) = (x)) \/ (exists mdr_gap_last_small. mdr_gap_last_small + S (x) = (B)) - 0022
specialize le_or_lt (B) - 0023
specialize le_or_lt (x) - 0024
apply le_or_lt - 0025
cases horder - 0026
right - 0027
intro hfull - 0028
have hcontradiction : exists mdr_gap_contradiction_bound. mdr_gap_contradiction_bound + S (x) = (B) - 0029
specialize matrix_rank_bounded_prefix_value (b) - 0030
specialize matrix_rank_bounded_prefix_value (c) - 0031
specialize matrix_rank_bounded_prefix_value (S l) - 0032
specialize matrix_rank_bounded_prefix_value (B) - 0033
specialize matrix_rank_bounded_prefix_value (l) - 0034
specialize matrix_rank_bounded_prefix_value (x) - 0035
apply matrix_rank_bounded_prefix_value - 0036
exact hfull - 0037
specialize le_refl (S l) - 0038
apply le_refl - 0039
exact hlast_witness - 0040
specialize lt_not_le (x) - 0041
specialize lt_not_le (B) - 0042
apply lt_not_le - 0043
exact hcontradiction - 0044
exact horder_left - 0045
left - 0046
specialize matrix_rank_bounded_prefix_extend (b) - 0047
specialize matrix_rank_bounded_prefix_extend (c) - 0048
specialize matrix_rank_bounded_prefix_extend (l) - 0049
specialize matrix_rank_bounded_prefix_extend (B) - 0050
specialize matrix_rank_bounded_prefix_extend (x) - 0051
apply matrix_rank_bounded_prefix_extend - 0052
exact hprevious_left - 0053
exact hlast_witness - 0054
exact horder_right - 0055
right - 0056
intro hfull - 0057
apply hprevious_right - 0058
specialize matrix_rank_bounded_prefix_drop_last (b) - 0059
specialize matrix_rank_bounded_prefix_drop_last (c) - 0060
specialize matrix_rank_bounded_prefix_drop_last (l) - 0061
specialize matrix_rank_bounded_prefix_drop_last (B) - 0062
apply matrix_rank_bounded_prefix_drop_last - 0063
exact hfull