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.
Historical partial components only: this chapter proves canonical solutions for finite positive pairwise-coprime systems and exact LCM solution classes. G011 is now closed in the separate Alpha-v27 generalized-crt branch for arbitrary pairwise-compatible systems, including noncoprime moduli. Full G011 proof · Alpha v27
Exact theorem in conservative defined notation
∀ r. ∀ s. ∀ b. ∀ c. ∀ l. ∀ M. ∀ x. ¬M = 0 → CRTPrefixLCM(b,c,l,M) → CRTPrefixSolution(r,s,b,c,l,x) → ∃ y. CRTCanonicalPrefixSolution(r,s,b,c,l,y,M)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 53 lines are the exact independently kernel-checked original script.
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 defined 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