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.
The derivative-nonzero criterion supplies no inverse or power witness: both are constructed. Roots may be arbitrary natural representatives of signed integer polynomials. Singular-root classification and p-adic completion are separate milestones.
Exact theorem in conservative defined notation
∀ p. ∀ h. ∀ dp. ∀ dn. ∀ D. p = S h → D = dp + h · dn → Prime(p) → SignedDerivativeNonzero(p,dp,dn) → SignedDerivativeUnit(p,dp,dn)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 77 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay 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 (2)
01Fix variables and assumptionsL1–9
02Establish hiffL10–18
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hensel signed blend zero iff.
- L10
have hiff : (ModEq(p,D,0) → ModEq(p,dp,dn)) ∧ (ModEq(p,dp,dn) → ModEq(p,D,0))Definitions: ModEq(p,D,0)ModEq(p,dp,dn)Original native command in the exact edition - L11
specialize hensel_signed_blend_zero_iff (p) - L12
specialize hensel_signed_blend_zero_iff (p) - L13
specialize hensel_signed_blend_zero_iff (h) - L14
specialize hensel_signed_blend_zero_iff (dp) - L15
specialize hensel_signed_blend_zero_iff (dn) - L16
specialize hensel_signed_blend_zero_iff (D) - L17
apply hensel_signed_blend_zero_iff - L18
exact hsucc
03Construct an explicit witnessL19–19
Supply the displayed value, then prove that it has the required property.
- L19
exists 1
04Calculate and transport equalitiesL20–20
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L20
symm
05Use earlier factsL21–22
06Separate the logical casesL23–23
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L23
cases hiff
07Establish hcopL24–33
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply coprime symm.
08Use earlier factsL34–38
09Establish hinverseL39–48
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply coprime bounded mod inverse.
- L39
have hinverse : ∃ u. Lt(u,p) ∧ ModEq(p,D · u,1)Definitions: Lt(u,p)ModEq(p,D · u,1)Original native command in the exact edition - L40
specialize coprime_bounded_mod_inverse (D) - L41
specialize coprime_bounded_mod_inverse (p) - L42
apply coprime_bounded_mod_inverse - L43
intro hz - L44
specialize prime_nonzero (p) - L45
apply prime_nonzero - L46
exact hp - L47
exact hz - L48
exact hcop
10Separate the logical casesL49–50
11Establish hproductL51–57
12Establish htransportL58–67
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hensel signed blend mod iff.
- L58
have htransport : (ModEq(p,D · x,1) → ModEq(p,dp · x,1 + dn · x)) ∧ (ModEq(p,dp · x,1 + dn · x) → ModEq(p,D · x,1))Definitions: ModEq(p,D · x,1)ModEq(p,dp · x,1 + dn · x)Original native command in the exact edition - L59
specialize hensel_signed_blend_mod_iff (p) - L60
specialize hensel_signed_blend_mod_iff (p) - L61
specialize hensel_signed_blend_mod_iff (h) - L62
specialize hensel_signed_blend_mod_iff (dp * x) - L63
specialize hensel_signed_blend_mod_iff (dn * x) - L64
specialize hensel_signed_blend_mod_iff (D * x) - L65
specialize hensel_signed_blend_mod_iff (1) - L66
apply hensel_signed_blend_mod_iff - L67
exact hsucc
13Construct an explicit witnessL68–68
Supply the displayed value, then prove that it has the required property.
- L68
exists 1
14Calculate and transport equalitiesL69–69
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L69
symm
15Use earlier factsL70–71
16Separate the logical casesL72–72
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L72
cases htransport
17Construct an explicit witnessL73–73
Supply the displayed value, then prove that it has the required property.
- L73
exists x
18Separate the logical casesL74–74
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L74
split
Original defined command ledger · 77 lines
- 0001
intro p - 0002
intro h - 0003
intro dp - 0004
intro dn - 0005
intro D - 0006
intro hsucc - 0007
intro hD - 0008
intro hp - 0009
intro hnonzero - 0010
have hiff : (ModEq(p,D,0) → ModEq(p,dp,dn)) ∧ (ModEq(p,dp,dn) → ModEq(p,D,0)) - 0011
specialize hensel_signed_blend_zero_iff (p) - 0012
specialize hensel_signed_blend_zero_iff (p) - 0013
specialize hensel_signed_blend_zero_iff (h) - 0014
specialize hensel_signed_blend_zero_iff (dp) - 0015
specialize hensel_signed_blend_zero_iff (dn) - 0016
specialize hensel_signed_blend_zero_iff (D) - 0017
apply hensel_signed_blend_zero_iff - 0018
exact hsucc - 0019
exists 1 - 0020
symm - 0021
apply mul_one - 0022
exact hD - 0023
cases hiff - 0024
have hcop : Coprime(D,p) - 0025
specialize coprime_symm (p) - 0026
specialize coprime_symm (D) - 0027
apply coprime_symm - 0028
specialize prime_not_divides_coprime (p) - 0029
specialize prime_not_divides_coprime (D) - 0030
apply prime_not_divides_coprime - 0031
exact hp - 0032
intro hdiv - 0033
apply hnonzero - 0034
apply hiff_left - 0035
specialize multiple_implies_balanced_zero_congruence (p) - 0036
specialize multiple_implies_balanced_zero_congruence (D) - 0037
apply multiple_implies_balanced_zero_congruence - 0038
exact hdiv - 0039
have hinverse : ∃ u. Lt(u,p) ∧ ModEq(p,D · u,1) - 0040
specialize coprime_bounded_mod_inverse (D) - 0041
specialize coprime_bounded_mod_inverse (p) - 0042
apply coprime_bounded_mod_inverse - 0043
intro hz - 0044
specialize prime_nonzero (p) - 0045
apply prime_nonzero - 0046
exact hp - 0047
exact hz - 0048
exact hcop - 0049
cases hinverse - 0050
cases hinverse_witness - 0051
have hproduct : D * x = dp * x + h * (dn * x) - 0052
rewrite hD - 0053
trans dp * x + (h * dn) * x - 0054
apply add_mul - 0055
congr - 0056
refl - 0057
apply mul_assoc - 0058
have htransport : (ModEq(p,D · x,1) → ModEq(p,dp · x,1 + dn · x)) ∧ (ModEq(p,dp · x,1 + dn · x) → ModEq(p,D · x,1)) - 0059
specialize hensel_signed_blend_mod_iff (p) - 0060
specialize hensel_signed_blend_mod_iff (p) - 0061
specialize hensel_signed_blend_mod_iff (h) - 0062
specialize hensel_signed_blend_mod_iff (dp * x) - 0063
specialize hensel_signed_blend_mod_iff (dn * x) - 0064
specialize hensel_signed_blend_mod_iff (D * x) - 0065
specialize hensel_signed_blend_mod_iff (1) - 0066
apply hensel_signed_blend_mod_iff - 0067
exact hsucc - 0068
exists 1 - 0069
symm - 0070
apply mul_one - 0071
exact hproduct - 0072
cases htransport - 0073
exists x - 0074
split - 0075
exact hinverse_witness_left - 0076
apply htransport_left - 0077
exact hinverse_witness_right