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 P m M. (((forall gcrt_common_index_step_prefix_lcm_own gcrt_common_modulus_step_prefix_lcm_own. (exists ff_lt_gcrt_step_prefix_lcm_own_bound. ff_lt_gcrt_step_prefix_lcm_own_bound + S gcrt_common_index_step_prefix_lcm_own = l) -> (((exists ff_h_gcrt_step_prefix_lcm_own_entry. ff_h_gcrt_step_prefix_lcm_own_entry + S (gcrt_common_modulus_step_prefix_lcm_own) = S ((S (gcrt_common_index_step_prefix_lcm_own)) * c)) /\ exists ff_q_gcrt_step_prefix_lcm_own_entry. b = ff_q_gcrt_step_prefix_lcm_own_entry * S ((S (gcrt_common_index_step_prefix_lcm_own)) * c) + (gcrt_common_modulus_step_prefix_lcm_own))) -> exists gcrt_common_quotient_step_prefix_lcm_own. P = gcrt_common_modulus_step_prefix_lcm_own * gcrt_common_quotient_step_prefix_lcm_own) /\ forall gcrt_lcm_common_step_prefix_lcm. (forall gcrt_common_index_step_prefix_lcm_other gcrt_common_modulus_step_prefix_lcm_other. (exists ff_lt_gcrt_step_prefix_lcm_other_bound. ff_lt_gcrt_step_prefix_lcm_other_bound + S gcrt_common_index_step_prefix_lcm_other = l) -> (((exists ff_h_gcrt_step_prefix_lcm_other_entry. ff_h_gcrt_step_prefix_lcm_other_entry + S (gcrt_common_modulus_step_prefix_lcm_other) = S ((S (gcrt_common_index_step_prefix_lcm_other)) * c)) /\ exists ff_q_gcrt_step_prefix_lcm_other_entry. b = ff_q_gcrt_step_prefix_lcm_other_entry * S ((S (gcrt_common_index_step_prefix_lcm_other)) * c) + (gcrt_common_modulus_step_prefix_lcm_other))) -> exists gcrt_common_quotient_step_prefix_lcm_other. gcrt_lcm_common_step_prefix_lcm = gcrt_common_modulus_step_prefix_lcm_other * gcrt_common_quotient_step_prefix_lcm_other) -> exists gcrt_lcm_quotient_step_prefix_lcm. gcrt_lcm_common_step_prefix_lcm = P * gcrt_lcm_quotient_step_prefix_lcm)) -> (((exists ff_h_gcrt_step_last_modulus. ff_h_gcrt_step_last_modulus + S (m) = S ((S (l)) * c)) /\ exists ff_q_gcrt_step_last_modulus. b = ff_q_gcrt_step_last_modulus * S ((S (l)) * c) + (m))) -> ((((exists hlcm_left_factor_gcrt_step_binary_lcm. M = P * hlcm_left_factor_gcrt_step_binary_lcm) /\ (exists hlcm_right_factor_gcrt_step_binary_lcm. M = m * hlcm_right_factor_gcrt_step_binary_lcm)) /\ forall hlcm_common_gcrt_step_binary_lcm. (exists hlcm_left_common_gcrt_step_binary_lcm. hlcm_common_gcrt_step_binary_lcm = P * hlcm_left_common_gcrt_step_binary_lcm) -> (exists hlcm_right_common_gcrt_step_binary_lcm. hlcm_common_gcrt_step_binary_lcm = m * hlcm_right_common_gcrt_step_binary_lcm) -> exists hlcm_least_factor_gcrt_step_binary_lcm. hlcm_common_gcrt_step_binary_lcm = M * hlcm_least_factor_gcrt_step_binary_lcm)) -> (((forall gcrt_common_index_step_result_lcm_own gcrt_common_modulus_step_result_lcm_own. (exists ff_lt_gcrt_step_result_lcm_own_bound. ff_lt_gcrt_step_result_lcm_own_bound + S gcrt_common_index_step_result_lcm_own = S l) -> (((exists ff_h_gcrt_step_result_lcm_own_entry. ff_h_gcrt_step_result_lcm_own_entry + S (gcrt_common_modulus_step_result_lcm_own) = S ((S (gcrt_common_index_step_result_lcm_own)) * c)) /\ exists ff_q_gcrt_step_result_lcm_own_entry. b = ff_q_gcrt_step_result_lcm_own_entry * S ((S (gcrt_common_index_step_result_lcm_own)) * c) + (gcrt_common_modulus_step_result_lcm_own))) -> exists gcrt_common_quotient_step_result_lcm_own. M = gcrt_common_modulus_step_result_lcm_own * gcrt_common_quotient_step_result_lcm_own) /\ forall gcrt_lcm_common_step_result_lcm. (forall gcrt_common_index_step_result_lcm_other gcrt_common_modulus_step_result_lcm_other. (exists ff_lt_gcrt_step_result_lcm_other_bound. ff_lt_gcrt_step_result_lcm_other_bound + S gcrt_common_index_step_result_lcm_other = S l) -> (((exists ff_h_gcrt_step_result_lcm_other_entry. ff_h_gcrt_step_result_lcm_other_entry + S (gcrt_common_modulus_step_result_lcm_other) = S ((S (gcrt_common_index_step_result_lcm_other)) * c)) /\ exists ff_q_gcrt_step_result_lcm_other_entry. b = ff_q_gcrt_step_result_lcm_other_entry * S ((S (gcrt_common_index_step_result_lcm_other)) * c) + (gcrt_common_modulus_step_result_lcm_other))) -> exists gcrt_common_quotient_step_result_lcm_other. gcrt_lcm_common_step_result_lcm = gcrt_common_modulus_step_result_lcm_other * gcrt_common_quotient_step_result_lcm_other) -> exists gcrt_lcm_quotient_step_result_lcm. gcrt_lcm_common_step_result_lcm = M * gcrt_lcm_quotient_step_result_lcm))Constructive proof overview
Generated structural guide
Binary relational lcm extends the exact universal-property lcm of any finite decoded modulus prefix.
The unchanged tactic script uses 8 declared prerequisites and contains 80 exact native proof lines.
Alpha v34 checked-use · first admitted v24 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
finite_lt_succ_eq_or_lt Stable theorem; checked-use authorized beta_at_unique Stable theorem; checked-use authorized is_lcm_multiple_left Stable theorem; checked-use authorized is_lcm_multiple_right Stable theorem; checked-use authorized multiple_trans Stable theorem; checked-use authorized is_lcm_least Stable theorem; checked-use authorized le_succ Stable theorem; checked-use authorized le_refl 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.
01Fix variables and assumptionsL1–9
02Separate the logical casesL10–11
03Fix variables and assumptionsL12–15
04Establish hsplitL16–20
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
05Separate the logical casesL21–21
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L21
cases hsplit
06Calculate and transport equalitiesL22–23
07Establish heqL24–33
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
08Use earlier factsL34–43
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L34
specialize is_lcm_multiple_right M - L35
specialize is_lcm_multiple_right P - L36
specialize is_lcm_multiple_right m - L37
apply is_lcm_multiple_right - L38
exact hbinary - L39
specialize multiple_trans P - L40
specialize multiple_trans n - L41
specialize multiple_trans M - L42
apply multiple_trans - L43
specialize is_lcm_multiple_left M
09Use earlier factsL44–52
Instantiate or apply named facts and discharge the corresponding proof obligations.
10Fix variables and assumptionsL53–54
11Use earlier factsL55–62
12Fix variables and assumptionsL63–66
13Use earlier factsL67–76
Original exact command ledger · 80 lines
- 0001
intro b - 0002
intro c - 0003
intro l - 0004
intro P - 0005
intro m - 0006
intro M - 0007
intro hprefix - 0008
intro hm - 0009
intro hbinary - 0010
cases hprefix - 0011
split - 0012
intro i - 0013
intro n - 0014
intro hi - 0015
intro hn - 0016
have hsplit : i = l \/ exists gap. gap + S i = l - 0017
specialize finite_lt_succ_eq_or_lt l - 0018
specialize finite_lt_succ_eq_or_lt i - 0019
apply finite_lt_succ_eq_or_lt - 0020
exact hi - 0021
cases hsplit - 0022
rewrite hsplit_left at hn - 0023
rewrite hsplit_left at hn - 0024
have heq : n = m - 0025
specialize beta_at_unique b - 0026
specialize beta_at_unique c - 0027
specialize beta_at_unique l - 0028
specialize beta_at_unique n - 0029
specialize beta_at_unique m - 0030
apply beta_at_unique - 0031
exact hn - 0032
exact hm - 0033
rewrite heq - 0034
specialize is_lcm_multiple_right M - 0035
specialize is_lcm_multiple_right P - 0036
specialize is_lcm_multiple_right m - 0037
apply is_lcm_multiple_right - 0038
exact hbinary - 0039
specialize multiple_trans P - 0040
specialize multiple_trans n - 0041
specialize multiple_trans M - 0042
apply multiple_trans - 0043
specialize is_lcm_multiple_left M - 0044
specialize is_lcm_multiple_left P - 0045
specialize is_lcm_multiple_left m - 0046
apply is_lcm_multiple_left - 0047
exact hbinary - 0048
specialize hprefix_left i - 0049
specialize hprefix_left n - 0050
apply hprefix_left - 0051
exact hsplit_right - 0052
exact hn - 0053
intro z - 0054
intro hcommon - 0055
specialize is_lcm_least M - 0056
specialize is_lcm_least P - 0057
specialize is_lcm_least m - 0058
specialize is_lcm_least z - 0059
apply is_lcm_least - 0060
exact hbinary - 0061
specialize hprefix_right z - 0062
apply hprefix_right - 0063
intro i - 0064
intro n - 0065
intro hi - 0066
intro hn - 0067
specialize hcommon i - 0068
specialize hcommon n - 0069
apply hcommon - 0070
specialize le_succ (S i) - 0071
specialize le_succ l - 0072
apply le_succ - 0073
exact hi - 0074
exact hn - 0075
specialize hcommon l - 0076
specialize hcommon m - 0077
apply hcommon - 0078
specialize le_refl (S l) - 0079
exact le_refl - 0080
exact hm
Separate complete second-wave branches: Full G011 proof · Alpha v27.