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
∀ b. ∀ c. ∀ l. ∀ x. CRTPositiveModuliPrefix(b,c,l) → (∃ y. ∃ z. Beta(y,z,0,1) ∧ (Beta(y,z,l,x) ∧ (∀ n. Lt(n,l) → ∃ m. ∃ k. ∃ i. Beta(b,c,n,m) ∧ (Beta(y,z,n,k) ∧ (Beta(y,z,S n,i) ∧ i = k · m))))) → ¬x = 0
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 62 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–2
02Induction on lL3–7
03Establish hunitL8–17
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta product zero.
04Fix variables and assumptionsL18–21
05Establish hdecompositionL22–28
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta product succ decompose.
- L22
have hdecomposition : ∃ p. ∃ q. Beta(b,c,l,p) ∧ ((∃ y. ∃ z. Beta(y,z,0,1) ∧ (Beta(y,z,l,q) ∧ (∀ n. Lt(n,l) → ∃ m. ∃ k. ∃ i. Beta(b,c,n,m) ∧ (Beta(y,z,n,k) ∧ (Beta(y,z,S n,i) ∧ i = k · m))))) ∧ x = q · p)Definitions: BetaLtOriginal native command in the exact edition - L23
specialize beta_product_succ_decompose b - L24
specialize beta_product_succ_decompose c - L25
specialize beta_product_succ_decompose l - L26
specialize beta_product_succ_decompose x - L27
apply beta_product_succ_decompose - L28
exact hproduct
06Separate the logical casesL29–32
07Establish hrestrictedL33–38
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt positive moduli prefix drop last.
- L33
have hrestricted : CRTPositiveModuliPrefix(b,c,l)Definitions: CRTPositiveModuliPrefixOriginal native command in the exact edition - L34
specialize crt_positive_moduli_prefix_drop_last b - L35
specialize crt_positive_moduli_prefix_drop_last c - L36
specialize crt_positive_moduli_prefix_drop_last l - L37
apply crt_positive_moduli_prefix_drop_last - L38
exact hpositive
08Establish hprefix_nonzeroL39–45
09Establish hlast_nonzeroL46–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt positive moduli prefix last nonzero.
- L46
have hlast_nonzero : ~(x1 = 0) - L47
specialize crt_positive_moduli_prefix_last_nonzero b - L48
specialize crt_positive_moduli_prefix_last_nonzero c - L49
specialize crt_positive_moduli_prefix_last_nonzero l - L50
specialize crt_positive_moduli_prefix_last_nonzero x1 - L51
intro hlast_zero - L52
apply crt_positive_moduli_prefix_last_nonzero - L53
exact hpositive - L54
exact hdecomposition_witness_witness_left - L55
exact hlast_zero
10Calculate and transport equalitiesL56–56
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L56
rewrite hdecomposition_witness_witness_right_right at hzero
Original defined command ledger · 62 lines
- 0001
intro b - 0002
intro c - 0003
induction l - 0004
intro x - 0005
intro hpositive - 0006
intro hproduct - 0007
intro hzero - 0008
have hunit : x = 1 - 0009
specialize beta_product_zero b - 0010
specialize beta_product_zero c - 0011
specialize beta_product_zero x - 0012
apply beta_product_zero - 0013
exact hproduct - 0014
rewrite hunit at hzero - 0015
specialize succ_ne_zero 0 - 0016
apply succ_ne_zero - 0017
exact hzero - 0018
intro x - 0019
intro hpositive - 0020
intro hproduct - 0021
intro hzero - 0022
have hdecomposition : exists p q. ((((exists ff_h_gcrt_nonzero_decompose_last. ff_h_gcrt_nonzero_decompose_last + S (p) = S ((S (l)) * c)) /\ exists ff_q_gcrt_nonzero_decompose_last. b = ff_q_gcrt_nonzero_decompose_last * S ((S (l)) * c) + (p))) /\ ((exists ff_u_gcrt_nonzero_decompose_prefix ff_v_gcrt_nonzero_decompose_prefix. ((((exists ff_h_gcrt_nonzero_decompose_prefix_start. ff_h_gcrt_nonzero_decompose_prefix_start + S (1) = S ((S (0)) * ff_v_gcrt_nonzero_decompose_prefix)) /\ exists ff_q_gcrt_nonzero_decompose_prefix_start. ff_u_gcrt_nonzero_decompose_prefix = ff_q_gcrt_nonzero_decompose_prefix_start * S ((S (0)) * ff_v_gcrt_nonzero_decompose_prefix) + (1))) /\ ((((exists ff_h_gcrt_nonzero_decompose_prefix_terminal. ff_h_gcrt_nonzero_decompose_prefix_terminal + S (q) = S ((S (l)) * ff_v_gcrt_nonzero_decompose_prefix)) /\ exists ff_q_gcrt_nonzero_decompose_prefix_terminal. ff_u_gcrt_nonzero_decompose_prefix = ff_q_gcrt_nonzero_decompose_prefix_terminal * S ((S (l)) * ff_v_gcrt_nonzero_decompose_prefix) + (q))) /\ forall ff_i_gcrt_nonzero_decompose_prefix. (exists ff_lt_gcrt_nonzero_decompose_prefix_bound. ff_lt_gcrt_nonzero_decompose_prefix_bound + S ff_i_gcrt_nonzero_decompose_prefix = l) -> exists ff_p_gcrt_nonzero_decompose_prefix ff_r_gcrt_nonzero_decompose_prefix ff_s_gcrt_nonzero_decompose_prefix. ((((exists ff_h_gcrt_nonzero_decompose_prefix_factor. ff_h_gcrt_nonzero_decompose_prefix_factor + S (ff_p_gcrt_nonzero_decompose_prefix) = S ((S (ff_i_gcrt_nonzero_decompose_prefix)) * c)) /\ exists ff_q_gcrt_nonzero_decompose_prefix_factor. b = ff_q_gcrt_nonzero_decompose_prefix_factor * S ((S (ff_i_gcrt_nonzero_decompose_prefix)) * c) + (ff_p_gcrt_nonzero_decompose_prefix))) /\ ((((exists ff_h_gcrt_nonzero_decompose_prefix_partial. ff_h_gcrt_nonzero_decompose_prefix_partial + S (ff_r_gcrt_nonzero_decompose_prefix) = S ((S (ff_i_gcrt_nonzero_decompose_prefix)) * ff_v_gcrt_nonzero_decompose_prefix)) /\ exists ff_q_gcrt_nonzero_decompose_prefix_partial. ff_u_gcrt_nonzero_decompose_prefix = ff_q_gcrt_nonzero_decompose_prefix_partial * S ((S (ff_i_gcrt_nonzero_decompose_prefix)) * ff_v_gcrt_nonzero_decompose_prefix) + (ff_r_gcrt_nonzero_decompose_prefix))) /\ ((((exists ff_h_gcrt_nonzero_decompose_prefix_successor. ff_h_gcrt_nonzero_decompose_prefix_successor + S (ff_s_gcrt_nonzero_decompose_prefix) = S ((S (S ff_i_gcrt_nonzero_decompose_prefix)) * ff_v_gcrt_nonzero_decompose_prefix)) /\ exists ff_q_gcrt_nonzero_decompose_prefix_successor. ff_u_gcrt_nonzero_decompose_prefix = ff_q_gcrt_nonzero_decompose_prefix_successor * S ((S (S ff_i_gcrt_nonzero_decompose_prefix)) * ff_v_gcrt_nonzero_decompose_prefix) + (ff_s_gcrt_nonzero_decompose_prefix))) /\ ff_s_gcrt_nonzero_decompose_prefix = ff_r_gcrt_nonzero_decompose_prefix * ff_p_gcrt_nonzero_decompose_prefix)))))) /\ x = q * p)) - 0023
specialize beta_product_succ_decompose b - 0024
specialize beta_product_succ_decompose c - 0025
specialize beta_product_succ_decompose l - 0026
specialize beta_product_succ_decompose x - 0027
apply beta_product_succ_decompose - 0028
exact hproduct - 0029
cases hdecomposition - 0030
cases hdecomposition_witness - 0031
cases hdecomposition_witness_witness - 0032
cases hdecomposition_witness_witness_right - 0033
have hrestricted : forall gcrt_positive_index_product_nonzero_restricted gcrt_positive_value_product_nonzero_restricted. (exists ff_lt_gcrt_product_nonzero_restricted_bound. ff_lt_gcrt_product_nonzero_restricted_bound + S gcrt_positive_index_product_nonzero_restricted = l) -> (((exists ff_h_gcrt_product_nonzero_restricted_entry. ff_h_gcrt_product_nonzero_restricted_entry + S (gcrt_positive_value_product_nonzero_restricted) = S ((S (gcrt_positive_index_product_nonzero_restricted)) * c)) /\ exists ff_q_gcrt_product_nonzero_restricted_entry. b = ff_q_gcrt_product_nonzero_restricted_entry * S ((S (gcrt_positive_index_product_nonzero_restricted)) * c) + (gcrt_positive_value_product_nonzero_restricted))) -> ~(gcrt_positive_value_product_nonzero_restricted = 0) - 0034
specialize crt_positive_moduli_prefix_drop_last b - 0035
specialize crt_positive_moduli_prefix_drop_last c - 0036
specialize crt_positive_moduli_prefix_drop_last l - 0037
apply crt_positive_moduli_prefix_drop_last - 0038
exact hpositive - 0039
have hprefix_nonzero : ~(x2 = 0) - 0040
specialize IH x2 - 0041
intro hprefix_zero - 0042
apply IH - 0043
exact hrestricted - 0044
exact hdecomposition_witness_witness_right_left - 0045
exact hprefix_zero - 0046
have hlast_nonzero : ~(x1 = 0) - 0047
specialize crt_positive_moduli_prefix_last_nonzero b - 0048
specialize crt_positive_moduli_prefix_last_nonzero c - 0049
specialize crt_positive_moduli_prefix_last_nonzero l - 0050
specialize crt_positive_moduli_prefix_last_nonzero x1 - 0051
intro hlast_zero - 0052
apply crt_positive_moduli_prefix_last_nonzero - 0053
exact hpositive - 0054
exact hdecomposition_witness_witness_left - 0055
exact hlast_zero - 0056
rewrite hdecomposition_witness_witness_right_right at hzero - 0057
specialize mul_ne_zero x2 - 0058
specialize mul_ne_zero x1 - 0059
apply mul_ne_zero - 0060
exact hprefix_nonzero - 0061
exact hlast_nonzero - 0062
exact hzero