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 k a b g A B G. A = k * a -> B = k * b -> G = k * g -> ((((exists hag_left_factor_gcomp_gcd_scale_source. a = g * hag_left_factor_gcomp_gcd_scale_source) /\ (exists hag_right_factor_gcomp_gcd_scale_source. b = g * hag_right_factor_gcomp_gcd_scale_source)) /\ forall hag_divisor_gcomp_gcd_scale_source. (exists hag_common_left_gcomp_gcd_scale_source. a = hag_divisor_gcomp_gcd_scale_source * hag_common_left_gcomp_gcd_scale_source) -> (exists hag_common_right_gcomp_gcd_scale_source. b = hag_divisor_gcomp_gcd_scale_source * hag_common_right_gcomp_gcd_scale_source) -> exists hag_greatest_factor_gcomp_gcd_scale_source. g = hag_divisor_gcomp_gcd_scale_source * hag_greatest_factor_gcomp_gcd_scale_source)) -> ((((exists hag_left_factor_gcomp_gcd_scale_result. A = G * hag_left_factor_gcomp_gcd_scale_result) /\ (exists hag_right_factor_gcomp_gcd_scale_result. B = G * hag_right_factor_gcomp_gcd_scale_result)) /\ forall hag_divisor_gcomp_gcd_scale_result. (exists hag_common_left_gcomp_gcd_scale_result. A = hag_divisor_gcomp_gcd_scale_result * hag_common_left_gcomp_gcd_scale_result) -> (exists hag_common_right_gcomp_gcd_scale_result. B = hag_divisor_gcomp_gcd_scale_result * hag_common_right_gcomp_gcd_scale_result) -> exists hag_greatest_factor_gcomp_gcd_scale_result. G = hag_divisor_gcomp_gcd_scale_result * hag_greatest_factor_gcomp_gcd_scale_result))Constructive proof overview
Generated structural guide
Every common natural scale, including zero, transports the full relational greatest-common-divisor specification constructively.
The unchanged tactic script uses 7 declared prerequisites and contains 87 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_assoc Stable theorem; checked-use authorized gcd_balanced_bezout_exists Stable theorem; checked-use authorized is_gcd_unique Stable theorem; checked-use authorized GC000D crt_balanced_bezout_scale common_divisor_divides_balanced_result 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–10
02Fix variables and assumptionsL11–11
Work with arbitrary variables or the premises of the current implication.
- L11
intro hg
03Establish hleftL12–17
04Separate the logical casesL18–18
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L18
cases hleft
05Establish hrightL19–24
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply is gcd dvd right.
06Separate the logical casesL25–25
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L25
cases hright
07Use earlier factsL26–27
08Separate the logical casesL28–29
09Establish heqL30–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply is gcd unique.
10Separate the logical casesL38–41
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
11Calculate and transport equalitiesL42–42
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L42
rewrite heq at gcd_balanced_bezout_exists_witness_right_witness_witness_witness_witness
12Establish hscaledL43–52
Establish this local claim before using it. It is not an additional assumption.
13Use earlier factsL53–58
Instantiate or apply named facts and discharge the corresponding proof obligations.
14Separate the logical casesL59–60
15Construct an explicit witnessL61–61
Supply the displayed value, then prove that it has the required property.
- L61
exists x
16Calculate and transport equalitiesL62–65
17Use earlier factsL66–66
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L66
apply mul_assoc
18Construct an explicit witnessL67–67
Supply the displayed value, then prove that it has the required property.
- L67
exists x1
19Calculate and transport equalitiesL68–71
20Use earlier factsL72–72
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L72
apply mul_assoc
21Fix variables and assumptionsL73–75
22Use earlier factsL76–85
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L76
specialize common_divisor_divides_balanced_result d - L77
specialize common_divisor_divides_balanced_result A - L78
specialize common_divisor_divides_balanced_result B - L79
specialize common_divisor_divides_balanced_result G - L80
specialize common_divisor_divides_balanced_result x3 - L81
specialize common_divisor_divides_balanced_result x4 - L82
specialize common_divisor_divides_balanced_result x5 - L83
specialize common_divisor_divides_balanced_result x6 - L84
apply common_divisor_divides_balanced_result - L85
exact hdA
Original exact command ledger · 87 lines
- 0001
intro k - 0002
intro a - 0003
intro b - 0004
intro g - 0005
intro A - 0006
intro B - 0007
intro G - 0008
intro hA - 0009
intro hB - 0010
intro hG - 0011
intro hg - 0012
have hleft : exists q. a = g * q - 0013
specialize is_gcd_dvd_left g - 0014
specialize is_gcd_dvd_left a - 0015
specialize is_gcd_dvd_left b - 0016
apply is_gcd_dvd_left - 0017
exact hg - 0018
cases hleft - 0019
have hright : exists q. b = g * q - 0020
specialize is_gcd_dvd_right g - 0021
specialize is_gcd_dvd_right a - 0022
specialize is_gcd_dvd_right b - 0023
apply is_gcd_dvd_right - 0024
exact hg - 0025
cases hright - 0026
specialize gcd_balanced_bezout_exists a - 0027
specialize gcd_balanced_bezout_exists b - 0028
cases gcd_balanced_bezout_exists - 0029
cases gcd_balanced_bezout_exists_witness - 0030
have heq : x2 = g - 0031
specialize is_gcd_unique x2 - 0032
specialize is_gcd_unique g - 0033
specialize is_gcd_unique a - 0034
specialize is_gcd_unique b - 0035
apply is_gcd_unique - 0036
exact gcd_balanced_bezout_exists_witness_left - 0037
exact hg - 0038
cases gcd_balanced_bezout_exists_witness_right - 0039
cases gcd_balanced_bezout_exists_witness_right_witness - 0040
cases gcd_balanced_bezout_exists_witness_right_witness_witness - 0041
cases gcd_balanced_bezout_exists_witness_right_witness_witness_witness - 0042
rewrite heq at gcd_balanced_bezout_exists_witness_right_witness_witness_witness_witness - 0043
have hscaled : A * x3 + B * x4 = G + (A * x5 + B * x6) - 0044
rewrite hA - 0045
rewrite hA - 0046
rewrite hB - 0047
rewrite hB - 0048
rewrite hG - 0049
specialize crt_balanced_bezout_scale k - 0050
specialize crt_balanced_bezout_scale a - 0051
specialize crt_balanced_bezout_scale b - 0052
specialize crt_balanced_bezout_scale g - 0053
specialize crt_balanced_bezout_scale x3 - 0054
specialize crt_balanced_bezout_scale x4 - 0055
specialize crt_balanced_bezout_scale x5 - 0056
specialize crt_balanced_bezout_scale x6 - 0057
apply crt_balanced_bezout_scale - 0058
exact gcd_balanced_bezout_exists_witness_right_witness_witness_witness_witness - 0059
split - 0060
split - 0061
exists x - 0062
rewrite hA - 0063
rewrite hG - 0064
rewrite hleft_witness - 0065
symm - 0066
apply mul_assoc - 0067
exists x1 - 0068
rewrite hB - 0069
rewrite hG - 0070
rewrite hright_witness - 0071
symm - 0072
apply mul_assoc - 0073
intro d - 0074
intro hdA - 0075
intro hdB - 0076
specialize common_divisor_divides_balanced_result d - 0077
specialize common_divisor_divides_balanced_result A - 0078
specialize common_divisor_divides_balanced_result B - 0079
specialize common_divisor_divides_balanced_result G - 0080
specialize common_divisor_divides_balanced_result x3 - 0081
specialize common_divisor_divides_balanced_result x4 - 0082
specialize common_divisor_divides_balanced_result x5 - 0083
specialize common_divisor_divides_balanced_result x6 - 0084
apply common_divisor_divides_balanced_result - 0085
exact hdA - 0086
exact hdB - 0087
exact hscaled
Separate complete second-wave branches: Full G011 proof · Alpha v27.