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
∀ s. ∀ a. ∀ n. ∀ g. ∀ A. A = s · a → Coprime(s,n) → IsGCD(g,a,n) → IsGCD(g,A,n)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 69 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–8
02Separate the logical casesL9–10
03Use earlier factsL11–13
04Establish hdividesL14–16
05Separate the logical casesL17–17
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L17
cases hdivides
06Construct an explicit witnessL18–18
Supply the displayed value, then prove that it has the required property.
- L18
exists s * x
07Calculate and transport equalitiesL19–22
08Use earlier factsL23–23
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L23
apply mul_assoc
09Calculate and transport equalitiesL24–25
10Use earlier factsL26–26
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L26
apply mul_comm
11Calculate and transport equalitiesL27–27
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L27
refl
12Use earlier factsL28–33
13Fix variables and assumptionsL34–36
14Establish hforwardL37–46
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply crt coprime divisor pair.
- L37
have hforward : forall frp_divisor_gcomp_remove_forward. (exists frp_left_factor_gcomp_remove_forward. s = frp_divisor_gcomp_remove_forward * frp_left_factor_gcomp_remove_forward) -> (exists frp_right_factor_gcomp_remove_forward. d = frp_divisor_gcomp_remove_forward * frp_right_factor_gcomp_remove_forward) -> frp_divisor_gcomp_remove_forward = 1 - L38
specialize crt_coprime_divisor_pair s - L39
specialize crt_coprime_divisor_pair n - L40
specialize crt_coprime_divisor_pair s - L41
specialize crt_coprime_divisor_pair d - L42
apply crt_coprime_divisor_pair - L43
exact hcoprime - L44
specialize multiple_refl s - L45
exact multiple_refl - L46
exact hdn
15Establish hreverseL47–51
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply coprime symm.
- L47
have hreverse : forall frp_divisor_gcomp_remove_reverse. (exists frp_left_factor_gcomp_remove_reverse. d = frp_divisor_gcomp_remove_reverse * frp_left_factor_gcomp_remove_reverse) -> (exists frp_right_factor_gcomp_remove_reverse. s = frp_divisor_gcomp_remove_reverse * frp_right_factor_gcomp_remove_reverse) -> frp_divisor_gcomp_remove_reverse = 1 - L48
specialize coprime_symm s - L49
specialize coprime_symm d - L50
apply coprime_symm - L51
exact hforward
16Establish hdaL52–57
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gauss coprime cancel.
17Separate the logical casesL58–58
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L58
cases hdA
18Construct an explicit witnessL59–59
Supply the displayed value, then prove that it has the required property.
- L59
exists x
19Calculate and transport equalitiesL60–60
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L60
rewrite hA at hdA_witness
20Use earlier factsL61–69
Original defined command ledger · 69 lines
- 0001
intro s - 0002
intro a - 0003
intro n - 0004
intro g - 0005
intro A - 0006
intro hA - 0007
intro hcoprime - 0008
intro hg - 0009
split - 0010
split - 0011
specialize is_gcd_dvd_left g - 0012
specialize is_gcd_dvd_left a - 0013
specialize is_gcd_dvd_left n - 0014
have hdivides : exists q. a = g * q - 0015
apply is_gcd_dvd_left - 0016
exact hg - 0017
cases hdivides - 0018
exists s * x - 0019
rewrite hA - 0020
rewrite hdivides_witness - 0021
trans (s * g) * x - 0022
symm - 0023
apply mul_assoc - 0024
trans (g * s) * x - 0025
congr - 0026
apply mul_comm - 0027
refl - 0028
apply mul_assoc - 0029
specialize is_gcd_dvd_right g - 0030
specialize is_gcd_dvd_right a - 0031
specialize is_gcd_dvd_right n - 0032
apply is_gcd_dvd_right - 0033
exact hg - 0034
intro d - 0035
intro hdA - 0036
intro hdn - 0037
have hforward : forall frp_divisor_gcomp_remove_forward. (exists frp_left_factor_gcomp_remove_forward. s = frp_divisor_gcomp_remove_forward * frp_left_factor_gcomp_remove_forward) -> (exists frp_right_factor_gcomp_remove_forward. d = frp_divisor_gcomp_remove_forward * frp_right_factor_gcomp_remove_forward) -> frp_divisor_gcomp_remove_forward = 1 - 0038
specialize crt_coprime_divisor_pair s - 0039
specialize crt_coprime_divisor_pair n - 0040
specialize crt_coprime_divisor_pair s - 0041
specialize crt_coprime_divisor_pair d - 0042
apply crt_coprime_divisor_pair - 0043
exact hcoprime - 0044
specialize multiple_refl s - 0045
exact multiple_refl - 0046
exact hdn - 0047
have hreverse : forall frp_divisor_gcomp_remove_reverse. (exists frp_left_factor_gcomp_remove_reverse. d = frp_divisor_gcomp_remove_reverse * frp_left_factor_gcomp_remove_reverse) -> (exists frp_right_factor_gcomp_remove_reverse. s = frp_divisor_gcomp_remove_reverse * frp_right_factor_gcomp_remove_reverse) -> frp_divisor_gcomp_remove_reverse = 1 - 0048
specialize coprime_symm s - 0049
specialize coprime_symm d - 0050
apply coprime_symm - 0051
exact hforward - 0052
have hda : exists q. a = d * q - 0053
specialize gauss_coprime_cancel d - 0054
specialize gauss_coprime_cancel s - 0055
specialize gauss_coprime_cancel a - 0056
apply gauss_coprime_cancel - 0057
exact hreverse - 0058
cases hdA - 0059
exists x - 0060
rewrite hA at hdA_witness - 0061
exact hdA_witness - 0062
specialize is_gcd_greatest g - 0063
specialize is_gcd_greatest a - 0064
specialize is_gcd_greatest n - 0065
specialize is_gcd_greatest d - 0066
apply is_gcd_greatest - 0067
exact hg - 0068
exact hda - 0069
exact hdn