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 expanded first-order arithmetic statement
forall a m g A M b. (~(m=0)) -> ((((exists hag_left_factor_lcc_representative. a = g * hag_left_factor_lcc_representative) /\ (exists hag_right_factor_lcc_representative. m = g * hag_right_factor_lcc_representative)) /\ forall hag_divisor_lcc_representative. (exists hag_common_left_lcc_representative. a = hag_divisor_lcc_representative * hag_common_left_lcc_representative) -> (exists hag_common_right_lcc_representative. m = hag_divisor_lcc_representative * hag_common_right_lcc_representative) -> exists hag_greatest_factor_lcc_representative. g = hag_divisor_lcc_representative * hag_greatest_factor_lcc_representative)) -> (a=g*A) -> (m=g*M) -> (exists lcc_bfactor. b=g*lcc_bfactor) -> (exists r. ((exists lcc_gap_representative_bound. lcc_gap_representative_bound+S (r)=(M)) /\ ((exists hgcrt_mod_left_lcc_representative_solution hgcrt_mod_right_lcc_representative_solution. (a * r) + m * hgcrt_mod_left_lcc_representative_solution = b + m * hgcrt_mod_right_lcc_representative_solution))))Constructive proof overview
Generated structural guide
Construct a genuine solution strictly below m/g, not merely below m, from the actual gcd divisibility witness.
The unchanged tactic script uses 7 declared prerequisites and contains 78 exact native proof lines.
Alpha v34 checked-use · first admitted v34 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
mul_zero_left Alpha theorem; checked-use authorized linear_congruence_gcd_divisibility_constructs_solution Alpha theorem; checked-use authorized division_remainder_exists Alpha theorem; checked-use authorized mod_eq_symm Alpha theorem; checked-use authorized remainder_decomposition_to_mod_eq Alpha theorem; checked-use authorized mul_comm Alpha theorem; checked-use authorized CG0002 linear_congruence_solution_class_iff_reduced_modulusDirect 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 hb
03Establish hg0L12–18
04Establish hM0L19–25
05Establish hsL26–33
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply linear congruence gcd divisibility constructs solution.
- L26
have hs : exists x. exists hgcrt_mod_left_lcc_representative_original hgcrt_mod_right_lcc_representative_original. (a * x) + m * hgcrt_mod_left_lcc_representative_original = b + m * hgcrt_mod_right_lcc_representative_original - L27
specialize linear_congruence_gcd_divisibility_constructs_solution (a) - L28
specialize linear_congruence_gcd_divisibility_constructs_solution (m) - L29
specialize linear_congruence_gcd_divisibility_constructs_solution (b) - L30
specialize linear_congruence_gcd_divisibility_constructs_solution (g) - L31
apply linear_congruence_gcd_divisibility_constructs_solution - L32
exact hg - L33
exact hb
06Separate the logical casesL34–34
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L34
cases hs
07Establish hdL35–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply division remainder exists.
08Separate the logical casesL40–42
09Construct an explicit witnessL43–43
Supply the displayed value, then prove that it has the required property.
- L43
exists x2
10Separate the logical casesL44–44
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L44
split
11Use earlier factsL45–45
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L45
exact hd_witness_witness_right
12Establish heL46–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq symm.
- L46
have he : exists hgcrt_mod_left_lcc_representative_equal hgcrt_mod_right_lcc_representative_equal. x2 + M * hgcrt_mod_left_lcc_representative_equal = x + M * hgcrt_mod_right_lcc_representative_equal - L47
specialize mod_eq_symm (M) - L48
specialize mod_eq_symm (x) - L49
specialize mod_eq_symm (x2) - L50
apply mod_eq_symm - L51
specialize remainder_decomposition_to_mod_eq (M) - L52
specialize remainder_decomposition_to_mod_eq (x) - L53
specialize remainder_decomposition_to_mod_eq (x1) - L54
specialize remainder_decomposition_to_mod_eq (x2) - L55
apply remainder_decomposition_to_mod_eq
13Calculate and transport equalitiesL56–56
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L56
trans M*x1+x2
14Use earlier factsL57–57
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L57
exact hd_witness_witness_left
15Calculate and transport equalitiesL58–58
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L58
congr
16Use earlier factsL59–59
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L59
apply mul_comm
17Calculate and transport equalitiesL60–60
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L60
refl
18Establish hcL61–70
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply linear congruence solution class iff reduced modulus.
- L61
have hc : (ModEq(m,a · x2,b) → ModEq(M,x2,x)) ∧ (ModEq(M,x2,x) → ModEq(m,a · x2,b))Definitions: ModEq - L62
specialize linear_congruence_solution_class_iff_reduced_modulus (a) - L63
specialize linear_congruence_solution_class_iff_reduced_modulus (m) - L64
specialize linear_congruence_solution_class_iff_reduced_modulus (g) - L65
specialize linear_congruence_solution_class_iff_reduced_modulus (A) - L66
specialize linear_congruence_solution_class_iff_reduced_modulus (M) - L67
specialize linear_congruence_solution_class_iff_reduced_modulus (b) - L68
specialize linear_congruence_solution_class_iff_reduced_modulus (x) - L69
specialize linear_congruence_solution_class_iff_reduced_modulus (x2) - L70
apply linear_congruence_solution_class_iff_reduced_modulus
19Use earlier factsL71–75
20Separate the logical casesL76–76
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L76
cases hc
Original exact command ledger · 78 lines
- 0001
intro a - 0002
intro m - 0003
intro g - 0004
intro A - 0005
intro M - 0006
intro b - 0007
intro hm0 - 0008
intro hg - 0009
intro ha - 0010
intro hm - 0011
intro hb - 0012
have hg0 : ~(g=0) - 0013
intro hz - 0014
apply hm0 - 0015
trans g*M - 0016
exact hm - 0017
rewrite hz - 0018
apply mul_zero_left - 0019
have hM0 : ~(M=0) - 0020
intro hz - 0021
apply hm0 - 0022
trans g*M - 0023
exact hm - 0024
rewrite hz - 0025
simp - 0026
have hs : exists x. exists hgcrt_mod_left_lcc_representative_original hgcrt_mod_right_lcc_representative_original. (a * x) + m * hgcrt_mod_left_lcc_representative_original = b + m * hgcrt_mod_right_lcc_representative_original - 0027
specialize linear_congruence_gcd_divisibility_constructs_solution (a) - 0028
specialize linear_congruence_gcd_divisibility_constructs_solution (m) - 0029
specialize linear_congruence_gcd_divisibility_constructs_solution (b) - 0030
specialize linear_congruence_gcd_divisibility_constructs_solution (g) - 0031
apply linear_congruence_gcd_divisibility_constructs_solution - 0032
exact hg - 0033
exact hb - 0034
cases hs - 0035
have hd : exists q r. ((x=M*q+r) /\ ((exists lcc_gap_representative_division. lcc_gap_representative_division+S (r)=(M)))) - 0036
specialize division_remainder_exists (M) - 0037
specialize division_remainder_exists (x) - 0038
apply division_remainder_exists - 0039
exact hM0 - 0040
cases hd - 0041
cases hd_witness - 0042
cases hd_witness_witness - 0043
exists x2 - 0044
split - 0045
exact hd_witness_witness_right - 0046
have he : exists hgcrt_mod_left_lcc_representative_equal hgcrt_mod_right_lcc_representative_equal. x2 + M * hgcrt_mod_left_lcc_representative_equal = x + M * hgcrt_mod_right_lcc_representative_equal - 0047
specialize mod_eq_symm (M) - 0048
specialize mod_eq_symm (x) - 0049
specialize mod_eq_symm (x2) - 0050
apply mod_eq_symm - 0051
specialize remainder_decomposition_to_mod_eq (M) - 0052
specialize remainder_decomposition_to_mod_eq (x) - 0053
specialize remainder_decomposition_to_mod_eq (x1) - 0054
specialize remainder_decomposition_to_mod_eq (x2) - 0055
apply remainder_decomposition_to_mod_eq - 0056
trans M*x1+x2 - 0057
exact hd_witness_witness_left - 0058
congr - 0059
apply mul_comm - 0060
refl - 0061
have hc : (((exists hgcrt_mod_left_lcc_representative_target hgcrt_mod_right_lcc_representative_target. (a * x2) + m * hgcrt_mod_left_lcc_representative_target = b + m * hgcrt_mod_right_lcc_representative_target) -> (exists hgcrt_mod_left_lcc_representative_class hgcrt_mod_right_lcc_representative_class. x2 + M * hgcrt_mod_left_lcc_representative_class = x + M * hgcrt_mod_right_lcc_representative_class)) /\ (((exists hgcrt_mod_left_lcc_representative_class hgcrt_mod_right_lcc_representative_class. x2 + M * hgcrt_mod_left_lcc_representative_class = x + M * hgcrt_mod_right_lcc_representative_class) -> (exists hgcrt_mod_left_lcc_representative_target hgcrt_mod_right_lcc_representative_target. (a * x2) + m * hgcrt_mod_left_lcc_representative_target = b + m * hgcrt_mod_right_lcc_representative_target)))) - 0062
specialize linear_congruence_solution_class_iff_reduced_modulus (a) - 0063
specialize linear_congruence_solution_class_iff_reduced_modulus (m) - 0064
specialize linear_congruence_solution_class_iff_reduced_modulus (g) - 0065
specialize linear_congruence_solution_class_iff_reduced_modulus (A) - 0066
specialize linear_congruence_solution_class_iff_reduced_modulus (M) - 0067
specialize linear_congruence_solution_class_iff_reduced_modulus (b) - 0068
specialize linear_congruence_solution_class_iff_reduced_modulus (x) - 0069
specialize linear_congruence_solution_class_iff_reduced_modulus (x2) - 0070
apply linear_congruence_solution_class_iff_reduced_modulus - 0071
exact hm0 - 0072
exact hg - 0073
exact ha - 0074
exact hm - 0075
exact hs_witness - 0076
cases hc - 0077
apply hc_right - 0078
exact he