Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.
Exact expanded PA statement
forall p h a b c. p = 2 * h + 1 -> ((~(p = 1) /\ forall frp_prime_left_lemma_endpoint_prime frp_prime_right_lemma_endpoint_prime. p = frp_prime_left_lemma_endpoint_prime * frp_prime_right_lemma_endpoint_prime -> frp_prime_left_lemma_endpoint_prime = 1 \/ frp_prime_right_lemma_endpoint_prime = 1)) -> (~(exists gsp_divisor_factor_lemma_endpoint_nondivisor. a = p * gsp_divisor_factor_lemma_endpoint_nondivisor)) -> (forall gsp_range_index_lemma_endpoint_half_range. (exists gsp_lt_gap_lemma_endpoint_half_range_range_bound. gsp_lt_gap_lemma_endpoint_half_range_range_bound + S gsp_range_index_lemma_endpoint_half_range = h) -> (((exists gsp_beta_height_lemma_endpoint_half_range_range_entry. gsp_beta_height_lemma_endpoint_half_range_range_entry + S (1 + gsp_range_index_lemma_endpoint_half_range) = S ((S (gsp_range_index_lemma_endpoint_half_range)) * c)) /\ exists gsp_beta_quotient_lemma_endpoint_half_range_range_entry. b = gsp_beta_quotient_lemma_endpoint_half_range_range_entry * S ((S (gsp_range_index_lemma_endpoint_half_range)) * c) + (1 + gsp_range_index_lemma_endpoint_half_range)))) -> (exists e A R. ((exists ff_b_lemma_endpoint_multiplier_power ff_c_lemma_endpoint_multiplier_power. ((forall ff_i_lemma_endpoint_multiplier_power_repeat. (exists ff_lt_lemma_endpoint_multiplier_power_repeat_bound. ff_lt_lemma_endpoint_multiplier_power_repeat_bound + S ff_i_lemma_endpoint_multiplier_power_repeat = h) -> (((exists ff_h_lemma_endpoint_multiplier_power_repeat_decoded. ff_h_lemma_endpoint_multiplier_power_repeat_decoded + S (a) = S ((S (ff_i_lemma_endpoint_multiplier_power_repeat)) * ff_c_lemma_endpoint_multiplier_power)) /\ exists ff_q_lemma_endpoint_multiplier_power_repeat_decoded. ff_b_lemma_endpoint_multiplier_power = ff_q_lemma_endpoint_multiplier_power_repeat_decoded * S ((S (ff_i_lemma_endpoint_multiplier_power_repeat)) * ff_c_lemma_endpoint_multiplier_power) + (a)))) /\ (exists ff_u_lemma_endpoint_multiplier_power_product ff_v_lemma_endpoint_multiplier_power_product. ((((exists ff_h_lemma_endpoint_multiplier_power_product_start. ff_h_lemma_endpoint_multiplier_power_product_start + S (1) = S ((S (0)) * ff_v_lemma_endpoint_multiplier_power_product)) /\ exists ff_q_lemma_endpoint_multiplier_power_product_start. ff_u_lemma_endpoint_multiplier_power_product = ff_q_lemma_endpoint_multiplier_power_product_start * S ((S (0)) * ff_v_lemma_endpoint_multiplier_power_product) + (1))) /\ ((((exists ff_h_lemma_endpoint_multiplier_power_product_terminal. ff_h_lemma_endpoint_multiplier_power_product_terminal + S (A) = S ((S (h)) * ff_v_lemma_endpoint_multiplier_power_product)) /\ exists ff_q_lemma_endpoint_multiplier_power_product_terminal. ff_u_lemma_endpoint_multiplier_power_product = ff_q_lemma_endpoint_multiplier_power_product_terminal * S ((S (h)) * ff_v_lemma_endpoint_multiplier_power_product) + (A))) /\ forall ff_i_lemma_endpoint_multiplier_power_product. (exists ff_lt_lemma_endpoint_multiplier_power_product_bound. ff_lt_lemma_endpoint_multiplier_power_product_bound + S ff_i_lemma_endpoint_multiplier_power_product = h) -> exists ff_p_lemma_endpoint_multiplier_power_product ff_r_lemma_endpoint_multiplier_power_product ff_s_lemma_endpoint_multiplier_power_product. ((((exists ff_h_lemma_endpoint_multiplier_power_product_factor. ff_h_lemma_endpoint_multiplier_power_product_factor + S (ff_p_lemma_endpoint_multiplier_power_product) = S ((S (ff_i_lemma_endpoint_multiplier_power_product)) * ff_c_lemma_endpoint_multiplier_power)) /\ exists ff_q_lemma_endpoint_multiplier_power_product_factor. ff_b_lemma_endpoint_multiplier_power = ff_q_lemma_endpoint_multiplier_power_product_factor * S ((S (ff_i_lemma_endpoint_multiplier_power_product)) * ff_c_lemma_endpoint_multiplier_power) + (ff_p_lemma_endpoint_multiplier_power_product))) /\ ((((exists ff_h_lemma_endpoint_multiplier_power_product_partial. ff_h_lemma_endpoint_multiplier_power_product_partial + S (ff_r_lemma_endpoint_multiplier_power_product) = S ((S (ff_i_lemma_endpoint_multiplier_power_product)) * ff_v_lemma_endpoint_multiplier_power_product)) /\ exists ff_q_lemma_endpoint_multiplier_power_product_partial. ff_u_lemma_endpoint_multiplier_power_product = ff_q_lemma_endpoint_multiplier_power_product_partial * S ((S (ff_i_lemma_endpoint_multiplier_power_product)) * ff_v_lemma_endpoint_multiplier_power_product) + (ff_r_lemma_endpoint_multiplier_power_product))) /\ ((((exists ff_h_lemma_endpoint_multiplier_power_product_successor. ff_h_lemma_endpoint_multiplier_power_product_successor + S (ff_s_lemma_endpoint_multiplier_power_product) = S ((S (S ff_i_lemma_endpoint_multiplier_power_product)) * ff_v_lemma_endpoint_multiplier_power_product)) /\ exists ff_q_lemma_endpoint_multiplier_power_product_successor. ff_u_lemma_endpoint_multiplier_power_product = ff_q_lemma_endpoint_multiplier_power_product_successor * S ((S (S ff_i_lemma_endpoint_multiplier_power_product)) * ff_v_lemma_endpoint_multiplier_power_product) + (ff_s_lemma_endpoint_multiplier_power_product))) /\ ff_s_lemma_endpoint_multiplier_power_product = ff_r_lemma_endpoint_multiplier_power_product * ff_p_lemma_endpoint_multiplier_power_product)))))))) /\ ((exists ff_b_lemma_endpoint_result_sign_power_expanded ff_c_lemma_endpoint_result_sign_power_expanded. ((forall ff_i_lemma_endpoint_result_sign_power_expanded_repeat. (exists ff_lt_lemma_endpoint_result_sign_power_expanded_repeat_bound. ff_lt_lemma_endpoint_result_sign_power_expanded_repeat_bound + S ff_i_lemma_endpoint_result_sign_power_expanded_repeat = e) -> (((exists ff_h_lemma_endpoint_result_sign_power_expanded_repeat_decoded. ff_h_lemma_endpoint_result_sign_power_expanded_repeat_decoded + S ((2 * h)) = S ((S (ff_i_lemma_endpoint_result_sign_power_expanded_repeat)) * ff_c_lemma_endpoint_result_sign_power_expanded)) /\ exists ff_q_lemma_endpoint_result_sign_power_expanded_repeat_decoded. ff_b_lemma_endpoint_result_sign_power_expanded = ff_q_lemma_endpoint_result_sign_power_expanded_repeat_decoded * S ((S (ff_i_lemma_endpoint_result_sign_power_expanded_repeat)) * ff_c_lemma_endpoint_result_sign_power_expanded) + ((2 * h))))) /\ (exists ff_u_lemma_endpoint_result_sign_power_expanded_product ff_v_lemma_endpoint_result_sign_power_expanded_product. ((((exists ff_h_lemma_endpoint_result_sign_power_expanded_product_start. ff_h_lemma_endpoint_result_sign_power_expanded_product_start + S (1) = S ((S (0)) * ff_v_lemma_endpoint_result_sign_power_expanded_product)) /\ exists ff_q_lemma_endpoint_result_sign_power_expanded_product_start. ff_u_lemma_endpoint_result_sign_power_expanded_product = ff_q_lemma_endpoint_result_sign_power_expanded_product_start * S ((S (0)) * ff_v_lemma_endpoint_result_sign_power_expanded_product) + (1))) /\ ((((exists ff_h_lemma_endpoint_result_sign_power_expanded_product_terminal. ff_h_lemma_endpoint_result_sign_power_expanded_product_terminal + S (R) = S ((S (e)) * ff_v_lemma_endpoint_result_sign_power_expanded_product)) /\ exists ff_q_lemma_endpoint_result_sign_power_expanded_product_terminal. ff_u_lemma_endpoint_result_sign_power_expanded_product = ff_q_lemma_endpoint_result_sign_power_expanded_product_terminal * S ((S (e)) * ff_v_lemma_endpoint_result_sign_power_expanded_product) + (R))) /\ forall ff_i_lemma_endpoint_result_sign_power_expanded_product. (exists ff_lt_lemma_endpoint_result_sign_power_expanded_product_bound. ff_lt_lemma_endpoint_result_sign_power_expanded_product_bound + S ff_i_lemma_endpoint_result_sign_power_expanded_product = e) -> exists ff_p_lemma_endpoint_result_sign_power_expanded_product ff_r_lemma_endpoint_result_sign_power_expanded_product ff_s_lemma_endpoint_result_sign_power_expanded_product. ((((exists ff_h_lemma_endpoint_result_sign_power_expanded_product_factor. ff_h_lemma_endpoint_result_sign_power_expanded_product_factor + S (ff_p_lemma_endpoint_result_sign_power_expanded_product) = S ((S (ff_i_lemma_endpoint_result_sign_power_expanded_product)) * ff_c_lemma_endpoint_result_sign_power_expanded)) /\ exists ff_q_lemma_endpoint_result_sign_power_expanded_product_factor. ff_b_lemma_endpoint_result_sign_power_expanded = ff_q_lemma_endpoint_result_sign_power_expanded_product_factor * S ((S (ff_i_lemma_endpoint_result_sign_power_expanded_product)) * ff_c_lemma_endpoint_result_sign_power_expanded) + (ff_p_lemma_endpoint_result_sign_power_expanded_product))) /\ ((((exists ff_h_lemma_endpoint_result_sign_power_expanded_product_partial. ff_h_lemma_endpoint_result_sign_power_expanded_product_partial + S (ff_r_lemma_endpoint_result_sign_power_expanded_product) = S ((S (ff_i_lemma_endpoint_result_sign_power_expanded_product)) * ff_v_lemma_endpoint_result_sign_power_expanded_product)) /\ exists ff_q_lemma_endpoint_result_sign_power_expanded_product_partial. ff_u_lemma_endpoint_result_sign_power_expanded_product = ff_q_lemma_endpoint_result_sign_power_expanded_product_partial * S ((S (ff_i_lemma_endpoint_result_sign_power_expanded_product)) * ff_v_lemma_endpoint_result_sign_power_expanded_product) + (ff_r_lemma_endpoint_result_sign_power_expanded_product))) /\ ((((exists ff_h_lemma_endpoint_result_sign_power_expanded_product_successor. ff_h_lemma_endpoint_result_sign_power_expanded_product_successor + S (ff_s_lemma_endpoint_result_sign_power_expanded_product) = S ((S (S ff_i_lemma_endpoint_result_sign_power_expanded_product)) * ff_v_lemma_endpoint_result_sign_power_expanded_product)) /\ exists ff_q_lemma_endpoint_result_sign_power_expanded_product_successor. ff_u_lemma_endpoint_result_sign_power_expanded_product = ff_q_lemma_endpoint_result_sign_power_expanded_product_successor * S ((S (S ff_i_lemma_endpoint_result_sign_power_expanded_product)) * ff_v_lemma_endpoint_result_sign_power_expanded_product) + (ff_s_lemma_endpoint_result_sign_power_expanded_product))) /\ ff_s_lemma_endpoint_result_sign_power_expanded_product = ff_r_lemma_endpoint_result_sign_power_expanded_product * ff_p_lemma_endpoint_result_sign_power_expanded_product)))))))) /\ ((exists mb mc sb sc. ((forall gsp_index_lemma_endpoint_signed_prefix. (exists gsp_lt_gap_lemma_endpoint_signed_prefix_index_bound. gsp_lt_gap_lemma_endpoint_signed_prefix_index_bound + S gsp_index_lemma_endpoint_signed_prefix = h) -> (exists gsp_value_lemma_endpoint_signed_prefix_entry gsp_magnitude_lemma_endpoint_signed_prefix_entry gsp_sign_lemma_endpoint_signed_prefix_entry. (((exists ff_h_gsp_lemma_endpoint_signed_prefix_entry_source. ff_h_gsp_lemma_endpoint_signed_prefix_entry_source + S (gsp_value_lemma_endpoint_signed_prefix_entry) = S ((S (gsp_index_lemma_endpoint_signed_prefix)) * c)) /\ exists ff_q_gsp_lemma_endpoint_signed_prefix_entry_source. b = ff_q_gsp_lemma_endpoint_signed_prefix_entry_source * S ((S (gsp_index_lemma_endpoint_signed_prefix)) * c) + (gsp_value_lemma_endpoint_signed_prefix_entry))) /\ ((((exists ff_h_gsp_lemma_endpoint_signed_prefix_entry_magnitude. ff_h_gsp_lemma_endpoint_signed_prefix_entry_magnitude + S (gsp_magnitude_lemma_endpoint_signed_prefix_entry) = S ((S (gsp_index_lemma_endpoint_signed_prefix)) * mc)) /\ exists ff_q_gsp_lemma_endpoint_signed_prefix_entry_magnitude. mb = ff_q_gsp_lemma_endpoint_signed_prefix_entry_magnitude * S ((S (gsp_index_lemma_endpoint_signed_prefix)) * mc) + (gsp_magnitude_lemma_endpoint_signed_prefix_entry))) /\ ((((exists ff_h_gsp_lemma_endpoint_signed_prefix_entry_sign. ff_h_gsp_lemma_endpoint_signed_prefix_entry_sign + S (gsp_sign_lemma_endpoint_signed_prefix_entry) = S ((S (gsp_index_lemma_endpoint_signed_prefix)) * sc)) /\ exists ff_q_gsp_lemma_endpoint_signed_prefix_entry_sign. sb = ff_q_gsp_lemma_endpoint_signed_prefix_entry_sign * S ((S (gsp_index_lemma_endpoint_signed_prefix)) * sc) + (gsp_sign_lemma_endpoint_signed_prefix_entry))) /\ ((exists gsp_lt_gap_lemma_endpoint_signed_prefix_entry_positive. gsp_lt_gap_lemma_endpoint_signed_prefix_entry_positive + S 0 = gsp_magnitude_lemma_endpoint_signed_prefix_entry) /\ ((exists gsp_le_gap_lemma_endpoint_signed_prefix_entry_bounded. gsp_le_gap_lemma_endpoint_signed_prefix_entry_bounded + gsp_magnitude_lemma_endpoint_signed_prefix_entry = h) /\ ((gsp_sign_lemma_endpoint_signed_prefix_entry = 0 \/ gsp_sign_lemma_endpoint_signed_prefix_entry = 1) /\ (((gsp_sign_lemma_endpoint_signed_prefix_entry = 0 /\ (exists gsp_mod_left_lemma_endpoint_signed_prefix_entry_lower gsp_mod_right_lemma_endpoint_signed_prefix_entry_lower. (a * gsp_value_lemma_endpoint_signed_prefix_entry) + p * gsp_mod_left_lemma_endpoint_signed_prefix_entry_lower = (gsp_magnitude_lemma_endpoint_signed_prefix_entry) + p * gsp_mod_right_lemma_endpoint_signed_prefix_entry_lower)) \/ (gsp_sign_lemma_endpoint_signed_prefix_entry = 1 /\ (exists gsp_mod_left_lemma_endpoint_signed_prefix_entry_reflected gsp_mod_right_lemma_endpoint_signed_prefix_entry_reflected. (a * gsp_value_lemma_endpoint_signed_prefix_entry) + p * gsp_mod_left_lemma_endpoint_signed_prefix_entry_reflected = ((2 * h) * gsp_magnitude_lemma_endpoint_signed_prefix_entry) + p * gsp_mod_right_lemma_endpoint_signed_prefix_entry_reflected))))))))))) /\ (((exists ff_u_lemma_endpoint_bit_count_sum ff_v_lemma_endpoint_bit_count_sum. ((((exists ff_h_lemma_endpoint_bit_count_sum_start. ff_h_lemma_endpoint_bit_count_sum_start + S (0) = S ((S (0)) * ff_v_lemma_endpoint_bit_count_sum)) /\ exists ff_q_lemma_endpoint_bit_count_sum_start. ff_u_lemma_endpoint_bit_count_sum = ff_q_lemma_endpoint_bit_count_sum_start * S ((S (0)) * ff_v_lemma_endpoint_bit_count_sum) + (0))) /\ ((((exists ff_h_lemma_endpoint_bit_count_sum_terminal. ff_h_lemma_endpoint_bit_count_sum_terminal + S (e) = S ((S (h)) * ff_v_lemma_endpoint_bit_count_sum)) /\ exists ff_q_lemma_endpoint_bit_count_sum_terminal. ff_u_lemma_endpoint_bit_count_sum = ff_q_lemma_endpoint_bit_count_sum_terminal * S ((S (h)) * ff_v_lemma_endpoint_bit_count_sum) + (e))) /\ forall ff_i_lemma_endpoint_bit_count_sum. (exists ff_lt_lemma_endpoint_bit_count_sum_bound. ff_lt_lemma_endpoint_bit_count_sum_bound + S ff_i_lemma_endpoint_bit_count_sum = h) -> exists ff_a_lemma_endpoint_bit_count_sum ff_r_lemma_endpoint_bit_count_sum ff_s_lemma_endpoint_bit_count_sum. ((((exists ff_h_lemma_endpoint_bit_count_sum_summand. ff_h_lemma_endpoint_bit_count_sum_summand + S (ff_a_lemma_endpoint_bit_count_sum) = S ((S (ff_i_lemma_endpoint_bit_count_sum)) * sc)) /\ exists ff_q_lemma_endpoint_bit_count_sum_summand. sb = ff_q_lemma_endpoint_bit_count_sum_summand * S ((S (ff_i_lemma_endpoint_bit_count_sum)) * sc) + (ff_a_lemma_endpoint_bit_count_sum))) /\ ((((exists ff_h_lemma_endpoint_bit_count_sum_partial. ff_h_lemma_endpoint_bit_count_sum_partial + S (ff_r_lemma_endpoint_bit_count_sum) = S ((S (ff_i_lemma_endpoint_bit_count_sum)) * ff_v_lemma_endpoint_bit_count_sum)) /\ exists ff_q_lemma_endpoint_bit_count_sum_partial. ff_u_lemma_endpoint_bit_count_sum = ff_q_lemma_endpoint_bit_count_sum_partial * S ((S (ff_i_lemma_endpoint_bit_count_sum)) * ff_v_lemma_endpoint_bit_count_sum) + (ff_r_lemma_endpoint_bit_count_sum))) /\ ((((exists ff_h_lemma_endpoint_bit_count_sum_successor. ff_h_lemma_endpoint_bit_count_sum_successor + S (ff_s_lemma_endpoint_bit_count_sum) = S ((S (S ff_i_lemma_endpoint_bit_count_sum)) * ff_v_lemma_endpoint_bit_count_sum)) /\ exists ff_q_lemma_endpoint_bit_count_sum_successor. ff_u_lemma_endpoint_bit_count_sum = ff_q_lemma_endpoint_bit_count_sum_successor * S ((S (S ff_i_lemma_endpoint_bit_count_sum)) * ff_v_lemma_endpoint_bit_count_sum) + (ff_s_lemma_endpoint_bit_count_sum))) /\ ff_s_lemma_endpoint_bit_count_sum = ff_r_lemma_endpoint_bit_count_sum + ff_a_lemma_endpoint_bit_count_sum)))))) /\ (forall ff_i_lemma_endpoint_bit_count_bits. (exists ff_lt_lemma_endpoint_bit_count_bits_bound. ff_lt_lemma_endpoint_bit_count_bits_bound + S ff_i_lemma_endpoint_bit_count_bits = h) -> exists ff_bit_lemma_endpoint_bit_count_bits. ((((exists ff_h_lemma_endpoint_bit_count_bits_decoded. ff_h_lemma_endpoint_bit_count_bits_decoded + S (ff_bit_lemma_endpoint_bit_count_bits) = S ((S (ff_i_lemma_endpoint_bit_count_bits)) * sc)) /\ exists ff_q_lemma_endpoint_bit_count_bits_decoded. sb = ff_q_lemma_endpoint_bit_count_bits_decoded * S ((S (ff_i_lemma_endpoint_bit_count_bits)) * sc) + (ff_bit_lemma_endpoint_bit_count_bits))) /\ (ff_bit_lemma_endpoint_bit_count_bits = 0 \/ ff_bit_lemma_endpoint_bit_count_bits = 1))))))) /\ (exists gle_left_lemma_endpoint_result gle_right_lemma_endpoint_result. A + p * gle_left_lemma_endpoint_result = R + p * gle_right_lemma_endpoint_result)))))Structural proof guide
Generated structural guide
Gauss's signed half-range count controls a^h modulo the odd prime.
Use the direct prerequisites gauss_half_range_signed_prefix_exists, gauss_signed_half_bit_count_exists, gauss_signed_half_magnitude_range, gauss_signed_half_magnitude_injective, gauss_signed_half_predecessor_recode_exists, beta_product_exists, beta_sign_factor_product_power_exists, beta_pointwise_mul_product_exists, pow_exists, gauss_signed_products_cancel_mod as previously established PA formulas.
The proof proceeds by case analysis (22), intermediate claims (12), certified simplification (1).
Referenced ingredients
PA0075 gauss_half_range_signed_prefix_exists PA0077 gauss_signed_half_bit_count_exists PA0078 gauss_signed_half_magnitude_range PA007C gauss_signed_half_magnitude_injective PA007E gauss_signed_half_predecessor_recode_exists PA003X beta_product_exists PA007J beta_sign_factor_product_power_exists PA007O beta_pointwise_mul_product_exists PA0046 pow_exists PA0084 gauss_signed_products_cancel_modProof neighborhood
Direct dependencies
PA0075 gauss_half_range_signed_prefix_exists PA0077 gauss_signed_half_bit_count_exists PA0078 gauss_signed_half_magnitude_range PA007C gauss_signed_half_magnitude_injective PA007E gauss_signed_half_predecessor_recode_exists PA003X beta_product_exists PA007J beta_sign_factor_product_power_exists PA007O beta_pointwise_mul_product_exists PA0046 pow_exists PA0084 gauss_signed_products_cancel_modDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Alpha-v25 checked-use theorem is independently kernel-checked when replayed; it is not a Stable theorem.
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 (10)
01Fix variables and assumptionsL1–9
02Establish hpsuccL10–13
03Establish hsigned_existsL14–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gauss half range signed prefix exists.
- L14
- L15
specialize gauss_half_range_signed_prefix_exists p - L16
specialize gauss_half_range_signed_prefix_exists h - L17
specialize gauss_half_range_signed_prefix_exists a - L18
specialize gauss_half_range_signed_prefix_exists b - L19
specialize gauss_half_range_signed_prefix_exists c - L20
apply gauss_half_range_signed_prefix_exists - L21
exact hpodd - L22
exact hprime - L23
exact hnotdiv
04Use earlier factsL24–24
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L24
exact hhalf
05Separate the logical casesL25–28
06Establish hcount_existsL29–38
Establish this local claim before using it. It is not an additional assumption.
- L29
have hcount_exists : ∃ e. BitCount(x2,x3,h,e)Definitions: BitCount - L30
specialize gauss_signed_half_bit_count_exists p - L31
specialize gauss_signed_half_bit_count_exists h - L32
specialize gauss_signed_half_bit_count_exists a - L33
specialize gauss_signed_half_bit_count_exists b - L34
specialize gauss_signed_half_bit_count_exists c - L35
specialize gauss_signed_half_bit_count_exists x - L36
specialize gauss_signed_half_bit_count_exists x1 - L37
specialize gauss_signed_half_bit_count_exists x2 - L38
specialize gauss_signed_half_bit_count_exists x3
07Use earlier factsL39–41
08Separate the logical casesL42–42
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L42
cases hcount_exists
09Establish hmagnitude_rangeL43–52
Establish this local claim before using it. It is not an additional assumption.
- L43
- L44
specialize gauss_signed_half_magnitude_range p - L45
specialize gauss_signed_half_magnitude_range h - L46
specialize gauss_signed_half_magnitude_range a - L47
specialize gauss_signed_half_magnitude_range b - L48
specialize gauss_signed_half_magnitude_range c - L49
specialize gauss_signed_half_magnitude_range x - L50
specialize gauss_signed_half_magnitude_range x1 - L51
specialize gauss_signed_half_magnitude_range x2 - L52
specialize gauss_signed_half_magnitude_range x3
10Use earlier factsL53–55
11Establish hmagnitude_injectiveL56–65
Establish this local claim before using it. It is not an additional assumption.
- L56
have hmagnitude_injective : InjectivePrefix(x,x1,h)Definitions: InjectivePrefix - L57
specialize gauss_signed_half_magnitude_injective p - L58
specialize gauss_signed_half_magnitude_injective h - L59
specialize gauss_signed_half_magnitude_injective a - L60
specialize gauss_signed_half_magnitude_injective b - L61
specialize gauss_signed_half_magnitude_injective c - L62
specialize gauss_signed_half_magnitude_injective x - L63
specialize gauss_signed_half_magnitude_injective x1 - L64
specialize gauss_signed_half_magnitude_injective x2 - L65
specialize gauss_signed_half_magnitude_injective x3
12Use earlier factsL66–71
13Establish hrecode_existsL72–81
Establish this local claim before using it. It is not an additional assumption.
- L72
- L73
specialize gauss_signed_half_predecessor_recode_exists p - L74
specialize gauss_signed_half_predecessor_recode_exists h - L75
specialize gauss_signed_half_predecessor_recode_exists a - L76
specialize gauss_signed_half_predecessor_recode_exists b - L77
specialize gauss_signed_half_predecessor_recode_exists c - L78
specialize gauss_signed_half_predecessor_recode_exists x - L79
specialize gauss_signed_half_predecessor_recode_exists x1 - L80
specialize gauss_signed_half_predecessor_recode_exists x2 - L81
specialize gauss_signed_half_predecessor_recode_exists x3
14Use earlier factsL82–83
15Separate the logical casesL84–85
16Establish hcanonical_product_existsL86–90
17Separate the logical casesL91–91
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L91
cases hcanonical_product_exists
18Establish hmagnitude_product_existsL92–96
19Separate the logical casesL97–97
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L97
cases hmagnitude_product_exists
20Establish hsign_packageL98–107
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sign factor product power exists.
- L98
- L99
specialize beta_sign_factor_product_power_exists p - L100
specialize beta_sign_factor_product_power_exists (2 * h) - L101
specialize beta_sign_factor_product_power_exists x2 - L102
specialize beta_sign_factor_product_power_exists x3 - L103
specialize beta_sign_factor_product_power_exists h - L104
specialize beta_sign_factor_product_power_exists x4 - L105
apply beta_sign_factor_product_power_exists - L106
exact hpsucc - L107
exact hcount_exists_witness
21Separate the logical casesL108–114
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L108
cases hsign_package - L109
cases hsign_package_witness - L110
cases hsign_package_witness_witness - L111
cases hsign_package_witness_witness_witness - L112
cases hsign_package_witness_witness_witness_witness - L113
cases hsign_package_witness_witness_witness_witness_right - L114
cases hsign_package_witness_witness_witness_witness_right_right
22Establish hpointwise_packageL115–124
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta pointwise mul product exists.
- L115
- L116
specialize beta_pointwise_mul_product_exists x - L117
specialize beta_pointwise_mul_product_exists x1 - L118
specialize beta_pointwise_mul_product_exists x9 - L119
specialize beta_pointwise_mul_product_exists x10 - L120
specialize beta_pointwise_mul_product_exists h - L121
specialize beta_pointwise_mul_product_exists x8 - L122
specialize beta_pointwise_mul_product_exists x11 - L123
apply beta_pointwise_mul_product_exists - L124
exact hmagnitude_product_exists_witness
23Use earlier factsL125–125
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L125
exact hsign_package_witness_witness_witness_witness_right_left
24Separate the logical casesL126–130
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
25Establish hmultiplier_power_existsL131–134
26Separate the logical casesL135–135
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L135
cases hmultiplier_power_exists
27Establish hcancelledL136–145
Establish this local claim before using it. It is not an additional assumption.
- L136
have hcancelled : exists gle_left_lemma_endpoint_local_result gle_right_lemma_endpoint_local_result. x16 + p * gle_left_lemma_endpoint_local_result = x12 + p * gle_right_lemma_endpoint_local_result - L137
specialize gauss_signed_products_cancel_mod p - L138
specialize gauss_signed_products_cancel_mod h - L139
specialize gauss_signed_products_cancel_mod (2 * h) - L140
specialize gauss_signed_products_cancel_mod a - L141
specialize gauss_signed_products_cancel_mod b - L142
specialize gauss_signed_products_cancel_mod c - L143
specialize gauss_signed_products_cancel_mod x - L144
specialize gauss_signed_products_cancel_mod x1 - L145
specialize gauss_signed_products_cancel_mod x5
28Use earlier factsL146–155
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L146
specialize gauss_signed_products_cancel_mod x6 - L147
specialize gauss_signed_products_cancel_mod x2 - L148
specialize gauss_signed_products_cancel_mod x3 - L149
specialize gauss_signed_products_cancel_mod x9 - L150
specialize gauss_signed_products_cancel_mod x10 - L151
specialize gauss_signed_products_cancel_mod x13 - L152
specialize gauss_signed_products_cancel_mod x14 - L153
specialize gauss_signed_products_cancel_mod x4 - L154
specialize gauss_signed_products_cancel_mod x7 - L155
specialize gauss_signed_products_cancel_mod x8
29Use earlier factsL156–162
Instantiate or apply named facts and discharge the corresponding proof obligations.
30Calculate and transport equalitiesL163–163
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L163
refl
31Use earlier factsL164–173
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L164
exact hsigned_exists_witness_witness_witness_witness - L165
exact hsign_package_witness_witness_witness_witness_left - L166
exact hpointwise_package_witness_witness_witness_left - L167
exact hmagnitude_range - L168
exact hmagnitude_injective - L169
exact hrecode_exists_witness_witness - L170
exact hhalf - L171
exact hcount_exists_witness - L172
exact hcanonical_product_exists_witness - L173
exact hmagnitude_product_exists_witness
32Use earlier factsL174–177
Instantiate or apply named facts and discharge the corresponding proof obligations.
33Construct an explicit witnessL178–180
34Separate the logical casesL181–181
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L181
split
35Use earlier factsL182–182
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L182
exact hmultiplier_power_exists_witness
36Separate the logical casesL183–183
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L183
split
37Use earlier factsL184–184
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L184
exact hsign_package_witness_witness_witness_witness_right_right_left
38Separate the logical casesL185–185
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L185
split
39Construct an explicit witnessL186–189
40Separate the logical casesL190–190
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L190
split
Original exact command ledger · 193 lines
- 0001
intro p - 0002
intro h - 0003
intro a - 0004
intro b - 0005
intro c - 0006
intro hpodd - 0007
intro hprime - 0008
intro hnotdiv - 0009
intro hhalf - 0010
have hpsucc : p = S (2 * h) - 0011
trans 2 * h + 1 - 0012
exact hpodd - 0013
simp - 0014
have hsigned_exists : exists mb mc sb sc. (forall gsp_index_lemma_endpoint_signed_prefix. (exists gsp_lt_gap_lemma_endpoint_signed_prefix_index_bound. gsp_lt_gap_lemma_endpoint_signed_prefix_index_bound + S gsp_index_lemma_endpoint_signed_prefix = h) -> (exists gsp_value_lemma_endpoint_signed_prefix_entry gsp_magnitude_lemma_endpoint_signed_prefix_entry gsp_sign_lemma_endpoint_signed_prefix_entry. (((exists ff_h_gsp_lemma_endpoint_signed_prefix_entry_source. ff_h_gsp_lemma_endpoint_signed_prefix_entry_source + S (gsp_value_lemma_endpoint_signed_prefix_entry) = S ((S (gsp_index_lemma_endpoint_signed_prefix)) * c)) /\ exists ff_q_gsp_lemma_endpoint_signed_prefix_entry_source. b = ff_q_gsp_lemma_endpoint_signed_prefix_entry_source * S ((S (gsp_index_lemma_endpoint_signed_prefix)) * c) + (gsp_value_lemma_endpoint_signed_prefix_entry))) /\ ((((exists ff_h_gsp_lemma_endpoint_signed_prefix_entry_magnitude. ff_h_gsp_lemma_endpoint_signed_prefix_entry_magnitude + S (gsp_magnitude_lemma_endpoint_signed_prefix_entry) = S ((S (gsp_index_lemma_endpoint_signed_prefix)) * mc)) /\ exists ff_q_gsp_lemma_endpoint_signed_prefix_entry_magnitude. mb = ff_q_gsp_lemma_endpoint_signed_prefix_entry_magnitude * S ((S (gsp_index_lemma_endpoint_signed_prefix)) * mc) + (gsp_magnitude_lemma_endpoint_signed_prefix_entry))) /\ ((((exists ff_h_gsp_lemma_endpoint_signed_prefix_entry_sign. ff_h_gsp_lemma_endpoint_signed_prefix_entry_sign + S (gsp_sign_lemma_endpoint_signed_prefix_entry) = S ((S (gsp_index_lemma_endpoint_signed_prefix)) * sc)) /\ exists ff_q_gsp_lemma_endpoint_signed_prefix_entry_sign. sb = ff_q_gsp_lemma_endpoint_signed_prefix_entry_sign * S ((S (gsp_index_lemma_endpoint_signed_prefix)) * sc) + (gsp_sign_lemma_endpoint_signed_prefix_entry))) /\ ((exists gsp_lt_gap_lemma_endpoint_signed_prefix_entry_positive. gsp_lt_gap_lemma_endpoint_signed_prefix_entry_positive + S 0 = gsp_magnitude_lemma_endpoint_signed_prefix_entry) /\ ((exists gsp_le_gap_lemma_endpoint_signed_prefix_entry_bounded. gsp_le_gap_lemma_endpoint_signed_prefix_entry_bounded + gsp_magnitude_lemma_endpoint_signed_prefix_entry = h) /\ ((gsp_sign_lemma_endpoint_signed_prefix_entry = 0 \/ gsp_sign_lemma_endpoint_signed_prefix_entry = 1) /\ (((gsp_sign_lemma_endpoint_signed_prefix_entry = 0 /\ (exists gsp_mod_left_lemma_endpoint_signed_prefix_entry_lower gsp_mod_right_lemma_endpoint_signed_prefix_entry_lower. (a * gsp_value_lemma_endpoint_signed_prefix_entry) + p * gsp_mod_left_lemma_endpoint_signed_prefix_entry_lower = (gsp_magnitude_lemma_endpoint_signed_prefix_entry) + p * gsp_mod_right_lemma_endpoint_signed_prefix_entry_lower)) \/ (gsp_sign_lemma_endpoint_signed_prefix_entry = 1 /\ (exists gsp_mod_left_lemma_endpoint_signed_prefix_entry_reflected gsp_mod_right_lemma_endpoint_signed_prefix_entry_reflected. (a * gsp_value_lemma_endpoint_signed_prefix_entry) + p * gsp_mod_left_lemma_endpoint_signed_prefix_entry_reflected = ((2 * h) * gsp_magnitude_lemma_endpoint_signed_prefix_entry) + p * gsp_mod_right_lemma_endpoint_signed_prefix_entry_reflected))))))))))) - 0015
specialize gauss_half_range_signed_prefix_exists p - 0016
specialize gauss_half_range_signed_prefix_exists h - 0017
specialize gauss_half_range_signed_prefix_exists a - 0018
specialize gauss_half_range_signed_prefix_exists b - 0019
specialize gauss_half_range_signed_prefix_exists c - 0020
apply gauss_half_range_signed_prefix_exists - 0021
exact hpodd - 0022
exact hprime - 0023
exact hnotdiv - 0024
exact hhalf - 0025
cases hsigned_exists - 0026
cases hsigned_exists_witness - 0027
cases hsigned_exists_witness_witness - 0028
cases hsigned_exists_witness_witness_witness - 0029
have hcount_exists : exists e. (((exists ff_u_lemma_endpoint_local_bit_count_sum ff_v_lemma_endpoint_local_bit_count_sum. ((((exists ff_h_lemma_endpoint_local_bit_count_sum_start. ff_h_lemma_endpoint_local_bit_count_sum_start + S (0) = S ((S (0)) * ff_v_lemma_endpoint_local_bit_count_sum)) /\ exists ff_q_lemma_endpoint_local_bit_count_sum_start. ff_u_lemma_endpoint_local_bit_count_sum = ff_q_lemma_endpoint_local_bit_count_sum_start * S ((S (0)) * ff_v_lemma_endpoint_local_bit_count_sum) + (0))) /\ ((((exists ff_h_lemma_endpoint_local_bit_count_sum_terminal. ff_h_lemma_endpoint_local_bit_count_sum_terminal + S (e) = S ((S (h)) * ff_v_lemma_endpoint_local_bit_count_sum)) /\ exists ff_q_lemma_endpoint_local_bit_count_sum_terminal. ff_u_lemma_endpoint_local_bit_count_sum = ff_q_lemma_endpoint_local_bit_count_sum_terminal * S ((S (h)) * ff_v_lemma_endpoint_local_bit_count_sum) + (e))) /\ forall ff_i_lemma_endpoint_local_bit_count_sum. (exists ff_lt_lemma_endpoint_local_bit_count_sum_bound. ff_lt_lemma_endpoint_local_bit_count_sum_bound + S ff_i_lemma_endpoint_local_bit_count_sum = h) -> exists ff_a_lemma_endpoint_local_bit_count_sum ff_r_lemma_endpoint_local_bit_count_sum ff_s_lemma_endpoint_local_bit_count_sum. ((((exists ff_h_lemma_endpoint_local_bit_count_sum_summand. ff_h_lemma_endpoint_local_bit_count_sum_summand + S (ff_a_lemma_endpoint_local_bit_count_sum) = S ((S (ff_i_lemma_endpoint_local_bit_count_sum)) * x3)) /\ exists ff_q_lemma_endpoint_local_bit_count_sum_summand. x2 = ff_q_lemma_endpoint_local_bit_count_sum_summand * S ((S (ff_i_lemma_endpoint_local_bit_count_sum)) * x3) + (ff_a_lemma_endpoint_local_bit_count_sum))) /\ ((((exists ff_h_lemma_endpoint_local_bit_count_sum_partial. ff_h_lemma_endpoint_local_bit_count_sum_partial + S (ff_r_lemma_endpoint_local_bit_count_sum) = S ((S (ff_i_lemma_endpoint_local_bit_count_sum)) * ff_v_lemma_endpoint_local_bit_count_sum)) /\ exists ff_q_lemma_endpoint_local_bit_count_sum_partial. ff_u_lemma_endpoint_local_bit_count_sum = ff_q_lemma_endpoint_local_bit_count_sum_partial * S ((S (ff_i_lemma_endpoint_local_bit_count_sum)) * ff_v_lemma_endpoint_local_bit_count_sum) + (ff_r_lemma_endpoint_local_bit_count_sum))) /\ ((((exists ff_h_lemma_endpoint_local_bit_count_sum_successor. ff_h_lemma_endpoint_local_bit_count_sum_successor + S (ff_s_lemma_endpoint_local_bit_count_sum) = S ((S (S ff_i_lemma_endpoint_local_bit_count_sum)) * ff_v_lemma_endpoint_local_bit_count_sum)) /\ exists ff_q_lemma_endpoint_local_bit_count_sum_successor. ff_u_lemma_endpoint_local_bit_count_sum = ff_q_lemma_endpoint_local_bit_count_sum_successor * S ((S (S ff_i_lemma_endpoint_local_bit_count_sum)) * ff_v_lemma_endpoint_local_bit_count_sum) + (ff_s_lemma_endpoint_local_bit_count_sum))) /\ ff_s_lemma_endpoint_local_bit_count_sum = ff_r_lemma_endpoint_local_bit_count_sum + ff_a_lemma_endpoint_local_bit_count_sum)))))) /\ (forall ff_i_lemma_endpoint_local_bit_count_bits. (exists ff_lt_lemma_endpoint_local_bit_count_bits_bound. ff_lt_lemma_endpoint_local_bit_count_bits_bound + S ff_i_lemma_endpoint_local_bit_count_bits = h) -> exists ff_bit_lemma_endpoint_local_bit_count_bits. ((((exists ff_h_lemma_endpoint_local_bit_count_bits_decoded. ff_h_lemma_endpoint_local_bit_count_bits_decoded + S (ff_bit_lemma_endpoint_local_bit_count_bits) = S ((S (ff_i_lemma_endpoint_local_bit_count_bits)) * x3)) /\ exists ff_q_lemma_endpoint_local_bit_count_bits_decoded. x2 = ff_q_lemma_endpoint_local_bit_count_bits_decoded * S ((S (ff_i_lemma_endpoint_local_bit_count_bits)) * x3) + (ff_bit_lemma_endpoint_local_bit_count_bits))) /\ (ff_bit_lemma_endpoint_local_bit_count_bits = 0 \/ ff_bit_lemma_endpoint_local_bit_count_bits = 1))))) - 0030
specialize gauss_signed_half_bit_count_exists p - 0031
specialize gauss_signed_half_bit_count_exists h - 0032
specialize gauss_signed_half_bit_count_exists a - 0033
specialize gauss_signed_half_bit_count_exists b - 0034
specialize gauss_signed_half_bit_count_exists c - 0035
specialize gauss_signed_half_bit_count_exists x - 0036
specialize gauss_signed_half_bit_count_exists x1 - 0037
specialize gauss_signed_half_bit_count_exists x2 - 0038
specialize gauss_signed_half_bit_count_exists x3 - 0039
specialize gauss_signed_half_bit_count_exists h - 0040
apply gauss_signed_half_bit_count_exists - 0041
exact hsigned_exists_witness_witness_witness_witness - 0042
cases hcount_exists - 0043
have hmagnitude_range : forall gmp_index_lemma_endpoint_magnitude_range. (exists gsp_lt_gap_lemma_endpoint_magnitude_range_index_bound. gsp_lt_gap_lemma_endpoint_magnitude_range_index_bound + S gmp_index_lemma_endpoint_magnitude_range = h) -> exists gmp_magnitude_lemma_endpoint_magnitude_range. ((((exists ff_h_gmp_lemma_endpoint_magnitude_range_decoded. ff_h_gmp_lemma_endpoint_magnitude_range_decoded + S (gmp_magnitude_lemma_endpoint_magnitude_range) = S ((S (gmp_index_lemma_endpoint_magnitude_range)) * x1)) /\ exists ff_q_gmp_lemma_endpoint_magnitude_range_decoded. x = ff_q_gmp_lemma_endpoint_magnitude_range_decoded * S ((S (gmp_index_lemma_endpoint_magnitude_range)) * x1) + (gmp_magnitude_lemma_endpoint_magnitude_range))) /\ ((exists gsp_lt_gap_lemma_endpoint_magnitude_range_positive. gsp_lt_gap_lemma_endpoint_magnitude_range_positive + S 0 = gmp_magnitude_lemma_endpoint_magnitude_range) /\ (exists gsp_le_gap_lemma_endpoint_magnitude_range_bounded. gsp_le_gap_lemma_endpoint_magnitude_range_bounded + gmp_magnitude_lemma_endpoint_magnitude_range = h))) - 0044
specialize gauss_signed_half_magnitude_range p - 0045
specialize gauss_signed_half_magnitude_range h - 0046
specialize gauss_signed_half_magnitude_range a - 0047
specialize gauss_signed_half_magnitude_range b - 0048
specialize gauss_signed_half_magnitude_range c - 0049
specialize gauss_signed_half_magnitude_range x - 0050
specialize gauss_signed_half_magnitude_range x1 - 0051
specialize gauss_signed_half_magnitude_range x2 - 0052
specialize gauss_signed_half_magnitude_range x3 - 0053
specialize gauss_signed_half_magnitude_range h - 0054
apply gauss_signed_half_magnitude_range - 0055
exact hsigned_exists_witness_witness_witness_witness - 0056
have hmagnitude_injective : forall fp_i_lemma_endpoint_magnitude_injective fp_j_lemma_endpoint_magnitude_injective fp_value_lemma_endpoint_magnitude_injective. (exists fp_gap_lemma_endpoint_magnitude_injective_i. fp_gap_lemma_endpoint_magnitude_injective_i + S fp_i_lemma_endpoint_magnitude_injective = h) -> (exists fp_gap_lemma_endpoint_magnitude_injective_j. fp_gap_lemma_endpoint_magnitude_injective_j + S fp_j_lemma_endpoint_magnitude_injective = h) -> (((exists ff_h_lemma_endpoint_magnitude_injective_left. ff_h_lemma_endpoint_magnitude_injective_left + S (fp_value_lemma_endpoint_magnitude_injective) = S ((S (fp_i_lemma_endpoint_magnitude_injective)) * x1)) /\ exists ff_q_lemma_endpoint_magnitude_injective_left. x = ff_q_lemma_endpoint_magnitude_injective_left * S ((S (fp_i_lemma_endpoint_magnitude_injective)) * x1) + (fp_value_lemma_endpoint_magnitude_injective))) -> (((exists ff_h_lemma_endpoint_magnitude_injective_right. ff_h_lemma_endpoint_magnitude_injective_right + S (fp_value_lemma_endpoint_magnitude_injective) = S ((S (fp_j_lemma_endpoint_magnitude_injective)) * x1)) /\ exists ff_q_lemma_endpoint_magnitude_injective_right. x = ff_q_lemma_endpoint_magnitude_injective_right * S ((S (fp_j_lemma_endpoint_magnitude_injective)) * x1) + (fp_value_lemma_endpoint_magnitude_injective))) -> fp_i_lemma_endpoint_magnitude_injective = fp_j_lemma_endpoint_magnitude_injective - 0057
specialize gauss_signed_half_magnitude_injective p - 0058
specialize gauss_signed_half_magnitude_injective h - 0059
specialize gauss_signed_half_magnitude_injective a - 0060
specialize gauss_signed_half_magnitude_injective b - 0061
specialize gauss_signed_half_magnitude_injective c - 0062
specialize gauss_signed_half_magnitude_injective x - 0063
specialize gauss_signed_half_magnitude_injective x1 - 0064
specialize gauss_signed_half_magnitude_injective x2 - 0065
specialize gauss_signed_half_magnitude_injective x3 - 0066
apply gauss_signed_half_magnitude_injective - 0067
exact hpodd - 0068
exact hprime - 0069
exact hnotdiv - 0070
exact hhalf - 0071
exact hsigned_exists_witness_witness_witness_witness - 0072
have hrecode_exists : exists rb rc. (forall gmp_index_lemma_endpoint_predecessor_recode gmp_predecessor_lemma_endpoint_predecessor_recode. (exists gsp_lt_gap_lemma_endpoint_predecessor_recode_index_bound. gsp_lt_gap_lemma_endpoint_predecessor_recode_index_bound + S gmp_index_lemma_endpoint_predecessor_recode = h) -> (((exists gsp_beta_height_gmp_lemma_endpoint_predecessor_recode_source. gsp_beta_height_gmp_lemma_endpoint_predecessor_recode_source + S (S gmp_predecessor_lemma_endpoint_predecessor_recode) = S ((S (gmp_index_lemma_endpoint_predecessor_recode)) * x1)) /\ exists gsp_beta_quotient_gmp_lemma_endpoint_predecessor_recode_source. x = gsp_beta_quotient_gmp_lemma_endpoint_predecessor_recode_source * S ((S (gmp_index_lemma_endpoint_predecessor_recode)) * x1) + (S gmp_predecessor_lemma_endpoint_predecessor_recode))) -> (((exists ff_h_gmp_lemma_endpoint_predecessor_recode_target. ff_h_gmp_lemma_endpoint_predecessor_recode_target + S (gmp_predecessor_lemma_endpoint_predecessor_recode) = S ((S (gmp_index_lemma_endpoint_predecessor_recode)) * rc)) /\ exists ff_q_gmp_lemma_endpoint_predecessor_recode_target. rb = ff_q_gmp_lemma_endpoint_predecessor_recode_target * S ((S (gmp_index_lemma_endpoint_predecessor_recode)) * rc) + (gmp_predecessor_lemma_endpoint_predecessor_recode)))) - 0073
specialize gauss_signed_half_predecessor_recode_exists p - 0074
specialize gauss_signed_half_predecessor_recode_exists h - 0075
specialize gauss_signed_half_predecessor_recode_exists a - 0076
specialize gauss_signed_half_predecessor_recode_exists b - 0077
specialize gauss_signed_half_predecessor_recode_exists c - 0078
specialize gauss_signed_half_predecessor_recode_exists x - 0079
specialize gauss_signed_half_predecessor_recode_exists x1 - 0080
specialize gauss_signed_half_predecessor_recode_exists x2 - 0081
specialize gauss_signed_half_predecessor_recode_exists x3 - 0082
apply gauss_signed_half_predecessor_recode_exists - 0083
exact hsigned_exists_witness_witness_witness_witness - 0084
cases hrecode_exists - 0085
cases hrecode_exists_witness - 0086
have hcanonical_product_exists : exists P. (exists ff_u_lemma_endpoint_canonical_product ff_v_lemma_endpoint_canonical_product. ((((exists ff_h_lemma_endpoint_canonical_product_start. ff_h_lemma_endpoint_canonical_product_start + S (1) = S ((S (0)) * ff_v_lemma_endpoint_canonical_product)) /\ exists ff_q_lemma_endpoint_canonical_product_start. ff_u_lemma_endpoint_canonical_product = ff_q_lemma_endpoint_canonical_product_start * S ((S (0)) * ff_v_lemma_endpoint_canonical_product) + (1))) /\ ((((exists ff_h_lemma_endpoint_canonical_product_terminal. ff_h_lemma_endpoint_canonical_product_terminal + S (P) = S ((S (h)) * ff_v_lemma_endpoint_canonical_product)) /\ exists ff_q_lemma_endpoint_canonical_product_terminal. ff_u_lemma_endpoint_canonical_product = ff_q_lemma_endpoint_canonical_product_terminal * S ((S (h)) * ff_v_lemma_endpoint_canonical_product) + (P))) /\ forall ff_i_lemma_endpoint_canonical_product. (exists ff_lt_lemma_endpoint_canonical_product_bound. ff_lt_lemma_endpoint_canonical_product_bound + S ff_i_lemma_endpoint_canonical_product = h) -> exists ff_p_lemma_endpoint_canonical_product ff_r_lemma_endpoint_canonical_product ff_s_lemma_endpoint_canonical_product. ((((exists ff_h_lemma_endpoint_canonical_product_factor. ff_h_lemma_endpoint_canonical_product_factor + S (ff_p_lemma_endpoint_canonical_product) = S ((S (ff_i_lemma_endpoint_canonical_product)) * c)) /\ exists ff_q_lemma_endpoint_canonical_product_factor. b = ff_q_lemma_endpoint_canonical_product_factor * S ((S (ff_i_lemma_endpoint_canonical_product)) * c) + (ff_p_lemma_endpoint_canonical_product))) /\ ((((exists ff_h_lemma_endpoint_canonical_product_partial. ff_h_lemma_endpoint_canonical_product_partial + S (ff_r_lemma_endpoint_canonical_product) = S ((S (ff_i_lemma_endpoint_canonical_product)) * ff_v_lemma_endpoint_canonical_product)) /\ exists ff_q_lemma_endpoint_canonical_product_partial. ff_u_lemma_endpoint_canonical_product = ff_q_lemma_endpoint_canonical_product_partial * S ((S (ff_i_lemma_endpoint_canonical_product)) * ff_v_lemma_endpoint_canonical_product) + (ff_r_lemma_endpoint_canonical_product))) /\ ((((exists ff_h_lemma_endpoint_canonical_product_successor. ff_h_lemma_endpoint_canonical_product_successor + S (ff_s_lemma_endpoint_canonical_product) = S ((S (S ff_i_lemma_endpoint_canonical_product)) * ff_v_lemma_endpoint_canonical_product)) /\ exists ff_q_lemma_endpoint_canonical_product_successor. ff_u_lemma_endpoint_canonical_product = ff_q_lemma_endpoint_canonical_product_successor * S ((S (S ff_i_lemma_endpoint_canonical_product)) * ff_v_lemma_endpoint_canonical_product) + (ff_s_lemma_endpoint_canonical_product))) /\ ff_s_lemma_endpoint_canonical_product = ff_r_lemma_endpoint_canonical_product * ff_p_lemma_endpoint_canonical_product)))))) - 0087
specialize beta_product_exists b - 0088
specialize beta_product_exists c - 0089
specialize beta_product_exists h - 0090
exact beta_product_exists - 0091
cases hcanonical_product_exists - 0092
have hmagnitude_product_exists : exists M. (exists ff_u_lemma_endpoint_magnitude_product ff_v_lemma_endpoint_magnitude_product. ((((exists ff_h_lemma_endpoint_magnitude_product_start. ff_h_lemma_endpoint_magnitude_product_start + S (1) = S ((S (0)) * ff_v_lemma_endpoint_magnitude_product)) /\ exists ff_q_lemma_endpoint_magnitude_product_start. ff_u_lemma_endpoint_magnitude_product = ff_q_lemma_endpoint_magnitude_product_start * S ((S (0)) * ff_v_lemma_endpoint_magnitude_product) + (1))) /\ ((((exists ff_h_lemma_endpoint_magnitude_product_terminal. ff_h_lemma_endpoint_magnitude_product_terminal + S (M) = S ((S (h)) * ff_v_lemma_endpoint_magnitude_product)) /\ exists ff_q_lemma_endpoint_magnitude_product_terminal. ff_u_lemma_endpoint_magnitude_product = ff_q_lemma_endpoint_magnitude_product_terminal * S ((S (h)) * ff_v_lemma_endpoint_magnitude_product) + (M))) /\ forall ff_i_lemma_endpoint_magnitude_product. (exists ff_lt_lemma_endpoint_magnitude_product_bound. ff_lt_lemma_endpoint_magnitude_product_bound + S ff_i_lemma_endpoint_magnitude_product = h) -> exists ff_p_lemma_endpoint_magnitude_product ff_r_lemma_endpoint_magnitude_product ff_s_lemma_endpoint_magnitude_product. ((((exists ff_h_lemma_endpoint_magnitude_product_factor. ff_h_lemma_endpoint_magnitude_product_factor + S (ff_p_lemma_endpoint_magnitude_product) = S ((S (ff_i_lemma_endpoint_magnitude_product)) * x1)) /\ exists ff_q_lemma_endpoint_magnitude_product_factor. x = ff_q_lemma_endpoint_magnitude_product_factor * S ((S (ff_i_lemma_endpoint_magnitude_product)) * x1) + (ff_p_lemma_endpoint_magnitude_product))) /\ ((((exists ff_h_lemma_endpoint_magnitude_product_partial. ff_h_lemma_endpoint_magnitude_product_partial + S (ff_r_lemma_endpoint_magnitude_product) = S ((S (ff_i_lemma_endpoint_magnitude_product)) * ff_v_lemma_endpoint_magnitude_product)) /\ exists ff_q_lemma_endpoint_magnitude_product_partial. ff_u_lemma_endpoint_magnitude_product = ff_q_lemma_endpoint_magnitude_product_partial * S ((S (ff_i_lemma_endpoint_magnitude_product)) * ff_v_lemma_endpoint_magnitude_product) + (ff_r_lemma_endpoint_magnitude_product))) /\ ((((exists ff_h_lemma_endpoint_magnitude_product_successor. ff_h_lemma_endpoint_magnitude_product_successor + S (ff_s_lemma_endpoint_magnitude_product) = S ((S (S ff_i_lemma_endpoint_magnitude_product)) * ff_v_lemma_endpoint_magnitude_product)) /\ exists ff_q_lemma_endpoint_magnitude_product_successor. ff_u_lemma_endpoint_magnitude_product = ff_q_lemma_endpoint_magnitude_product_successor * S ((S (S ff_i_lemma_endpoint_magnitude_product)) * ff_v_lemma_endpoint_magnitude_product) + (ff_s_lemma_endpoint_magnitude_product))) /\ ff_s_lemma_endpoint_magnitude_product = ff_r_lemma_endpoint_magnitude_product * ff_p_lemma_endpoint_magnitude_product)))))) - 0093
specialize beta_product_exists x - 0094
specialize beta_product_exists x1 - 0095
specialize beta_product_exists h - 0096
exact beta_product_exists - 0097
cases hmagnitude_product_exists - 0098
have hsign_package : exists fb fc Sprod R. ((forall gspf_index_lemma_endpoint_sign_factors_expanded gspf_bit_lemma_endpoint_sign_factors_expanded. (exists gsp_lt_gap_lemma_endpoint_sign_factors_expanded_bound. gsp_lt_gap_lemma_endpoint_sign_factors_expanded_bound + S gspf_index_lemma_endpoint_sign_factors_expanded = h) -> (((exists ff_h_gspf_lemma_endpoint_sign_factors_expanded_bit. ff_h_gspf_lemma_endpoint_sign_factors_expanded_bit + S (gspf_bit_lemma_endpoint_sign_factors_expanded) = S ((S (gspf_index_lemma_endpoint_sign_factors_expanded)) * x3)) /\ exists ff_q_gspf_lemma_endpoint_sign_factors_expanded_bit. x2 = ff_q_gspf_lemma_endpoint_sign_factors_expanded_bit * S ((S (gspf_index_lemma_endpoint_sign_factors_expanded)) * x3) + (gspf_bit_lemma_endpoint_sign_factors_expanded))) -> (((gspf_bit_lemma_endpoint_sign_factors_expanded = 0) /\ (((exists gsp_beta_height_gspf_lemma_endpoint_sign_factors_expanded_one. gsp_beta_height_gspf_lemma_endpoint_sign_factors_expanded_one + S (1) = S ((S (gspf_index_lemma_endpoint_sign_factors_expanded)) * fc)) /\ exists gsp_beta_quotient_gspf_lemma_endpoint_sign_factors_expanded_one. fb = gsp_beta_quotient_gspf_lemma_endpoint_sign_factors_expanded_one * S ((S (gspf_index_lemma_endpoint_sign_factors_expanded)) * fc) + (1)))) \/ ((gspf_bit_lemma_endpoint_sign_factors_expanded = 1) /\ (((exists ff_h_gspf_lemma_endpoint_sign_factors_expanded_predecessor. ff_h_gspf_lemma_endpoint_sign_factors_expanded_predecessor + S ((2 * h)) = S ((S (gspf_index_lemma_endpoint_sign_factors_expanded)) * fc)) /\ exists ff_q_gspf_lemma_endpoint_sign_factors_expanded_predecessor. fb = ff_q_gspf_lemma_endpoint_sign_factors_expanded_predecessor * S ((S (gspf_index_lemma_endpoint_sign_factors_expanded)) * fc) + ((2 * h))))))) /\ ((exists ff_u_lemma_endpoint_sign_product ff_v_lemma_endpoint_sign_product. ((((exists ff_h_lemma_endpoint_sign_product_start. ff_h_lemma_endpoint_sign_product_start + S (1) = S ((S (0)) * ff_v_lemma_endpoint_sign_product)) /\ exists ff_q_lemma_endpoint_sign_product_start. ff_u_lemma_endpoint_sign_product = ff_q_lemma_endpoint_sign_product_start * S ((S (0)) * ff_v_lemma_endpoint_sign_product) + (1))) /\ ((((exists ff_h_lemma_endpoint_sign_product_terminal. ff_h_lemma_endpoint_sign_product_terminal + S (Sprod) = S ((S (h)) * ff_v_lemma_endpoint_sign_product)) /\ exists ff_q_lemma_endpoint_sign_product_terminal. ff_u_lemma_endpoint_sign_product = ff_q_lemma_endpoint_sign_product_terminal * S ((S (h)) * ff_v_lemma_endpoint_sign_product) + (Sprod))) /\ forall ff_i_lemma_endpoint_sign_product. (exists ff_lt_lemma_endpoint_sign_product_bound. ff_lt_lemma_endpoint_sign_product_bound + S ff_i_lemma_endpoint_sign_product = h) -> exists ff_p_lemma_endpoint_sign_product ff_r_lemma_endpoint_sign_product ff_s_lemma_endpoint_sign_product. ((((exists ff_h_lemma_endpoint_sign_product_factor. ff_h_lemma_endpoint_sign_product_factor + S (ff_p_lemma_endpoint_sign_product) = S ((S (ff_i_lemma_endpoint_sign_product)) * fc)) /\ exists ff_q_lemma_endpoint_sign_product_factor. fb = ff_q_lemma_endpoint_sign_product_factor * S ((S (ff_i_lemma_endpoint_sign_product)) * fc) + (ff_p_lemma_endpoint_sign_product))) /\ ((((exists ff_h_lemma_endpoint_sign_product_partial. ff_h_lemma_endpoint_sign_product_partial + S (ff_r_lemma_endpoint_sign_product) = S ((S (ff_i_lemma_endpoint_sign_product)) * ff_v_lemma_endpoint_sign_product)) /\ exists ff_q_lemma_endpoint_sign_product_partial. ff_u_lemma_endpoint_sign_product = ff_q_lemma_endpoint_sign_product_partial * S ((S (ff_i_lemma_endpoint_sign_product)) * ff_v_lemma_endpoint_sign_product) + (ff_r_lemma_endpoint_sign_product))) /\ ((((exists ff_h_lemma_endpoint_sign_product_successor. ff_h_lemma_endpoint_sign_product_successor + S (ff_s_lemma_endpoint_sign_product) = S ((S (S ff_i_lemma_endpoint_sign_product)) * ff_v_lemma_endpoint_sign_product)) /\ exists ff_q_lemma_endpoint_sign_product_successor. ff_u_lemma_endpoint_sign_product = ff_q_lemma_endpoint_sign_product_successor * S ((S (S ff_i_lemma_endpoint_sign_product)) * ff_v_lemma_endpoint_sign_product) + (ff_s_lemma_endpoint_sign_product))) /\ ff_s_lemma_endpoint_sign_product = ff_r_lemma_endpoint_sign_product * ff_p_lemma_endpoint_sign_product)))))) /\ ((exists ff_b_lemma_endpoint_sign_power_expanded ff_c_lemma_endpoint_sign_power_expanded. ((forall ff_i_lemma_endpoint_sign_power_expanded_repeat. (exists ff_lt_lemma_endpoint_sign_power_expanded_repeat_bound. ff_lt_lemma_endpoint_sign_power_expanded_repeat_bound + S ff_i_lemma_endpoint_sign_power_expanded_repeat = x4) -> (((exists ff_h_lemma_endpoint_sign_power_expanded_repeat_decoded. ff_h_lemma_endpoint_sign_power_expanded_repeat_decoded + S ((2 * h)) = S ((S (ff_i_lemma_endpoint_sign_power_expanded_repeat)) * ff_c_lemma_endpoint_sign_power_expanded)) /\ exists ff_q_lemma_endpoint_sign_power_expanded_repeat_decoded. ff_b_lemma_endpoint_sign_power_expanded = ff_q_lemma_endpoint_sign_power_expanded_repeat_decoded * S ((S (ff_i_lemma_endpoint_sign_power_expanded_repeat)) * ff_c_lemma_endpoint_sign_power_expanded) + ((2 * h))))) /\ (exists ff_u_lemma_endpoint_sign_power_expanded_product ff_v_lemma_endpoint_sign_power_expanded_product. ((((exists ff_h_lemma_endpoint_sign_power_expanded_product_start. ff_h_lemma_endpoint_sign_power_expanded_product_start + S (1) = S ((S (0)) * ff_v_lemma_endpoint_sign_power_expanded_product)) /\ exists ff_q_lemma_endpoint_sign_power_expanded_product_start. ff_u_lemma_endpoint_sign_power_expanded_product = ff_q_lemma_endpoint_sign_power_expanded_product_start * S ((S (0)) * ff_v_lemma_endpoint_sign_power_expanded_product) + (1))) /\ ((((exists ff_h_lemma_endpoint_sign_power_expanded_product_terminal. ff_h_lemma_endpoint_sign_power_expanded_product_terminal + S (R) = S ((S (x4)) * ff_v_lemma_endpoint_sign_power_expanded_product)) /\ exists ff_q_lemma_endpoint_sign_power_expanded_product_terminal. ff_u_lemma_endpoint_sign_power_expanded_product = ff_q_lemma_endpoint_sign_power_expanded_product_terminal * S ((S (x4)) * ff_v_lemma_endpoint_sign_power_expanded_product) + (R))) /\ forall ff_i_lemma_endpoint_sign_power_expanded_product. (exists ff_lt_lemma_endpoint_sign_power_expanded_product_bound. ff_lt_lemma_endpoint_sign_power_expanded_product_bound + S ff_i_lemma_endpoint_sign_power_expanded_product = x4) -> exists ff_p_lemma_endpoint_sign_power_expanded_product ff_r_lemma_endpoint_sign_power_expanded_product ff_s_lemma_endpoint_sign_power_expanded_product. ((((exists ff_h_lemma_endpoint_sign_power_expanded_product_factor. ff_h_lemma_endpoint_sign_power_expanded_product_factor + S (ff_p_lemma_endpoint_sign_power_expanded_product) = S ((S (ff_i_lemma_endpoint_sign_power_expanded_product)) * ff_c_lemma_endpoint_sign_power_expanded)) /\ exists ff_q_lemma_endpoint_sign_power_expanded_product_factor. ff_b_lemma_endpoint_sign_power_expanded = ff_q_lemma_endpoint_sign_power_expanded_product_factor * S ((S (ff_i_lemma_endpoint_sign_power_expanded_product)) * ff_c_lemma_endpoint_sign_power_expanded) + (ff_p_lemma_endpoint_sign_power_expanded_product))) /\ ((((exists ff_h_lemma_endpoint_sign_power_expanded_product_partial. ff_h_lemma_endpoint_sign_power_expanded_product_partial + S (ff_r_lemma_endpoint_sign_power_expanded_product) = S ((S (ff_i_lemma_endpoint_sign_power_expanded_product)) * ff_v_lemma_endpoint_sign_power_expanded_product)) /\ exists ff_q_lemma_endpoint_sign_power_expanded_product_partial. ff_u_lemma_endpoint_sign_power_expanded_product = ff_q_lemma_endpoint_sign_power_expanded_product_partial * S ((S (ff_i_lemma_endpoint_sign_power_expanded_product)) * ff_v_lemma_endpoint_sign_power_expanded_product) + (ff_r_lemma_endpoint_sign_power_expanded_product))) /\ ((((exists ff_h_lemma_endpoint_sign_power_expanded_product_successor. ff_h_lemma_endpoint_sign_power_expanded_product_successor + S (ff_s_lemma_endpoint_sign_power_expanded_product) = S ((S (S ff_i_lemma_endpoint_sign_power_expanded_product)) * ff_v_lemma_endpoint_sign_power_expanded_product)) /\ exists ff_q_lemma_endpoint_sign_power_expanded_product_successor. ff_u_lemma_endpoint_sign_power_expanded_product = ff_q_lemma_endpoint_sign_power_expanded_product_successor * S ((S (S ff_i_lemma_endpoint_sign_power_expanded_product)) * ff_v_lemma_endpoint_sign_power_expanded_product) + (ff_s_lemma_endpoint_sign_power_expanded_product))) /\ ff_s_lemma_endpoint_sign_power_expanded_product = ff_r_lemma_endpoint_sign_power_expanded_product * ff_p_lemma_endpoint_sign_power_expanded_product)))))))) /\ Sprod = R))) - 0099
specialize beta_sign_factor_product_power_exists p - 0100
specialize beta_sign_factor_product_power_exists (2 * h) - 0101
specialize beta_sign_factor_product_power_exists x2 - 0102
specialize beta_sign_factor_product_power_exists x3 - 0103
specialize beta_sign_factor_product_power_exists h - 0104
specialize beta_sign_factor_product_power_exists x4 - 0105
apply beta_sign_factor_product_power_exists - 0106
exact hpsucc - 0107
exact hcount_exists_witness - 0108
cases hsign_package - 0109
cases hsign_package_witness - 0110
cases hsign_package_witness_witness - 0111
cases hsign_package_witness_witness_witness - 0112
cases hsign_package_witness_witness_witness_witness - 0113
cases hsign_package_witness_witness_witness_witness_right - 0114
cases hsign_package_witness_witness_witness_witness_right_right - 0115
have hpointwise_package : exists tb tc T. ((forall fpmp_index_lemma_endpoint_pointwise_products fpmp_left_lemma_endpoint_pointwise_products fpmp_right_lemma_endpoint_pointwise_products fpmp_target_lemma_endpoint_pointwise_products. (exists fpmp_gap_lemma_endpoint_pointwise_products. fpmp_gap_lemma_endpoint_pointwise_products + S fpmp_index_lemma_endpoint_pointwise_products = h) -> (((exists ff_h_fpmp_lemma_endpoint_pointwise_products_left. ff_h_fpmp_lemma_endpoint_pointwise_products_left + S (fpmp_left_lemma_endpoint_pointwise_products) = S ((S (fpmp_index_lemma_endpoint_pointwise_products)) * x1)) /\ exists ff_q_fpmp_lemma_endpoint_pointwise_products_left. x = ff_q_fpmp_lemma_endpoint_pointwise_products_left * S ((S (fpmp_index_lemma_endpoint_pointwise_products)) * x1) + (fpmp_left_lemma_endpoint_pointwise_products))) -> (((exists ff_h_fpmp_lemma_endpoint_pointwise_products_right. ff_h_fpmp_lemma_endpoint_pointwise_products_right + S (fpmp_right_lemma_endpoint_pointwise_products) = S ((S (fpmp_index_lemma_endpoint_pointwise_products)) * x10)) /\ exists ff_q_fpmp_lemma_endpoint_pointwise_products_right. x9 = ff_q_fpmp_lemma_endpoint_pointwise_products_right * S ((S (fpmp_index_lemma_endpoint_pointwise_products)) * x10) + (fpmp_right_lemma_endpoint_pointwise_products))) -> (((exists ff_h_fpmp_lemma_endpoint_pointwise_products_target. ff_h_fpmp_lemma_endpoint_pointwise_products_target + S (fpmp_target_lemma_endpoint_pointwise_products) = S ((S (fpmp_index_lemma_endpoint_pointwise_products)) * tc)) /\ exists ff_q_fpmp_lemma_endpoint_pointwise_products_target. tb = ff_q_fpmp_lemma_endpoint_pointwise_products_target * S ((S (fpmp_index_lemma_endpoint_pointwise_products)) * tc) + (fpmp_target_lemma_endpoint_pointwise_products))) -> fpmp_target_lemma_endpoint_pointwise_products = fpmp_left_lemma_endpoint_pointwise_products * fpmp_right_lemma_endpoint_pointwise_products) /\ ((exists ff_u_lemma_endpoint_target_product ff_v_lemma_endpoint_target_product. ((((exists ff_h_lemma_endpoint_target_product_start. ff_h_lemma_endpoint_target_product_start + S (1) = S ((S (0)) * ff_v_lemma_endpoint_target_product)) /\ exists ff_q_lemma_endpoint_target_product_start. ff_u_lemma_endpoint_target_product = ff_q_lemma_endpoint_target_product_start * S ((S (0)) * ff_v_lemma_endpoint_target_product) + (1))) /\ ((((exists ff_h_lemma_endpoint_target_product_terminal. ff_h_lemma_endpoint_target_product_terminal + S (T) = S ((S (h)) * ff_v_lemma_endpoint_target_product)) /\ exists ff_q_lemma_endpoint_target_product_terminal. ff_u_lemma_endpoint_target_product = ff_q_lemma_endpoint_target_product_terminal * S ((S (h)) * ff_v_lemma_endpoint_target_product) + (T))) /\ forall ff_i_lemma_endpoint_target_product. (exists ff_lt_lemma_endpoint_target_product_bound. ff_lt_lemma_endpoint_target_product_bound + S ff_i_lemma_endpoint_target_product = h) -> exists ff_p_lemma_endpoint_target_product ff_r_lemma_endpoint_target_product ff_s_lemma_endpoint_target_product. ((((exists ff_h_lemma_endpoint_target_product_factor. ff_h_lemma_endpoint_target_product_factor + S (ff_p_lemma_endpoint_target_product) = S ((S (ff_i_lemma_endpoint_target_product)) * tc)) /\ exists ff_q_lemma_endpoint_target_product_factor. tb = ff_q_lemma_endpoint_target_product_factor * S ((S (ff_i_lemma_endpoint_target_product)) * tc) + (ff_p_lemma_endpoint_target_product))) /\ ((((exists ff_h_lemma_endpoint_target_product_partial. ff_h_lemma_endpoint_target_product_partial + S (ff_r_lemma_endpoint_target_product) = S ((S (ff_i_lemma_endpoint_target_product)) * ff_v_lemma_endpoint_target_product)) /\ exists ff_q_lemma_endpoint_target_product_partial. ff_u_lemma_endpoint_target_product = ff_q_lemma_endpoint_target_product_partial * S ((S (ff_i_lemma_endpoint_target_product)) * ff_v_lemma_endpoint_target_product) + (ff_r_lemma_endpoint_target_product))) /\ ((((exists ff_h_lemma_endpoint_target_product_successor. ff_h_lemma_endpoint_target_product_successor + S (ff_s_lemma_endpoint_target_product) = S ((S (S ff_i_lemma_endpoint_target_product)) * ff_v_lemma_endpoint_target_product)) /\ exists ff_q_lemma_endpoint_target_product_successor. ff_u_lemma_endpoint_target_product = ff_q_lemma_endpoint_target_product_successor * S ((S (S ff_i_lemma_endpoint_target_product)) * ff_v_lemma_endpoint_target_product) + (ff_s_lemma_endpoint_target_product))) /\ ff_s_lemma_endpoint_target_product = ff_r_lemma_endpoint_target_product * ff_p_lemma_endpoint_target_product)))))) /\ T = x8 * x11)) - 0116
specialize beta_pointwise_mul_product_exists x - 0117
specialize beta_pointwise_mul_product_exists x1 - 0118
specialize beta_pointwise_mul_product_exists x9 - 0119
specialize beta_pointwise_mul_product_exists x10 - 0120
specialize beta_pointwise_mul_product_exists h - 0121
specialize beta_pointwise_mul_product_exists x8 - 0122
specialize beta_pointwise_mul_product_exists x11 - 0123
apply beta_pointwise_mul_product_exists - 0124
exact hmagnitude_product_exists_witness - 0125
exact hsign_package_witness_witness_witness_witness_right_left - 0126
cases hpointwise_package - 0127
cases hpointwise_package_witness - 0128
cases hpointwise_package_witness_witness - 0129
cases hpointwise_package_witness_witness_witness - 0130
cases hpointwise_package_witness_witness_witness_right - 0131
have hmultiplier_power_exists : exists A. (exists ff_b_lemma_endpoint_multiplier_power ff_c_lemma_endpoint_multiplier_power. ((forall ff_i_lemma_endpoint_multiplier_power_repeat. (exists ff_lt_lemma_endpoint_multiplier_power_repeat_bound. ff_lt_lemma_endpoint_multiplier_power_repeat_bound + S ff_i_lemma_endpoint_multiplier_power_repeat = h) -> (((exists ff_h_lemma_endpoint_multiplier_power_repeat_decoded. ff_h_lemma_endpoint_multiplier_power_repeat_decoded + S (a) = S ((S (ff_i_lemma_endpoint_multiplier_power_repeat)) * ff_c_lemma_endpoint_multiplier_power)) /\ exists ff_q_lemma_endpoint_multiplier_power_repeat_decoded. ff_b_lemma_endpoint_multiplier_power = ff_q_lemma_endpoint_multiplier_power_repeat_decoded * S ((S (ff_i_lemma_endpoint_multiplier_power_repeat)) * ff_c_lemma_endpoint_multiplier_power) + (a)))) /\ (exists ff_u_lemma_endpoint_multiplier_power_product ff_v_lemma_endpoint_multiplier_power_product. ((((exists ff_h_lemma_endpoint_multiplier_power_product_start. ff_h_lemma_endpoint_multiplier_power_product_start + S (1) = S ((S (0)) * ff_v_lemma_endpoint_multiplier_power_product)) /\ exists ff_q_lemma_endpoint_multiplier_power_product_start. ff_u_lemma_endpoint_multiplier_power_product = ff_q_lemma_endpoint_multiplier_power_product_start * S ((S (0)) * ff_v_lemma_endpoint_multiplier_power_product) + (1))) /\ ((((exists ff_h_lemma_endpoint_multiplier_power_product_terminal. ff_h_lemma_endpoint_multiplier_power_product_terminal + S (A) = S ((S (h)) * ff_v_lemma_endpoint_multiplier_power_product)) /\ exists ff_q_lemma_endpoint_multiplier_power_product_terminal. ff_u_lemma_endpoint_multiplier_power_product = ff_q_lemma_endpoint_multiplier_power_product_terminal * S ((S (h)) * ff_v_lemma_endpoint_multiplier_power_product) + (A))) /\ forall ff_i_lemma_endpoint_multiplier_power_product. (exists ff_lt_lemma_endpoint_multiplier_power_product_bound. ff_lt_lemma_endpoint_multiplier_power_product_bound + S ff_i_lemma_endpoint_multiplier_power_product = h) -> exists ff_p_lemma_endpoint_multiplier_power_product ff_r_lemma_endpoint_multiplier_power_product ff_s_lemma_endpoint_multiplier_power_product. ((((exists ff_h_lemma_endpoint_multiplier_power_product_factor. ff_h_lemma_endpoint_multiplier_power_product_factor + S (ff_p_lemma_endpoint_multiplier_power_product) = S ((S (ff_i_lemma_endpoint_multiplier_power_product)) * ff_c_lemma_endpoint_multiplier_power)) /\ exists ff_q_lemma_endpoint_multiplier_power_product_factor. ff_b_lemma_endpoint_multiplier_power = ff_q_lemma_endpoint_multiplier_power_product_factor * S ((S (ff_i_lemma_endpoint_multiplier_power_product)) * ff_c_lemma_endpoint_multiplier_power) + (ff_p_lemma_endpoint_multiplier_power_product))) /\ ((((exists ff_h_lemma_endpoint_multiplier_power_product_partial. ff_h_lemma_endpoint_multiplier_power_product_partial + S (ff_r_lemma_endpoint_multiplier_power_product) = S ((S (ff_i_lemma_endpoint_multiplier_power_product)) * ff_v_lemma_endpoint_multiplier_power_product)) /\ exists ff_q_lemma_endpoint_multiplier_power_product_partial. ff_u_lemma_endpoint_multiplier_power_product = ff_q_lemma_endpoint_multiplier_power_product_partial * S ((S (ff_i_lemma_endpoint_multiplier_power_product)) * ff_v_lemma_endpoint_multiplier_power_product) + (ff_r_lemma_endpoint_multiplier_power_product))) /\ ((((exists ff_h_lemma_endpoint_multiplier_power_product_successor. ff_h_lemma_endpoint_multiplier_power_product_successor + S (ff_s_lemma_endpoint_multiplier_power_product) = S ((S (S ff_i_lemma_endpoint_multiplier_power_product)) * ff_v_lemma_endpoint_multiplier_power_product)) /\ exists ff_q_lemma_endpoint_multiplier_power_product_successor. ff_u_lemma_endpoint_multiplier_power_product = ff_q_lemma_endpoint_multiplier_power_product_successor * S ((S (S ff_i_lemma_endpoint_multiplier_power_product)) * ff_v_lemma_endpoint_multiplier_power_product) + (ff_s_lemma_endpoint_multiplier_power_product))) /\ ff_s_lemma_endpoint_multiplier_power_product = ff_r_lemma_endpoint_multiplier_power_product * ff_p_lemma_endpoint_multiplier_power_product)))))))) - 0132
specialize pow_exists a - 0133
specialize pow_exists h - 0134
exact pow_exists - 0135
cases hmultiplier_power_exists - 0136
have hcancelled : exists gle_left_lemma_endpoint_local_result gle_right_lemma_endpoint_local_result. x16 + p * gle_left_lemma_endpoint_local_result = x12 + p * gle_right_lemma_endpoint_local_result - 0137
specialize gauss_signed_products_cancel_mod p - 0138
specialize gauss_signed_products_cancel_mod h - 0139
specialize gauss_signed_products_cancel_mod (2 * h) - 0140
specialize gauss_signed_products_cancel_mod a - 0141
specialize gauss_signed_products_cancel_mod b - 0142
specialize gauss_signed_products_cancel_mod c - 0143
specialize gauss_signed_products_cancel_mod x - 0144
specialize gauss_signed_products_cancel_mod x1 - 0145
specialize gauss_signed_products_cancel_mod x5 - 0146
specialize gauss_signed_products_cancel_mod x6 - 0147
specialize gauss_signed_products_cancel_mod x2 - 0148
specialize gauss_signed_products_cancel_mod x3 - 0149
specialize gauss_signed_products_cancel_mod x9 - 0150
specialize gauss_signed_products_cancel_mod x10 - 0151
specialize gauss_signed_products_cancel_mod x13 - 0152
specialize gauss_signed_products_cancel_mod x14 - 0153
specialize gauss_signed_products_cancel_mod x4 - 0154
specialize gauss_signed_products_cancel_mod x7 - 0155
specialize gauss_signed_products_cancel_mod x8 - 0156
specialize gauss_signed_products_cancel_mod x11 - 0157
specialize gauss_signed_products_cancel_mod x15 - 0158
specialize gauss_signed_products_cancel_mod x16 - 0159
specialize gauss_signed_products_cancel_mod x12 - 0160
apply gauss_signed_products_cancel_mod - 0161
exact hprime - 0162
exact hpsucc - 0163
refl - 0164
exact hsigned_exists_witness_witness_witness_witness - 0165
exact hsign_package_witness_witness_witness_witness_left - 0166
exact hpointwise_package_witness_witness_witness_left - 0167
exact hmagnitude_range - 0168
exact hmagnitude_injective - 0169
exact hrecode_exists_witness_witness - 0170
exact hhalf - 0171
exact hcount_exists_witness - 0172
exact hcanonical_product_exists_witness - 0173
exact hmagnitude_product_exists_witness - 0174
exact hsign_package_witness_witness_witness_witness_right_left - 0175
exact hpointwise_package_witness_witness_witness_right_left - 0176
exact hmultiplier_power_exists_witness - 0177
exact hsign_package_witness_witness_witness_witness_right_right_left - 0178
exists x4 - 0179
exists x16 - 0180
exists x12 - 0181
split - 0182
exact hmultiplier_power_exists_witness - 0183
split - 0184
exact hsign_package_witness_witness_witness_witness_right_right_left - 0185
split - 0186
exists x - 0187
exists x1 - 0188
exists x2 - 0189
exists x3 - 0190
split - 0191
exact hsigned_exists_witness_witness_witness_witness - 0192
exact hcount_exists_witness - 0193
exact hcancelled