ND0078

HornerRootModulo(b,c,a,l,m)

An actually evaluated natural polynomial vanishes modulo m at a.

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

∃ hpl_value_secondwave. Horner(b,c,a,l,hpl_value_secondwave)ModEq(m,hpl_value_secondwave,0)

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

Hygienic expanded first-order definition
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 * a + 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

Checked theorems using this definition