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 PA statement
forall P n x b. ~(P = 0) -> ~(n = 0) -> (forall d. (exists u. P = d * u) -> (exists v. n = d * v) -> d = 1) -> exists z. ((forall m a. (exists k. P = m * k) -> (exists u v. x + m * u = a + m * v) -> exists r s. z + m * r = a + m * s) /\ exists q r. z + n * q = b + n * r)Structural proof guide
Generated structural guide
One binary CRT extension preserves every old congruence whose modulus divides the accumulated product.
Use the direct prerequisites binary_crt, mod_eq_of_mod_eq_multiple, mod_eq_trans as previously established PA formulas.
The proof proceeds by case analysis (2), intermediate claims (2).
Referenced ingredients
Proof neighborhood
Direct dependencies
Direct dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Stable checked-use theorem is independently kernel-checked when replayed.
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 (3)
01Fix variables and assumptionsL1–7
02Establish hcrtL8–16
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary crt.
03Separate the logical casesL17–18
04Construct an explicit witnessL19–19
Supply the displayed value, then prove that it has the required property.
- L19
exists x1
05Separate the logical casesL20–20
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L20
split
06Fix variables and assumptionsL21–24
07Establish hzxL25–34
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq of mod eq multiple.
- L25
have hzx : exists u v. x1 + m * u = x + m * v - L26
specialize mod_eq_of_mod_eq_multiple m - L27
specialize mod_eq_of_mod_eq_multiple P - L28
specialize mod_eq_of_mod_eq_multiple x1 - L29
specialize mod_eq_of_mod_eq_multiple x - L30
apply mod_eq_of_mod_eq_multiple - L31
exact hmP - L32
exact hcrt_witness_left - L33
specialize mod_eq_trans m - L34
specialize mod_eq_trans x1
Original exact command ledger · 40 lines
- 0001
intro P - 0002
intro n - 0003
intro x - 0004
intro b - 0005
intro hP - 0006
intro hn - 0007
intro hcop - 0008
have hcrt : exists z. (exists u v. z + P * u = x + P * v) /\ (exists q r. z + n * q = b + n * r) - 0009
specialize binary_crt P - 0010
specialize binary_crt n - 0011
specialize binary_crt x - 0012
specialize binary_crt b - 0013
apply binary_crt - 0014
exact hP - 0015
exact hn - 0016
exact hcop - 0017
cases hcrt - 0018
cases hcrt_witness - 0019
exists x1 - 0020
split - 0021
intro m - 0022
intro a - 0023
intro hmP - 0024
intro hxa - 0025
have hzx : exists u v. x1 + m * u = x + m * v - 0026
specialize mod_eq_of_mod_eq_multiple m - 0027
specialize mod_eq_of_mod_eq_multiple P - 0028
specialize mod_eq_of_mod_eq_multiple x1 - 0029
specialize mod_eq_of_mod_eq_multiple x - 0030
apply mod_eq_of_mod_eq_multiple - 0031
exact hmP - 0032
exact hcrt_witness_left - 0033
specialize mod_eq_trans m - 0034
specialize mod_eq_trans x1 - 0035
specialize mod_eq_trans x - 0036
specialize mod_eq_trans a - 0037
apply mod_eq_trans - 0038
exact hzx - 0039
exact hxa - 0040
exact hcrt_witness_right