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 r s b c l M x. ~(M = 0) -> (((forall gcrt_common_index_canonical_remainder_lcm_own gcrt_common_modulus_canonical_remainder_lcm_own. (exists ff_lt_gcrt_canonical_remainder_lcm_own_bound. ff_lt_gcrt_canonical_remainder_lcm_own_bound + S gcrt_common_index_canonical_remainder_lcm_own = l) -> (((exists ff_h_gcrt_canonical_remainder_lcm_own_entry. ff_h_gcrt_canonical_remainder_lcm_own_entry + S (gcrt_common_modulus_canonical_remainder_lcm_own) = S ((S (gcrt_common_index_canonical_remainder_lcm_own)) * c)) /\ exists ff_q_gcrt_canonical_remainder_lcm_own_entry. b = ff_q_gcrt_canonical_remainder_lcm_own_entry * S ((S (gcrt_common_index_canonical_remainder_lcm_own)) * c) + (gcrt_common_modulus_canonical_remainder_lcm_own))) -> exists gcrt_common_quotient_canonical_remainder_lcm_own. M = gcrt_common_modulus_canonical_remainder_lcm_own * gcrt_common_quotient_canonical_remainder_lcm_own) /\ forall gcrt_lcm_common_canonical_remainder_lcm. (forall gcrt_common_index_canonical_remainder_lcm_other gcrt_common_modulus_canonical_remainder_lcm_other. (exists ff_lt_gcrt_canonical_remainder_lcm_other_bound. ff_lt_gcrt_canonical_remainder_lcm_other_bound + S gcrt_common_index_canonical_remainder_lcm_other = l) -> (((exists ff_h_gcrt_canonical_remainder_lcm_other_entry. ff_h_gcrt_canonical_remainder_lcm_other_entry + S (gcrt_common_modulus_canonical_remainder_lcm_other) = S ((S (gcrt_common_index_canonical_remainder_lcm_other)) * c)) /\ exists ff_q_gcrt_canonical_remainder_lcm_other_entry. b = ff_q_gcrt_canonical_remainder_lcm_other_entry * S ((S (gcrt_common_index_canonical_remainder_lcm_other)) * c) + (gcrt_common_modulus_canonical_remainder_lcm_other))) -> exists gcrt_common_quotient_canonical_remainder_lcm_other. gcrt_lcm_common_canonical_remainder_lcm = gcrt_common_modulus_canonical_remainder_lcm_other * gcrt_common_quotient_canonical_remainder_lcm_other) -> exists gcrt_lcm_quotient_canonical_remainder_lcm. gcrt_lcm_common_canonical_remainder_lcm = M * gcrt_lcm_quotient_canonical_remainder_lcm)) -> (forall gcrt_solution_index_canonical_remainder_source gcrt_solution_residue_canonical_remainder_source gcrt_solution_modulus_canonical_remainder_source. (exists ff_lt_gcrt_canonical_remainder_source_bound. ff_lt_gcrt_canonical_remainder_source_bound + S gcrt_solution_index_canonical_remainder_source = l) -> (((exists ff_h_gcrt_canonical_remainder_source_residue. ff_h_gcrt_canonical_remainder_source_residue + S (gcrt_solution_residue_canonical_remainder_source) = S ((S (gcrt_solution_index_canonical_remainder_source)) * s)) /\ exists ff_q_gcrt_canonical_remainder_source_residue. r = ff_q_gcrt_canonical_remainder_source_residue * S ((S (gcrt_solution_index_canonical_remainder_source)) * s) + (gcrt_solution_residue_canonical_remainder_source))) -> (((exists ff_h_gcrt_canonical_remainder_source_modulus. ff_h_gcrt_canonical_remainder_source_modulus + S (gcrt_solution_modulus_canonical_remainder_source) = S ((S (gcrt_solution_index_canonical_remainder_source)) * c)) /\ exists ff_q_gcrt_canonical_remainder_source_modulus. b = ff_q_gcrt_canonical_remainder_source_modulus * S ((S (gcrt_solution_index_canonical_remainder_source)) * c) + (gcrt_solution_modulus_canonical_remainder_source))) -> (exists hgcrt_mod_left_gcrt_canonical_remainder_source_congruence hgcrt_mod_right_gcrt_canonical_remainder_source_congruence. x + gcrt_solution_modulus_canonical_remainder_source * hgcrt_mod_left_gcrt_canonical_remainder_source_congruence = gcrt_solution_residue_canonical_remainder_source + gcrt_solution_modulus_canonical_remainder_source * hgcrt_mod_right_gcrt_canonical_remainder_source_congruence)) -> exists y. (((((forall gcrt_common_index_canonical_remainder_result_lcm_own gcrt_common_modulus_canonical_remainder_result_lcm_own. (exists ff_lt_gcrt_canonical_remainder_result_lcm_own_bound. ff_lt_gcrt_canonical_remainder_result_lcm_own_bound + S gcrt_common_index_canonical_remainder_result_lcm_own = l) -> (((exists ff_h_gcrt_canonical_remainder_result_lcm_own_entry. ff_h_gcrt_canonical_remainder_result_lcm_own_entry + S (gcrt_common_modulus_canonical_remainder_result_lcm_own) = S ((S (gcrt_common_index_canonical_remainder_result_lcm_own)) * c)) /\ exists ff_q_gcrt_canonical_remainder_result_lcm_own_entry. b = ff_q_gcrt_canonical_remainder_result_lcm_own_entry * S ((S (gcrt_common_index_canonical_remainder_result_lcm_own)) * c) + (gcrt_common_modulus_canonical_remainder_result_lcm_own))) -> exists gcrt_common_quotient_canonical_remainder_result_lcm_own. M = gcrt_common_modulus_canonical_remainder_result_lcm_own * gcrt_common_quotient_canonical_remainder_result_lcm_own) /\ forall gcrt_lcm_common_canonical_remainder_result_lcm. (forall gcrt_common_index_canonical_remainder_result_lcm_other gcrt_common_modulus_canonical_remainder_result_lcm_other. (exists ff_lt_gcrt_canonical_remainder_result_lcm_other_bound. ff_lt_gcrt_canonical_remainder_result_lcm_other_bound + S gcrt_common_index_canonical_remainder_result_lcm_other = l) -> (((exists ff_h_gcrt_canonical_remainder_result_lcm_other_entry. ff_h_gcrt_canonical_remainder_result_lcm_other_entry + S (gcrt_common_modulus_canonical_remainder_result_lcm_other) = S ((S (gcrt_common_index_canonical_remainder_result_lcm_other)) * c)) /\ exists ff_q_gcrt_canonical_remainder_result_lcm_other_entry. b = ff_q_gcrt_canonical_remainder_result_lcm_other_entry * S ((S (gcrt_common_index_canonical_remainder_result_lcm_other)) * c) + (gcrt_common_modulus_canonical_remainder_result_lcm_other))) -> exists gcrt_common_quotient_canonical_remainder_result_lcm_other. gcrt_lcm_common_canonical_remainder_result_lcm = gcrt_common_modulus_canonical_remainder_result_lcm_other * gcrt_common_quotient_canonical_remainder_result_lcm_other) -> exists gcrt_lcm_quotient_canonical_remainder_result_lcm. gcrt_lcm_common_canonical_remainder_result_lcm = M * gcrt_lcm_quotient_canonical_remainder_result_lcm)) /\ ((exists ff_lt_gcrt_canonical_remainder_result_bounded. ff_lt_gcrt_canonical_remainder_result_bounded + S y = M) /\ (forall gcrt_solution_index_canonical_remainder_result_solution gcrt_solution_residue_canonical_remainder_result_solution gcrt_solution_modulus_canonical_remainder_result_solution. (exists ff_lt_gcrt_canonical_remainder_result_solution_bound. ff_lt_gcrt_canonical_remainder_result_solution_bound + S gcrt_solution_index_canonical_remainder_result_solution = l) -> (((exists ff_h_gcrt_canonical_remainder_result_solution_residue. ff_h_gcrt_canonical_remainder_result_solution_residue + S (gcrt_solution_residue_canonical_remainder_result_solution) = S ((S (gcrt_solution_index_canonical_remainder_result_solution)) * s)) /\ exists ff_q_gcrt_canonical_remainder_result_solution_residue. r = ff_q_gcrt_canonical_remainder_result_solution_residue * S ((S (gcrt_solution_index_canonical_remainder_result_solution)) * s) + (gcrt_solution_residue_canonical_remainder_result_solution))) -> (((exists ff_h_gcrt_canonical_remainder_result_solution_modulus. ff_h_gcrt_canonical_remainder_result_solution_modulus + S (gcrt_solution_modulus_canonical_remainder_result_solution) = S ((S (gcrt_solution_index_canonical_remainder_result_solution)) * c)) /\ exists ff_q_gcrt_canonical_remainder_result_solution_modulus. b = ff_q_gcrt_canonical_remainder_result_solution_modulus * S ((S (gcrt_solution_index_canonical_remainder_result_solution)) * c) + (gcrt_solution_modulus_canonical_remainder_result_solution))) -> (exists hgcrt_mod_left_gcrt_canonical_remainder_result_solution_congruence hgcrt_mod_right_gcrt_canonical_remainder_result_solution_congruence. y + gcrt_solution_modulus_canonical_remainder_result_solution * hgcrt_mod_left_gcrt_canonical_remainder_result_solution_congruence = gcrt_solution_residue_canonical_remainder_result_solution + gcrt_solution_modulus_canonical_remainder_result_solution * hgcrt_mod_right_gcrt_canonical_remainder_result_solution_congruence)))))Constructive proof overview
Generated structural guide
Every existing finite-list solution has an actual canonical representative strictly below its nonzero list lcm.
The unchanged tactic script uses 5 declared prerequisites and contains 53 exact native proof lines.
Alpha v34 checked-use · first admitted v24 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
canonical_remainder_exists Stable theorem; checked-use authorized remainder_decomposition_to_mod_eq Stable theorem; checked-use authorized mul_comm Stable theorem; checked-use authorized mod_eq_symm Stable theorem; checked-use authorized CR0015 crt_prefix_solution_transport_common_multipleDirect 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 (1)
01Fix variables and assumptionsL1–10
02Establish hremL11–15
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply canonical remainder exists.
03Separate the logical casesL16–18
04Establish hforwardL19–28
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply remainder decomposition to mod eq.
- L19
have hforward : exists hgcrt_mod_left_gcrt_canonical_forward hgcrt_mod_right_gcrt_canonical_forward. x + M * hgcrt_mod_left_gcrt_canonical_forward = x1 + M * hgcrt_mod_right_gcrt_canonical_forward - L20
specialize remainder_decomposition_to_mod_eq M - L21
specialize remainder_decomposition_to_mod_eq x - L22
specialize remainder_decomposition_to_mod_eq x2 - L23
specialize remainder_decomposition_to_mod_eq x1 - L24
apply remainder_decomposition_to_mod_eq - L25
trans M * x2 + x1 - L26
exact hrem_witness_left_witness - L27
congr - L28
apply mul_comm
05Calculate and transport equalitiesL29–29
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L29
refl
06Establish hreverseL30–35
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq symm.
- L30
have hreverse : exists hgcrt_mod_left_gcrt_canonical_reverse hgcrt_mod_right_gcrt_canonical_reverse. x1 + M * hgcrt_mod_left_gcrt_canonical_reverse = x + M * hgcrt_mod_right_gcrt_canonical_reverse - L31
specialize mod_eq_symm M - L32
specialize mod_eq_symm x - L33
specialize mod_eq_symm x1 - L34
apply mod_eq_symm - L35
exact hforward
07Construct an explicit witnessL36–36
Supply the displayed value, then prove that it has the required property.
- L36
exists x1
08Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
split
09Use earlier factsL38–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
exact hlcm
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 hrem_witness_right
12Separate the logical casesL41–41
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L41
cases hlcm
13Use earlier factsL42–51
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L42
specialize crt_prefix_solution_transport_common_multiple r - L43
specialize crt_prefix_solution_transport_common_multiple s - L44
specialize crt_prefix_solution_transport_common_multiple b - L45
specialize crt_prefix_solution_transport_common_multiple c - L46
specialize crt_prefix_solution_transport_common_multiple l - L47
specialize crt_prefix_solution_transport_common_multiple M - L48
specialize crt_prefix_solution_transport_common_multiple x - L49
specialize crt_prefix_solution_transport_common_multiple x1 - L50
apply crt_prefix_solution_transport_common_multiple - L51
exact hlcm_left
Original exact command ledger · 53 lines
- 0001
intro r - 0002
intro s - 0003
intro b - 0004
intro c - 0005
intro l - 0006
intro M - 0007
intro x - 0008
intro hnonzero - 0009
intro hlcm - 0010
intro hx - 0011
have hrem : exists y. ((exists q. x = M * q + y) /\ exists gap. gap + S y = M) - 0012
specialize canonical_remainder_exists M - 0013
specialize canonical_remainder_exists x - 0014
apply canonical_remainder_exists - 0015
exact hnonzero - 0016
cases hrem - 0017
cases hrem_witness - 0018
cases hrem_witness_left - 0019
have hforward : exists hgcrt_mod_left_gcrt_canonical_forward hgcrt_mod_right_gcrt_canonical_forward. x + M * hgcrt_mod_left_gcrt_canonical_forward = x1 + M * hgcrt_mod_right_gcrt_canonical_forward - 0020
specialize remainder_decomposition_to_mod_eq M - 0021
specialize remainder_decomposition_to_mod_eq x - 0022
specialize remainder_decomposition_to_mod_eq x2 - 0023
specialize remainder_decomposition_to_mod_eq x1 - 0024
apply remainder_decomposition_to_mod_eq - 0025
trans M * x2 + x1 - 0026
exact hrem_witness_left_witness - 0027
congr - 0028
apply mul_comm - 0029
refl - 0030
have hreverse : exists hgcrt_mod_left_gcrt_canonical_reverse hgcrt_mod_right_gcrt_canonical_reverse. x1 + M * hgcrt_mod_left_gcrt_canonical_reverse = x + M * hgcrt_mod_right_gcrt_canonical_reverse - 0031
specialize mod_eq_symm M - 0032
specialize mod_eq_symm x - 0033
specialize mod_eq_symm x1 - 0034
apply mod_eq_symm - 0035
exact hforward - 0036
exists x1 - 0037
split - 0038
exact hlcm - 0039
split - 0040
exact hrem_witness_right - 0041
cases hlcm - 0042
specialize crt_prefix_solution_transport_common_multiple r - 0043
specialize crt_prefix_solution_transport_common_multiple s - 0044
specialize crt_prefix_solution_transport_common_multiple b - 0045
specialize crt_prefix_solution_transport_common_multiple c - 0046
specialize crt_prefix_solution_transport_common_multiple l - 0047
specialize crt_prefix_solution_transport_common_multiple M - 0048
specialize crt_prefix_solution_transport_common_multiple x - 0049
specialize crt_prefix_solution_transport_common_multiple x1 - 0050
apply crt_prefix_solution_transport_common_multiple - 0051
exact hlcm_left - 0052
exact hx - 0053
exact hreverse
Separate complete second-wave branches: Full G011 proof · Alpha v27.