ND0080

CanonicalHornerLift(b,c,l,m,a,M,r)

A genuine polynomial root r<M at the new modulus M, in the original residue class a modulo m.

Conservative notation; not a theorem, primitive, or axiom.

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.

Definition in prerequisite notation

Lt(r,M) ∧ (ModEq(m,r,a)HornerRootModulo(b,c,r,l,M))

Only definitions earlier in this acyclic notation graph are used here.

Hygienic expanded first-order definition
((exists hpl_gap_secondwave. hpl_gap_secondwave + S (r) = (M)) /\ ((exists hgcrt_mod_left_hpl_secondwave hgcrt_mod_right_hpl_secondwave. r + m * hgcrt_mod_left_hpl_secondwave = a + m * hgcrt_mod_right_hpl_secondwave) /\ (exists hpl_value_secondwave. ((exists ff_u_ph_hpl_secondwave ff_v_ph_hpl_secondwave. ((((exists fs_h_ph_hpl_secondwave_body_start. fs_h_ph_hpl_secondwave_body_start + S (0) = S ((S (0)) * ff_v_ph_hpl_secondwave)) /\ exists fs_q_ph_hpl_secondwave_body_start. ff_u_ph_hpl_secondwave = fs_q_ph_hpl_secondwave_body_start * S ((S (0)) * ff_v_ph_hpl_secondwave) + (0))) /\ ((((exists fs_h_ph_hpl_secondwave_body_terminal. fs_h_ph_hpl_secondwave_body_terminal + S (hpl_value_secondwave) = S ((S (l)) * ff_v_ph_hpl_secondwave)) /\ exists fs_q_ph_hpl_secondwave_body_terminal. ff_u_ph_hpl_secondwave = fs_q_ph_hpl_secondwave_body_terminal * S ((S (l)) * ff_v_ph_hpl_secondwave) + (hpl_value_secondwave))) /\ forall ff_i_ph_hpl_secondwave_body_steps. (exists ph_bound_hpl_secondwave_body_steps. ph_bound_hpl_secondwave_body_steps + S ff_i_ph_hpl_secondwave_body_steps = l) -> exists ff_coefficient_ph_hpl_secondwave_body_steps ff_previous_ph_hpl_secondwave_body_steps ff_current_ph_hpl_secondwave_body_steps. ((((exists fs_h_ph_hpl_secondwave_body_steps_coefficient. fs_h_ph_hpl_secondwave_body_steps_coefficient + S (ff_coefficient_ph_hpl_secondwave_body_steps) = S ((S (ff_i_ph_hpl_secondwave_body_steps)) * c)) /\ exists fs_q_ph_hpl_secondwave_body_steps_coefficient. b = fs_q_ph_hpl_secondwave_body_steps_coefficient * S ((S (ff_i_ph_hpl_secondwave_body_steps)) * c) + (ff_coefficient_ph_hpl_secondwave_body_steps))) /\ ((((exists fs_h_ph_hpl_secondwave_body_steps_before. fs_h_ph_hpl_secondwave_body_steps_before + S (ff_previous_ph_hpl_secondwave_body_steps) = S ((S (ff_i_ph_hpl_secondwave_body_steps)) * ff_v_ph_hpl_secondwave)) /\ exists fs_q_ph_hpl_secondwave_body_steps_before. ff_u_ph_hpl_secondwave = fs_q_ph_hpl_secondwave_body_steps_before * S ((S (ff_i_ph_hpl_secondwave_body_steps)) * ff_v_ph_hpl_secondwave) + (ff_previous_ph_hpl_secondwave_body_steps))) /\ ((((exists fs_h_ph_hpl_secondwave_body_steps_after. fs_h_ph_hpl_secondwave_body_steps_after + S (ff_current_ph_hpl_secondwave_body_steps) = S ((S (S ff_i_ph_hpl_secondwave_body_steps)) * ff_v_ph_hpl_secondwave)) /\ exists fs_q_ph_hpl_secondwave_body_steps_after. ff_u_ph_hpl_secondwave = fs_q_ph_hpl_secondwave_body_steps_after * S ((S (S ff_i_ph_hpl_secondwave_body_steps)) * ff_v_ph_hpl_secondwave) + (ff_current_ph_hpl_secondwave_body_steps))) /\ ff_current_ph_hpl_secondwave_body_steps = ff_previous_ph_hpl_secondwave_body_steps * r + ff_coefficient_ph_hpl_secondwave_body_steps)))))) /\ (exists hgcrt_mod_left_hpl_secondwave hgcrt_mod_right_hpl_secondwave. hpl_value_secondwave + M * hgcrt_mod_left_hpl_secondwave = 0 + M * hgcrt_mod_right_hpl_secondwave)))))

The unchanged native kernel never receives this surface symbol. Binder-safe expansion produces only its existing first-order syntax.

Direct definition dependencies

Definitions depending on this notation

none

Checked theorems using this definition