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 b c a l n d m p s q. ~(p = 0) -> (exists ff_u_hd_pth_lift_pair ff_v_hd_pth_lift_pair ff_d_hd_pth_lift_pair ff_e_hd_pth_lift_pair. ((((((exists fs_h_ph_hd_pth_lift_pair_body_value_start. fs_h_ph_hd_pth_lift_pair_body_value_start + S (0) = S ((S (0)) * ff_v_hd_pth_lift_pair)) /\ exists fs_q_ph_hd_pth_lift_pair_body_value_start. ff_u_hd_pth_lift_pair = fs_q_ph_hd_pth_lift_pair_body_value_start * S ((S (0)) * ff_v_hd_pth_lift_pair) + (0))) /\ ((((exists fs_h_ph_hd_pth_lift_pair_body_value_terminal. fs_h_ph_hd_pth_lift_pair_body_value_terminal + S (n) = S ((S (l)) * ff_v_hd_pth_lift_pair)) /\ exists fs_q_ph_hd_pth_lift_pair_body_value_terminal. ff_u_hd_pth_lift_pair = fs_q_ph_hd_pth_lift_pair_body_value_terminal * S ((S (l)) * ff_v_hd_pth_lift_pair) + (n))) /\ forall ff_i_ph_hd_pth_lift_pair_body_value_steps. (exists ph_bound_hd_pth_lift_pair_body_value_steps. ph_bound_hd_pth_lift_pair_body_value_steps + S ff_i_ph_hd_pth_lift_pair_body_value_steps = l) -> exists ff_coefficient_ph_hd_pth_lift_pair_body_value_steps ff_previous_ph_hd_pth_lift_pair_body_value_steps ff_current_ph_hd_pth_lift_pair_body_value_steps. ((((exists fs_h_ph_hd_pth_lift_pair_body_value_steps_coefficient. fs_h_ph_hd_pth_lift_pair_body_value_steps_coefficient + S (ff_coefficient_ph_hd_pth_lift_pair_body_value_steps) = S ((S (ff_i_ph_hd_pth_lift_pair_body_value_steps)) * c)) /\ exists fs_q_ph_hd_pth_lift_pair_body_value_steps_coefficient. b = fs_q_ph_hd_pth_lift_pair_body_value_steps_coefficient * S ((S (ff_i_ph_hd_pth_lift_pair_body_value_steps)) * c) + (ff_coefficient_ph_hd_pth_lift_pair_body_value_steps))) /\ ((((exists fs_h_ph_hd_pth_lift_pair_body_value_steps_before. fs_h_ph_hd_pth_lift_pair_body_value_steps_before + S (ff_previous_ph_hd_pth_lift_pair_body_value_steps) = S ((S (ff_i_ph_hd_pth_lift_pair_body_value_steps)) * ff_v_hd_pth_lift_pair)) /\ exists fs_q_ph_hd_pth_lift_pair_body_value_steps_before. ff_u_hd_pth_lift_pair = fs_q_ph_hd_pth_lift_pair_body_value_steps_before * S ((S (ff_i_ph_hd_pth_lift_pair_body_value_steps)) * ff_v_hd_pth_lift_pair) + (ff_previous_ph_hd_pth_lift_pair_body_value_steps))) /\ ((((exists fs_h_ph_hd_pth_lift_pair_body_value_steps_after. fs_h_ph_hd_pth_lift_pair_body_value_steps_after + S (ff_current_ph_hd_pth_lift_pair_body_value_steps) = S ((S (S ff_i_ph_hd_pth_lift_pair_body_value_steps)) * ff_v_hd_pth_lift_pair)) /\ exists fs_q_ph_hd_pth_lift_pair_body_value_steps_after. ff_u_hd_pth_lift_pair = fs_q_ph_hd_pth_lift_pair_body_value_steps_after * S ((S (S ff_i_ph_hd_pth_lift_pair_body_value_steps)) * ff_v_hd_pth_lift_pair) + (ff_current_ph_hd_pth_lift_pair_body_value_steps))) /\ ff_current_ph_hd_pth_lift_pair_body_value_steps = ff_previous_ph_hd_pth_lift_pair_body_value_steps * a + ff_coefficient_ph_hd_pth_lift_pair_body_value_steps)))))) /\ (((((exists fs_h_ph_hd_pth_lift_pair_body_derivative_start. fs_h_ph_hd_pth_lift_pair_body_derivative_start + S (0) = S ((S (0)) * ff_e_hd_pth_lift_pair)) /\ exists fs_q_ph_hd_pth_lift_pair_body_derivative_start. ff_d_hd_pth_lift_pair = fs_q_ph_hd_pth_lift_pair_body_derivative_start * S ((S (0)) * ff_e_hd_pth_lift_pair) + (0))) /\ ((((exists fs_h_ph_hd_pth_lift_pair_body_derivative_terminal. fs_h_ph_hd_pth_lift_pair_body_derivative_terminal + S (d) = S ((S (l)) * ff_e_hd_pth_lift_pair)) /\ exists fs_q_ph_hd_pth_lift_pair_body_derivative_terminal. ff_d_hd_pth_lift_pair = fs_q_ph_hd_pth_lift_pair_body_derivative_terminal * S ((S (l)) * ff_e_hd_pth_lift_pair) + (d))) /\ forall ff_i_ph_hd_pth_lift_pair_body_derivative_steps. (exists ph_bound_hd_pth_lift_pair_body_derivative_steps. ph_bound_hd_pth_lift_pair_body_derivative_steps + S ff_i_ph_hd_pth_lift_pair_body_derivative_steps = l) -> exists ff_coefficient_ph_hd_pth_lift_pair_body_derivative_steps ff_previous_ph_hd_pth_lift_pair_body_derivative_steps ff_current_ph_hd_pth_lift_pair_body_derivative_steps. ((((exists fs_h_ph_hd_pth_lift_pair_body_derivative_steps_coefficient. fs_h_ph_hd_pth_lift_pair_body_derivative_steps_coefficient + S (ff_coefficient_ph_hd_pth_lift_pair_body_derivative_steps) = S ((S (ff_i_ph_hd_pth_lift_pair_body_derivative_steps)) * ff_v_hd_pth_lift_pair)) /\ exists fs_q_ph_hd_pth_lift_pair_body_derivative_steps_coefficient. ff_u_hd_pth_lift_pair = fs_q_ph_hd_pth_lift_pair_body_derivative_steps_coefficient * S ((S (ff_i_ph_hd_pth_lift_pair_body_derivative_steps)) * ff_v_hd_pth_lift_pair) + (ff_coefficient_ph_hd_pth_lift_pair_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_pth_lift_pair_body_derivative_steps_before. fs_h_ph_hd_pth_lift_pair_body_derivative_steps_before + S (ff_previous_ph_hd_pth_lift_pair_body_derivative_steps) = S ((S (ff_i_ph_hd_pth_lift_pair_body_derivative_steps)) * ff_e_hd_pth_lift_pair)) /\ exists fs_q_ph_hd_pth_lift_pair_body_derivative_steps_before. ff_d_hd_pth_lift_pair = fs_q_ph_hd_pth_lift_pair_body_derivative_steps_before * S ((S (ff_i_ph_hd_pth_lift_pair_body_derivative_steps)) * ff_e_hd_pth_lift_pair) + (ff_previous_ph_hd_pth_lift_pair_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_pth_lift_pair_body_derivative_steps_after. fs_h_ph_hd_pth_lift_pair_body_derivative_steps_after + S (ff_current_ph_hd_pth_lift_pair_body_derivative_steps) = S ((S (S ff_i_ph_hd_pth_lift_pair_body_derivative_steps)) * ff_e_hd_pth_lift_pair)) /\ exists fs_q_ph_hd_pth_lift_pair_body_derivative_steps_after. ff_d_hd_pth_lift_pair = fs_q_ph_hd_pth_lift_pair_body_derivative_steps_after * S ((S (S ff_i_ph_hd_pth_lift_pair_body_derivative_steps)) * ff_e_hd_pth_lift_pair) + (ff_current_ph_hd_pth_lift_pair_body_derivative_steps))) /\ ff_current_ph_hd_pth_lift_pair_body_derivative_steps = ff_previous_ph_hd_pth_lift_pair_body_derivative_steps * a + ff_coefficient_ph_hd_pth_lift_pair_body_derivative_steps)))))))) -> m = p * s -> n = m * q -> (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 y. ((((exists ff_lt_pth_lift_correction_bound. ff_lt_pth_lift_correction_bound + S t = p) /\ (exists hgcrt_mod_left_pth_lift_correction_annihilation hgcrt_mod_right_pth_lift_correction_annihilation. (q + d * t) + p * hgcrt_mod_left_pth_lift_correction_annihilation = 0 + p * hgcrt_mod_right_pth_lift_correction_annihilation))) /\ ((exists ff_u_ph_pth_lift_value ff_v_ph_pth_lift_value. ((((exists fs_h_ph_pth_lift_value_body_start. fs_h_ph_pth_lift_value_body_start + S (0) = S ((S (0)) * ff_v_ph_pth_lift_value)) /\ exists fs_q_ph_pth_lift_value_body_start. ff_u_ph_pth_lift_value = fs_q_ph_pth_lift_value_body_start * S ((S (0)) * ff_v_ph_pth_lift_value) + (0))) /\ ((((exists fs_h_ph_pth_lift_value_body_terminal. fs_h_ph_pth_lift_value_body_terminal + S (y) = S ((S (l)) * ff_v_ph_pth_lift_value)) /\ exists fs_q_ph_pth_lift_value_body_terminal. ff_u_ph_pth_lift_value = fs_q_ph_pth_lift_value_body_terminal * S ((S (l)) * ff_v_ph_pth_lift_value) + (y))) /\ forall ff_i_ph_pth_lift_value_body_steps. (exists ph_bound_pth_lift_value_body_steps. ph_bound_pth_lift_value_body_steps + S ff_i_ph_pth_lift_value_body_steps = l) -> exists ff_coefficient_ph_pth_lift_value_body_steps ff_previous_ph_pth_lift_value_body_steps ff_current_ph_pth_lift_value_body_steps. ((((exists fs_h_ph_pth_lift_value_body_steps_coefficient. fs_h_ph_pth_lift_value_body_steps_coefficient + S (ff_coefficient_ph_pth_lift_value_body_steps) = S ((S (ff_i_ph_pth_lift_value_body_steps)) * c)) /\ exists fs_q_ph_pth_lift_value_body_steps_coefficient. b = fs_q_ph_pth_lift_value_body_steps_coefficient * S ((S (ff_i_ph_pth_lift_value_body_steps)) * c) + (ff_coefficient_ph_pth_lift_value_body_steps))) /\ ((((exists fs_h_ph_pth_lift_value_body_steps_before. fs_h_ph_pth_lift_value_body_steps_before + S (ff_previous_ph_pth_lift_value_body_steps) = S ((S (ff_i_ph_pth_lift_value_body_steps)) * ff_v_ph_pth_lift_value)) /\ exists fs_q_ph_pth_lift_value_body_steps_before. ff_u_ph_pth_lift_value = fs_q_ph_pth_lift_value_body_steps_before * S ((S (ff_i_ph_pth_lift_value_body_steps)) * ff_v_ph_pth_lift_value) + (ff_previous_ph_pth_lift_value_body_steps))) /\ ((((exists fs_h_ph_pth_lift_value_body_steps_after. fs_h_ph_pth_lift_value_body_steps_after + S (ff_current_ph_pth_lift_value_body_steps) = S ((S (S ff_i_ph_pth_lift_value_body_steps)) * ff_v_ph_pth_lift_value)) /\ exists fs_q_ph_pth_lift_value_body_steps_after. ff_u_ph_pth_lift_value = fs_q_ph_pth_lift_value_body_steps_after * S ((S (S ff_i_ph_pth_lift_value_body_steps)) * ff_v_ph_pth_lift_value) + (ff_current_ph_pth_lift_value_body_steps))) /\ ff_current_ph_pth_lift_value_body_steps = ff_previous_ph_pth_lift_value_body_steps * (a + m * t) + ff_coefficient_ph_pth_lift_value_body_steps)))))) /\ exists w. y = (p * m) * w))Constructive proof overview
Generated structural guide
Every genuinely evaluated coprime simple root modulo a p-divisible modulus has an actual bounded correction and an actual polynomial root modulo the next modulus.
The unchanged tactic script uses 3 declared prerequisites and contains 55 exact native proof lines.
Alpha v34 checked-use · first admitted v25 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
TH0009 hensel_correction_exists beta_horner_eval_exists Alpha theorem; checked-use authorized TH0012 beta_horner_hensel_lift_divisibilityDirect 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 (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.
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 exact 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
Separate complete second-wave branches: Full G095 proof · Alpha v27.