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.
Historical partial components only: this chapter proves exact natural polynomial Taylor remainders, bounded corrections, and one-step divisibility lifts. G095 is now closed in the separate Alpha-v27 hensel-lifting branch for integer polynomials, unrestricted input roots, unique canonical representatives, and every positive prime power. Full G095 proof · Alpha v27
Exact theorem in conservative defined notation
∀ b. ∀ c. ∀ a. ∀ l. ∀ n. ∀ d. ∀ m. ∀ p. ∀ s. ∀ q. ¬p = 0 → HornerDerivative(b,c,a,l,n,d) → m = p · s → n = m · q → Coprime(d,p) → ∃ x. ∃ y. HenselCorrection(d,p,q,x) ∧ (Horner(b,c,a + m · x,l,y) ∧ Dvd(p · m,y))
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 55 lines are the exact independently kernel-checked original 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–10
02Fix variables and assumptionsL11–15
03Establish hcorrectionL16–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hensel correction exists.
- L16
have hcorrection : exists t. (((exists ff_lt_pth_lift_exists_correction_bound. ff_lt_pth_lift_exists_correction_bound + S t = p) /\ (exists hgcrt_mod_left_pth_lift_exists_correction_annihilation hgcrt_mod_right_pth_lift_exists_correction_annihilation. (q + d * t) + p * hgcrt_mod_left_pth_lift_exists_correction_annihilation = 0 + p * hgcrt_mod_right_pth_lift_exists_correction_annihilation))) - L17
specialize hensel_correction_exists d - L18
specialize hensel_correction_exists p - L19
specialize hensel_correction_exists q - L20
apply hensel_correction_exists - L21
exact hp - L22
exact hcop
04Separate the logical casesL23–23
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L23
cases hcorrection
05Establish hvalueL24–29
Establish this local claim before using it. It is not an additional assumption.
- L24
have hvalue : ∃ y. Horner(b,c,a + m · x,l,y)Definitions: HornerOriginal native command in the exact edition - L25
specialize beta_horner_eval_exists b - L26
specialize beta_horner_eval_exists c - L27
specialize beta_horner_eval_exists (a + m * x) - L28
specialize beta_horner_eval_exists l - L29
exact beta_horner_eval_exists
06Separate the logical casesL30–30
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L30
cases hvalue
07Construct an explicit witnessL31–32
08Separate the logical casesL33–33
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L33
split
09Use earlier factsL34–34
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L34
exact hcorrection_witness
10Separate the logical casesL35–35
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L35
split
11Use earlier factsL36–45
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L36
exact hvalue_witness - L37
specialize beta_horner_hensel_lift_divisibility b - L38
specialize beta_horner_hensel_lift_divisibility c - L39
specialize beta_horner_hensel_lift_divisibility a - L40
specialize beta_horner_hensel_lift_divisibility l - L41
specialize beta_horner_hensel_lift_divisibility n - L42
specialize beta_horner_hensel_lift_divisibility d - L43
specialize beta_horner_hensel_lift_divisibility m - L44
specialize beta_horner_hensel_lift_divisibility p - L45
specialize beta_horner_hensel_lift_divisibility s
12Use earlier factsL46–55
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L46
specialize beta_horner_hensel_lift_divisibility q - L47
specialize beta_horner_hensel_lift_divisibility x - L48
specialize beta_horner_hensel_lift_divisibility x1 - L49
apply beta_horner_hensel_lift_divisibility - L50
exact hp - L51
exact hpair - L52
exact hvalue_witness - L53
exact hfactor - L54
exact hroot - L55
exact hcorrection_witness
Original defined command ledger · 55 lines
- 0001
intro b - 0002
intro c - 0003
intro a - 0004
intro l - 0005
intro n - 0006
intro d - 0007
intro m - 0008
intro p - 0009
intro s - 0010
intro q - 0011
intro hp - 0012
intro hpair - 0013
intro hfactor - 0014
intro hroot - 0015
intro hcop - 0016
have hcorrection : exists t. (((exists ff_lt_pth_lift_exists_correction_bound. ff_lt_pth_lift_exists_correction_bound + S t = p) /\ (exists hgcrt_mod_left_pth_lift_exists_correction_annihilation hgcrt_mod_right_pth_lift_exists_correction_annihilation. (q + d * t) + p * hgcrt_mod_left_pth_lift_exists_correction_annihilation = 0 + p * hgcrt_mod_right_pth_lift_exists_correction_annihilation))) - 0017
specialize hensel_correction_exists d - 0018
specialize hensel_correction_exists p - 0019
specialize hensel_correction_exists q - 0020
apply hensel_correction_exists - 0021
exact hp - 0022
exact hcop - 0023
cases hcorrection - 0024
have hvalue : exists y. (exists ff_u_ph_pth_lift_exists_value ff_v_ph_pth_lift_exists_value. ((((exists fs_h_ph_pth_lift_exists_value_body_start. fs_h_ph_pth_lift_exists_value_body_start + S (0) = S ((S (0)) * ff_v_ph_pth_lift_exists_value)) /\ exists fs_q_ph_pth_lift_exists_value_body_start. ff_u_ph_pth_lift_exists_value = fs_q_ph_pth_lift_exists_value_body_start * S ((S (0)) * ff_v_ph_pth_lift_exists_value) + (0))) /\ ((((exists fs_h_ph_pth_lift_exists_value_body_terminal. fs_h_ph_pth_lift_exists_value_body_terminal + S (y) = S ((S (l)) * ff_v_ph_pth_lift_exists_value)) /\ exists fs_q_ph_pth_lift_exists_value_body_terminal. ff_u_ph_pth_lift_exists_value = fs_q_ph_pth_lift_exists_value_body_terminal * S ((S (l)) * ff_v_ph_pth_lift_exists_value) + (y))) /\ forall ff_i_ph_pth_lift_exists_value_body_steps. (exists ph_bound_pth_lift_exists_value_body_steps. ph_bound_pth_lift_exists_value_body_steps + S ff_i_ph_pth_lift_exists_value_body_steps = l) -> exists ff_coefficient_ph_pth_lift_exists_value_body_steps ff_previous_ph_pth_lift_exists_value_body_steps ff_current_ph_pth_lift_exists_value_body_steps. ((((exists fs_h_ph_pth_lift_exists_value_body_steps_coefficient. fs_h_ph_pth_lift_exists_value_body_steps_coefficient + S (ff_coefficient_ph_pth_lift_exists_value_body_steps) = S ((S (ff_i_ph_pth_lift_exists_value_body_steps)) * c)) /\ exists fs_q_ph_pth_lift_exists_value_body_steps_coefficient. b = fs_q_ph_pth_lift_exists_value_body_steps_coefficient * S ((S (ff_i_ph_pth_lift_exists_value_body_steps)) * c) + (ff_coefficient_ph_pth_lift_exists_value_body_steps))) /\ ((((exists fs_h_ph_pth_lift_exists_value_body_steps_before. fs_h_ph_pth_lift_exists_value_body_steps_before + S (ff_previous_ph_pth_lift_exists_value_body_steps) = S ((S (ff_i_ph_pth_lift_exists_value_body_steps)) * ff_v_ph_pth_lift_exists_value)) /\ exists fs_q_ph_pth_lift_exists_value_body_steps_before. ff_u_ph_pth_lift_exists_value = fs_q_ph_pth_lift_exists_value_body_steps_before * S ((S (ff_i_ph_pth_lift_exists_value_body_steps)) * ff_v_ph_pth_lift_exists_value) + (ff_previous_ph_pth_lift_exists_value_body_steps))) /\ ((((exists fs_h_ph_pth_lift_exists_value_body_steps_after. fs_h_ph_pth_lift_exists_value_body_steps_after + S (ff_current_ph_pth_lift_exists_value_body_steps) = S ((S (S ff_i_ph_pth_lift_exists_value_body_steps)) * ff_v_ph_pth_lift_exists_value)) /\ exists fs_q_ph_pth_lift_exists_value_body_steps_after. ff_u_ph_pth_lift_exists_value = fs_q_ph_pth_lift_exists_value_body_steps_after * S ((S (S ff_i_ph_pth_lift_exists_value_body_steps)) * ff_v_ph_pth_lift_exists_value) + (ff_current_ph_pth_lift_exists_value_body_steps))) /\ ff_current_ph_pth_lift_exists_value_body_steps = ff_previous_ph_pth_lift_exists_value_body_steps * (a + m * x) + ff_coefficient_ph_pth_lift_exists_value_body_steps)))))) - 0025
specialize beta_horner_eval_exists b - 0026
specialize beta_horner_eval_exists c - 0027
specialize beta_horner_eval_exists (a + m * x) - 0028
specialize beta_horner_eval_exists l - 0029
exact beta_horner_eval_exists - 0030
cases hvalue - 0031
exists x - 0032
exists x1 - 0033
split - 0034
exact hcorrection_witness - 0035
split - 0036
exact hvalue_witness - 0037
specialize beta_horner_hensel_lift_divisibility b - 0038
specialize beta_horner_hensel_lift_divisibility c - 0039
specialize beta_horner_hensel_lift_divisibility a - 0040
specialize beta_horner_hensel_lift_divisibility l - 0041
specialize beta_horner_hensel_lift_divisibility n - 0042
specialize beta_horner_hensel_lift_divisibility d - 0043
specialize beta_horner_hensel_lift_divisibility m - 0044
specialize beta_horner_hensel_lift_divisibility p - 0045
specialize beta_horner_hensel_lift_divisibility s - 0046
specialize beta_horner_hensel_lift_divisibility q - 0047
specialize beta_horner_hensel_lift_divisibility x - 0048
specialize beta_horner_hensel_lift_divisibility x1 - 0049
apply beta_horner_hensel_lift_divisibility - 0050
exact hp - 0051
exact hpair - 0052
exact hvalue_witness - 0053
exact hfactor - 0054
exact hroot - 0055
exact hcorrection_witness