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.
Statement with defined notation
∀ p. ∀ h. ∀ r. ∀ a. ∀ b. ∀ c. ∀ mb. ∀ mc. ∀ rb. ∀ rc. ∀ sb. ∀ sc. ∀ fb. ∀ fc. ∀ tb. ∀ tc. ∀ e. ∀ P. ∀ M. ∀ Sprod. ∀ T. ∀ A. ∀ R. Prime(p) → p = S r → r = 2 · h → (∀ x. Lt(x,h) → ∃ y. ∃ z. ∃ n. BetaAt(b,c,x,y) ∧ (BetaAt(mb,mc,x,z) ∧ (BetaAt(sb,sc,x,n) ∧ (Lt(0,z) ∧ (Le(z,h) ∧ ((n = 0 ∨ n = 1) ∧ (n = 0 ∧ ModEq(p,a · y,z) ∨ n = 1 ∧ ModEq(p,a · y,2 · h · z)))))))) → (∀ x. ∀ y. Lt(x,h) → BetaAt(sb,sc,x,y) → y = 0 ∧ BetaAt(fb,fc,x,1) ∨ y = 1 ∧ BetaAt(fb,fc,x,r)) → (∀ x. ∀ y. ∀ z. ∀ n. Lt(x,h) → BetaAt(mb,mc,x,y) → BetaAt(fb,fc,x,z) → BetaAt(tb,tc,x,n) → n = y · z) → (∀ x. Lt(x,h) → ∃ y. BetaAt(mb,mc,x,y) ∧ (Lt(0,y) ∧ Le(y,h))) → InjectivePrefix(mb,mc,h) → (∀ x. ∀ y. Lt(x,h) → BetaAt(mb,mc,x,S y) → BetaAt(rb,rc,x,y)) → Range(b,c,1,h) → BitCount(sb,sc,h,e) → Product(b,c,h,P) → Product(mb,mc,h,M) → Product(fb,fc,h,Sprod) → Product(tb,tc,h,T) → Pow(a,h,A) → Pow(r,e,R) → ModEq(p,A,R)Every purple notation token opens its conservative definition. This is a reading surface; the compiler expands the statement before the unchanged kernel checks it.
Definitions used by this theorem
In the theorem statement
PD0001 Le PD0002 Lt PD0004 Prime PD0008 ModEq PD0013 BetaAt PD0014 Product PD0017 BitCount PD0018 Range PD0020 Pow PD0025 InjectivePrefix34 occurrences
In local proof propositions
3 occurrences
Exact expanded native-PA statement
forall p h r a b c mb mc rb rc sb sc fb fc tb tc e P M Sprod T A R. ((~(p = 1) /\ forall frp_prime_left_gauss_composition_prime frp_prime_right_gauss_composition_prime. p = frp_prime_left_gauss_composition_prime * frp_prime_right_gauss_composition_prime -> frp_prime_left_gauss_composition_prime = 1 \/ frp_prime_right_gauss_composition_prime = 1)) -> p = S r -> r = 2 * h -> (forall gsp_index_gauss_composition_signed_prefix. (exists gsp_lt_gap_gauss_composition_signed_prefix_index_bound. gsp_lt_gap_gauss_composition_signed_prefix_index_bound + S gsp_index_gauss_composition_signed_prefix = h) -> (exists gsp_value_gauss_composition_signed_prefix_entry gsp_magnitude_gauss_composition_signed_prefix_entry gsp_sign_gauss_composition_signed_prefix_entry. (((exists ff_h_gsp_gauss_composition_signed_prefix_entry_source. ff_h_gsp_gauss_composition_signed_prefix_entry_source + S (gsp_value_gauss_composition_signed_prefix_entry) = S ((S (gsp_index_gauss_composition_signed_prefix)) * c)) /\ exists ff_q_gsp_gauss_composition_signed_prefix_entry_source. b = ff_q_gsp_gauss_composition_signed_prefix_entry_source * S ((S (gsp_index_gauss_composition_signed_prefix)) * c) + (gsp_value_gauss_composition_signed_prefix_entry))) /\ ((((exists ff_h_gsp_gauss_composition_signed_prefix_entry_magnitude. ff_h_gsp_gauss_composition_signed_prefix_entry_magnitude + S (gsp_magnitude_gauss_composition_signed_prefix_entry) = S ((S (gsp_index_gauss_composition_signed_prefix)) * mc)) /\ exists ff_q_gsp_gauss_composition_signed_prefix_entry_magnitude. mb = ff_q_gsp_gauss_composition_signed_prefix_entry_magnitude * S ((S (gsp_index_gauss_composition_signed_prefix)) * mc) + (gsp_magnitude_gauss_composition_signed_prefix_entry))) /\ ((((exists ff_h_gsp_gauss_composition_signed_prefix_entry_sign. ff_h_gsp_gauss_composition_signed_prefix_entry_sign + S (gsp_sign_gauss_composition_signed_prefix_entry) = S ((S (gsp_index_gauss_composition_signed_prefix)) * sc)) /\ exists ff_q_gsp_gauss_composition_signed_prefix_entry_sign. sb = ff_q_gsp_gauss_composition_signed_prefix_entry_sign * S ((S (gsp_index_gauss_composition_signed_prefix)) * sc) + (gsp_sign_gauss_composition_signed_prefix_entry))) /\ ((exists gsp_lt_gap_gauss_composition_signed_prefix_entry_positive. gsp_lt_gap_gauss_composition_signed_prefix_entry_positive + S 0 = gsp_magnitude_gauss_composition_signed_prefix_entry) /\ ((exists gsp_le_gap_gauss_composition_signed_prefix_entry_bounded. gsp_le_gap_gauss_composition_signed_prefix_entry_bounded + gsp_magnitude_gauss_composition_signed_prefix_entry = h) /\ ((gsp_sign_gauss_composition_signed_prefix_entry = 0 \/ gsp_sign_gauss_composition_signed_prefix_entry = 1) /\ (((gsp_sign_gauss_composition_signed_prefix_entry = 0 /\ (exists gsp_mod_left_gauss_composition_signed_prefix_entry_lower gsp_mod_right_gauss_composition_signed_prefix_entry_lower. (a * gsp_value_gauss_composition_signed_prefix_entry) + p * gsp_mod_left_gauss_composition_signed_prefix_entry_lower = (gsp_magnitude_gauss_composition_signed_prefix_entry) + p * gsp_mod_right_gauss_composition_signed_prefix_entry_lower)) \/ (gsp_sign_gauss_composition_signed_prefix_entry = 1 /\ (exists gsp_mod_left_gauss_composition_signed_prefix_entry_reflected gsp_mod_right_gauss_composition_signed_prefix_entry_reflected. (a * gsp_value_gauss_composition_signed_prefix_entry) + p * gsp_mod_left_gauss_composition_signed_prefix_entry_reflected = ((2 * h) * gsp_magnitude_gauss_composition_signed_prefix_entry) + p * gsp_mod_right_gauss_composition_signed_prefix_entry_reflected))))))))))) -> (forall gspf_index_gauss_composition_sign_factors gspf_bit_gauss_composition_sign_factors. (exists gsp_lt_gap_gauss_composition_sign_factors_bound. gsp_lt_gap_gauss_composition_sign_factors_bound + S gspf_index_gauss_composition_sign_factors = h) -> (((exists ff_h_gspf_gauss_composition_sign_factors_bit. ff_h_gspf_gauss_composition_sign_factors_bit + S (gspf_bit_gauss_composition_sign_factors) = S ((S (gspf_index_gauss_composition_sign_factors)) * sc)) /\ exists ff_q_gspf_gauss_composition_sign_factors_bit. sb = ff_q_gspf_gauss_composition_sign_factors_bit * S ((S (gspf_index_gauss_composition_sign_factors)) * sc) + (gspf_bit_gauss_composition_sign_factors))) -> (((gspf_bit_gauss_composition_sign_factors = 0) /\ (((exists gsp_beta_height_gspf_gauss_composition_sign_factors_one. gsp_beta_height_gspf_gauss_composition_sign_factors_one + S (1) = S ((S (gspf_index_gauss_composition_sign_factors)) * fc)) /\ exists gsp_beta_quotient_gspf_gauss_composition_sign_factors_one. fb = gsp_beta_quotient_gspf_gauss_composition_sign_factors_one * S ((S (gspf_index_gauss_composition_sign_factors)) * fc) + (1)))) \/ ((gspf_bit_gauss_composition_sign_factors = 1) /\ (((exists ff_h_gspf_gauss_composition_sign_factors_predecessor. ff_h_gspf_gauss_composition_sign_factors_predecessor + S (r) = S ((S (gspf_index_gauss_composition_sign_factors)) * fc)) /\ exists ff_q_gspf_gauss_composition_sign_factors_predecessor. fb = ff_q_gspf_gauss_composition_sign_factors_predecessor * S ((S (gspf_index_gauss_composition_sign_factors)) * fc) + (r)))))) -> (forall fpmp_index_gauss_composition_pointwise_products fpmp_left_gauss_composition_pointwise_products fpmp_right_gauss_composition_pointwise_products fpmp_target_gauss_composition_pointwise_products. (exists fpmp_gap_gauss_composition_pointwise_products. fpmp_gap_gauss_composition_pointwise_products + S fpmp_index_gauss_composition_pointwise_products = h) -> (((exists ff_h_fpmp_gauss_composition_pointwise_products_left. ff_h_fpmp_gauss_composition_pointwise_products_left + S (fpmp_left_gauss_composition_pointwise_products) = S ((S (fpmp_index_gauss_composition_pointwise_products)) * mc)) /\ exists ff_q_fpmp_gauss_composition_pointwise_products_left. mb = ff_q_fpmp_gauss_composition_pointwise_products_left * S ((S (fpmp_index_gauss_composition_pointwise_products)) * mc) + (fpmp_left_gauss_composition_pointwise_products))) -> (((exists ff_h_fpmp_gauss_composition_pointwise_products_right. ff_h_fpmp_gauss_composition_pointwise_products_right + S (fpmp_right_gauss_composition_pointwise_products) = S ((S (fpmp_index_gauss_composition_pointwise_products)) * fc)) /\ exists ff_q_fpmp_gauss_composition_pointwise_products_right. fb = ff_q_fpmp_gauss_composition_pointwise_products_right * S ((S (fpmp_index_gauss_composition_pointwise_products)) * fc) + (fpmp_right_gauss_composition_pointwise_products))) -> (((exists ff_h_fpmp_gauss_composition_pointwise_products_target. ff_h_fpmp_gauss_composition_pointwise_products_target + S (fpmp_target_gauss_composition_pointwise_products) = S ((S (fpmp_index_gauss_composition_pointwise_products)) * tc)) /\ exists ff_q_fpmp_gauss_composition_pointwise_products_target. tb = ff_q_fpmp_gauss_composition_pointwise_products_target * S ((S (fpmp_index_gauss_composition_pointwise_products)) * tc) + (fpmp_target_gauss_composition_pointwise_products))) -> fpmp_target_gauss_composition_pointwise_products = fpmp_left_gauss_composition_pointwise_products * fpmp_right_gauss_composition_pointwise_products) -> (forall gmp_index_gauss_composition_magnitude_range. (exists gsp_lt_gap_gauss_composition_magnitude_range_index_bound. gsp_lt_gap_gauss_composition_magnitude_range_index_bound + S gmp_index_gauss_composition_magnitude_range = h) -> exists gmp_magnitude_gauss_composition_magnitude_range. ((((exists ff_h_gmp_gauss_composition_magnitude_range_decoded. ff_h_gmp_gauss_composition_magnitude_range_decoded + S (gmp_magnitude_gauss_composition_magnitude_range) = S ((S (gmp_index_gauss_composition_magnitude_range)) * mc)) /\ exists ff_q_gmp_gauss_composition_magnitude_range_decoded. mb = ff_q_gmp_gauss_composition_magnitude_range_decoded * S ((S (gmp_index_gauss_composition_magnitude_range)) * mc) + (gmp_magnitude_gauss_composition_magnitude_range))) /\ ((exists gsp_lt_gap_gauss_composition_magnitude_range_positive. gsp_lt_gap_gauss_composition_magnitude_range_positive + S 0 = gmp_magnitude_gauss_composition_magnitude_range) /\ (exists gsp_le_gap_gauss_composition_magnitude_range_bounded. gsp_le_gap_gauss_composition_magnitude_range_bounded + gmp_magnitude_gauss_composition_magnitude_range = h)))) -> (forall fp_i_gauss_composition_magnitude_injective fp_j_gauss_composition_magnitude_injective fp_value_gauss_composition_magnitude_injective. (exists fp_gap_gauss_composition_magnitude_injective_i. fp_gap_gauss_composition_magnitude_injective_i + S fp_i_gauss_composition_magnitude_injective = h) -> (exists fp_gap_gauss_composition_magnitude_injective_j. fp_gap_gauss_composition_magnitude_injective_j + S fp_j_gauss_composition_magnitude_injective = h) -> (((exists ff_h_gauss_composition_magnitude_injective_left. ff_h_gauss_composition_magnitude_injective_left + S (fp_value_gauss_composition_magnitude_injective) = S ((S (fp_i_gauss_composition_magnitude_injective)) * mc)) /\ exists ff_q_gauss_composition_magnitude_injective_left. mb = ff_q_gauss_composition_magnitude_injective_left * S ((S (fp_i_gauss_composition_magnitude_injective)) * mc) + (fp_value_gauss_composition_magnitude_injective))) -> (((exists ff_h_gauss_composition_magnitude_injective_right. ff_h_gauss_composition_magnitude_injective_right + S (fp_value_gauss_composition_magnitude_injective) = S ((S (fp_j_gauss_composition_magnitude_injective)) * mc)) /\ exists ff_q_gauss_composition_magnitude_injective_right. mb = ff_q_gauss_composition_magnitude_injective_right * S ((S (fp_j_gauss_composition_magnitude_injective)) * mc) + (fp_value_gauss_composition_magnitude_injective))) -> fp_i_gauss_composition_magnitude_injective = fp_j_gauss_composition_magnitude_injective) -> (forall gmp_index_gauss_composition_predecessor_recode gmp_predecessor_gauss_composition_predecessor_recode. (exists gsp_lt_gap_gauss_composition_predecessor_recode_index_bound. gsp_lt_gap_gauss_composition_predecessor_recode_index_bound + S gmp_index_gauss_composition_predecessor_recode = h) -> (((exists gsp_beta_height_gmp_gauss_composition_predecessor_recode_source. gsp_beta_height_gmp_gauss_composition_predecessor_recode_source + S (S gmp_predecessor_gauss_composition_predecessor_recode) = S ((S (gmp_index_gauss_composition_predecessor_recode)) * mc)) /\ exists gsp_beta_quotient_gmp_gauss_composition_predecessor_recode_source. mb = gsp_beta_quotient_gmp_gauss_composition_predecessor_recode_source * S ((S (gmp_index_gauss_composition_predecessor_recode)) * mc) + (S gmp_predecessor_gauss_composition_predecessor_recode))) -> (((exists ff_h_gmp_gauss_composition_predecessor_recode_target. ff_h_gmp_gauss_composition_predecessor_recode_target + S (gmp_predecessor_gauss_composition_predecessor_recode) = S ((S (gmp_index_gauss_composition_predecessor_recode)) * rc)) /\ exists ff_q_gmp_gauss_composition_predecessor_recode_target. rb = ff_q_gmp_gauss_composition_predecessor_recode_target * S ((S (gmp_index_gauss_composition_predecessor_recode)) * rc) + (gmp_predecessor_gauss_composition_predecessor_recode)))) -> (forall gsp_range_index_gauss_composition_half_range. (exists gsp_lt_gap_gauss_composition_half_range_range_bound. gsp_lt_gap_gauss_composition_half_range_range_bound + S gsp_range_index_gauss_composition_half_range = h) -> (((exists gsp_beta_height_gauss_composition_half_range_range_entry. gsp_beta_height_gauss_composition_half_range_range_entry + S (1 + gsp_range_index_gauss_composition_half_range) = S ((S (gsp_range_index_gauss_composition_half_range)) * c)) /\ exists gsp_beta_quotient_gauss_composition_half_range_range_entry. b = gsp_beta_quotient_gauss_composition_half_range_range_entry * S ((S (gsp_range_index_gauss_composition_half_range)) * c) + (1 + gsp_range_index_gauss_composition_half_range)))) -> (((exists ff_u_gauss_composition_sign_count_sum ff_v_gauss_composition_sign_count_sum. ((((exists ff_h_gauss_composition_sign_count_sum_start. ff_h_gauss_composition_sign_count_sum_start + S (0) = S ((S (0)) * ff_v_gauss_composition_sign_count_sum)) /\ exists ff_q_gauss_composition_sign_count_sum_start. ff_u_gauss_composition_sign_count_sum = ff_q_gauss_composition_sign_count_sum_start * S ((S (0)) * ff_v_gauss_composition_sign_count_sum) + (0))) /\ ((((exists ff_h_gauss_composition_sign_count_sum_terminal. ff_h_gauss_composition_sign_count_sum_terminal + S (e) = S ((S (h)) * ff_v_gauss_composition_sign_count_sum)) /\ exists ff_q_gauss_composition_sign_count_sum_terminal. ff_u_gauss_composition_sign_count_sum = ff_q_gauss_composition_sign_count_sum_terminal * S ((S (h)) * ff_v_gauss_composition_sign_count_sum) + (e))) /\ forall ff_i_gauss_composition_sign_count_sum. (exists ff_lt_gauss_composition_sign_count_sum_bound. ff_lt_gauss_composition_sign_count_sum_bound + S ff_i_gauss_composition_sign_count_sum = h) -> exists ff_a_gauss_composition_sign_count_sum ff_r_gauss_composition_sign_count_sum ff_s_gauss_composition_sign_count_sum. ((((exists ff_h_gauss_composition_sign_count_sum_summand. ff_h_gauss_composition_sign_count_sum_summand + S (ff_a_gauss_composition_sign_count_sum) = S ((S (ff_i_gauss_composition_sign_count_sum)) * sc)) /\ exists ff_q_gauss_composition_sign_count_sum_summand. sb = ff_q_gauss_composition_sign_count_sum_summand * S ((S (ff_i_gauss_composition_sign_count_sum)) * sc) + (ff_a_gauss_composition_sign_count_sum))) /\ ((((exists ff_h_gauss_composition_sign_count_sum_partial. ff_h_gauss_composition_sign_count_sum_partial + S (ff_r_gauss_composition_sign_count_sum) = S ((S (ff_i_gauss_composition_sign_count_sum)) * ff_v_gauss_composition_sign_count_sum)) /\ exists ff_q_gauss_composition_sign_count_sum_partial. ff_u_gauss_composition_sign_count_sum = ff_q_gauss_composition_sign_count_sum_partial * S ((S (ff_i_gauss_composition_sign_count_sum)) * ff_v_gauss_composition_sign_count_sum) + (ff_r_gauss_composition_sign_count_sum))) /\ ((((exists ff_h_gauss_composition_sign_count_sum_successor. ff_h_gauss_composition_sign_count_sum_successor + S (ff_s_gauss_composition_sign_count_sum) = S ((S (S ff_i_gauss_composition_sign_count_sum)) * ff_v_gauss_composition_sign_count_sum)) /\ exists ff_q_gauss_composition_sign_count_sum_successor. ff_u_gauss_composition_sign_count_sum = ff_q_gauss_composition_sign_count_sum_successor * S ((S (S ff_i_gauss_composition_sign_count_sum)) * ff_v_gauss_composition_sign_count_sum) + (ff_s_gauss_composition_sign_count_sum))) /\ ff_s_gauss_composition_sign_count_sum = ff_r_gauss_composition_sign_count_sum + ff_a_gauss_composition_sign_count_sum)))))) /\ (forall ff_i_gauss_composition_sign_count_bits. (exists ff_lt_gauss_composition_sign_count_bits_bound. ff_lt_gauss_composition_sign_count_bits_bound + S ff_i_gauss_composition_sign_count_bits = h) -> exists ff_bit_gauss_composition_sign_count_bits. ((((exists ff_h_gauss_composition_sign_count_bits_decoded. ff_h_gauss_composition_sign_count_bits_decoded + S (ff_bit_gauss_composition_sign_count_bits) = S ((S (ff_i_gauss_composition_sign_count_bits)) * sc)) /\ exists ff_q_gauss_composition_sign_count_bits_decoded. sb = ff_q_gauss_composition_sign_count_bits_decoded * S ((S (ff_i_gauss_composition_sign_count_bits)) * sc) + (ff_bit_gauss_composition_sign_count_bits))) /\ (ff_bit_gauss_composition_sign_count_bits = 0 \/ ff_bit_gauss_composition_sign_count_bits = 1))))) -> (exists ff_u_gauss_composition_canonical_product ff_v_gauss_composition_canonical_product. ((((exists ff_h_gauss_composition_canonical_product_start. ff_h_gauss_composition_canonical_product_start + S (1) = S ((S (0)) * ff_v_gauss_composition_canonical_product)) /\ exists ff_q_gauss_composition_canonical_product_start. ff_u_gauss_composition_canonical_product = ff_q_gauss_composition_canonical_product_start * S ((S (0)) * ff_v_gauss_composition_canonical_product) + (1))) /\ ((((exists ff_h_gauss_composition_canonical_product_terminal. ff_h_gauss_composition_canonical_product_terminal + S (P) = S ((S (h)) * ff_v_gauss_composition_canonical_product)) /\ exists ff_q_gauss_composition_canonical_product_terminal. ff_u_gauss_composition_canonical_product = ff_q_gauss_composition_canonical_product_terminal * S ((S (h)) * ff_v_gauss_composition_canonical_product) + (P))) /\ forall ff_i_gauss_composition_canonical_product. (exists ff_lt_gauss_composition_canonical_product_bound. ff_lt_gauss_composition_canonical_product_bound + S ff_i_gauss_composition_canonical_product = h) -> exists ff_p_gauss_composition_canonical_product ff_r_gauss_composition_canonical_product ff_s_gauss_composition_canonical_product. ((((exists ff_h_gauss_composition_canonical_product_factor. ff_h_gauss_composition_canonical_product_factor + S (ff_p_gauss_composition_canonical_product) = S ((S (ff_i_gauss_composition_canonical_product)) * c)) /\ exists ff_q_gauss_composition_canonical_product_factor. b = ff_q_gauss_composition_canonical_product_factor * S ((S (ff_i_gauss_composition_canonical_product)) * c) + (ff_p_gauss_composition_canonical_product))) /\ ((((exists ff_h_gauss_composition_canonical_product_partial. ff_h_gauss_composition_canonical_product_partial + S (ff_r_gauss_composition_canonical_product) = S ((S (ff_i_gauss_composition_canonical_product)) * ff_v_gauss_composition_canonical_product)) /\ exists ff_q_gauss_composition_canonical_product_partial. ff_u_gauss_composition_canonical_product = ff_q_gauss_composition_canonical_product_partial * S ((S (ff_i_gauss_composition_canonical_product)) * ff_v_gauss_composition_canonical_product) + (ff_r_gauss_composition_canonical_product))) /\ ((((exists ff_h_gauss_composition_canonical_product_successor. ff_h_gauss_composition_canonical_product_successor + S (ff_s_gauss_composition_canonical_product) = S ((S (S ff_i_gauss_composition_canonical_product)) * ff_v_gauss_composition_canonical_product)) /\ exists ff_q_gauss_composition_canonical_product_successor. ff_u_gauss_composition_canonical_product = ff_q_gauss_composition_canonical_product_successor * S ((S (S ff_i_gauss_composition_canonical_product)) * ff_v_gauss_composition_canonical_product) + (ff_s_gauss_composition_canonical_product))) /\ ff_s_gauss_composition_canonical_product = ff_r_gauss_composition_canonical_product * ff_p_gauss_composition_canonical_product)))))) -> (exists ff_u_gauss_composition_magnitude_product ff_v_gauss_composition_magnitude_product. ((((exists ff_h_gauss_composition_magnitude_product_start. ff_h_gauss_composition_magnitude_product_start + S (1) = S ((S (0)) * ff_v_gauss_composition_magnitude_product)) /\ exists ff_q_gauss_composition_magnitude_product_start. ff_u_gauss_composition_magnitude_product = ff_q_gauss_composition_magnitude_product_start * S ((S (0)) * ff_v_gauss_composition_magnitude_product) + (1))) /\ ((((exists ff_h_gauss_composition_magnitude_product_terminal. ff_h_gauss_composition_magnitude_product_terminal + S (M) = S ((S (h)) * ff_v_gauss_composition_magnitude_product)) /\ exists ff_q_gauss_composition_magnitude_product_terminal. ff_u_gauss_composition_magnitude_product = ff_q_gauss_composition_magnitude_product_terminal * S ((S (h)) * ff_v_gauss_composition_magnitude_product) + (M))) /\ forall ff_i_gauss_composition_magnitude_product. (exists ff_lt_gauss_composition_magnitude_product_bound. ff_lt_gauss_composition_magnitude_product_bound + S ff_i_gauss_composition_magnitude_product = h) -> exists ff_p_gauss_composition_magnitude_product ff_r_gauss_composition_magnitude_product ff_s_gauss_composition_magnitude_product. ((((exists ff_h_gauss_composition_magnitude_product_factor. ff_h_gauss_composition_magnitude_product_factor + S (ff_p_gauss_composition_magnitude_product) = S ((S (ff_i_gauss_composition_magnitude_product)) * mc)) /\ exists ff_q_gauss_composition_magnitude_product_factor. mb = ff_q_gauss_composition_magnitude_product_factor * S ((S (ff_i_gauss_composition_magnitude_product)) * mc) + (ff_p_gauss_composition_magnitude_product))) /\ ((((exists ff_h_gauss_composition_magnitude_product_partial. ff_h_gauss_composition_magnitude_product_partial + S (ff_r_gauss_composition_magnitude_product) = S ((S (ff_i_gauss_composition_magnitude_product)) * ff_v_gauss_composition_magnitude_product)) /\ exists ff_q_gauss_composition_magnitude_product_partial. ff_u_gauss_composition_magnitude_product = ff_q_gauss_composition_magnitude_product_partial * S ((S (ff_i_gauss_composition_magnitude_product)) * ff_v_gauss_composition_magnitude_product) + (ff_r_gauss_composition_magnitude_product))) /\ ((((exists ff_h_gauss_composition_magnitude_product_successor. ff_h_gauss_composition_magnitude_product_successor + S (ff_s_gauss_composition_magnitude_product) = S ((S (S ff_i_gauss_composition_magnitude_product)) * ff_v_gauss_composition_magnitude_product)) /\ exists ff_q_gauss_composition_magnitude_product_successor. ff_u_gauss_composition_magnitude_product = ff_q_gauss_composition_magnitude_product_successor * S ((S (S ff_i_gauss_composition_magnitude_product)) * ff_v_gauss_composition_magnitude_product) + (ff_s_gauss_composition_magnitude_product))) /\ ff_s_gauss_composition_magnitude_product = ff_r_gauss_composition_magnitude_product * ff_p_gauss_composition_magnitude_product)))))) -> (exists ff_u_gauss_composition_sign_product ff_v_gauss_composition_sign_product. ((((exists ff_h_gauss_composition_sign_product_start. ff_h_gauss_composition_sign_product_start + S (1) = S ((S (0)) * ff_v_gauss_composition_sign_product)) /\ exists ff_q_gauss_composition_sign_product_start. ff_u_gauss_composition_sign_product = ff_q_gauss_composition_sign_product_start * S ((S (0)) * ff_v_gauss_composition_sign_product) + (1))) /\ ((((exists ff_h_gauss_composition_sign_product_terminal. ff_h_gauss_composition_sign_product_terminal + S (Sprod) = S ((S (h)) * ff_v_gauss_composition_sign_product)) /\ exists ff_q_gauss_composition_sign_product_terminal. ff_u_gauss_composition_sign_product = ff_q_gauss_composition_sign_product_terminal * S ((S (h)) * ff_v_gauss_composition_sign_product) + (Sprod))) /\ forall ff_i_gauss_composition_sign_product. (exists ff_lt_gauss_composition_sign_product_bound. ff_lt_gauss_composition_sign_product_bound + S ff_i_gauss_composition_sign_product = h) -> exists ff_p_gauss_composition_sign_product ff_r_gauss_composition_sign_product ff_s_gauss_composition_sign_product. ((((exists ff_h_gauss_composition_sign_product_factor. ff_h_gauss_composition_sign_product_factor + S (ff_p_gauss_composition_sign_product) = S ((S (ff_i_gauss_composition_sign_product)) * fc)) /\ exists ff_q_gauss_composition_sign_product_factor. fb = ff_q_gauss_composition_sign_product_factor * S ((S (ff_i_gauss_composition_sign_product)) * fc) + (ff_p_gauss_composition_sign_product))) /\ ((((exists ff_h_gauss_composition_sign_product_partial. ff_h_gauss_composition_sign_product_partial + S (ff_r_gauss_composition_sign_product) = S ((S (ff_i_gauss_composition_sign_product)) * ff_v_gauss_composition_sign_product)) /\ exists ff_q_gauss_composition_sign_product_partial. ff_u_gauss_composition_sign_product = ff_q_gauss_composition_sign_product_partial * S ((S (ff_i_gauss_composition_sign_product)) * ff_v_gauss_composition_sign_product) + (ff_r_gauss_composition_sign_product))) /\ ((((exists ff_h_gauss_composition_sign_product_successor. ff_h_gauss_composition_sign_product_successor + S (ff_s_gauss_composition_sign_product) = S ((S (S ff_i_gauss_composition_sign_product)) * ff_v_gauss_composition_sign_product)) /\ exists ff_q_gauss_composition_sign_product_successor. ff_u_gauss_composition_sign_product = ff_q_gauss_composition_sign_product_successor * S ((S (S ff_i_gauss_composition_sign_product)) * ff_v_gauss_composition_sign_product) + (ff_s_gauss_composition_sign_product))) /\ ff_s_gauss_composition_sign_product = ff_r_gauss_composition_sign_product * ff_p_gauss_composition_sign_product)))))) -> (exists ff_u_gauss_composition_target_product ff_v_gauss_composition_target_product. ((((exists ff_h_gauss_composition_target_product_start. ff_h_gauss_composition_target_product_start + S (1) = S ((S (0)) * ff_v_gauss_composition_target_product)) /\ exists ff_q_gauss_composition_target_product_start. ff_u_gauss_composition_target_product = ff_q_gauss_composition_target_product_start * S ((S (0)) * ff_v_gauss_composition_target_product) + (1))) /\ ((((exists ff_h_gauss_composition_target_product_terminal. ff_h_gauss_composition_target_product_terminal + S (T) = S ((S (h)) * ff_v_gauss_composition_target_product)) /\ exists ff_q_gauss_composition_target_product_terminal. ff_u_gauss_composition_target_product = ff_q_gauss_composition_target_product_terminal * S ((S (h)) * ff_v_gauss_composition_target_product) + (T))) /\ forall ff_i_gauss_composition_target_product. (exists ff_lt_gauss_composition_target_product_bound. ff_lt_gauss_composition_target_product_bound + S ff_i_gauss_composition_target_product = h) -> exists ff_p_gauss_composition_target_product ff_r_gauss_composition_target_product ff_s_gauss_composition_target_product. ((((exists ff_h_gauss_composition_target_product_factor. ff_h_gauss_composition_target_product_factor + S (ff_p_gauss_composition_target_product) = S ((S (ff_i_gauss_composition_target_product)) * tc)) /\ exists ff_q_gauss_composition_target_product_factor. tb = ff_q_gauss_composition_target_product_factor * S ((S (ff_i_gauss_composition_target_product)) * tc) + (ff_p_gauss_composition_target_product))) /\ ((((exists ff_h_gauss_composition_target_product_partial. ff_h_gauss_composition_target_product_partial + S (ff_r_gauss_composition_target_product) = S ((S (ff_i_gauss_composition_target_product)) * ff_v_gauss_composition_target_product)) /\ exists ff_q_gauss_composition_target_product_partial. ff_u_gauss_composition_target_product = ff_q_gauss_composition_target_product_partial * S ((S (ff_i_gauss_composition_target_product)) * ff_v_gauss_composition_target_product) + (ff_r_gauss_composition_target_product))) /\ ((((exists ff_h_gauss_composition_target_product_successor. ff_h_gauss_composition_target_product_successor + S (ff_s_gauss_composition_target_product) = S ((S (S ff_i_gauss_composition_target_product)) * ff_v_gauss_composition_target_product)) /\ exists ff_q_gauss_composition_target_product_successor. ff_u_gauss_composition_target_product = ff_q_gauss_composition_target_product_successor * S ((S (S ff_i_gauss_composition_target_product)) * ff_v_gauss_composition_target_product) + (ff_s_gauss_composition_target_product))) /\ ff_s_gauss_composition_target_product = ff_r_gauss_composition_target_product * ff_p_gauss_composition_target_product)))))) -> (exists ff_b_gauss_composition_multiplier_power ff_c_gauss_composition_multiplier_power. ((forall ff_i_gauss_composition_multiplier_power_repeat. (exists ff_lt_gauss_composition_multiplier_power_repeat_bound. ff_lt_gauss_composition_multiplier_power_repeat_bound + S ff_i_gauss_composition_multiplier_power_repeat = h) -> (((exists ff_h_gauss_composition_multiplier_power_repeat_decoded. ff_h_gauss_composition_multiplier_power_repeat_decoded + S (a) = S ((S (ff_i_gauss_composition_multiplier_power_repeat)) * ff_c_gauss_composition_multiplier_power)) /\ exists ff_q_gauss_composition_multiplier_power_repeat_decoded. ff_b_gauss_composition_multiplier_power = ff_q_gauss_composition_multiplier_power_repeat_decoded * S ((S (ff_i_gauss_composition_multiplier_power_repeat)) * ff_c_gauss_composition_multiplier_power) + (a)))) /\ (exists ff_u_gauss_composition_multiplier_power_product ff_v_gauss_composition_multiplier_power_product. ((((exists ff_h_gauss_composition_multiplier_power_product_start. ff_h_gauss_composition_multiplier_power_product_start + S (1) = S ((S (0)) * ff_v_gauss_composition_multiplier_power_product)) /\ exists ff_q_gauss_composition_multiplier_power_product_start. ff_u_gauss_composition_multiplier_power_product = ff_q_gauss_composition_multiplier_power_product_start * S ((S (0)) * ff_v_gauss_composition_multiplier_power_product) + (1))) /\ ((((exists ff_h_gauss_composition_multiplier_power_product_terminal. ff_h_gauss_composition_multiplier_power_product_terminal + S (A) = S ((S (h)) * ff_v_gauss_composition_multiplier_power_product)) /\ exists ff_q_gauss_composition_multiplier_power_product_terminal. ff_u_gauss_composition_multiplier_power_product = ff_q_gauss_composition_multiplier_power_product_terminal * S ((S (h)) * ff_v_gauss_composition_multiplier_power_product) + (A))) /\ forall ff_i_gauss_composition_multiplier_power_product. (exists ff_lt_gauss_composition_multiplier_power_product_bound. ff_lt_gauss_composition_multiplier_power_product_bound + S ff_i_gauss_composition_multiplier_power_product = h) -> exists ff_p_gauss_composition_multiplier_power_product ff_r_gauss_composition_multiplier_power_product ff_s_gauss_composition_multiplier_power_product. ((((exists ff_h_gauss_composition_multiplier_power_product_factor. ff_h_gauss_composition_multiplier_power_product_factor + S (ff_p_gauss_composition_multiplier_power_product) = S ((S (ff_i_gauss_composition_multiplier_power_product)) * ff_c_gauss_composition_multiplier_power)) /\ exists ff_q_gauss_composition_multiplier_power_product_factor. ff_b_gauss_composition_multiplier_power = ff_q_gauss_composition_multiplier_power_product_factor * S ((S (ff_i_gauss_composition_multiplier_power_product)) * ff_c_gauss_composition_multiplier_power) + (ff_p_gauss_composition_multiplier_power_product))) /\ ((((exists ff_h_gauss_composition_multiplier_power_product_partial. ff_h_gauss_composition_multiplier_power_product_partial + S (ff_r_gauss_composition_multiplier_power_product) = S ((S (ff_i_gauss_composition_multiplier_power_product)) * ff_v_gauss_composition_multiplier_power_product)) /\ exists ff_q_gauss_composition_multiplier_power_product_partial. ff_u_gauss_composition_multiplier_power_product = ff_q_gauss_composition_multiplier_power_product_partial * S ((S (ff_i_gauss_composition_multiplier_power_product)) * ff_v_gauss_composition_multiplier_power_product) + (ff_r_gauss_composition_multiplier_power_product))) /\ ((((exists ff_h_gauss_composition_multiplier_power_product_successor. ff_h_gauss_composition_multiplier_power_product_successor + S (ff_s_gauss_composition_multiplier_power_product) = S ((S (S ff_i_gauss_composition_multiplier_power_product)) * ff_v_gauss_composition_multiplier_power_product)) /\ exists ff_q_gauss_composition_multiplier_power_product_successor. ff_u_gauss_composition_multiplier_power_product = ff_q_gauss_composition_multiplier_power_product_successor * S ((S (S ff_i_gauss_composition_multiplier_power_product)) * ff_v_gauss_composition_multiplier_power_product) + (ff_s_gauss_composition_multiplier_power_product))) /\ ff_s_gauss_composition_multiplier_power_product = ff_r_gauss_composition_multiplier_power_product * ff_p_gauss_composition_multiplier_power_product)))))))) -> (exists ff_b_gauss_composition_sign_power ff_c_gauss_composition_sign_power. ((forall ff_i_gauss_composition_sign_power_repeat. (exists ff_lt_gauss_composition_sign_power_repeat_bound. ff_lt_gauss_composition_sign_power_repeat_bound + S ff_i_gauss_composition_sign_power_repeat = e) -> (((exists ff_h_gauss_composition_sign_power_repeat_decoded. ff_h_gauss_composition_sign_power_repeat_decoded + S (r) = S ((S (ff_i_gauss_composition_sign_power_repeat)) * ff_c_gauss_composition_sign_power)) /\ exists ff_q_gauss_composition_sign_power_repeat_decoded. ff_b_gauss_composition_sign_power = ff_q_gauss_composition_sign_power_repeat_decoded * S ((S (ff_i_gauss_composition_sign_power_repeat)) * ff_c_gauss_composition_sign_power) + (r)))) /\ (exists ff_u_gauss_composition_sign_power_product ff_v_gauss_composition_sign_power_product. ((((exists ff_h_gauss_composition_sign_power_product_start. ff_h_gauss_composition_sign_power_product_start + S (1) = S ((S (0)) * ff_v_gauss_composition_sign_power_product)) /\ exists ff_q_gauss_composition_sign_power_product_start. ff_u_gauss_composition_sign_power_product = ff_q_gauss_composition_sign_power_product_start * S ((S (0)) * ff_v_gauss_composition_sign_power_product) + (1))) /\ ((((exists ff_h_gauss_composition_sign_power_product_terminal. ff_h_gauss_composition_sign_power_product_terminal + S (R) = S ((S (e)) * ff_v_gauss_composition_sign_power_product)) /\ exists ff_q_gauss_composition_sign_power_product_terminal. ff_u_gauss_composition_sign_power_product = ff_q_gauss_composition_sign_power_product_terminal * S ((S (e)) * ff_v_gauss_composition_sign_power_product) + (R))) /\ forall ff_i_gauss_composition_sign_power_product. (exists ff_lt_gauss_composition_sign_power_product_bound. ff_lt_gauss_composition_sign_power_product_bound + S ff_i_gauss_composition_sign_power_product = e) -> exists ff_p_gauss_composition_sign_power_product ff_r_gauss_composition_sign_power_product ff_s_gauss_composition_sign_power_product. ((((exists ff_h_gauss_composition_sign_power_product_factor. ff_h_gauss_composition_sign_power_product_factor + S (ff_p_gauss_composition_sign_power_product) = S ((S (ff_i_gauss_composition_sign_power_product)) * ff_c_gauss_composition_sign_power)) /\ exists ff_q_gauss_composition_sign_power_product_factor. ff_b_gauss_composition_sign_power = ff_q_gauss_composition_sign_power_product_factor * S ((S (ff_i_gauss_composition_sign_power_product)) * ff_c_gauss_composition_sign_power) + (ff_p_gauss_composition_sign_power_product))) /\ ((((exists ff_h_gauss_composition_sign_power_product_partial. ff_h_gauss_composition_sign_power_product_partial + S (ff_r_gauss_composition_sign_power_product) = S ((S (ff_i_gauss_composition_sign_power_product)) * ff_v_gauss_composition_sign_power_product)) /\ exists ff_q_gauss_composition_sign_power_product_partial. ff_u_gauss_composition_sign_power_product = ff_q_gauss_composition_sign_power_product_partial * S ((S (ff_i_gauss_composition_sign_power_product)) * ff_v_gauss_composition_sign_power_product) + (ff_r_gauss_composition_sign_power_product))) /\ ((((exists ff_h_gauss_composition_sign_power_product_successor. ff_h_gauss_composition_sign_power_product_successor + S (ff_s_gauss_composition_sign_power_product) = S ((S (S ff_i_gauss_composition_sign_power_product)) * ff_v_gauss_composition_sign_power_product)) /\ exists ff_q_gauss_composition_sign_power_product_successor. ff_u_gauss_composition_sign_power_product = ff_q_gauss_composition_sign_power_product_successor * S ((S (S ff_i_gauss_composition_sign_power_product)) * ff_v_gauss_composition_sign_power_product) + (ff_s_gauss_composition_sign_power_product))) /\ ff_s_gauss_composition_sign_power_product = ff_r_gauss_composition_sign_power_product * ff_p_gauss_composition_sign_power_product)))))))) -> (exists gpc_left_cancelled_balance gpc_right_cancelled_balance. A + p * gpc_left_cancelled_balance = R + p * gpc_right_cancelled_balance)Proof neighborhood
Direct theorem prerequisites
PA0080 gauss_signed_products_balance_mod PA0083 prime_half_range_product_coprime PA0031 prime_nonzero PA003R mod_eq_cancel_coprime PA000H mul_commDirect theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. The untrusted compiler re-expands each one before the original tactic script is replayed; defined notation is never accepted by the kernel. Open the exact replay line beneath every changed command.
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 (5)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–20
03Fix variables and assumptionsL21–30
04Fix variables and assumptionsL31–40
05Establish hbalanceL41–50
Establish this local claim before using it. It is not an additional assumption.
- L41
have hbalance : ModEq(p,A · P,P · R)Definitions: ModEq(p,A · P,P · R)Original native command in the exact edition - L42
specialize gauss_signed_products_balance_mod p - L43
specialize gauss_signed_products_balance_mod h - L44
specialize gauss_signed_products_balance_mod r - L45
specialize gauss_signed_products_balance_mod a - L46
specialize gauss_signed_products_balance_mod b - L47
specialize gauss_signed_products_balance_mod c - L48
specialize gauss_signed_products_balance_mod mb - L49
specialize gauss_signed_products_balance_mod mc - L50
specialize gauss_signed_products_balance_mod rb
06Use earlier factsL51–60
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L51
specialize gauss_signed_products_balance_mod rc - L52
specialize gauss_signed_products_balance_mod sb - L53
specialize gauss_signed_products_balance_mod sc - L54
specialize gauss_signed_products_balance_mod fb - L55
specialize gauss_signed_products_balance_mod fc - L56
specialize gauss_signed_products_balance_mod tb - L57
specialize gauss_signed_products_balance_mod tc - L58
specialize gauss_signed_products_balance_mod e - L59
specialize gauss_signed_products_balance_mod P - L60
specialize gauss_signed_products_balance_mod M
07Use earlier factsL61–70
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L61
specialize gauss_signed_products_balance_mod Sprod - L62
specialize gauss_signed_products_balance_mod T - L63
specialize gauss_signed_products_balance_mod A - L64
specialize gauss_signed_products_balance_mod R - L65
apply gauss_signed_products_balance_mod - L66
exact hp - L67
exact hr - L68
exact hsigned - L69
exact hsigns - L70
exact hpointwise
08Use earlier factsL71–80
09Use earlier factsL81–81
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L81
exact hR
10Establish hoddL82–88
11Establish hcoprimeL89–98
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime half range product coprime.
- L89
- L90
specialize prime_half_range_product_coprime p - L91
specialize prime_half_range_product_coprime h - L92
specialize prime_half_range_product_coprime b - L93
specialize prime_half_range_product_coprime c - L94
specialize prime_half_range_product_coprime P - L95
apply prime_half_range_product_coprime - L96
exact hodd - L97
exact hprime - L98
exact hhalf
12Use earlier factsL99–99
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L99
exact hP
13Establish hp0L100–105
14Establish hnormalizedL106–106
Establish this local claim before using it. It is not an additional assumption.
- L106
have hnormalized : ModEq(p,P · A,P · R)Definitions: ModEq(p,P · A,P · R)Original native command in the exact edition
15Separate the logical casesL107–108
16Construct an explicit witnessL109–110
17Calculate and transport equalitiesL111–112
18Use earlier factsL113–113
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L113
apply mul_comm
19Calculate and transport equalitiesL114–114
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L114
refl
20Use earlier factsL115–123
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original defined command ledger · 123 lines
- 0001
intro p - 0002
intro h - 0003
intro r - 0004
intro a - 0005
intro b - 0006
intro c - 0007
intro mb - 0008
intro mc - 0009
intro rb - 0010
intro rc - 0011
intro sb - 0012
intro sc - 0013
intro fb - 0014
intro fc - 0015
intro tb - 0016
intro tc - 0017
intro e - 0018
intro P - 0019
intro M - 0020
intro Sprod - 0021
intro T - 0022
intro A - 0023
intro R - 0024
intro hprime - 0025
intro hp - 0026
intro hr - 0027
intro hsigned - 0028
intro hsigns - 0029
intro hpointwise - 0030
intro hmagnitude_range - 0031
intro hmagnitude_injective - 0032
intro hrecode - 0033
intro hhalf - 0034
intro hcount - 0035
intro hP - 0036
intro hM - 0037
intro hS - 0038
intro hT - 0039
intro hA - 0040
intro hR - 0041
have hbalance : ModEq(p,A · P,P · R)Exact native replay line
have hbalance : exists gpc_left_product_balance gpc_right_product_balance. A * P + p * gpc_left_product_balance = P * R + p * gpc_right_product_balance - 0042
specialize gauss_signed_products_balance_mod p - 0043
specialize gauss_signed_products_balance_mod h - 0044
specialize gauss_signed_products_balance_mod r - 0045
specialize gauss_signed_products_balance_mod a - 0046
specialize gauss_signed_products_balance_mod b - 0047
specialize gauss_signed_products_balance_mod c - 0048
specialize gauss_signed_products_balance_mod mb - 0049
specialize gauss_signed_products_balance_mod mc - 0050
specialize gauss_signed_products_balance_mod rb - 0051
specialize gauss_signed_products_balance_mod rc - 0052
specialize gauss_signed_products_balance_mod sb - 0053
specialize gauss_signed_products_balance_mod sc - 0054
specialize gauss_signed_products_balance_mod fb - 0055
specialize gauss_signed_products_balance_mod fc - 0056
specialize gauss_signed_products_balance_mod tb - 0057
specialize gauss_signed_products_balance_mod tc - 0058
specialize gauss_signed_products_balance_mod e - 0059
specialize gauss_signed_products_balance_mod P - 0060
specialize gauss_signed_products_balance_mod M - 0061
specialize gauss_signed_products_balance_mod Sprod - 0062
specialize gauss_signed_products_balance_mod T - 0063
specialize gauss_signed_products_balance_mod A - 0064
specialize gauss_signed_products_balance_mod R - 0065
apply gauss_signed_products_balance_mod - 0066
exact hp - 0067
exact hr - 0068
exact hsigned - 0069
exact hsigns - 0070
exact hpointwise - 0071
exact hmagnitude_range - 0072
exact hmagnitude_injective - 0073
exact hrecode - 0074
exact hhalf - 0075
exact hcount - 0076
exact hP - 0077
exact hM - 0078
exact hS - 0079
exact hT - 0080
exact hA - 0081
exact hR - 0082
have hodd : p = 2 * h + 1 - 0083
trans S r - 0084
exact hp - 0085
trans S (2 * h) - 0086
congr - 0087
exact hr - 0088
simp - 0089
have hcoprime : Coprime(P,p)Exact native replay line
have hcoprime : forall frp_divisor_gauss_composition_canonical_coprime. (exists frp_left_factor_gauss_composition_canonical_coprime. P = frp_divisor_gauss_composition_canonical_coprime * frp_left_factor_gauss_composition_canonical_coprime) -> (exists frp_right_factor_gauss_composition_canonical_coprime. p = frp_divisor_gauss_composition_canonical_coprime * frp_right_factor_gauss_composition_canonical_coprime) -> frp_divisor_gauss_composition_canonical_coprime = 1 - 0090
specialize prime_half_range_product_coprime p - 0091
specialize prime_half_range_product_coprime h - 0092
specialize prime_half_range_product_coprime b - 0093
specialize prime_half_range_product_coprime c - 0094
specialize prime_half_range_product_coprime P - 0095
apply prime_half_range_product_coprime - 0096
exact hodd - 0097
exact hprime - 0098
exact hhalf - 0099
exact hP - 0100
have hp0 : ~(p = 0) - 0101
intro hpzero - 0102
specialize prime_nonzero p - 0103
apply prime_nonzero - 0104
exact hprime - 0105
exact hpzero - 0106
have hnormalized : ModEq(p,P · A,P · R)Exact native replay line
have hnormalized : exists gpc_left_normalized_product_balance gpc_right_normalized_product_balance. P * A + p * gpc_left_normalized_product_balance = P * R + p * gpc_right_normalized_product_balance - 0107
cases hbalance - 0108
cases hbalance_witness - 0109
exists x - 0110
exists x1 - 0111
trans (A * P) + p * x - 0112
congr - 0113
apply mul_comm - 0114
refl - 0115
exact hbalance_witness_witness - 0116
specialize mod_eq_cancel_coprime p - 0117
specialize mod_eq_cancel_coprime P - 0118
specialize mod_eq_cancel_coprime A - 0119
specialize mod_eq_cancel_coprime R - 0120
apply mod_eq_cancel_coprime - 0121
exact hp0 - 0122
exact hcoprime - 0123
exact hnormalized