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. CRTPositiveModuliPrefix(b,c,l) → CRTPairwiseCoprimePrefix(b,c,l) → ∃ x. ∃ y. CRTCanonicalPrefixSolution(r,s,b,c,l,x,y) ∧ (∀ z. CRTCanonicalPrefixSolution(r,s,b,c,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 70 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 (5)
01Fix variables and assumptionsL1–7
02Use earlier factsL8–10
03Separate the logical casesL11–12
04Establish hnonzeroL13–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt positive moduli prefix product nonzero.
- L13
have hnonzero : ~(x = 0) - L14
specialize crt_positive_moduli_prefix_product_nonzero b - L15
specialize crt_positive_moduli_prefix_product_nonzero c - L16
specialize crt_positive_moduli_prefix_product_nonzero l - L17
specialize crt_positive_moduli_prefix_product_nonzero x - L18
intro hzero - L19
apply crt_positive_moduli_prefix_product_nonzero - L20
exact hpositive - L21
exact beta_product_exists_unique_witness_left - L22
exact hzero
05Establish hlcmL23–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt pairwise coprime prefix product is lcm.
- L23
have hlcm : CRTPrefixLCM(b,c,l,x)Definitions: CRTPrefixLCMOriginal native command in the exact edition - L24
specialize crt_pairwise_coprime_prefix_product_is_lcm b - L25
specialize crt_pairwise_coprime_prefix_product_is_lcm c - L26
specialize crt_pairwise_coprime_prefix_product_is_lcm l - L27
specialize crt_pairwise_coprime_prefix_product_is_lcm x - L28
apply crt_pairwise_coprime_prefix_product_is_lcm - L29
exact hpairs - L30
exact beta_product_exists_unique_witness_left
06Establish hsolutionL31–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt pairwise coprime prefix solution exists.
- L31
have hsolution : ∃ y. CRTPrefixSolution(r,s,b,c,l,y)Definitions: CRTPrefixSolutionOriginal native command in the exact edition - L32
specialize crt_pairwise_coprime_prefix_solution_exists r - L33
specialize crt_pairwise_coprime_prefix_solution_exists s - L34
specialize crt_pairwise_coprime_prefix_solution_exists b - L35
specialize crt_pairwise_coprime_prefix_solution_exists c - L36
specialize crt_pairwise_coprime_prefix_solution_exists l - L37
apply crt_pairwise_coprime_prefix_solution_exists - L38
exact hpositive - L39
exact hpairs
07Separate the logical casesL40–40
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L40
cases hsolution
08Establish hcanonicalL41–50
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt prefix solution canonical remainder.
- L41
have hcanonical : ∃ z. CRTCanonicalPrefixSolution(r,s,b,c,l,z,x)Definitions: CRTCanonicalPrefixSolutionOriginal native command in the exact edition - L42
specialize crt_prefix_solution_canonical_remainder r - L43
specialize crt_prefix_solution_canonical_remainder s - L44
specialize crt_prefix_solution_canonical_remainder b - L45
specialize crt_prefix_solution_canonical_remainder c - L46
specialize crt_prefix_solution_canonical_remainder l - L47
specialize crt_prefix_solution_canonical_remainder x - L48
specialize crt_prefix_solution_canonical_remainder x1 - L49
apply crt_prefix_solution_canonical_remainder - L50
exact hnonzero
09Use earlier factsL51–52
10Separate the logical casesL53–53
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L53
cases hcanonical
11Construct an explicit witnessL54–55
12Separate the logical casesL56–56
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L56
split
13Use earlier factsL57–57
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L57
exact hcanonical_witness
14Fix variables and assumptionsL58–59
15Use earlier factsL60–69
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L60
specialize crt_canonical_prefix_solution_unique r - L61
specialize crt_canonical_prefix_solution_unique s - L62
specialize crt_canonical_prefix_solution_unique b - L63
specialize crt_canonical_prefix_solution_unique c - L64
specialize crt_canonical_prefix_solution_unique l - L65
specialize crt_canonical_prefix_solution_unique x - L66
specialize crt_canonical_prefix_solution_unique x2 - L67
specialize crt_canonical_prefix_solution_unique y - L68
apply crt_canonical_prefix_solution_unique - L69
exact hcanonical_witness
16Use earlier factsL70–70
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L70
exact hy
Original defined command ledger · 70 lines
- 0001
intro r - 0002
intro s - 0003
intro b - 0004
intro c - 0005
intro l - 0006
intro hpositive - 0007
intro hpairs - 0008
specialize beta_product_exists_unique b - 0009
specialize beta_product_exists_unique c - 0010
specialize beta_product_exists_unique l - 0011
cases beta_product_exists_unique - 0012
cases beta_product_exists_unique_witness - 0013
have hnonzero : ~(x = 0) - 0014
specialize crt_positive_moduli_prefix_product_nonzero b - 0015
specialize crt_positive_moduli_prefix_product_nonzero c - 0016
specialize crt_positive_moduli_prefix_product_nonzero l - 0017
specialize crt_positive_moduli_prefix_product_nonzero x - 0018
intro hzero - 0019
apply crt_positive_moduli_prefix_product_nonzero - 0020
exact hpositive - 0021
exact beta_product_exists_unique_witness_left - 0022
exact hzero - 0023
have hlcm : ((forall gcrt_common_index_final_actual_lcm_own gcrt_common_modulus_final_actual_lcm_own. (exists ff_lt_gcrt_final_actual_lcm_own_bound. ff_lt_gcrt_final_actual_lcm_own_bound + S gcrt_common_index_final_actual_lcm_own = l) -> (((exists ff_h_gcrt_final_actual_lcm_own_entry. ff_h_gcrt_final_actual_lcm_own_entry + S (gcrt_common_modulus_final_actual_lcm_own) = S ((S (gcrt_common_index_final_actual_lcm_own)) * c)) /\ exists ff_q_gcrt_final_actual_lcm_own_entry. b = ff_q_gcrt_final_actual_lcm_own_entry * S ((S (gcrt_common_index_final_actual_lcm_own)) * c) + (gcrt_common_modulus_final_actual_lcm_own))) -> exists gcrt_common_quotient_final_actual_lcm_own. x = gcrt_common_modulus_final_actual_lcm_own * gcrt_common_quotient_final_actual_lcm_own) /\ forall gcrt_lcm_common_final_actual_lcm. (forall gcrt_common_index_final_actual_lcm_other gcrt_common_modulus_final_actual_lcm_other. (exists ff_lt_gcrt_final_actual_lcm_other_bound. ff_lt_gcrt_final_actual_lcm_other_bound + S gcrt_common_index_final_actual_lcm_other = l) -> (((exists ff_h_gcrt_final_actual_lcm_other_entry. ff_h_gcrt_final_actual_lcm_other_entry + S (gcrt_common_modulus_final_actual_lcm_other) = S ((S (gcrt_common_index_final_actual_lcm_other)) * c)) /\ exists ff_q_gcrt_final_actual_lcm_other_entry. b = ff_q_gcrt_final_actual_lcm_other_entry * S ((S (gcrt_common_index_final_actual_lcm_other)) * c) + (gcrt_common_modulus_final_actual_lcm_other))) -> exists gcrt_common_quotient_final_actual_lcm_other. gcrt_lcm_common_final_actual_lcm = gcrt_common_modulus_final_actual_lcm_other * gcrt_common_quotient_final_actual_lcm_other) -> exists gcrt_lcm_quotient_final_actual_lcm. gcrt_lcm_common_final_actual_lcm = x * gcrt_lcm_quotient_final_actual_lcm) - 0024
specialize crt_pairwise_coprime_prefix_product_is_lcm b - 0025
specialize crt_pairwise_coprime_prefix_product_is_lcm c - 0026
specialize crt_pairwise_coprime_prefix_product_is_lcm l - 0027
specialize crt_pairwise_coprime_prefix_product_is_lcm x - 0028
apply crt_pairwise_coprime_prefix_product_is_lcm - 0029
exact hpairs - 0030
exact beta_product_exists_unique_witness_left - 0031
have hsolution : exists y. (forall gcrt_solution_index_final_unbounded gcrt_solution_residue_final_unbounded gcrt_solution_modulus_final_unbounded. (exists ff_lt_gcrt_final_unbounded_bound. ff_lt_gcrt_final_unbounded_bound + S gcrt_solution_index_final_unbounded = l) -> (((exists ff_h_gcrt_final_unbounded_residue. ff_h_gcrt_final_unbounded_residue + S (gcrt_solution_residue_final_unbounded) = S ((S (gcrt_solution_index_final_unbounded)) * s)) /\ exists ff_q_gcrt_final_unbounded_residue. r = ff_q_gcrt_final_unbounded_residue * S ((S (gcrt_solution_index_final_unbounded)) * s) + (gcrt_solution_residue_final_unbounded))) -> (((exists ff_h_gcrt_final_unbounded_modulus. ff_h_gcrt_final_unbounded_modulus + S (gcrt_solution_modulus_final_unbounded) = S ((S (gcrt_solution_index_final_unbounded)) * c)) /\ exists ff_q_gcrt_final_unbounded_modulus. b = ff_q_gcrt_final_unbounded_modulus * S ((S (gcrt_solution_index_final_unbounded)) * c) + (gcrt_solution_modulus_final_unbounded))) -> (exists hgcrt_mod_left_gcrt_final_unbounded_congruence hgcrt_mod_right_gcrt_final_unbounded_congruence. y + gcrt_solution_modulus_final_unbounded * hgcrt_mod_left_gcrt_final_unbounded_congruence = gcrt_solution_residue_final_unbounded + gcrt_solution_modulus_final_unbounded * hgcrt_mod_right_gcrt_final_unbounded_congruence)) - 0032
specialize crt_pairwise_coprime_prefix_solution_exists r - 0033
specialize crt_pairwise_coprime_prefix_solution_exists s - 0034
specialize crt_pairwise_coprime_prefix_solution_exists b - 0035
specialize crt_pairwise_coprime_prefix_solution_exists c - 0036
specialize crt_pairwise_coprime_prefix_solution_exists l - 0037
apply crt_pairwise_coprime_prefix_solution_exists - 0038
exact hpositive - 0039
exact hpairs - 0040
cases hsolution - 0041
have hcanonical : exists z. (((((forall gcrt_common_index_final_canonical_lcm_own gcrt_common_modulus_final_canonical_lcm_own. (exists ff_lt_gcrt_final_canonical_lcm_own_bound. ff_lt_gcrt_final_canonical_lcm_own_bound + S gcrt_common_index_final_canonical_lcm_own = l) -> (((exists ff_h_gcrt_final_canonical_lcm_own_entry. ff_h_gcrt_final_canonical_lcm_own_entry + S (gcrt_common_modulus_final_canonical_lcm_own) = S ((S (gcrt_common_index_final_canonical_lcm_own)) * c)) /\ exists ff_q_gcrt_final_canonical_lcm_own_entry. b = ff_q_gcrt_final_canonical_lcm_own_entry * S ((S (gcrt_common_index_final_canonical_lcm_own)) * c) + (gcrt_common_modulus_final_canonical_lcm_own))) -> exists gcrt_common_quotient_final_canonical_lcm_own. x = gcrt_common_modulus_final_canonical_lcm_own * gcrt_common_quotient_final_canonical_lcm_own) /\ forall gcrt_lcm_common_final_canonical_lcm. (forall gcrt_common_index_final_canonical_lcm_other gcrt_common_modulus_final_canonical_lcm_other. (exists ff_lt_gcrt_final_canonical_lcm_other_bound. ff_lt_gcrt_final_canonical_lcm_other_bound + S gcrt_common_index_final_canonical_lcm_other = l) -> (((exists ff_h_gcrt_final_canonical_lcm_other_entry. ff_h_gcrt_final_canonical_lcm_other_entry + S (gcrt_common_modulus_final_canonical_lcm_other) = S ((S (gcrt_common_index_final_canonical_lcm_other)) * c)) /\ exists ff_q_gcrt_final_canonical_lcm_other_entry. b = ff_q_gcrt_final_canonical_lcm_other_entry * S ((S (gcrt_common_index_final_canonical_lcm_other)) * c) + (gcrt_common_modulus_final_canonical_lcm_other))) -> exists gcrt_common_quotient_final_canonical_lcm_other. gcrt_lcm_common_final_canonical_lcm = gcrt_common_modulus_final_canonical_lcm_other * gcrt_common_quotient_final_canonical_lcm_other) -> exists gcrt_lcm_quotient_final_canonical_lcm. gcrt_lcm_common_final_canonical_lcm = x * gcrt_lcm_quotient_final_canonical_lcm)) /\ ((exists ff_lt_gcrt_final_canonical_bounded. ff_lt_gcrt_final_canonical_bounded + S z = x) /\ (forall gcrt_solution_index_final_canonical_solution gcrt_solution_residue_final_canonical_solution gcrt_solution_modulus_final_canonical_solution. (exists ff_lt_gcrt_final_canonical_solution_bound. ff_lt_gcrt_final_canonical_solution_bound + S gcrt_solution_index_final_canonical_solution = l) -> (((exists ff_h_gcrt_final_canonical_solution_residue. ff_h_gcrt_final_canonical_solution_residue + S (gcrt_solution_residue_final_canonical_solution) = S ((S (gcrt_solution_index_final_canonical_solution)) * s)) /\ exists ff_q_gcrt_final_canonical_solution_residue. r = ff_q_gcrt_final_canonical_solution_residue * S ((S (gcrt_solution_index_final_canonical_solution)) * s) + (gcrt_solution_residue_final_canonical_solution))) -> (((exists ff_h_gcrt_final_canonical_solution_modulus. ff_h_gcrt_final_canonical_solution_modulus + S (gcrt_solution_modulus_final_canonical_solution) = S ((S (gcrt_solution_index_final_canonical_solution)) * c)) /\ exists ff_q_gcrt_final_canonical_solution_modulus. b = ff_q_gcrt_final_canonical_solution_modulus * S ((S (gcrt_solution_index_final_canonical_solution)) * c) + (gcrt_solution_modulus_final_canonical_solution))) -> (exists hgcrt_mod_left_gcrt_final_canonical_solution_congruence hgcrt_mod_right_gcrt_final_canonical_solution_congruence. z + gcrt_solution_modulus_final_canonical_solution * hgcrt_mod_left_gcrt_final_canonical_solution_congruence = gcrt_solution_residue_final_canonical_solution + gcrt_solution_modulus_final_canonical_solution * hgcrt_mod_right_gcrt_final_canonical_solution_congruence))))) - 0042
specialize crt_prefix_solution_canonical_remainder r - 0043
specialize crt_prefix_solution_canonical_remainder s - 0044
specialize crt_prefix_solution_canonical_remainder b - 0045
specialize crt_prefix_solution_canonical_remainder c - 0046
specialize crt_prefix_solution_canonical_remainder l - 0047
specialize crt_prefix_solution_canonical_remainder x - 0048
specialize crt_prefix_solution_canonical_remainder x1 - 0049
apply crt_prefix_solution_canonical_remainder - 0050
exact hnonzero - 0051
exact hlcm - 0052
exact hsolution_witness - 0053
cases hcanonical - 0054
exists x2 - 0055
exists x - 0056
split - 0057
exact hcanonical_witness - 0058
intro y - 0059
intro hy - 0060
specialize crt_canonical_prefix_solution_unique r - 0061
specialize crt_canonical_prefix_solution_unique s - 0062
specialize crt_canonical_prefix_solution_unique b - 0063
specialize crt_canonical_prefix_solution_unique c - 0064
specialize crt_canonical_prefix_solution_unique l - 0065
specialize crt_canonical_prefix_solution_unique x - 0066
specialize crt_canonical_prefix_solution_unique x2 - 0067
specialize crt_canonical_prefix_solution_unique y - 0068
apply crt_canonical_prefix_solution_unique - 0069
exact hcanonical_witness - 0070
exact hy