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. exists x. ((((forall gcrt_common_index_general_lcm_chosen_own gcrt_common_modulus_general_lcm_chosen_own. (exists ff_lt_gcrt_general_lcm_chosen_own_bound. ff_lt_gcrt_general_lcm_chosen_own_bound + S gcrt_common_index_general_lcm_chosen_own = l) -> (((exists ff_h_gcrt_general_lcm_chosen_own_entry. ff_h_gcrt_general_lcm_chosen_own_entry + S (gcrt_common_modulus_general_lcm_chosen_own) = S ((S (gcrt_common_index_general_lcm_chosen_own)) * c)) /\ exists ff_q_gcrt_general_lcm_chosen_own_entry. b = ff_q_gcrt_general_lcm_chosen_own_entry * S ((S (gcrt_common_index_general_lcm_chosen_own)) * c) + (gcrt_common_modulus_general_lcm_chosen_own))) -> exists gcrt_common_quotient_general_lcm_chosen_own. x = gcrt_common_modulus_general_lcm_chosen_own * gcrt_common_quotient_general_lcm_chosen_own) /\ forall gcrt_lcm_common_general_lcm_chosen. (forall gcrt_common_index_general_lcm_chosen_other gcrt_common_modulus_general_lcm_chosen_other. (exists ff_lt_gcrt_general_lcm_chosen_other_bound. ff_lt_gcrt_general_lcm_chosen_other_bound + S gcrt_common_index_general_lcm_chosen_other = l) -> (((exists ff_h_gcrt_general_lcm_chosen_other_entry. ff_h_gcrt_general_lcm_chosen_other_entry + S (gcrt_common_modulus_general_lcm_chosen_other) = S ((S (gcrt_common_index_general_lcm_chosen_other)) * c)) /\ exists ff_q_gcrt_general_lcm_chosen_other_entry. b = ff_q_gcrt_general_lcm_chosen_other_entry * S ((S (gcrt_common_index_general_lcm_chosen_other)) * c) + (gcrt_common_modulus_general_lcm_chosen_other))) -> exists gcrt_common_quotient_general_lcm_chosen_other. gcrt_lcm_common_general_lcm_chosen = gcrt_common_modulus_general_lcm_chosen_other * gcrt_common_quotient_general_lcm_chosen_other) -> exists gcrt_lcm_quotient_general_lcm_chosen. gcrt_lcm_common_general_lcm_chosen = x * gcrt_lcm_quotient_general_lcm_chosen)) /\ forall y. (((forall gcrt_common_index_general_lcm_compared_own gcrt_common_modulus_general_lcm_compared_own. (exists ff_lt_gcrt_general_lcm_compared_own_bound. ff_lt_gcrt_general_lcm_compared_own_bound + S gcrt_common_index_general_lcm_compared_own = l) -> (((exists ff_h_gcrt_general_lcm_compared_own_entry. ff_h_gcrt_general_lcm_compared_own_entry + S (gcrt_common_modulus_general_lcm_compared_own) = S ((S (gcrt_common_index_general_lcm_compared_own)) * c)) /\ exists ff_q_gcrt_general_lcm_compared_own_entry. b = ff_q_gcrt_general_lcm_compared_own_entry * S ((S (gcrt_common_index_general_lcm_compared_own)) * c) + (gcrt_common_modulus_general_lcm_compared_own))) -> exists gcrt_common_quotient_general_lcm_compared_own. y = gcrt_common_modulus_general_lcm_compared_own * gcrt_common_quotient_general_lcm_compared_own) /\ forall gcrt_lcm_common_general_lcm_compared. (forall gcrt_common_index_general_lcm_compared_other gcrt_common_modulus_general_lcm_compared_other. (exists ff_lt_gcrt_general_lcm_compared_other_bound. ff_lt_gcrt_general_lcm_compared_other_bound + S gcrt_common_index_general_lcm_compared_other = l) -> (((exists ff_h_gcrt_general_lcm_compared_other_entry. ff_h_gcrt_general_lcm_compared_other_entry + S (gcrt_common_modulus_general_lcm_compared_other) = S ((S (gcrt_common_index_general_lcm_compared_other)) * c)) /\ exists ff_q_gcrt_general_lcm_compared_other_entry. b = ff_q_gcrt_general_lcm_compared_other_entry * S ((S (gcrt_common_index_general_lcm_compared_other)) * c) + (gcrt_common_modulus_general_lcm_compared_other))) -> exists gcrt_common_quotient_general_lcm_compared_other. gcrt_lcm_common_general_lcm_compared = gcrt_common_modulus_general_lcm_compared_other * gcrt_common_quotient_general_lcm_compared_other) -> exists gcrt_lcm_quotient_general_lcm_compared. gcrt_lcm_common_general_lcm_compared = y * gcrt_lcm_quotient_general_lcm_compared)) -> y = x)Constructive proof overview
Generated structural guide
Every arbitrary finite decoded modulus list, including noncoprime and zero entries, has a unique exact lcm.
The unchanged tactic script uses 5 declared prerequisites and contains 62 exact native proof lines.
Alpha v34 checked-use · first admitted v24 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
CR000E crt_prefix_lcm_empty CR000D crt_prefix_lcm_unique beta_at_exists Stable theorem; checked-use authorized lcm_exists_relational Stable theorem; checked-use authorized CR000F crt_prefix_lcm_successor_introDirect 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 (3)
01Fix variables and assumptionsL1–2
02Induction on lL3–3
Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.
- L3
induction l
03Construct an explicit witnessL4–4
Supply the displayed value, then prove that it has the required property.
- L4
exists 1
04Separate the logical casesL5–5
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L5
split
05Use earlier factsL6–8
06Fix variables and assumptionsL9–10
07Use earlier factsL11–20
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L11
specialize crt_prefix_lcm_unique b - L12
specialize crt_prefix_lcm_unique c - L13
specialize crt_prefix_lcm_unique 0 - L14
specialize crt_prefix_lcm_unique y - L15
specialize crt_prefix_lcm_unique 1 - L16
apply crt_prefix_lcm_unique - L17
exact hy - L18
specialize crt_prefix_lcm_empty b - L19
specialize crt_prefix_lcm_empty c - L20
exact crt_prefix_lcm_empty
08Separate the logical casesL21–22
09Establish hlastL23–27
Establish this local claim before using it. It is not an additional assumption.
- L23
have hlast : exists m. (((exists ff_h_gcrt_general_lcm_last. ff_h_gcrt_general_lcm_last + S (m) = S ((S (l)) * c)) /\ exists ff_q_gcrt_general_lcm_last. b = ff_q_gcrt_general_lcm_last * S ((S (l)) * c) + (m))) - L24
specialize beta_at_exists b - L25
specialize beta_at_exists c - L26
specialize beta_at_exists l - L27
exact beta_at_exists
10Separate the logical casesL28–28
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L28
cases hlast
11Use earlier factsL29–30
12Separate the logical casesL31–31
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L31
cases lcm_exists_relational
13Construct an explicit witnessL32–32
Supply the displayed value, then prove that it has the required property.
- L32
exists x2
14Separate the logical casesL33–33
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L33
split
15Use earlier factsL34–43
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L34
specialize crt_prefix_lcm_successor_intro b - L35
specialize crt_prefix_lcm_successor_intro c - L36
specialize crt_prefix_lcm_successor_intro l - L37
specialize crt_prefix_lcm_successor_intro x - L38
specialize crt_prefix_lcm_successor_intro x1 - L39
specialize crt_prefix_lcm_successor_intro x2 - L40
apply crt_prefix_lcm_successor_intro - L41
exact IH_witness_left - L42
exact hlast_witness - L43
exact lcm_exists_relational_witness
16Fix variables and assumptionsL44–45
17Use earlier factsL46–55
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L46
specialize crt_prefix_lcm_unique b - L47
specialize crt_prefix_lcm_unique c - L48
specialize crt_prefix_lcm_unique (S l) - L49
specialize crt_prefix_lcm_unique y - L50
specialize crt_prefix_lcm_unique x2 - L51
apply crt_prefix_lcm_unique - L52
exact hy - L53
specialize crt_prefix_lcm_successor_intro b - L54
specialize crt_prefix_lcm_successor_intro c - L55
specialize crt_prefix_lcm_successor_intro l
18Use earlier factsL56–62
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 62 lines
- 0001
intro b - 0002
intro c - 0003
induction l - 0004
exists 1 - 0005
split - 0006
specialize crt_prefix_lcm_empty b - 0007
specialize crt_prefix_lcm_empty c - 0008
exact crt_prefix_lcm_empty - 0009
intro y - 0010
intro hy - 0011
specialize crt_prefix_lcm_unique b - 0012
specialize crt_prefix_lcm_unique c - 0013
specialize crt_prefix_lcm_unique 0 - 0014
specialize crt_prefix_lcm_unique y - 0015
specialize crt_prefix_lcm_unique 1 - 0016
apply crt_prefix_lcm_unique - 0017
exact hy - 0018
specialize crt_prefix_lcm_empty b - 0019
specialize crt_prefix_lcm_empty c - 0020
exact crt_prefix_lcm_empty - 0021
cases IH - 0022
cases IH_witness - 0023
have hlast : exists m. (((exists ff_h_gcrt_general_lcm_last. ff_h_gcrt_general_lcm_last + S (m) = S ((S (l)) * c)) /\ exists ff_q_gcrt_general_lcm_last. b = ff_q_gcrt_general_lcm_last * S ((S (l)) * c) + (m))) - 0024
specialize beta_at_exists b - 0025
specialize beta_at_exists c - 0026
specialize beta_at_exists l - 0027
exact beta_at_exists - 0028
cases hlast - 0029
specialize lcm_exists_relational x - 0030
specialize lcm_exists_relational x1 - 0031
cases lcm_exists_relational - 0032
exists x2 - 0033
split - 0034
specialize crt_prefix_lcm_successor_intro b - 0035
specialize crt_prefix_lcm_successor_intro c - 0036
specialize crt_prefix_lcm_successor_intro l - 0037
specialize crt_prefix_lcm_successor_intro x - 0038
specialize crt_prefix_lcm_successor_intro x1 - 0039
specialize crt_prefix_lcm_successor_intro x2 - 0040
apply crt_prefix_lcm_successor_intro - 0041
exact IH_witness_left - 0042
exact hlast_witness - 0043
exact lcm_exists_relational_witness - 0044
intro y - 0045
intro hy - 0046
specialize crt_prefix_lcm_unique b - 0047
specialize crt_prefix_lcm_unique c - 0048
specialize crt_prefix_lcm_unique (S l) - 0049
specialize crt_prefix_lcm_unique y - 0050
specialize crt_prefix_lcm_unique x2 - 0051
apply crt_prefix_lcm_unique - 0052
exact hy - 0053
specialize crt_prefix_lcm_successor_intro b - 0054
specialize crt_prefix_lcm_successor_intro c - 0055
specialize crt_prefix_lcm_successor_intro l - 0056
specialize crt_prefix_lcm_successor_intro x - 0057
specialize crt_prefix_lcm_successor_intro x1 - 0058
specialize crt_prefix_lcm_successor_intro x2 - 0059
apply crt_prefix_lcm_successor_intro - 0060
exact IH_witness_left - 0061
exact hlast_witness - 0062
exact lcm_exists_relational_witness
Separate complete second-wave branches: Full G011 proof · Alpha v27.