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 k B c T b e. (exists mdr_gap_fixed_scale. mdr_gap_fixed_scale + (B) = (c)) -> (forall mdr_t_fixed_common. (exists mdr_h_fixed_common. S mdr_t_fixed_common + S mdr_h_fixed_common = S (k)) -> exists mdr_q_fixed_common. c = S mdr_t_fixed_common * mdr_q_fixed_common) -> ~(T = 0) -> (forall mdr_i_fixed_divides. (exists mdr_gap_fixed_dividesi. mdr_gap_fixed_dividesi + S (mdr_i_fixed_divides) = (k)) -> (exists mdr_q_fixed_dividesd. T = (S ((S (mdr_i_fixed_divides)) * (c))) * mdr_q_fixed_dividesd)) -> (forall fom_index_mrf_fixed_source. (exists fom_gap_mrf_fixed_source_index_bound. fom_gap_mrf_fixed_source_index_bound + S (fom_index_mrf_fixed_source) = k) -> exists fom_value_mrf_fixed_source. ((((exists fom_beta_height_mrf_fixed_source_entry. fom_beta_height_mrf_fixed_source_entry + S (fom_value_mrf_fixed_source) = S ((S (fom_index_mrf_fixed_source)) * e)) /\ exists fom_beta_quotient_mrf_fixed_source_entry. b = fom_beta_quotient_mrf_fixed_source_entry * S ((S (fom_index_mrf_fixed_source)) * e) + (fom_value_mrf_fixed_source))) /\ (exists fom_gap_mrf_fixed_source_value_bound. fom_gap_mrf_fixed_source_value_bound + S (fom_value_mrf_fixed_source) = B))) -> exists z. (((exists mdr_gap_fixed_result_bound. mdr_gap_fixed_result_bound + S (z) = (T)) /\ (forall mdr_i_fixed_result_prefix mdr_a_fixed_result_prefix. (exists mdr_gap_fixed_result_prefixb. mdr_gap_fixed_result_prefixb + S (mdr_i_fixed_result_prefix) = (k)) -> (((exists ff_h_mdr_fixed_result_prefixo. ff_h_mdr_fixed_result_prefixo + S (mdr_a_fixed_result_prefix) = S ((S (mdr_i_fixed_result_prefix)) * e)) /\ exists ff_q_mdr_fixed_result_prefixo. b = ff_q_mdr_fixed_result_prefixo * S ((S (mdr_i_fixed_result_prefix)) * e) + (mdr_a_fixed_result_prefix))) -> (((exists ff_h_mdr_fixed_result_prefixn. ff_h_mdr_fixed_result_prefixn + S (mdr_a_fixed_result_prefix) = S ((S (mdr_i_fixed_result_prefix)) * c)) /\ exists ff_q_mdr_fixed_result_prefixn. z = ff_q_mdr_fixed_result_prefixn * S ((S (mdr_i_fixed_result_prefix)) * c) + (mdr_a_fixed_result_prefix))))))Constructive proof overview
Generated structural guide
Reducing a genuine CRT recoding modulo a fixed common multiple gives a strictly bounded code with every finite source value preserved.
The unchanged tactic script uses 12 declared prerequisites and contains 98 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
DL0030 matrix_rank_recode_congruences_exists division_remainder_exists Stable theorem; checked-use authorized mul_comm Stable theorem; checked-use authorized remainder_decomposition_to_mod_eq Stable theorem; checked-use authorized DL002D matrix_rank_bounded_prefix_value base_le_beta_modulus Stable theorem; checked-use authorized le_trans Stable theorem; checked-use authorized lt_of_lt_of_le Stable theorem; checked-use authorized mod_eq_of_mod_eq_multiple Stable theorem; checked-use authorized mod_eq_symm Stable theorem; checked-use authorized mod_eq_trans Stable theorem; checked-use authorized beta_at_of_mod_eq_bound 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 (2)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–11
Work with arbitrary variables or the premises of the current implication.
- L11
intro hbounded
03Establish hcodesL12–18
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix rank recode congruences exists.
- L12
have hcodes : exists z. (forall mdr_i_fixed_crt mdr_a_fixed_crt. (exists mdr_gap_fixed_crti. mdr_gap_fixed_crti + S (mdr_i_fixed_crt) = (k)) -> (((exists ff_h_mdr_fixed_crta. ff_h_mdr_fixed_crta + S (mdr_a_fixed_crt) = S ((S (mdr_i_fixed_crt)) * e)) /\ exists ff_q_mdr_fixed_crta. b = ff_q_mdr_fixed_crta * S ((S (mdr_i_fixed_crt)) * e) + (mdr_a_fixed_crt))) -> (exists mdr_u_fixed_crtm mdr_v_fixed_crtm. (z) + (S ((S (mdr_i_fixed_crt)) * (c))) * mdr_u_fixed_crtm = (mdr_a_fixed_crt) + (S ((S (mdr_i_fixed_crt)) * (c))) * mdr_v_fixed_crtm)) - L13
specialize matrix_rank_recode_congruences_exists (k) - L14
specialize matrix_rank_recode_congruences_exists (c) - L15
specialize matrix_rank_recode_congruences_exists (b) - L16
specialize matrix_rank_recode_congruences_exists (e) - L17
apply matrix_rank_recode_congruences_exists - L18
exact hcommon
04Separate the logical casesL19–19
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L19
cases hcodes
05Establish hdivisionL20–24
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply division remainder exists.
06Separate the logical casesL25–27
07Establish hcommuteL28–30
08Establish hremainderL31–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply remainder decomposition to mod eq.
- L31
have hremainder : exists mdr_u_fixed_remainder mdr_v_fixed_remainder. (x) + (T) * mdr_u_fixed_remainder = (x2) + (T) * mdr_v_fixed_remainder - L32
specialize remainder_decomposition_to_mod_eq (T) - L33
specialize remainder_decomposition_to_mod_eq (x) - L34
specialize remainder_decomposition_to_mod_eq (x1) - L35
specialize remainder_decomposition_to_mod_eq (x2) - L36
apply remainder_decomposition_to_mod_eq - L37
exact hdivision_witness_witness_left
09Construct an explicit witnessL38–38
Supply the displayed value, then prove that it has the required property.
- L38
exists x2
10Separate the logical casesL39–39
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L39
split
11Use earlier factsL40–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L40
exact hdivision_witness_witness_right
12Fix variables and assumptionsL41–44
13Establish hvalueL45–54
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix rank bounded prefix value.
- L45
have hvalue : exists mdr_gap_fixed_value_bound. mdr_gap_fixed_value_bound + S (a) = (B) - L46
specialize matrix_rank_bounded_prefix_value (b) - L47
specialize matrix_rank_bounded_prefix_value (e) - L48
specialize matrix_rank_bounded_prefix_value (k) - L49
specialize matrix_rank_bounded_prefix_value (B) - L50
specialize matrix_rank_bounded_prefix_value (i) - L51
specialize matrix_rank_bounded_prefix_value (a) - L52
apply matrix_rank_bounded_prefix_value - L53
exact hbounded - L54
exact hi
14Use earlier factsL55–55
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L55
exact ha
15Establish hmodboundL56–65
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le trans.
- L56
have hmodbound : exists mdr_gap_fixed_mod_bound. mdr_gap_fixed_mod_bound + (B) = (S ((S i) * c)) - L57
specialize le_trans (B) - L58
specialize le_trans (c) - L59
specialize le_trans (S ((S i) * c)) - L60
apply le_trans - L61
exact hscale - L62
specialize base_le_beta_modulus (c) - L63
specialize base_le_beta_modulus (i) - L64
apply base_le_beta_modulus - L65
specialize beta_at_of_mod_eq_bound (x2)
16Use earlier factsL66–75
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L66
specialize beta_at_of_mod_eq_bound (c) - L67
specialize beta_at_of_mod_eq_bound (i) - L68
specialize beta_at_of_mod_eq_bound (a) - L69
apply beta_at_of_mod_eq_bound - L70
specialize lt_of_lt_of_le (a) - L71
specialize lt_of_lt_of_le (B) - L72
specialize lt_of_lt_of_le (S ((S i) * c)) - L73
apply lt_of_lt_of_le - L74
exact hvalue - L75
exact hmodbound
17Use earlier factsL76–85
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L76
specialize mod_eq_trans (S ((S i) * c)) - L77
specialize mod_eq_trans (x2) - L78
specialize mod_eq_trans (x) - L79
specialize mod_eq_trans (a) - L80
apply mod_eq_trans - L81
specialize mod_eq_symm (S ((S i) * c)) - L82
specialize mod_eq_symm (x) - L83
specialize mod_eq_symm (x2) - L84
apply mod_eq_symm - L85
specialize mod_eq_of_mod_eq_multiple (S ((S i) * c))
18Use earlier factsL86–95
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 98 lines
- 0001
intro k - 0002
intro B - 0003
intro c - 0004
intro T - 0005
intro b - 0006
intro e - 0007
intro hscale - 0008
intro hcommon - 0009
intro hT - 0010
intro hmoduli - 0011
intro hbounded - 0012
have hcodes : exists z. (forall mdr_i_fixed_crt mdr_a_fixed_crt. (exists mdr_gap_fixed_crti. mdr_gap_fixed_crti + S (mdr_i_fixed_crt) = (k)) -> (((exists ff_h_mdr_fixed_crta. ff_h_mdr_fixed_crta + S (mdr_a_fixed_crt) = S ((S (mdr_i_fixed_crt)) * e)) /\ exists ff_q_mdr_fixed_crta. b = ff_q_mdr_fixed_crta * S ((S (mdr_i_fixed_crt)) * e) + (mdr_a_fixed_crt))) -> (exists mdr_u_fixed_crtm mdr_v_fixed_crtm. (z) + (S ((S (mdr_i_fixed_crt)) * (c))) * mdr_u_fixed_crtm = (mdr_a_fixed_crt) + (S ((S (mdr_i_fixed_crt)) * (c))) * mdr_v_fixed_crtm)) - 0013
specialize matrix_rank_recode_congruences_exists (k) - 0014
specialize matrix_rank_recode_congruences_exists (c) - 0015
specialize matrix_rank_recode_congruences_exists (b) - 0016
specialize matrix_rank_recode_congruences_exists (e) - 0017
apply matrix_rank_recode_congruences_exists - 0018
exact hcommon - 0019
cases hcodes - 0020
have hdivision : exists q r. x = T * q + r /\ (exists mdr_gap_division_bound. mdr_gap_division_bound + S (r) = (T)) - 0021
specialize division_remainder_exists (T) - 0022
specialize division_remainder_exists (x) - 0023
apply division_remainder_exists - 0024
exact hT - 0025
cases hdivision - 0026
cases hdivision_witness - 0027
cases hdivision_witness_witness - 0028
have hcommute : T * x1 = x1 * T - 0029
apply mul_comm - 0030
rewrite hcommute at hdivision_witness_witness_left - 0031
have hremainder : exists mdr_u_fixed_remainder mdr_v_fixed_remainder. (x) + (T) * mdr_u_fixed_remainder = (x2) + (T) * mdr_v_fixed_remainder - 0032
specialize remainder_decomposition_to_mod_eq (T) - 0033
specialize remainder_decomposition_to_mod_eq (x) - 0034
specialize remainder_decomposition_to_mod_eq (x1) - 0035
specialize remainder_decomposition_to_mod_eq (x2) - 0036
apply remainder_decomposition_to_mod_eq - 0037
exact hdivision_witness_witness_left - 0038
exists x2 - 0039
split - 0040
exact hdivision_witness_witness_right - 0041
intro i - 0042
intro a - 0043
intro hi - 0044
intro ha - 0045
have hvalue : exists mdr_gap_fixed_value_bound. mdr_gap_fixed_value_bound + S (a) = (B) - 0046
specialize matrix_rank_bounded_prefix_value (b) - 0047
specialize matrix_rank_bounded_prefix_value (e) - 0048
specialize matrix_rank_bounded_prefix_value (k) - 0049
specialize matrix_rank_bounded_prefix_value (B) - 0050
specialize matrix_rank_bounded_prefix_value (i) - 0051
specialize matrix_rank_bounded_prefix_value (a) - 0052
apply matrix_rank_bounded_prefix_value - 0053
exact hbounded - 0054
exact hi - 0055
exact ha - 0056
have hmodbound : exists mdr_gap_fixed_mod_bound. mdr_gap_fixed_mod_bound + (B) = (S ((S i) * c)) - 0057
specialize le_trans (B) - 0058
specialize le_trans (c) - 0059
specialize le_trans (S ((S i) * c)) - 0060
apply le_trans - 0061
exact hscale - 0062
specialize base_le_beta_modulus (c) - 0063
specialize base_le_beta_modulus (i) - 0064
apply base_le_beta_modulus - 0065
specialize beta_at_of_mod_eq_bound (x2) - 0066
specialize beta_at_of_mod_eq_bound (c) - 0067
specialize beta_at_of_mod_eq_bound (i) - 0068
specialize beta_at_of_mod_eq_bound (a) - 0069
apply beta_at_of_mod_eq_bound - 0070
specialize lt_of_lt_of_le (a) - 0071
specialize lt_of_lt_of_le (B) - 0072
specialize lt_of_lt_of_le (S ((S i) * c)) - 0073
apply lt_of_lt_of_le - 0074
exact hvalue - 0075
exact hmodbound - 0076
specialize mod_eq_trans (S ((S i) * c)) - 0077
specialize mod_eq_trans (x2) - 0078
specialize mod_eq_trans (x) - 0079
specialize mod_eq_trans (a) - 0080
apply mod_eq_trans - 0081
specialize mod_eq_symm (S ((S i) * c)) - 0082
specialize mod_eq_symm (x) - 0083
specialize mod_eq_symm (x2) - 0084
apply mod_eq_symm - 0085
specialize mod_eq_of_mod_eq_multiple (S ((S i) * c)) - 0086
specialize mod_eq_of_mod_eq_multiple (T) - 0087
specialize mod_eq_of_mod_eq_multiple (x) - 0088
specialize mod_eq_of_mod_eq_multiple (x2) - 0089
apply mod_eq_of_mod_eq_multiple - 0090
specialize hmoduli (i) - 0091
apply hmoduli - 0092
exact hi - 0093
exact hremainder - 0094
specialize hcodes_witness (i) - 0095
specialize hcodes_witness (a) - 0096
apply hcodes_witness - 0097
exact hi - 0098
exact ha