HL0028

integer_polynomial_prime_simple_root_lifts_all_positive_powers

Exact full G095: a root modulo a prime with signed derivative nonzero modulo that prime has a uniquely determined bounded lift in its residue class at every positive precision; the actual power, inverse and lift are all constructed rather than supplied.

Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable

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.

The derivative-nonzero criterion supplies no inverse or power witness: both are constructed. Roots may be arbitrary natural representatives of signed integer polynomials. Singular-root classification and p-adic completion are separate milestones.

Exact theorem in conservative defined notation

∀ pb. ∀ pc. ∀ nb. ∀ nc. ∀ a. ∀ l. ∀ p. ∀ k. Prime(p) → ¬k = 0 → SignedNonsingularHornerRoot(pb,pc,nb,nc,a,l,p,p) → ∃ x. Pow(p,k,x) ∧ (∃ y. CanonicalSignedHornerLift(pb,pc,nb,nc,l,p,a,x,y) ∧ (∀ z. CanonicalSignedHornerLift(pb,pc,nb,nc,l,p,a,x,z) → z = y))

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

hensel_prime_nonsingular_root_is_simplepow_exists · checked external prerequisitepow_one · checked external prerequisitenonzero_is_succ · checked external prerequisiteinteger_polynomial_prime_power_hensel_iterated_exists_uniqueadd_comm · checked external prerequisite
Original expanded first-order statement
forall pb pc nb nc a l p k. ((~(p = 1) /\ forall frm_prime_left_hsc_all_precision_prime frm_prime_right_hsc_all_precision_prime. p = frm_prime_left_hsc_all_precision_prime * frm_prime_right_hsc_all_precision_prime -> frm_prime_left_hsc_all_precision_prime = 1 \/ frm_prime_right_hsc_all_precision_prime = 1)) -> ~(k = 0) -> (exists hsc_vp_all_precision_source hsc_dp_all_precision_source hsc_vn_all_precision_source hsc_dn_all_precision_source. ((((exists ff_u_hd_hpl_sph_hsc_all_precision_source_pair_positive ff_v_hd_hpl_sph_hsc_all_precision_source_pair_positive ff_d_hd_hpl_sph_hsc_all_precision_source_pair_positive ff_e_hd_hpl_sph_hsc_all_precision_source_pair_positive. ((((((exists fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_start. fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_start + S (0) = S ((S (0)) * ff_v_hd_hpl_sph_hsc_all_precision_source_pair_positive)) /\ exists fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_start. ff_u_hd_hpl_sph_hsc_all_precision_source_pair_positive = fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_start * S ((S (0)) * ff_v_hd_hpl_sph_hsc_all_precision_source_pair_positive) + (0))) /\ ((((exists fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_terminal. fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_terminal + S (hsc_vp_all_precision_source) = S ((S (l)) * ff_v_hd_hpl_sph_hsc_all_precision_source_pair_positive)) /\ exists fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_terminal. ff_u_hd_hpl_sph_hsc_all_precision_source_pair_positive = fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_terminal * S ((S (l)) * ff_v_hd_hpl_sph_hsc_all_precision_source_pair_positive) + (hsc_vp_all_precision_source))) /\ forall ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps. (exists ph_bound_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps. ph_bound_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps + S ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps = l) -> exists ff_coefficient_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps ff_previous_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps ff_current_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps. ((((exists fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps_coefficient. fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps_coefficient + S (ff_coefficient_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps) = S ((S (ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps)) * pc)) /\ exists fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps_coefficient. pb = fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps_coefficient * S ((S (ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps)) * pc) + (ff_coefficient_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps))) /\ ((((exists fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps_before. fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps_before + S (ff_previous_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps) = S ((S (ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps)) * ff_v_hd_hpl_sph_hsc_all_precision_source_pair_positive)) /\ exists fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps_before. ff_u_hd_hpl_sph_hsc_all_precision_source_pair_positive = fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps_before * S ((S (ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps)) * ff_v_hd_hpl_sph_hsc_all_precision_source_pair_positive) + (ff_previous_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps))) /\ ((((exists fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps_after. fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps_after + S (ff_current_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps) = S ((S (S ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps)) * ff_v_hd_hpl_sph_hsc_all_precision_source_pair_positive)) /\ exists fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps_after. ff_u_hd_hpl_sph_hsc_all_precision_source_pair_positive = fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps_after * S ((S (S ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps)) * ff_v_hd_hpl_sph_hsc_all_precision_source_pair_positive) + (ff_current_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps))) /\ ff_current_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps = ff_previous_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps * a + ff_coefficient_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_value_steps)))))) /\ (((((exists fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_start. fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_start + S (0) = S ((S (0)) * ff_e_hd_hpl_sph_hsc_all_precision_source_pair_positive)) /\ exists fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_start. ff_d_hd_hpl_sph_hsc_all_precision_source_pair_positive = fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_start * S ((S (0)) * ff_e_hd_hpl_sph_hsc_all_precision_source_pair_positive) + (0))) /\ ((((exists fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_terminal. fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_terminal + S (hsc_dp_all_precision_source) = S ((S (l)) * ff_e_hd_hpl_sph_hsc_all_precision_source_pair_positive)) /\ exists fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_terminal. ff_d_hd_hpl_sph_hsc_all_precision_source_pair_positive = fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_terminal * S ((S (l)) * ff_e_hd_hpl_sph_hsc_all_precision_source_pair_positive) + (hsc_dp_all_precision_source))) /\ forall ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps. (exists ph_bound_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps. ph_bound_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps + S ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps = l) -> exists ff_coefficient_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps ff_previous_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps ff_current_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps. ((((exists fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps_coefficient. fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps_coefficient + S (ff_coefficient_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps) = S ((S (ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps)) * ff_v_hd_hpl_sph_hsc_all_precision_source_pair_positive)) /\ exists fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps_coefficient. ff_u_hd_hpl_sph_hsc_all_precision_source_pair_positive = fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps_coefficient * S ((S (ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps)) * ff_v_hd_hpl_sph_hsc_all_precision_source_pair_positive) + (ff_coefficient_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps_before. fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps_before + S (ff_previous_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps) = S ((S (ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps)) * ff_e_hd_hpl_sph_hsc_all_precision_source_pair_positive)) /\ exists fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps_before. ff_d_hd_hpl_sph_hsc_all_precision_source_pair_positive = fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps_before * S ((S (ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps)) * ff_e_hd_hpl_sph_hsc_all_precision_source_pair_positive) + (ff_previous_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps_after. fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps_after + S (ff_current_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps) = S ((S (S ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps)) * ff_e_hd_hpl_sph_hsc_all_precision_source_pair_positive)) /\ exists fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps_after. ff_d_hd_hpl_sph_hsc_all_precision_source_pair_positive = fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps_after * S ((S (S ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps)) * ff_e_hd_hpl_sph_hsc_all_precision_source_pair_positive) + (ff_current_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps))) /\ ff_current_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps = ff_previous_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps * a + ff_coefficient_ph_hd_hpl_sph_hsc_all_precision_source_pair_positive_body_derivative_steps)))))))) /\ (exists ff_u_hd_hpl_sph_hsc_all_precision_source_pair_negative ff_v_hd_hpl_sph_hsc_all_precision_source_pair_negative ff_d_hd_hpl_sph_hsc_all_precision_source_pair_negative ff_e_hd_hpl_sph_hsc_all_precision_source_pair_negative. ((((((exists fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_start. fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_start + S (0) = S ((S (0)) * ff_v_hd_hpl_sph_hsc_all_precision_source_pair_negative)) /\ exists fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_start. ff_u_hd_hpl_sph_hsc_all_precision_source_pair_negative = fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_start * S ((S (0)) * ff_v_hd_hpl_sph_hsc_all_precision_source_pair_negative) + (0))) /\ ((((exists fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_terminal. fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_terminal + S (hsc_vn_all_precision_source) = S ((S (l)) * ff_v_hd_hpl_sph_hsc_all_precision_source_pair_negative)) /\ exists fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_terminal. ff_u_hd_hpl_sph_hsc_all_precision_source_pair_negative = fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_terminal * S ((S (l)) * ff_v_hd_hpl_sph_hsc_all_precision_source_pair_negative) + (hsc_vn_all_precision_source))) /\ forall ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps. (exists ph_bound_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps. ph_bound_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps + S ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps = l) -> exists ff_coefficient_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps ff_previous_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps ff_current_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps. ((((exists fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps_coefficient. fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps_coefficient + S (ff_coefficient_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps) = S ((S (ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps)) * nc)) /\ exists fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps_coefficient. nb = fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps_coefficient * S ((S (ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps)) * nc) + (ff_coefficient_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps))) /\ ((((exists fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps_before. fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps_before + S (ff_previous_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps) = S ((S (ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps)) * ff_v_hd_hpl_sph_hsc_all_precision_source_pair_negative)) /\ exists fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps_before. ff_u_hd_hpl_sph_hsc_all_precision_source_pair_negative = fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps_before * S ((S (ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps)) * ff_v_hd_hpl_sph_hsc_all_precision_source_pair_negative) + (ff_previous_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps))) /\ ((((exists fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps_after. fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps_after + S (ff_current_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps) = S ((S (S ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps)) * ff_v_hd_hpl_sph_hsc_all_precision_source_pair_negative)) /\ exists fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps_after. ff_u_hd_hpl_sph_hsc_all_precision_source_pair_negative = fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps_after * S ((S (S ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps)) * ff_v_hd_hpl_sph_hsc_all_precision_source_pair_negative) + (ff_current_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps))) /\ ff_current_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps = ff_previous_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps * a + ff_coefficient_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_value_steps)))))) /\ (((((exists fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_start. fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_start + S (0) = S ((S (0)) * ff_e_hd_hpl_sph_hsc_all_precision_source_pair_negative)) /\ exists fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_start. ff_d_hd_hpl_sph_hsc_all_precision_source_pair_negative = fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_start * S ((S (0)) * ff_e_hd_hpl_sph_hsc_all_precision_source_pair_negative) + (0))) /\ ((((exists fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_terminal. fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_terminal + S (hsc_dn_all_precision_source) = S ((S (l)) * ff_e_hd_hpl_sph_hsc_all_precision_source_pair_negative)) /\ exists fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_terminal. ff_d_hd_hpl_sph_hsc_all_precision_source_pair_negative = fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_terminal * S ((S (l)) * ff_e_hd_hpl_sph_hsc_all_precision_source_pair_negative) + (hsc_dn_all_precision_source))) /\ forall ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps. (exists ph_bound_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps. ph_bound_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps + S ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps = l) -> exists ff_coefficient_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps ff_previous_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps ff_current_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps. ((((exists fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps_coefficient. fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps_coefficient + S (ff_coefficient_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps) = S ((S (ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps)) * ff_v_hd_hpl_sph_hsc_all_precision_source_pair_negative)) /\ exists fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps_coefficient. ff_u_hd_hpl_sph_hsc_all_precision_source_pair_negative = fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps_coefficient * S ((S (ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps)) * ff_v_hd_hpl_sph_hsc_all_precision_source_pair_negative) + (ff_coefficient_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps_before. fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps_before + S (ff_previous_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps) = S ((S (ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps)) * ff_e_hd_hpl_sph_hsc_all_precision_source_pair_negative)) /\ exists fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps_before. ff_d_hd_hpl_sph_hsc_all_precision_source_pair_negative = fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps_before * S ((S (ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps)) * ff_e_hd_hpl_sph_hsc_all_precision_source_pair_negative) + (ff_previous_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps_after. fs_h_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps_after + S (ff_current_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps) = S ((S (S ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps)) * ff_e_hd_hpl_sph_hsc_all_precision_source_pair_negative)) /\ exists fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps_after. ff_d_hd_hpl_sph_hsc_all_precision_source_pair_negative = fs_q_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps_after * S ((S (S ff_i_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps)) * ff_e_hd_hpl_sph_hsc_all_precision_source_pair_negative) + (ff_current_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps))) /\ ff_current_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps = ff_previous_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps * a + ff_coefficient_ph_hd_hpl_sph_hsc_all_precision_source_pair_negative_body_derivative_steps)))))))))) /\ ((exists hgcrt_mod_left_hpl_hsc_all_precision_source_root hgcrt_mod_right_hpl_hsc_all_precision_source_root. hsc_vp_all_precision_source + p * hgcrt_mod_left_hpl_hsc_all_precision_source_root = hsc_vn_all_precision_source + p * hgcrt_mod_right_hpl_hsc_all_precision_source_root) /\ (~(exists hgcrt_mod_left_hpl_hsc_all_precision_source hgcrt_mod_right_hpl_hsc_all_precision_source. hsc_dp_all_precision_source + p * hgcrt_mod_left_hpl_hsc_all_precision_source = hsc_dn_all_precision_source + p * hgcrt_mod_right_hpl_hsc_all_precision_source))))) -> (exists hsc_modulus_all_precision_result. ((exists pa_b_hpl_hsc_all_precision_result_power pa_c_hpl_hsc_all_precision_result_power. ((forall pa_i_hpl_hsc_all_precision_result_power_repeat. (exists pa_lt_hpl_hsc_all_precision_result_power_repeat_bound. pa_lt_hpl_hsc_all_precision_result_power_repeat_bound + S pa_i_hpl_hsc_all_precision_result_power_repeat = k) -> (((exists pa_h_hpl_hsc_all_precision_result_power_repeat_decoded. pa_h_hpl_hsc_all_precision_result_power_repeat_decoded + S (p) = S ((S (pa_i_hpl_hsc_all_precision_result_power_repeat)) * pa_c_hpl_hsc_all_precision_result_power)) /\ exists pa_q_hpl_hsc_all_precision_result_power_repeat_decoded. pa_b_hpl_hsc_all_precision_result_power = pa_q_hpl_hsc_all_precision_result_power_repeat_decoded * S ((S (pa_i_hpl_hsc_all_precision_result_power_repeat)) * pa_c_hpl_hsc_all_precision_result_power) + (p)))) /\ (exists pa_u_hpl_hsc_all_precision_result_power_product pa_v_hpl_hsc_all_precision_result_power_product. ((((exists pa_h_hpl_hsc_all_precision_result_power_product_start. pa_h_hpl_hsc_all_precision_result_power_product_start + S (1) = S ((S (0)) * pa_v_hpl_hsc_all_precision_result_power_product)) /\ exists pa_q_hpl_hsc_all_precision_result_power_product_start. pa_u_hpl_hsc_all_precision_result_power_product = pa_q_hpl_hsc_all_precision_result_power_product_start * S ((S (0)) * pa_v_hpl_hsc_all_precision_result_power_product) + (1))) /\ ((((exists pa_h_hpl_hsc_all_precision_result_power_product_terminal. pa_h_hpl_hsc_all_precision_result_power_product_terminal + S (hsc_modulus_all_precision_result) = S ((S (k)) * pa_v_hpl_hsc_all_precision_result_power_product)) /\ exists pa_q_hpl_hsc_all_precision_result_power_product_terminal. pa_u_hpl_hsc_all_precision_result_power_product = pa_q_hpl_hsc_all_precision_result_power_product_terminal * S ((S (k)) * pa_v_hpl_hsc_all_precision_result_power_product) + (hsc_modulus_all_precision_result))) /\ forall pa_i_hpl_hsc_all_precision_result_power_product. (exists pa_lt_hpl_hsc_all_precision_result_power_product_bound. pa_lt_hpl_hsc_all_precision_result_power_product_bound + S pa_i_hpl_hsc_all_precision_result_power_product = k) -> exists pa_p_hpl_hsc_all_precision_result_power_product pa_r_hpl_hsc_all_precision_result_power_product pa_s_hpl_hsc_all_precision_result_power_product. ((((exists pa_h_hpl_hsc_all_precision_result_power_product_factor. pa_h_hpl_hsc_all_precision_result_power_product_factor + S (pa_p_hpl_hsc_all_precision_result_power_product) = S ((S (pa_i_hpl_hsc_all_precision_result_power_product)) * pa_c_hpl_hsc_all_precision_result_power)) /\ exists pa_q_hpl_hsc_all_precision_result_power_product_factor. pa_b_hpl_hsc_all_precision_result_power = pa_q_hpl_hsc_all_precision_result_power_product_factor * S ((S (pa_i_hpl_hsc_all_precision_result_power_product)) * pa_c_hpl_hsc_all_precision_result_power) + (pa_p_hpl_hsc_all_precision_result_power_product))) /\ ((((exists pa_h_hpl_hsc_all_precision_result_power_product_partial. pa_h_hpl_hsc_all_precision_result_power_product_partial + S (pa_r_hpl_hsc_all_precision_result_power_product) = S ((S (pa_i_hpl_hsc_all_precision_result_power_product)) * pa_v_hpl_hsc_all_precision_result_power_product)) /\ exists pa_q_hpl_hsc_all_precision_result_power_product_partial. pa_u_hpl_hsc_all_precision_result_power_product = pa_q_hpl_hsc_all_precision_result_power_product_partial * S ((S (pa_i_hpl_hsc_all_precision_result_power_product)) * pa_v_hpl_hsc_all_precision_result_power_product) + (pa_r_hpl_hsc_all_precision_result_power_product))) /\ ((((exists pa_h_hpl_hsc_all_precision_result_power_product_successor. pa_h_hpl_hsc_all_precision_result_power_product_successor + S (pa_s_hpl_hsc_all_precision_result_power_product) = S ((S (S pa_i_hpl_hsc_all_precision_result_power_product)) * pa_v_hpl_hsc_all_precision_result_power_product)) /\ exists pa_q_hpl_hsc_all_precision_result_power_product_successor. pa_u_hpl_hsc_all_precision_result_power_product = pa_q_hpl_hsc_all_precision_result_power_product_successor * S ((S (S pa_i_hpl_hsc_all_precision_result_power_product)) * pa_v_hpl_hsc_all_precision_result_power_product) + (pa_s_hpl_hsc_all_precision_result_power_product))) /\ pa_s_hpl_hsc_all_precision_result_power_product = pa_r_hpl_hsc_all_precision_result_power_product * pa_p_hpl_hsc_all_precision_result_power_product)))))))) /\ exists hsc_root_all_precision_result. ((((exists hpl_gap_hsc_all_precision_result_chosen. hpl_gap_hsc_all_precision_result_chosen + S (hsc_root_all_precision_result) = (hsc_modulus_all_precision_result)) /\ ((exists hgcrt_mod_left_hpl_hsc_all_precision_result_chosen hgcrt_mod_right_hpl_hsc_all_precision_result_chosen. hsc_root_all_precision_result + p * hgcrt_mod_left_hpl_hsc_all_precision_result_chosen = a + p * hgcrt_mod_right_hpl_hsc_all_precision_result_chosen) /\ (exists sph_positive_hsc_all_precision_result_chosen sph_negative_hsc_all_precision_result_chosen. ((exists ff_u_ph_hpl_sph_hsc_all_precision_result_chosen_positive ff_v_ph_hpl_sph_hsc_all_precision_result_chosen_positive. ((((exists fs_h_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_start. fs_h_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_start + S (0) = S ((S (0)) * ff_v_ph_hpl_sph_hsc_all_precision_result_chosen_positive)) /\ exists fs_q_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_start. ff_u_ph_hpl_sph_hsc_all_precision_result_chosen_positive = fs_q_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_start * S ((S (0)) * ff_v_ph_hpl_sph_hsc_all_precision_result_chosen_positive) + (0))) /\ ((((exists fs_h_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_terminal. fs_h_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_terminal + S (sph_positive_hsc_all_precision_result_chosen) = S ((S (l)) * ff_v_ph_hpl_sph_hsc_all_precision_result_chosen_positive)) /\ exists fs_q_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_terminal. ff_u_ph_hpl_sph_hsc_all_precision_result_chosen_positive = fs_q_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_terminal * S ((S (l)) * ff_v_ph_hpl_sph_hsc_all_precision_result_chosen_positive) + (sph_positive_hsc_all_precision_result_chosen))) /\ forall ff_i_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps. (exists ph_bound_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps. ph_bound_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps + S ff_i_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps = l) -> exists ff_coefficient_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps ff_previous_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps ff_current_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps. ((((exists fs_h_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps_coefficient. fs_h_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps_coefficient + S (ff_coefficient_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps) = S ((S (ff_i_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps)) * pc)) /\ exists fs_q_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps_coefficient. pb = fs_q_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps_coefficient * S ((S (ff_i_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps)) * pc) + (ff_coefficient_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps))) /\ ((((exists fs_h_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps_before. fs_h_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps_before + S (ff_previous_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps) = S ((S (ff_i_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps)) * ff_v_ph_hpl_sph_hsc_all_precision_result_chosen_positive)) /\ exists fs_q_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps_before. ff_u_ph_hpl_sph_hsc_all_precision_result_chosen_positive = fs_q_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps_before * S ((S (ff_i_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps)) * ff_v_ph_hpl_sph_hsc_all_precision_result_chosen_positive) + (ff_previous_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps))) /\ ((((exists fs_h_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps_after. fs_h_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps_after + S (ff_current_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps) = S ((S (S ff_i_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps)) * ff_v_ph_hpl_sph_hsc_all_precision_result_chosen_positive)) /\ exists fs_q_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps_after. ff_u_ph_hpl_sph_hsc_all_precision_result_chosen_positive = fs_q_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps_after * S ((S (S ff_i_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps)) * ff_v_ph_hpl_sph_hsc_all_precision_result_chosen_positive) + (ff_current_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps))) /\ ff_current_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps = ff_previous_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps * hsc_root_all_precision_result + ff_coefficient_ph_hpl_sph_hsc_all_precision_result_chosen_positive_body_steps)))))) /\ ((exists ff_u_ph_hpl_sph_hsc_all_precision_result_chosen_negative ff_v_ph_hpl_sph_hsc_all_precision_result_chosen_negative. ((((exists fs_h_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_start. fs_h_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_start + S (0) = S ((S (0)) * ff_v_ph_hpl_sph_hsc_all_precision_result_chosen_negative)) /\ exists fs_q_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_start. ff_u_ph_hpl_sph_hsc_all_precision_result_chosen_negative = fs_q_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_start * S ((S (0)) * ff_v_ph_hpl_sph_hsc_all_precision_result_chosen_negative) + (0))) /\ ((((exists fs_h_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_terminal. fs_h_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_terminal + S (sph_negative_hsc_all_precision_result_chosen) = S ((S (l)) * ff_v_ph_hpl_sph_hsc_all_precision_result_chosen_negative)) /\ exists fs_q_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_terminal. ff_u_ph_hpl_sph_hsc_all_precision_result_chosen_negative = fs_q_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_terminal * S ((S (l)) * ff_v_ph_hpl_sph_hsc_all_precision_result_chosen_negative) + (sph_negative_hsc_all_precision_result_chosen))) /\ forall ff_i_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps. (exists ph_bound_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps. ph_bound_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps + S ff_i_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps = l) -> exists ff_coefficient_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps ff_previous_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps ff_current_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps. ((((exists fs_h_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps_coefficient. fs_h_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps_coefficient + S (ff_coefficient_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps) = S ((S (ff_i_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps)) * nc)) /\ exists fs_q_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps_coefficient. nb = fs_q_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps_coefficient * S ((S (ff_i_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps)) * nc) + (ff_coefficient_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps))) /\ ((((exists fs_h_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps_before. fs_h_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps_before + S (ff_previous_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps) = S ((S (ff_i_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps)) * ff_v_ph_hpl_sph_hsc_all_precision_result_chosen_negative)) /\ exists fs_q_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps_before. ff_u_ph_hpl_sph_hsc_all_precision_result_chosen_negative = fs_q_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps_before * S ((S (ff_i_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps)) * ff_v_ph_hpl_sph_hsc_all_precision_result_chosen_negative) + (ff_previous_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps))) /\ ((((exists fs_h_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps_after. fs_h_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps_after + S (ff_current_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps) = S ((S (S ff_i_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps)) * ff_v_ph_hpl_sph_hsc_all_precision_result_chosen_negative)) /\ exists fs_q_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps_after. ff_u_ph_hpl_sph_hsc_all_precision_result_chosen_negative = fs_q_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps_after * S ((S (S ff_i_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps)) * ff_v_ph_hpl_sph_hsc_all_precision_result_chosen_negative) + (ff_current_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps))) /\ ff_current_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps = ff_previous_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps * hsc_root_all_precision_result + ff_coefficient_ph_hpl_sph_hsc_all_precision_result_chosen_negative_body_steps)))))) /\ (exists hgcrt_mod_left_hpl_hsc_all_precision_result_chosen hgcrt_mod_right_hpl_hsc_all_precision_result_chosen. sph_positive_hsc_all_precision_result_chosen + hsc_modulus_all_precision_result * hgcrt_mod_left_hpl_hsc_all_precision_result_chosen = sph_negative_hsc_all_precision_result_chosen + hsc_modulus_all_precision_result * hgcrt_mod_right_hpl_hsc_all_precision_result_chosen))))))) /\ forall hsc_competitor_all_precision_result. (((exists hpl_gap_hsc_all_precision_result_other. hpl_gap_hsc_all_precision_result_other + S (hsc_competitor_all_precision_result) = (hsc_modulus_all_precision_result)) /\ ((exists hgcrt_mod_left_hpl_hsc_all_precision_result_other hgcrt_mod_right_hpl_hsc_all_precision_result_other. hsc_competitor_all_precision_result + p * hgcrt_mod_left_hpl_hsc_all_precision_result_other = a + p * hgcrt_mod_right_hpl_hsc_all_precision_result_other) /\ (exists sph_positive_hsc_all_precision_result_other sph_negative_hsc_all_precision_result_other. ((exists ff_u_ph_hpl_sph_hsc_all_precision_result_other_positive ff_v_ph_hpl_sph_hsc_all_precision_result_other_positive. ((((exists fs_h_ph_hpl_sph_hsc_all_precision_result_other_positive_body_start. fs_h_ph_hpl_sph_hsc_all_precision_result_other_positive_body_start + S (0) = S ((S (0)) * ff_v_ph_hpl_sph_hsc_all_precision_result_other_positive)) /\ exists fs_q_ph_hpl_sph_hsc_all_precision_result_other_positive_body_start. ff_u_ph_hpl_sph_hsc_all_precision_result_other_positive = fs_q_ph_hpl_sph_hsc_all_precision_result_other_positive_body_start * S ((S (0)) * ff_v_ph_hpl_sph_hsc_all_precision_result_other_positive) + (0))) /\ ((((exists fs_h_ph_hpl_sph_hsc_all_precision_result_other_positive_body_terminal. fs_h_ph_hpl_sph_hsc_all_precision_result_other_positive_body_terminal + S (sph_positive_hsc_all_precision_result_other) = S ((S (l)) * ff_v_ph_hpl_sph_hsc_all_precision_result_other_positive)) /\ exists fs_q_ph_hpl_sph_hsc_all_precision_result_other_positive_body_terminal. ff_u_ph_hpl_sph_hsc_all_precision_result_other_positive = fs_q_ph_hpl_sph_hsc_all_precision_result_other_positive_body_terminal * S ((S (l)) * ff_v_ph_hpl_sph_hsc_all_precision_result_other_positive) + (sph_positive_hsc_all_precision_result_other))) /\ forall ff_i_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps. (exists ph_bound_hpl_sph_hsc_all_precision_result_other_positive_body_steps. ph_bound_hpl_sph_hsc_all_precision_result_other_positive_body_steps + S ff_i_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps = l) -> exists ff_coefficient_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps ff_previous_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps ff_current_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps. ((((exists fs_h_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps_coefficient. fs_h_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps_coefficient + S (ff_coefficient_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps) = S ((S (ff_i_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps)) * pc)) /\ exists fs_q_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps_coefficient. pb = fs_q_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps_coefficient * S ((S (ff_i_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps)) * pc) + (ff_coefficient_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps))) /\ ((((exists fs_h_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps_before. fs_h_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps_before + S (ff_previous_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps) = S ((S (ff_i_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps)) * ff_v_ph_hpl_sph_hsc_all_precision_result_other_positive)) /\ exists fs_q_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps_before. ff_u_ph_hpl_sph_hsc_all_precision_result_other_positive = fs_q_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps_before * S ((S (ff_i_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps)) * ff_v_ph_hpl_sph_hsc_all_precision_result_other_positive) + (ff_previous_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps))) /\ ((((exists fs_h_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps_after. fs_h_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps_after + S (ff_current_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps) = S ((S (S ff_i_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps)) * ff_v_ph_hpl_sph_hsc_all_precision_result_other_positive)) /\ exists fs_q_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps_after. ff_u_ph_hpl_sph_hsc_all_precision_result_other_positive = fs_q_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps_after * S ((S (S ff_i_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps)) * ff_v_ph_hpl_sph_hsc_all_precision_result_other_positive) + (ff_current_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps))) /\ ff_current_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps = ff_previous_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps * hsc_competitor_all_precision_result + ff_coefficient_ph_hpl_sph_hsc_all_precision_result_other_positive_body_steps)))))) /\ ((exists ff_u_ph_hpl_sph_hsc_all_precision_result_other_negative ff_v_ph_hpl_sph_hsc_all_precision_result_other_negative. ((((exists fs_h_ph_hpl_sph_hsc_all_precision_result_other_negative_body_start. fs_h_ph_hpl_sph_hsc_all_precision_result_other_negative_body_start + S (0) = S ((S (0)) * ff_v_ph_hpl_sph_hsc_all_precision_result_other_negative)) /\ exists fs_q_ph_hpl_sph_hsc_all_precision_result_other_negative_body_start. ff_u_ph_hpl_sph_hsc_all_precision_result_other_negative = fs_q_ph_hpl_sph_hsc_all_precision_result_other_negative_body_start * S ((S (0)) * ff_v_ph_hpl_sph_hsc_all_precision_result_other_negative) + (0))) /\ ((((exists fs_h_ph_hpl_sph_hsc_all_precision_result_other_negative_body_terminal. fs_h_ph_hpl_sph_hsc_all_precision_result_other_negative_body_terminal + S (sph_negative_hsc_all_precision_result_other) = S ((S (l)) * ff_v_ph_hpl_sph_hsc_all_precision_result_other_negative)) /\ exists fs_q_ph_hpl_sph_hsc_all_precision_result_other_negative_body_terminal. ff_u_ph_hpl_sph_hsc_all_precision_result_other_negative = fs_q_ph_hpl_sph_hsc_all_precision_result_other_negative_body_terminal * S ((S (l)) * ff_v_ph_hpl_sph_hsc_all_precision_result_other_negative) + (sph_negative_hsc_all_precision_result_other))) /\ forall ff_i_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps. (exists ph_bound_hpl_sph_hsc_all_precision_result_other_negative_body_steps. ph_bound_hpl_sph_hsc_all_precision_result_other_negative_body_steps + S ff_i_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps = l) -> exists ff_coefficient_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps ff_previous_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps ff_current_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps. ((((exists fs_h_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps_coefficient. fs_h_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps_coefficient + S (ff_coefficient_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps) = S ((S (ff_i_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps)) * nc)) /\ exists fs_q_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps_coefficient. nb = fs_q_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps_coefficient * S ((S (ff_i_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps)) * nc) + (ff_coefficient_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps))) /\ ((((exists fs_h_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps_before. fs_h_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps_before + S (ff_previous_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps) = S ((S (ff_i_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps)) * ff_v_ph_hpl_sph_hsc_all_precision_result_other_negative)) /\ exists fs_q_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps_before. ff_u_ph_hpl_sph_hsc_all_precision_result_other_negative = fs_q_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps_before * S ((S (ff_i_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps)) * ff_v_ph_hpl_sph_hsc_all_precision_result_other_negative) + (ff_previous_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps))) /\ ((((exists fs_h_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps_after. fs_h_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps_after + S (ff_current_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps) = S ((S (S ff_i_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps)) * ff_v_ph_hpl_sph_hsc_all_precision_result_other_negative)) /\ exists fs_q_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps_after. ff_u_ph_hpl_sph_hsc_all_precision_result_other_negative = fs_q_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps_after * S ((S (S ff_i_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps)) * ff_v_ph_hpl_sph_hsc_all_precision_result_other_negative) + (ff_current_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps))) /\ ff_current_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps = ff_previous_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps * hsc_competitor_all_precision_result + ff_coefficient_ph_hpl_sph_hsc_all_precision_result_other_negative_body_steps)))))) /\ (exists hgcrt_mod_left_hpl_hsc_all_precision_result_other hgcrt_mod_right_hpl_hsc_all_precision_result_other. sph_positive_hsc_all_precision_result_other + hsc_modulus_all_precision_result * hgcrt_mod_left_hpl_hsc_all_precision_result_other = sph_negative_hsc_all_precision_result_other + hsc_modulus_all_precision_result * hgcrt_mod_right_hpl_hsc_all_precision_result_other))))))) -> hsc_competitor_all_precision_result = hsc_root_all_precision_result)))

Complete tactic proof in conservative notation

All 74 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.

Read the argument

Proof checkpoints

74 script commands · 17 reading checkpoints · 7 local claims

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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

Named ingredients (2)
01Fix variables and assumptionsL1–10

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro pb
  2. L2
    intro pc
  3. L3
    intro nb
  4. L4
    intro nc
  5. L5
    intro a
  6. L6
    intro l
  7. L7
    intro p
  8. L8
    intro k
  9. L9
    intro hp
  10. L10
    intro hk
02Fix variables and assumptionsL11–11

Work with arbitrary variables or the premises of the current implication.

  1. L11
    intro hroot
03Establish hsimpleL12–21

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hensel prime nonsingular root is simple.

  1. L12
    have hsimple : SignedSimpleHornerRoot(pb,pc,nb,nc,a,l,p,p)Definitions: SignedSimpleHornerRoot(pb,pc,nb,nc,a,l,p,p)Original native command in the exact edition
  2. L13
    specialize hensel_prime_nonsingular_root_is_simple (pb)
  3. L14
    specialize hensel_prime_nonsingular_root_is_simple (pc)
  4. L15
    specialize hensel_prime_nonsingular_root_is_simple (nb)
  5. L16
    specialize hensel_prime_nonsingular_root_is_simple (nc)
  6. L17
    specialize hensel_prime_nonsingular_root_is_simple (a)
  7. L18
    specialize hensel_prime_nonsingular_root_is_simple (l)
  8. L19
    specialize hensel_prime_nonsingular_root_is_simple (p)
  9. L20
    specialize hensel_prime_nonsingular_root_is_simple (p)
  10. L21
    apply hensel_prime_nonsingular_root_is_simple
04Use earlier factsL22–23

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L22
    exact hp
  2. L23
    exact hroot
05Establish hpowerL24–24

Establish this local claim before using it. It is not an additional assumption.

  1. L24
    have hpower : Pow(p,1,p)Definitions: Pow(p,1,p)Original native command in the exact edition
06Establish hpowerexistsL25–28

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow exists.

  1. L25
    have hpowerexists : ∃ q. Pow(p,1,q)Definitions: Pow(p,1,q)Original native command in the exact edition
  2. L26
    specialize pow_exists (p)
  3. L27
    specialize pow_exists (1)
  4. L28
    apply pow_exists
07Separate the logical casesL29–29

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L29
    cases hpowerexists
08Establish heqL30–39

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow one.

  1. L30
    have heq : x = p
  2. L31
    specialize pow_one (p)
  3. L32
    specialize pow_one (1)
  4. L33
    specialize pow_one (x)
  5. L34
    apply pow_one
  6. L35
    refl
  7. L36
    exact hpowerexists_witness
  8. L37
    rewrite heq at hpowerexists_witness
  9. L38
    rewrite heq at hpowerexists_witness
  10. L39
    exact hpowerexists_witness
09Establish hpredecessorL40–43

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply nonzero is succ.

  1. L40
    have hpredecessor : exists j. k = S j
  2. L41
    specialize nonzero_is_succ (k)
  3. L42
    apply nonzero_is_succ
  4. L43
    exact hk
10Separate the logical casesL44–44

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L44
    cases hpredecessor
11Establish hexponentL45–51

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add comm.

  1. L45
    have hexponent : 1 + x = k
  2. L46
    trans x + 1
  3. L47
    apply add_comm
  4. L48
    trans S x
  5. L49
    simp
  6. L50
    symm
  7. L51
    exact hpredecessor_witness
12Establish hresultL52–61

Establish this local claim before using it. It is not an additional assumption.

  1. L52
    have hresult : ∃ hsc_modulus_all_precision_predecessor. Pow(p,1 + x,hsc_modulus_all_precision_predecessor) ∧ (∃ y. CanonicalSignedHornerLift(pb,pc,nb,nc,l,p,a,hsc_modulus_all_precision_predecessor,y) ∧ (∀ z. CanonicalSignedHornerLift(pb,pc,nb,nc,l,p,a,hsc_modulus_all_precision_predecessor,z) → z = y))Definitions: Pow(p,1 + x,hsc_modulus_all_precision_predecessor)CanonicalSignedHornerLift(pb,pc,nb,nc,l,p,a,hsc_modulus_all_precision_predecessor,y)CanonicalSignedHornerLift(pb,pc,nb,nc,l,p,a,hsc_modulus_all_precision_predecessor,z)Original native command in the exact edition
  2. L53
    specialize integer_polynomial_prime_power_hensel_iterated_exists_unique (pb)
  3. L54
    specialize integer_polynomial_prime_power_hensel_iterated_exists_unique (pc)
  4. L55
    specialize integer_polynomial_prime_power_hensel_iterated_exists_unique (nb)
  5. L56
    specialize integer_polynomial_prime_power_hensel_iterated_exists_unique (nc)
  6. L57
    specialize integer_polynomial_prime_power_hensel_iterated_exists_unique (a)
  7. L58
    specialize integer_polynomial_prime_power_hensel_iterated_exists_unique (l)
  8. L59
    specialize integer_polynomial_prime_power_hensel_iterated_exists_unique (p)
  9. L60
    specialize integer_polynomial_prime_power_hensel_iterated_exists_unique (1)
  10. L61
    specialize integer_polynomial_prime_power_hensel_iterated_exists_unique (x)
13Use earlier factsL62–64

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L62
    specialize integer_polynomial_prime_power_hensel_iterated_exists_unique (p)
  2. L63
    apply integer_polynomial_prime_power_hensel_iterated_exists_unique
  3. L64
    exact hp
14Fix variables and assumptionsL65–65

Work with arbitrary variables or the premises of the current implication.

  1. L65
    intro hz
15Use earlier factsL66–69

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L66
    apply PA1
  2. L67
    exact hz
  3. L68
    exact hpower
  4. L69
    exact hsimple
16Calculate and transport equalitiesL70–73

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L70
    rewrite hexponent at hresult
  2. L71
    rewrite hexponent at hresult
  3. L72
    rewrite hexponent at hresult
  4. L73
    rewrite hexponent at hresult
17Use earlier factsL74–74

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L74
    exact hresult

Library-wide reading audit

Original defined command ledger · 74 lines
  1. 0001intro pb
  2. 0002intro pc
  3. 0003intro nb
  4. 0004intro nc
  5. 0005intro a
  6. 0006intro l
  7. 0007intro p
  8. 0008intro k
  9. 0009intro hp
  10. 0010intro hk
  11. 0011intro hroot
  12. 0012have hsimple : SignedSimpleHornerRoot(pb,pc,nb,nc,a,l,p,p)
  13. 0013specialize hensel_prime_nonsingular_root_is_simple (pb)
  14. 0014specialize hensel_prime_nonsingular_root_is_simple (pc)
  15. 0015specialize hensel_prime_nonsingular_root_is_simple (nb)
  16. 0016specialize hensel_prime_nonsingular_root_is_simple (nc)
  17. 0017specialize hensel_prime_nonsingular_root_is_simple (a)
  18. 0018specialize hensel_prime_nonsingular_root_is_simple (l)
  19. 0019specialize hensel_prime_nonsingular_root_is_simple (p)
  20. 0020specialize hensel_prime_nonsingular_root_is_simple (p)
  21. 0021apply hensel_prime_nonsingular_root_is_simple
  22. 0022exact hp
  23. 0023exact hroot
  24. 0024have hpower : Pow(p,1,p)
  25. 0025have hpowerexists : ∃ q. Pow(p,1,q)
  26. 0026specialize pow_exists (p)
  27. 0027specialize pow_exists (1)
  28. 0028apply pow_exists
  29. 0029cases hpowerexists
  30. 0030have heq : x = p
  31. 0031specialize pow_one (p)
  32. 0032specialize pow_one (1)
  33. 0033specialize pow_one (x)
  34. 0034apply pow_one
  35. 0035refl
  36. 0036exact hpowerexists_witness
  37. 0037rewrite heq at hpowerexists_witness
  38. 0038rewrite heq at hpowerexists_witness
  39. 0039exact hpowerexists_witness
  40. 0040have hpredecessor : exists j. k = S j
  41. 0041specialize nonzero_is_succ (k)
  42. 0042apply nonzero_is_succ
  43. 0043exact hk
  44. 0044cases hpredecessor
  45. 0045have hexponent : 1 + x = k
  46. 0046trans x + 1
  47. 0047apply add_comm
  48. 0048trans S x
  49. 0049simp
  50. 0050symm
  51. 0051exact hpredecessor_witness
  52. 0052have hresult : ∃ hsc_modulus_all_precision_predecessor. Pow(p,1 + x,hsc_modulus_all_precision_predecessor) ∧ (∃ y. CanonicalSignedHornerLift(pb,pc,nb,nc,l,p,a,hsc_modulus_all_precision_predecessor,y) ∧ (∀ z. CanonicalSignedHornerLift(pb,pc,nb,nc,l,p,a,hsc_modulus_all_precision_predecessor,z) → z = y))
  53. 0053specialize integer_polynomial_prime_power_hensel_iterated_exists_unique (pb)
  54. 0054specialize integer_polynomial_prime_power_hensel_iterated_exists_unique (pc)
  55. 0055specialize integer_polynomial_prime_power_hensel_iterated_exists_unique (nb)
  56. 0056specialize integer_polynomial_prime_power_hensel_iterated_exists_unique (nc)
  57. 0057specialize integer_polynomial_prime_power_hensel_iterated_exists_unique (a)
  58. 0058specialize integer_polynomial_prime_power_hensel_iterated_exists_unique (l)
  59. 0059specialize integer_polynomial_prime_power_hensel_iterated_exists_unique (p)
  60. 0060specialize integer_polynomial_prime_power_hensel_iterated_exists_unique (1)
  61. 0061specialize integer_polynomial_prime_power_hensel_iterated_exists_unique (x)
  62. 0062specialize integer_polynomial_prime_power_hensel_iterated_exists_unique (p)
  63. 0063apply integer_polynomial_prime_power_hensel_iterated_exists_unique
  64. 0064exact hp
  65. 0065intro hz
  66. 0066apply PA1
  67. 0067exact hz
  68. 0068exact hpower
  69. 0069exact hsimple
  70. 0070rewrite hexponent at hresult
  71. 0071rewrite hexponent at hresult
  72. 0072rewrite hexponent at hresult
  73. 0073rewrite hexponent at hresult
  74. 0074exact hresult