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 under successive-merge compatibility and in the pairwise-compatible dominating-last case. G011 is now closed in the separate Alpha-v27 generalized-crt branch for arbitrary pairwise-compatible finite lists, including noncoprime moduli. Full G011 proof · Alpha v27
Exact theorem in conservative defined notation
∀ r. ∀ s. ∀ b. ∀ c. ∀ l. ∀ a. ∀ M. CRTPositiveModuliPrefix(b,c,S l) → CRTPairwiseCompatiblePrefix(r,s,b,c,S l) → Beta(r,s,l,a) → Beta(b,c,l,M) → (∀ x. ∀ y. Lt(x,l) → Beta(b,c,x,y) → Dvd(y,M)) → ∃ x. ∃ y. CRTCanonicalPrefixSolution(r,s,b,c,S l,x,y) ∧ (∀ z. CRTCanonicalPrefixSolution(r,s,b,c,S l,z,y) → z = x)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 68 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 (2)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–12
03Use earlier factsL13–15
04Separate the logical casesL16–17
05Establish hnonzeroL18–27
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt positive prefix lcm nonzero.
- L18
have hnonzero : ~(x = 0) - L19
specialize crt_positive_prefix_lcm_nonzero b - L20
specialize crt_positive_prefix_lcm_nonzero c - L21
specialize crt_positive_prefix_lcm_nonzero (S l) - L22
specialize crt_positive_prefix_lcm_nonzero x - L23
intro hz - L24
apply crt_positive_prefix_lcm_nonzero - L25
exact hpositive - L26
exact crt_prefix_lcm_exists_unique_witness_left - L27
exact hz
06Establish hcanonicalL28–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt prefix solution canonical remainder.
- L28
have hcanonical : ∃ z. CRTCanonicalPrefixSolution(r,s,b,c,S l,z,x)Definitions: CRTCanonicalPrefixSolutionOriginal native command in the exact edition - L29
specialize crt_prefix_solution_canonical_remainder r - L30
specialize crt_prefix_solution_canonical_remainder s - L31
specialize crt_prefix_solution_canonical_remainder b - L32
specialize crt_prefix_solution_canonical_remainder c - L33
specialize crt_prefix_solution_canonical_remainder (S l) - L34
specialize crt_prefix_solution_canonical_remainder x - L35
specialize crt_prefix_solution_canonical_remainder a - L36
apply crt_prefix_solution_canonical_remainder - L37
exact hnonzero
07Use earlier factsL38–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
exact crt_prefix_lcm_exists_unique_witness_left - L39
specialize crt_pairwise_compatible_dominating_last_solution r - L40
specialize crt_pairwise_compatible_dominating_last_solution s - L41
specialize crt_pairwise_compatible_dominating_last_solution b - L42
specialize crt_pairwise_compatible_dominating_last_solution c - L43
specialize crt_pairwise_compatible_dominating_last_solution l - L44
specialize crt_pairwise_compatible_dominating_last_solution a - L45
specialize crt_pairwise_compatible_dominating_last_solution M - L46
apply crt_pairwise_compatible_dominating_last_solution - L47
exact hpairs
08Use earlier factsL48–50
09Separate the logical casesL51–51
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L51
cases hcanonical
10Construct an explicit witnessL52–53
11Separate the logical casesL54–54
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L54
split
12Use earlier factsL55–55
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L55
exact hcanonical_witness
13Fix variables and assumptionsL56–57
14Use earlier factsL58–67
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L58
specialize crt_canonical_prefix_solution_unique r - L59
specialize crt_canonical_prefix_solution_unique s - L60
specialize crt_canonical_prefix_solution_unique b - L61
specialize crt_canonical_prefix_solution_unique c - L62
specialize crt_canonical_prefix_solution_unique (S l) - L63
specialize crt_canonical_prefix_solution_unique x - L64
specialize crt_canonical_prefix_solution_unique x1 - L65
specialize crt_canonical_prefix_solution_unique y - L66
apply crt_canonical_prefix_solution_unique - L67
exact hcanonical_witness
15Use earlier factsL68–68
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L68
exact hy
Original defined command ledger · 68 lines
- 0001
intro r - 0002
intro s - 0003
intro b - 0004
intro c - 0005
intro l - 0006
intro a - 0007
intro M - 0008
intro hpositive - 0009
intro hpairs - 0010
intro ha - 0011
intro hM - 0012
intro hcommon - 0013
specialize crt_prefix_lcm_exists_unique b - 0014
specialize crt_prefix_lcm_exists_unique c - 0015
specialize crt_prefix_lcm_exists_unique (S l) - 0016
cases crt_prefix_lcm_exists_unique - 0017
cases crt_prefix_lcm_exists_unique_witness - 0018
have hnonzero : ~(x = 0) - 0019
specialize crt_positive_prefix_lcm_nonzero b - 0020
specialize crt_positive_prefix_lcm_nonzero c - 0021
specialize crt_positive_prefix_lcm_nonzero (S l) - 0022
specialize crt_positive_prefix_lcm_nonzero x - 0023
intro hz - 0024
apply crt_positive_prefix_lcm_nonzero - 0025
exact hpositive - 0026
exact crt_prefix_lcm_exists_unique_witness_left - 0027
exact hz - 0028
have hcanonical : exists z. (((((forall gcrt_common_index_dominating_canonical_actual_lcm_own gcrt_common_modulus_dominating_canonical_actual_lcm_own. (exists ff_lt_gcrt_dominating_canonical_actual_lcm_own_bound. ff_lt_gcrt_dominating_canonical_actual_lcm_own_bound + S gcrt_common_index_dominating_canonical_actual_lcm_own = S l) -> (((exists ff_h_gcrt_dominating_canonical_actual_lcm_own_entry. ff_h_gcrt_dominating_canonical_actual_lcm_own_entry + S (gcrt_common_modulus_dominating_canonical_actual_lcm_own) = S ((S (gcrt_common_index_dominating_canonical_actual_lcm_own)) * c)) /\ exists ff_q_gcrt_dominating_canonical_actual_lcm_own_entry. b = ff_q_gcrt_dominating_canonical_actual_lcm_own_entry * S ((S (gcrt_common_index_dominating_canonical_actual_lcm_own)) * c) + (gcrt_common_modulus_dominating_canonical_actual_lcm_own))) -> exists gcrt_common_quotient_dominating_canonical_actual_lcm_own. x = gcrt_common_modulus_dominating_canonical_actual_lcm_own * gcrt_common_quotient_dominating_canonical_actual_lcm_own) /\ forall gcrt_lcm_common_dominating_canonical_actual_lcm. (forall gcrt_common_index_dominating_canonical_actual_lcm_other gcrt_common_modulus_dominating_canonical_actual_lcm_other. (exists ff_lt_gcrt_dominating_canonical_actual_lcm_other_bound. ff_lt_gcrt_dominating_canonical_actual_lcm_other_bound + S gcrt_common_index_dominating_canonical_actual_lcm_other = S l) -> (((exists ff_h_gcrt_dominating_canonical_actual_lcm_other_entry. ff_h_gcrt_dominating_canonical_actual_lcm_other_entry + S (gcrt_common_modulus_dominating_canonical_actual_lcm_other) = S ((S (gcrt_common_index_dominating_canonical_actual_lcm_other)) * c)) /\ exists ff_q_gcrt_dominating_canonical_actual_lcm_other_entry. b = ff_q_gcrt_dominating_canonical_actual_lcm_other_entry * S ((S (gcrt_common_index_dominating_canonical_actual_lcm_other)) * c) + (gcrt_common_modulus_dominating_canonical_actual_lcm_other))) -> exists gcrt_common_quotient_dominating_canonical_actual_lcm_other. gcrt_lcm_common_dominating_canonical_actual_lcm = gcrt_common_modulus_dominating_canonical_actual_lcm_other * gcrt_common_quotient_dominating_canonical_actual_lcm_other) -> exists gcrt_lcm_quotient_dominating_canonical_actual_lcm. gcrt_lcm_common_dominating_canonical_actual_lcm = x * gcrt_lcm_quotient_dominating_canonical_actual_lcm)) /\ ((exists ff_lt_gcrt_dominating_canonical_actual_bounded. ff_lt_gcrt_dominating_canonical_actual_bounded + S z = x) /\ (forall gcrt_solution_index_dominating_canonical_actual_solution gcrt_solution_residue_dominating_canonical_actual_solution gcrt_solution_modulus_dominating_canonical_actual_solution. (exists ff_lt_gcrt_dominating_canonical_actual_solution_bound. ff_lt_gcrt_dominating_canonical_actual_solution_bound + S gcrt_solution_index_dominating_canonical_actual_solution = S l) -> (((exists ff_h_gcrt_dominating_canonical_actual_solution_residue. ff_h_gcrt_dominating_canonical_actual_solution_residue + S (gcrt_solution_residue_dominating_canonical_actual_solution) = S ((S (gcrt_solution_index_dominating_canonical_actual_solution)) * s)) /\ exists ff_q_gcrt_dominating_canonical_actual_solution_residue. r = ff_q_gcrt_dominating_canonical_actual_solution_residue * S ((S (gcrt_solution_index_dominating_canonical_actual_solution)) * s) + (gcrt_solution_residue_dominating_canonical_actual_solution))) -> (((exists ff_h_gcrt_dominating_canonical_actual_solution_modulus. ff_h_gcrt_dominating_canonical_actual_solution_modulus + S (gcrt_solution_modulus_dominating_canonical_actual_solution) = S ((S (gcrt_solution_index_dominating_canonical_actual_solution)) * c)) /\ exists ff_q_gcrt_dominating_canonical_actual_solution_modulus. b = ff_q_gcrt_dominating_canonical_actual_solution_modulus * S ((S (gcrt_solution_index_dominating_canonical_actual_solution)) * c) + (gcrt_solution_modulus_dominating_canonical_actual_solution))) -> (exists hgcrt_mod_left_gcrt_dominating_canonical_actual_solution_congruence hgcrt_mod_right_gcrt_dominating_canonical_actual_solution_congruence. z + gcrt_solution_modulus_dominating_canonical_actual_solution * hgcrt_mod_left_gcrt_dominating_canonical_actual_solution_congruence = gcrt_solution_residue_dominating_canonical_actual_solution + gcrt_solution_modulus_dominating_canonical_actual_solution * hgcrt_mod_right_gcrt_dominating_canonical_actual_solution_congruence))))) - 0029
specialize crt_prefix_solution_canonical_remainder r - 0030
specialize crt_prefix_solution_canonical_remainder s - 0031
specialize crt_prefix_solution_canonical_remainder b - 0032
specialize crt_prefix_solution_canonical_remainder c - 0033
specialize crt_prefix_solution_canonical_remainder (S l) - 0034
specialize crt_prefix_solution_canonical_remainder x - 0035
specialize crt_prefix_solution_canonical_remainder a - 0036
apply crt_prefix_solution_canonical_remainder - 0037
exact hnonzero - 0038
exact crt_prefix_lcm_exists_unique_witness_left - 0039
specialize crt_pairwise_compatible_dominating_last_solution r - 0040
specialize crt_pairwise_compatible_dominating_last_solution s - 0041
specialize crt_pairwise_compatible_dominating_last_solution b - 0042
specialize crt_pairwise_compatible_dominating_last_solution c - 0043
specialize crt_pairwise_compatible_dominating_last_solution l - 0044
specialize crt_pairwise_compatible_dominating_last_solution a - 0045
specialize crt_pairwise_compatible_dominating_last_solution M - 0046
apply crt_pairwise_compatible_dominating_last_solution - 0047
exact hpairs - 0048
exact ha - 0049
exact hM - 0050
exact hcommon - 0051
cases hcanonical - 0052
exists x1 - 0053
exists x - 0054
split - 0055
exact hcanonical_witness - 0056
intro y - 0057
intro hy - 0058
specialize crt_canonical_prefix_solution_unique r - 0059
specialize crt_canonical_prefix_solution_unique s - 0060
specialize crt_canonical_prefix_solution_unique b - 0061
specialize crt_canonical_prefix_solution_unique c - 0062
specialize crt_canonical_prefix_solution_unique (S l) - 0063
specialize crt_canonical_prefix_solution_unique x - 0064
specialize crt_canonical_prefix_solution_unique x1 - 0065
specialize crt_canonical_prefix_solution_unique y - 0066
apply crt_canonical_prefix_solution_unique - 0067
exact hcanonical_witness - 0068
exact hy