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 first-order arithmetic statement
forall s a n g A. A = s * a -> (forall frp_divisor_gcomp_remove_coprime. (exists frp_left_factor_gcomp_remove_coprime. s = frp_divisor_gcomp_remove_coprime * frp_left_factor_gcomp_remove_coprime) -> (exists frp_right_factor_gcomp_remove_coprime. n = frp_divisor_gcomp_remove_coprime * frp_right_factor_gcomp_remove_coprime) -> frp_divisor_gcomp_remove_coprime = 1) -> ((((exists hag_left_factor_gcomp_remove_source. a = g * hag_left_factor_gcomp_remove_source) /\ (exists hag_right_factor_gcomp_remove_source. n = g * hag_right_factor_gcomp_remove_source)) /\ forall hag_divisor_gcomp_remove_source. (exists hag_common_left_gcomp_remove_source. a = hag_divisor_gcomp_remove_source * hag_common_left_gcomp_remove_source) -> (exists hag_common_right_gcomp_remove_source. n = hag_divisor_gcomp_remove_source * hag_common_right_gcomp_remove_source) -> exists hag_greatest_factor_gcomp_remove_source. g = hag_divisor_gcomp_remove_source * hag_greatest_factor_gcomp_remove_source)) -> ((((exists hag_left_factor_gcomp_remove_result. A = g * hag_left_factor_gcomp_remove_result) /\ (exists hag_right_factor_gcomp_remove_result. n = g * hag_right_factor_gcomp_remove_result)) /\ forall hag_divisor_gcomp_remove_result. (exists hag_common_left_gcomp_remove_result. A = hag_divisor_gcomp_remove_result * hag_common_left_gcomp_remove_result) -> (exists hag_common_right_gcomp_remove_result. n = hag_divisor_gcomp_remove_result * hag_common_right_gcomp_remove_result) -> exists hag_greatest_factor_gcomp_remove_result. g = hag_divisor_gcomp_remove_result * hag_greatest_factor_gcomp_remove_result))Constructive proof overview
Generated structural guide
A multiplier coprime to the fixed right input does not change the full relational gcd of the left input.
The unchanged tactic script uses 9 declared prerequisites and contains 69 exact native proof lines.
Alpha v34 checked-use · first admitted v25 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
is_gcd_dvd_left Stable theorem; checked-use authorized is_gcd_dvd_right Stable theorem; checked-use authorized mul_comm Stable theorem; checked-use authorized mul_assoc Stable theorem; checked-use authorized multiple_refl Stable theorem; checked-use authorized GC0002 crt_coprime_divisor_pair coprime_symm Stable theorem; checked-use authorized gauss_coprime_cancel Stable theorem; checked-use authorized is_gcd_greatest Stable theorem; checked-use authorizedDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
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 exact 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
Separate complete second-wave branches: Full G011 proof · Alpha v27.