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 t y. ~(m = 0) -> (exists ff_u_hd_hpl_pair ff_v_hd_hpl_pair ff_d_hd_hpl_pair ff_e_hd_hpl_pair. ((((((exists fs_h_ph_hd_hpl_pair_body_value_start. fs_h_ph_hd_hpl_pair_body_value_start + S (0) = S ((S (0)) * ff_v_hd_hpl_pair)) /\ exists fs_q_ph_hd_hpl_pair_body_value_start. ff_u_hd_hpl_pair = fs_q_ph_hd_hpl_pair_body_value_start * S ((S (0)) * ff_v_hd_hpl_pair) + (0))) /\ ((((exists fs_h_ph_hd_hpl_pair_body_value_terminal. fs_h_ph_hd_hpl_pair_body_value_terminal + S (n) = S ((S (l)) * ff_v_hd_hpl_pair)) /\ exists fs_q_ph_hd_hpl_pair_body_value_terminal. ff_u_hd_hpl_pair = fs_q_ph_hd_hpl_pair_body_value_terminal * S ((S (l)) * ff_v_hd_hpl_pair) + (n))) /\ forall ff_i_ph_hd_hpl_pair_body_value_steps. (exists ph_bound_hd_hpl_pair_body_value_steps. ph_bound_hd_hpl_pair_body_value_steps + S ff_i_ph_hd_hpl_pair_body_value_steps = l) -> exists ff_coefficient_ph_hd_hpl_pair_body_value_steps ff_previous_ph_hd_hpl_pair_body_value_steps ff_current_ph_hd_hpl_pair_body_value_steps. ((((exists fs_h_ph_hd_hpl_pair_body_value_steps_coefficient. fs_h_ph_hd_hpl_pair_body_value_steps_coefficient + S (ff_coefficient_ph_hd_hpl_pair_body_value_steps) = S ((S (ff_i_ph_hd_hpl_pair_body_value_steps)) * c)) /\ exists fs_q_ph_hd_hpl_pair_body_value_steps_coefficient. b = fs_q_ph_hd_hpl_pair_body_value_steps_coefficient * S ((S (ff_i_ph_hd_hpl_pair_body_value_steps)) * c) + (ff_coefficient_ph_hd_hpl_pair_body_value_steps))) /\ ((((exists fs_h_ph_hd_hpl_pair_body_value_steps_before. fs_h_ph_hd_hpl_pair_body_value_steps_before + S (ff_previous_ph_hd_hpl_pair_body_value_steps) = S ((S (ff_i_ph_hd_hpl_pair_body_value_steps)) * ff_v_hd_hpl_pair)) /\ exists fs_q_ph_hd_hpl_pair_body_value_steps_before. ff_u_hd_hpl_pair = fs_q_ph_hd_hpl_pair_body_value_steps_before * S ((S (ff_i_ph_hd_hpl_pair_body_value_steps)) * ff_v_hd_hpl_pair) + (ff_previous_ph_hd_hpl_pair_body_value_steps))) /\ ((((exists fs_h_ph_hd_hpl_pair_body_value_steps_after. fs_h_ph_hd_hpl_pair_body_value_steps_after + S (ff_current_ph_hd_hpl_pair_body_value_steps) = S ((S (S ff_i_ph_hd_hpl_pair_body_value_steps)) * ff_v_hd_hpl_pair)) /\ exists fs_q_ph_hd_hpl_pair_body_value_steps_after. ff_u_hd_hpl_pair = fs_q_ph_hd_hpl_pair_body_value_steps_after * S ((S (S ff_i_ph_hd_hpl_pair_body_value_steps)) * ff_v_hd_hpl_pair) + (ff_current_ph_hd_hpl_pair_body_value_steps))) /\ ff_current_ph_hd_hpl_pair_body_value_steps = ff_previous_ph_hd_hpl_pair_body_value_steps * a + ff_coefficient_ph_hd_hpl_pair_body_value_steps)))))) /\ (((((exists fs_h_ph_hd_hpl_pair_body_derivative_start. fs_h_ph_hd_hpl_pair_body_derivative_start + S (0) = S ((S (0)) * ff_e_hd_hpl_pair)) /\ exists fs_q_ph_hd_hpl_pair_body_derivative_start. ff_d_hd_hpl_pair = fs_q_ph_hd_hpl_pair_body_derivative_start * S ((S (0)) * ff_e_hd_hpl_pair) + (0))) /\ ((((exists fs_h_ph_hd_hpl_pair_body_derivative_terminal. fs_h_ph_hd_hpl_pair_body_derivative_terminal + S (d) = S ((S (l)) * ff_e_hd_hpl_pair)) /\ exists fs_q_ph_hd_hpl_pair_body_derivative_terminal. ff_d_hd_hpl_pair = fs_q_ph_hd_hpl_pair_body_derivative_terminal * S ((S (l)) * ff_e_hd_hpl_pair) + (d))) /\ forall ff_i_ph_hd_hpl_pair_body_derivative_steps. (exists ph_bound_hd_hpl_pair_body_derivative_steps. ph_bound_hd_hpl_pair_body_derivative_steps + S ff_i_ph_hd_hpl_pair_body_derivative_steps = l) -> exists ff_coefficient_ph_hd_hpl_pair_body_derivative_steps ff_previous_ph_hd_hpl_pair_body_derivative_steps ff_current_ph_hd_hpl_pair_body_derivative_steps. ((((exists fs_h_ph_hd_hpl_pair_body_derivative_steps_coefficient. fs_h_ph_hd_hpl_pair_body_derivative_steps_coefficient + S (ff_coefficient_ph_hd_hpl_pair_body_derivative_steps) = S ((S (ff_i_ph_hd_hpl_pair_body_derivative_steps)) * ff_v_hd_hpl_pair)) /\ exists fs_q_ph_hd_hpl_pair_body_derivative_steps_coefficient. ff_u_hd_hpl_pair = fs_q_ph_hd_hpl_pair_body_derivative_steps_coefficient * S ((S (ff_i_ph_hd_hpl_pair_body_derivative_steps)) * ff_v_hd_hpl_pair) + (ff_coefficient_ph_hd_hpl_pair_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_hpl_pair_body_derivative_steps_before. fs_h_ph_hd_hpl_pair_body_derivative_steps_before + S (ff_previous_ph_hd_hpl_pair_body_derivative_steps) = S ((S (ff_i_ph_hd_hpl_pair_body_derivative_steps)) * ff_e_hd_hpl_pair)) /\ exists fs_q_ph_hd_hpl_pair_body_derivative_steps_before. ff_d_hd_hpl_pair = fs_q_ph_hd_hpl_pair_body_derivative_steps_before * S ((S (ff_i_ph_hd_hpl_pair_body_derivative_steps)) * ff_e_hd_hpl_pair) + (ff_previous_ph_hd_hpl_pair_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_hpl_pair_body_derivative_steps_after. fs_h_ph_hd_hpl_pair_body_derivative_steps_after + S (ff_current_ph_hd_hpl_pair_body_derivative_steps) = S ((S (S ff_i_ph_hd_hpl_pair_body_derivative_steps)) * ff_e_hd_hpl_pair)) /\ exists fs_q_ph_hd_hpl_pair_body_derivative_steps_after. ff_d_hd_hpl_pair = fs_q_ph_hd_hpl_pair_body_derivative_steps_after * S ((S (S ff_i_ph_hd_hpl_pair_body_derivative_steps)) * ff_e_hd_hpl_pair) + (ff_current_ph_hd_hpl_pair_body_derivative_steps))) /\ ff_current_ph_hd_hpl_pair_body_derivative_steps = ff_previous_ph_hd_hpl_pair_body_derivative_steps * a + ff_coefficient_ph_hd_hpl_pair_body_derivative_steps)))))))) -> (exists ff_u_ph_hpl_eval ff_v_ph_hpl_eval. ((((exists fs_h_ph_hpl_eval_body_start. fs_h_ph_hpl_eval_body_start + S (0) = S ((S (0)) * ff_v_ph_hpl_eval)) /\ exists fs_q_ph_hpl_eval_body_start. ff_u_ph_hpl_eval = fs_q_ph_hpl_eval_body_start * S ((S (0)) * ff_v_ph_hpl_eval) + (0))) /\ ((((exists fs_h_ph_hpl_eval_body_terminal. fs_h_ph_hpl_eval_body_terminal + S (y) = S ((S (l)) * ff_v_ph_hpl_eval)) /\ exists fs_q_ph_hpl_eval_body_terminal. ff_u_ph_hpl_eval = fs_q_ph_hpl_eval_body_terminal * S ((S (l)) * ff_v_ph_hpl_eval) + (y))) /\ forall ff_i_ph_hpl_eval_body_steps. (exists ph_bound_hpl_eval_body_steps. ph_bound_hpl_eval_body_steps + S ff_i_ph_hpl_eval_body_steps = l) -> exists ff_coefficient_ph_hpl_eval_body_steps ff_previous_ph_hpl_eval_body_steps ff_current_ph_hpl_eval_body_steps. ((((exists fs_h_ph_hpl_eval_body_steps_coefficient. fs_h_ph_hpl_eval_body_steps_coefficient + S (ff_coefficient_ph_hpl_eval_body_steps) = S ((S (ff_i_ph_hpl_eval_body_steps)) * c)) /\ exists fs_q_ph_hpl_eval_body_steps_coefficient. b = fs_q_ph_hpl_eval_body_steps_coefficient * S ((S (ff_i_ph_hpl_eval_body_steps)) * c) + (ff_coefficient_ph_hpl_eval_body_steps))) /\ ((((exists fs_h_ph_hpl_eval_body_steps_before. fs_h_ph_hpl_eval_body_steps_before + S (ff_previous_ph_hpl_eval_body_steps) = S ((S (ff_i_ph_hpl_eval_body_steps)) * ff_v_ph_hpl_eval)) /\ exists fs_q_ph_hpl_eval_body_steps_before. ff_u_ph_hpl_eval = fs_q_ph_hpl_eval_body_steps_before * S ((S (ff_i_ph_hpl_eval_body_steps)) * ff_v_ph_hpl_eval) + (ff_previous_ph_hpl_eval_body_steps))) /\ ((((exists fs_h_ph_hpl_eval_body_steps_after. fs_h_ph_hpl_eval_body_steps_after + S (ff_current_ph_hpl_eval_body_steps) = S ((S (S ff_i_ph_hpl_eval_body_steps)) * ff_v_ph_hpl_eval)) /\ exists fs_q_ph_hpl_eval_body_steps_after. ff_u_ph_hpl_eval = fs_q_ph_hpl_eval_body_steps_after * S ((S (S ff_i_ph_hpl_eval_body_steps)) * ff_v_ph_hpl_eval) + (ff_current_ph_hpl_eval_body_steps))) /\ ff_current_ph_hpl_eval_body_steps = ff_previous_ph_hpl_eval_body_steps * (a + m * t) + ff_coefficient_ph_hpl_eval_body_steps)))))) -> m = p * s -> n = m * q -> (exists hpl_gap_bound. hpl_gap_bound + S (t) = (p)) -> (exists hgcrt_mod_left_hpl_mod hgcrt_mod_right_hpl_mod. y + (p * m) * hgcrt_mod_left_hpl_mod = 0 + (p * m) * hgcrt_mod_right_hpl_mod) -> (((exists ff_lt_pth_hpl_correction_bound. ff_lt_pth_hpl_correction_bound + S t = p) /\ (exists hgcrt_mod_left_pth_hpl_correction_annihilation hgcrt_mod_right_pth_hpl_correction_annihilation. (q + d * t) + p * hgcrt_mod_left_pth_hpl_correction_annihilation = 0 + p * hgcrt_mod_right_pth_hpl_correction_annihilation)))Constructive proof overview
Generated structural guide
Every genuine next-modulus root with a bounded digit necessarily satisfies the derivative correction equation.
The unchanged tactic script uses 8 declared prerequisites and contains 80 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
beta_horner_taylor_remainder_exists Alpha theorem; checked-use authorized hensel_square_shift_multiple Alpha theorem; checked-use authorized multiple_mul_right Stable theorem; checked-use authorized multiple_implies_balanced_zero_congruence Alpha theorem; checked-use authorized HL0001 hensel_mod_add_zero_cancel HL0006 hensel_lift_linear_identity mod_eq_unscale_nonzero Alpha theorem; checked-use authorized mul_comm 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 (2)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–19
03Establish htaylorL20–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner taylor remainder exists.
- L20
have htaylor : exists w. y = (n + (m * t) * d) + ((m * t) * (m * t)) * w - L21
specialize beta_horner_taylor_remainder_exists b - L22
specialize beta_horner_taylor_remainder_exists c - L23
specialize beta_horner_taylor_remainder_exists a - L24
specialize beta_horner_taylor_remainder_exists (m * t) - L25
specialize beta_horner_taylor_remainder_exists l - L26
specialize beta_horner_taylor_remainder_exists n - L27
specialize beta_horner_taylor_remainder_exists d - L28
specialize beta_horner_taylor_remainder_exists y - L29
apply beta_horner_taylor_remainder_exists
04Use earlier factsL30–31
05Separate the logical casesL32–32
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L32
cases htaylor
06Establish hsquareL33–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hensel square shift multiple.
07Establish hquadL40–48
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply multiple implies balanced zero congruence.
- L40
have hquad : exists hgcrt_mod_left_hpl_mod hgcrt_mod_right_hpl_mod. (m * t * (m * t) * x) + (p * m) * hgcrt_mod_left_hpl_mod = 0 + (p * m) * hgcrt_mod_right_hpl_mod - L41
specialize multiple_implies_balanced_zero_congruence (p * m) - L42
specialize multiple_implies_balanced_zero_congruence (((m * t) * (m * t)) * x) - L43
apply multiple_implies_balanced_zero_congruence - L44
specialize multiple_mul_right (p * m) - L45
specialize multiple_mul_right ((m * t) * (m * t)) - L46
specialize multiple_mul_right x - L47
apply multiple_mul_right - L48
exact hsquare
08Establish hlinearL49–56
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hensel mod add zero cancel.
- L49
have hlinear : exists hgcrt_mod_left_hpl_mod hgcrt_mod_right_hpl_mod. (n + m * t * d) + (p * m) * hgcrt_mod_left_hpl_mod = 0 + (p * m) * hgcrt_mod_right_hpl_mod - L50
specialize hensel_mod_add_zero_cancel (p * m) - L51
specialize hensel_mod_add_zero_cancel (n + (m * t) * d) - L52
specialize hensel_mod_add_zero_cancel (((m * t) * (m * t)) * x) - L53
apply hensel_mod_add_zero_cancel - L54
rewrite <- htaylor_witness - L55
exact hroot - L56
exact hquad
09Separate the logical casesL57–57
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L57
split
10Use earlier factsL58–64
11Establish hproductL65–68
12Establish hzeroL69–71
13Establish hidentityL72–80
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hensel lift linear identity.
- L72
have hidentity : m * (q + d * t) = n + (m * t) * d - L73
rewrite hn - L74
specialize hensel_lift_linear_identity m - L75
specialize hensel_lift_linear_identity d - L76
specialize hensel_lift_linear_identity q - L77
specialize hensel_lift_linear_identity t - L78
apply hensel_lift_linear_identity - L79
rewrite hidentity - L80
exact hlinear
Original exact command ledger · 80 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 t - 0012
intro y - 0013
intro hm - 0014
intro hpair - 0015
intro hvalue - 0016
intro hfactor - 0017
intro hn - 0018
intro ht - 0019
intro hroot - 0020
have htaylor : exists w. y = (n + (m * t) * d) + ((m * t) * (m * t)) * w - 0021
specialize beta_horner_taylor_remainder_exists b - 0022
specialize beta_horner_taylor_remainder_exists c - 0023
specialize beta_horner_taylor_remainder_exists a - 0024
specialize beta_horner_taylor_remainder_exists (m * t) - 0025
specialize beta_horner_taylor_remainder_exists l - 0026
specialize beta_horner_taylor_remainder_exists n - 0027
specialize beta_horner_taylor_remainder_exists d - 0028
specialize beta_horner_taylor_remainder_exists y - 0029
apply beta_horner_taylor_remainder_exists - 0030
exact hpair - 0031
exact hvalue - 0032
cases htaylor - 0033
have hsquare : exists w. (m * t) * (m * t) = (p * m) * w - 0034
specialize hensel_square_shift_multiple m - 0035
specialize hensel_square_shift_multiple t - 0036
specialize hensel_square_shift_multiple p - 0037
specialize hensel_square_shift_multiple s - 0038
apply hensel_square_shift_multiple - 0039
exact hfactor - 0040
have hquad : exists hgcrt_mod_left_hpl_mod hgcrt_mod_right_hpl_mod. (m * t * (m * t) * x) + (p * m) * hgcrt_mod_left_hpl_mod = 0 + (p * m) * hgcrt_mod_right_hpl_mod - 0041
specialize multiple_implies_balanced_zero_congruence (p * m) - 0042
specialize multiple_implies_balanced_zero_congruence (((m * t) * (m * t)) * x) - 0043
apply multiple_implies_balanced_zero_congruence - 0044
specialize multiple_mul_right (p * m) - 0045
specialize multiple_mul_right ((m * t) * (m * t)) - 0046
specialize multiple_mul_right x - 0047
apply multiple_mul_right - 0048
exact hsquare - 0049
have hlinear : exists hgcrt_mod_left_hpl_mod hgcrt_mod_right_hpl_mod. (n + m * t * d) + (p * m) * hgcrt_mod_left_hpl_mod = 0 + (p * m) * hgcrt_mod_right_hpl_mod - 0050
specialize hensel_mod_add_zero_cancel (p * m) - 0051
specialize hensel_mod_add_zero_cancel (n + (m * t) * d) - 0052
specialize hensel_mod_add_zero_cancel (((m * t) * (m * t)) * x) - 0053
apply hensel_mod_add_zero_cancel - 0054
rewrite <- htaylor_witness - 0055
exact hroot - 0056
exact hquad - 0057
split - 0058
exact ht - 0059
specialize mod_eq_unscale_nonzero m - 0060
specialize mod_eq_unscale_nonzero p - 0061
specialize mod_eq_unscale_nonzero (q + d * t) - 0062
specialize mod_eq_unscale_nonzero 0 - 0063
apply mod_eq_unscale_nonzero - 0064
exact hm - 0065
have hproduct : m * p = p * m - 0066
apply mul_comm - 0067
rewrite hproduct - 0068
rewrite hproduct - 0069
have hzero : m * 0 = 0 - 0070
simp - 0071
rewrite hzero - 0072
have hidentity : m * (q + d * t) = n + (m * t) * d - 0073
rewrite hn - 0074
specialize hensel_lift_linear_identity m - 0075
specialize hensel_lift_linear_identity d - 0076
specialize hensel_lift_linear_identity q - 0077
specialize hensel_lift_linear_identity t - 0078
apply hensel_lift_linear_identity - 0079
rewrite hidentity - 0080
exact hlinear