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 d p q. ~(p = 0) -> (forall hmi_divisor_pth_correction. (exists hmi_left_factor_pth_correction. d = hmi_divisor_pth_correction * hmi_left_factor_pth_correction) -> (exists hmi_right_factor_pth_correction. p = hmi_divisor_pth_correction * hmi_right_factor_pth_correction) -> hmi_divisor_pth_correction = 1) -> exists t. (((exists ff_lt_pth_correction_exists_bound. ff_lt_pth_correction_exists_bound + S t = p) /\ (exists hgcrt_mod_left_pth_correction_exists_annihilation hgcrt_mod_right_pth_correction_exists_annihilation. (q + d * t) + p * hgcrt_mod_left_pth_correction_exists_annihilation = 0 + p * hgcrt_mod_right_pth_correction_exists_annihilation)))Constructive proof overview
Generated structural guide
Every coprime derivative at a nonzero modulus has an actual strictly bounded subtraction-free root correction.
The unchanged tactic script uses 8 declared prerequisites and contains 61 exact native proof lines.
Alpha v34 checked-use · first admitted v25 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
nonzero_is_succ Stable theorem; checked-use authorized coprime_to_is_gcd_one Stable theorem; checked-use authorized one_mul Stable theorem; checked-use authorized linear_congruence_nonzero_modulus_bounded_constructor Alpha theorem; checked-use authorized TH0001 hensel_predecessor_annihilates_residue mod_eq_refl Stable theorem; checked-use authorized mod_eq_add Stable theorem; checked-use authorized mod_eq_trans 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–5
02Establish hsuccessorL6–9
03Separate the logical casesL10–10
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L10
cases hsuccessor
04Establish hgcdL11–15
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply coprime to is gcd one.
05Establish hdivisorL16–16
Establish this local claim before using it. It is not an additional assumption.
- L16
have hdivisor : exists w. x * q = 1 * w
06Construct an explicit witnessL17–17
Supply the displayed value, then prove that it has the required property.
- L17
exists x * q
07Calculate and transport equalitiesL18–18
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L18
symm
08Use earlier factsL19–19
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L19
apply one_mul
09Establish hsolutionL20–28
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply linear congruence nonzero modulus bounded constructor.
- L20
have hsolution : exists t. ((exists h. h + S t = p) /\ (exists hgcrt_mod_left_pth_correction_solution hgcrt_mod_right_pth_correction_solution. (d * t) + p * hgcrt_mod_left_pth_correction_solution = (x * q) + p * hgcrt_mod_right_pth_correction_solution)) - L21
specialize linear_congruence_nonzero_modulus_bounded_constructor d - L22
specialize linear_congruence_nonzero_modulus_bounded_constructor p - L23
specialize linear_congruence_nonzero_modulus_bounded_constructor (x * q) - L24
specialize linear_congruence_nonzero_modulus_bounded_constructor 1 - L25
apply linear_congruence_nonzero_modulus_bounded_constructor - L26
exact hgcd - L27
exact hp - L28
exact hdivisor
10Separate the logical casesL29–30
11Establish hsameL31–34
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq refl.
12Establish hsumL35–43
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq add.
- L35
have hsum : exists hgcrt_mod_left_pth_correction_sum hgcrt_mod_right_pth_correction_sum. (q + d * x1) + p * hgcrt_mod_left_pth_correction_sum = (q + x * q) + p * hgcrt_mod_right_pth_correction_sum - L36
specialize mod_eq_add p - L37
specialize mod_eq_add q - L38
specialize mod_eq_add q - L39
specialize mod_eq_add (d * x1) - L40
specialize mod_eq_add (x * q) - L41
apply mod_eq_add - L42
exact hsame - L43
exact hsolution_witness_right
13Establish hnegativeL44–49
Establish this local claim before using it. It is not an additional assumption.
- L44
have hnegative : exists hgcrt_mod_left_pth_correction_negative hgcrt_mod_right_pth_correction_negative. (q + x * q) + p * hgcrt_mod_left_pth_correction_negative = 0 + p * hgcrt_mod_right_pth_correction_negative - L45
specialize hensel_predecessor_annihilates_residue x - L46
specialize hensel_predecessor_annihilates_residue q - L47
rewrite <- hsuccessor_witness at hensel_predecessor_annihilates_residue - L48
rewrite <- hsuccessor_witness at hensel_predecessor_annihilates_residue - L49
exact hensel_predecessor_annihilates_residue
14Establish hresultL50–57
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq trans.
- L50
have hresult : exists hgcrt_mod_left_pth_correction_final hgcrt_mod_right_pth_correction_final. (q + d * x1) + p * hgcrt_mod_left_pth_correction_final = 0 + p * hgcrt_mod_right_pth_correction_final - L51
specialize mod_eq_trans p - L52
specialize mod_eq_trans (q + d * x1) - L53
specialize mod_eq_trans (q + x * q) - L54
specialize mod_eq_trans 0 - L55
apply mod_eq_trans - L56
exact hsum - L57
exact hnegative
15Construct an explicit witnessL58–58
Supply the displayed value, then prove that it has the required property.
- L58
exists x1
16Separate the logical casesL59–59
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L59
split
Original exact command ledger · 61 lines
- 0001
intro d - 0002
intro p - 0003
intro q - 0004
intro hp - 0005
intro hcop - 0006
have hsuccessor : exists k. p = S k - 0007
specialize nonzero_is_succ p - 0008
apply nonzero_is_succ - 0009
exact hp - 0010
cases hsuccessor - 0011
have hgcd : (((exists r. d = 1 * r) /\ (exists s. p = 1 * s)) /\ forall j. (exists u. d = j * u) -> (exists v. p = j * v) -> exists w. 1 = j * w) - 0012
specialize coprime_to_is_gcd_one d - 0013
specialize coprime_to_is_gcd_one p - 0014
apply coprime_to_is_gcd_one - 0015
exact hcop - 0016
have hdivisor : exists w. x * q = 1 * w - 0017
exists x * q - 0018
symm - 0019
apply one_mul - 0020
have hsolution : exists t. ((exists h. h + S t = p) /\ (exists hgcrt_mod_left_pth_correction_solution hgcrt_mod_right_pth_correction_solution. (d * t) + p * hgcrt_mod_left_pth_correction_solution = (x * q) + p * hgcrt_mod_right_pth_correction_solution)) - 0021
specialize linear_congruence_nonzero_modulus_bounded_constructor d - 0022
specialize linear_congruence_nonzero_modulus_bounded_constructor p - 0023
specialize linear_congruence_nonzero_modulus_bounded_constructor (x * q) - 0024
specialize linear_congruence_nonzero_modulus_bounded_constructor 1 - 0025
apply linear_congruence_nonzero_modulus_bounded_constructor - 0026
exact hgcd - 0027
exact hp - 0028
exact hdivisor - 0029
cases hsolution - 0030
cases hsolution_witness - 0031
have hsame : exists hgcrt_mod_left_pth_correction_same hgcrt_mod_right_pth_correction_same. q + p * hgcrt_mod_left_pth_correction_same = q + p * hgcrt_mod_right_pth_correction_same - 0032
specialize mod_eq_refl p - 0033
specialize mod_eq_refl q - 0034
apply mod_eq_refl - 0035
have hsum : exists hgcrt_mod_left_pth_correction_sum hgcrt_mod_right_pth_correction_sum. (q + d * x1) + p * hgcrt_mod_left_pth_correction_sum = (q + x * q) + p * hgcrt_mod_right_pth_correction_sum - 0036
specialize mod_eq_add p - 0037
specialize mod_eq_add q - 0038
specialize mod_eq_add q - 0039
specialize mod_eq_add (d * x1) - 0040
specialize mod_eq_add (x * q) - 0041
apply mod_eq_add - 0042
exact hsame - 0043
exact hsolution_witness_right - 0044
have hnegative : exists hgcrt_mod_left_pth_correction_negative hgcrt_mod_right_pth_correction_negative. (q + x * q) + p * hgcrt_mod_left_pth_correction_negative = 0 + p * hgcrt_mod_right_pth_correction_negative - 0045
specialize hensel_predecessor_annihilates_residue x - 0046
specialize hensel_predecessor_annihilates_residue q - 0047
rewrite <- hsuccessor_witness at hensel_predecessor_annihilates_residue - 0048
rewrite <- hsuccessor_witness at hensel_predecessor_annihilates_residue - 0049
exact hensel_predecessor_annihilates_residue - 0050
have hresult : exists hgcrt_mod_left_pth_correction_final hgcrt_mod_right_pth_correction_final. (q + d * x1) + p * hgcrt_mod_left_pth_correction_final = 0 + p * hgcrt_mod_right_pth_correction_final - 0051
specialize mod_eq_trans p - 0052
specialize mod_eq_trans (q + d * x1) - 0053
specialize mod_eq_trans (q + x * q) - 0054
specialize mod_eq_trans 0 - 0055
apply mod_eq_trans - 0056
exact hsum - 0057
exact hnegative - 0058
exists x1 - 0059
split - 0060
exact hsolution_witness_left - 0061
exact hresult
Separate complete second-wave branches: Full G095 proof · Alpha v27.