Exact expanded PA statement
forall p r sb sc l e. p = S r -> (((exists ff_u_recode_count_sum ff_v_recode_count_sum. ((((exists ff_h_recode_count_sum_start. ff_h_recode_count_sum_start + S (0) = S ((S (0)) * ff_v_recode_count_sum)) /\ exists ff_q_recode_count_sum_start. ff_u_recode_count_sum = ff_q_recode_count_sum_start * S ((S (0)) * ff_v_recode_count_sum) + (0))) /\ ((((exists ff_h_recode_count_sum_terminal. ff_h_recode_count_sum_terminal + S (e) = S ((S (l)) * ff_v_recode_count_sum)) /\ exists ff_q_recode_count_sum_terminal. ff_u_recode_count_sum = ff_q_recode_count_sum_terminal * S ((S (l)) * ff_v_recode_count_sum) + (e))) /\ forall ff_i_recode_count_sum. (exists ff_lt_recode_count_sum_bound. ff_lt_recode_count_sum_bound + S ff_i_recode_count_sum = l) -> exists ff_a_recode_count_sum ff_r_recode_count_sum ff_s_recode_count_sum. ((((exists ff_h_recode_count_sum_summand. ff_h_recode_count_sum_summand + S (ff_a_recode_count_sum) = S ((S (ff_i_recode_count_sum)) * sc)) /\ exists ff_q_recode_count_sum_summand. sb = ff_q_recode_count_sum_summand * S ((S (ff_i_recode_count_sum)) * sc) + (ff_a_recode_count_sum))) /\ ((((exists ff_h_recode_count_sum_partial. ff_h_recode_count_sum_partial + S (ff_r_recode_count_sum) = S ((S (ff_i_recode_count_sum)) * ff_v_recode_count_sum)) /\ exists ff_q_recode_count_sum_partial. ff_u_recode_count_sum = ff_q_recode_count_sum_partial * S ((S (ff_i_recode_count_sum)) * ff_v_recode_count_sum) + (ff_r_recode_count_sum))) /\ ((((exists ff_h_recode_count_sum_successor. ff_h_recode_count_sum_successor + S (ff_s_recode_count_sum) = S ((S (S ff_i_recode_count_sum)) * ff_v_recode_count_sum)) /\ exists ff_q_recode_count_sum_successor. ff_u_recode_count_sum = ff_q_recode_count_sum_successor * S ((S (S ff_i_recode_count_sum)) * ff_v_recode_count_sum) + (ff_s_recode_count_sum))) /\ ff_s_recode_count_sum = ff_r_recode_count_sum + ff_a_recode_count_sum)))))) /\ (forall ff_i_recode_count_bits. (exists ff_lt_recode_count_bits_bound. ff_lt_recode_count_bits_bound + S ff_i_recode_count_bits = l) -> exists ff_bit_recode_count_bits. ((((exists ff_h_recode_count_bits_decoded. ff_h_recode_count_bits_decoded + S (ff_bit_recode_count_bits) = S ((S (ff_i_recode_count_bits)) * sc)) /\ exists ff_q_recode_count_bits_decoded. sb = ff_q_recode_count_bits_decoded * S ((S (ff_i_recode_count_bits)) * sc) + (ff_bit_recode_count_bits))) /\ (ff_bit_recode_count_bits = 0 \/ ff_bit_recode_count_bits = 1))))) -> (exists fb fc F R. ((forall gspf_index_recode_endpoint_signs gspf_bit_recode_endpoint_signs. (exists gsp_lt_gap_recode_endpoint_signs_bound. gsp_lt_gap_recode_endpoint_signs_bound + S gspf_index_recode_endpoint_signs = l) -> (((exists ff_h_gspf_recode_endpoint_signs_bit. ff_h_gspf_recode_endpoint_signs_bit + S (gspf_bit_recode_endpoint_signs) = S ((S (gspf_index_recode_endpoint_signs)) * sc)) /\ exists ff_q_gspf_recode_endpoint_signs_bit. sb = ff_q_gspf_recode_endpoint_signs_bit * S ((S (gspf_index_recode_endpoint_signs)) * sc) + (gspf_bit_recode_endpoint_signs))) -> (((gspf_bit_recode_endpoint_signs = 0) /\ (((exists gsp_beta_height_gspf_recode_endpoint_signs_one. gsp_beta_height_gspf_recode_endpoint_signs_one + S (1) = S ((S (gspf_index_recode_endpoint_signs)) * fc)) /\ exists gsp_beta_quotient_gspf_recode_endpoint_signs_one. fb = gsp_beta_quotient_gspf_recode_endpoint_signs_one * S ((S (gspf_index_recode_endpoint_signs)) * fc) + (1)))) \/ ((gspf_bit_recode_endpoint_signs = 1) /\ (((exists ff_h_gspf_recode_endpoint_signs_predecessor. ff_h_gspf_recode_endpoint_signs_predecessor + S (r) = S ((S (gspf_index_recode_endpoint_signs)) * fc)) /\ exists ff_q_gspf_recode_endpoint_signs_predecessor. fb = ff_q_gspf_recode_endpoint_signs_predecessor * S ((S (gspf_index_recode_endpoint_signs)) * fc) + (r)))))) /\ ((exists ff_u_recode_endpoint_product ff_v_recode_endpoint_product. ((((exists ff_h_recode_endpoint_product_start. ff_h_recode_endpoint_product_start + S (1) = S ((S (0)) * ff_v_recode_endpoint_product)) /\ exists ff_q_recode_endpoint_product_start. ff_u_recode_endpoint_product = ff_q_recode_endpoint_product_start * S ((S (0)) * ff_v_recode_endpoint_product) + (1))) /\ ((((exists ff_h_recode_endpoint_product_terminal. ff_h_recode_endpoint_product_terminal + S (F) = S ((S (l)) * ff_v_recode_endpoint_product)) /\ exists ff_q_recode_endpoint_product_terminal. ff_u_recode_endpoint_product = ff_q_recode_endpoint_product_terminal * S ((S (l)) * ff_v_recode_endpoint_product) + (F))) /\ forall ff_i_recode_endpoint_product. (exists ff_lt_recode_endpoint_product_bound. ff_lt_recode_endpoint_product_bound + S ff_i_recode_endpoint_product = l) -> exists ff_p_recode_endpoint_product ff_r_recode_endpoint_product ff_s_recode_endpoint_product. ((((exists ff_h_recode_endpoint_product_factor. ff_h_recode_endpoint_product_factor + S (ff_p_recode_endpoint_product) = S ((S (ff_i_recode_endpoint_product)) * fc)) /\ exists ff_q_recode_endpoint_product_factor. fb = ff_q_recode_endpoint_product_factor * S ((S (ff_i_recode_endpoint_product)) * fc) + (ff_p_recode_endpoint_product))) /\ ((((exists ff_h_recode_endpoint_product_partial. ff_h_recode_endpoint_product_partial + S (ff_r_recode_endpoint_product) = S ((S (ff_i_recode_endpoint_product)) * ff_v_recode_endpoint_product)) /\ exists ff_q_recode_endpoint_product_partial. ff_u_recode_endpoint_product = ff_q_recode_endpoint_product_partial * S ((S (ff_i_recode_endpoint_product)) * ff_v_recode_endpoint_product) + (ff_r_recode_endpoint_product))) /\ ((((exists ff_h_recode_endpoint_product_successor. ff_h_recode_endpoint_product_successor + S (ff_s_recode_endpoint_product) = S ((S (S ff_i_recode_endpoint_product)) * ff_v_recode_endpoint_product)) /\ exists ff_q_recode_endpoint_product_successor. ff_u_recode_endpoint_product = ff_q_recode_endpoint_product_successor * S ((S (S ff_i_recode_endpoint_product)) * ff_v_recode_endpoint_product) + (ff_s_recode_endpoint_product))) /\ ff_s_recode_endpoint_product = ff_r_recode_endpoint_product * ff_p_recode_endpoint_product)))))) /\ ((exists ff_b_recode_endpoint_power ff_c_recode_endpoint_power. ((forall ff_i_recode_endpoint_power_repeat. (exists ff_lt_recode_endpoint_power_repeat_bound. ff_lt_recode_endpoint_power_repeat_bound + S ff_i_recode_endpoint_power_repeat = e) -> (((exists ff_h_recode_endpoint_power_repeat_decoded. ff_h_recode_endpoint_power_repeat_decoded + S (r) = S ((S (ff_i_recode_endpoint_power_repeat)) * ff_c_recode_endpoint_power)) /\ exists ff_q_recode_endpoint_power_repeat_decoded. ff_b_recode_endpoint_power = ff_q_recode_endpoint_power_repeat_decoded * S ((S (ff_i_recode_endpoint_power_repeat)) * ff_c_recode_endpoint_power) + (r)))) /\ (exists ff_u_recode_endpoint_power_product ff_v_recode_endpoint_power_product. ((((exists ff_h_recode_endpoint_power_product_start. ff_h_recode_endpoint_power_product_start + S (1) = S ((S (0)) * ff_v_recode_endpoint_power_product)) /\ exists ff_q_recode_endpoint_power_product_start. ff_u_recode_endpoint_power_product = ff_q_recode_endpoint_power_product_start * S ((S (0)) * ff_v_recode_endpoint_power_product) + (1))) /\ ((((exists ff_h_recode_endpoint_power_product_terminal. ff_h_recode_endpoint_power_product_terminal + S (R) = S ((S (e)) * ff_v_recode_endpoint_power_product)) /\ exists ff_q_recode_endpoint_power_product_terminal. ff_u_recode_endpoint_power_product = ff_q_recode_endpoint_power_product_terminal * S ((S (e)) * ff_v_recode_endpoint_power_product) + (R))) /\ forall ff_i_recode_endpoint_power_product. (exists ff_lt_recode_endpoint_power_product_bound. ff_lt_recode_endpoint_power_product_bound + S ff_i_recode_endpoint_power_product = e) -> exists ff_p_recode_endpoint_power_product ff_r_recode_endpoint_power_product ff_s_recode_endpoint_power_product. ((((exists ff_h_recode_endpoint_power_product_factor. ff_h_recode_endpoint_power_product_factor + S (ff_p_recode_endpoint_power_product) = S ((S (ff_i_recode_endpoint_power_product)) * ff_c_recode_endpoint_power)) /\ exists ff_q_recode_endpoint_power_product_factor. ff_b_recode_endpoint_power = ff_q_recode_endpoint_power_product_factor * S ((S (ff_i_recode_endpoint_power_product)) * ff_c_recode_endpoint_power) + (ff_p_recode_endpoint_power_product))) /\ ((((exists ff_h_recode_endpoint_power_product_partial. ff_h_recode_endpoint_power_product_partial + S (ff_r_recode_endpoint_power_product) = S ((S (ff_i_recode_endpoint_power_product)) * ff_v_recode_endpoint_power_product)) /\ exists ff_q_recode_endpoint_power_product_partial. ff_u_recode_endpoint_power_product = ff_q_recode_endpoint_power_product_partial * S ((S (ff_i_recode_endpoint_power_product)) * ff_v_recode_endpoint_power_product) + (ff_r_recode_endpoint_power_product))) /\ ((((exists ff_h_recode_endpoint_power_product_successor. ff_h_recode_endpoint_power_product_successor + S (ff_s_recode_endpoint_power_product) = S ((S (S ff_i_recode_endpoint_power_product)) * ff_v_recode_endpoint_power_product)) /\ exists ff_q_recode_endpoint_power_product_successor. ff_u_recode_endpoint_power_product = ff_q_recode_endpoint_power_product_successor * S ((S (S ff_i_recode_endpoint_power_product)) * ff_v_recode_endpoint_power_product) + (ff_s_recode_endpoint_power_product))) /\ ff_s_recode_endpoint_power_product = ff_r_recode_endpoint_power_product * ff_p_recode_endpoint_power_product)))))))) /\ F = R))))Structural proof guide
Generated structural guide
For p=S r, the recoded sign product exists and equals the relational power r^e.
Use the direct prerequisites beta_sign_factor_prefix_exists, beta_product_exists, pow_exists, beta_sign_factor_product_power as previously established PA formulas.
The proof proceeds by case analysis (4), intermediate claims (4).
Referenced ingredients
Proof neighborhood
Direct dependencies
PA007G beta_sign_factor_prefix_exists PA003X beta_product_exists PA0046 pow_exists PA007I beta_sign_factor_product_powerDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Alpha-v16 checked-use theorem is independently kernel-checked when replayed; it is not a Stable theorem.
- 0001
intro p - 0002
intro r - 0003
intro sb - 0004
intro sc - 0005
intro l - 0006
intro e - 0007
intro hp - 0008
intro hcount - 0009
have hsigns_exists : exists fb fc. (forall gspf_index_recode_endpoint_signs_exists gspf_bit_recode_endpoint_signs_exists. (exists gsp_lt_gap_recode_endpoint_signs_exists_bound. gsp_lt_gap_recode_endpoint_signs_exists_bound + S gspf_index_recode_endpoint_signs_exists = l) -> (((exists ff_h_gspf_recode_endpoint_signs_exists_bit. ff_h_gspf_recode_endpoint_signs_exists_bit + S (gspf_bit_recode_endpoint_signs_exists) = S ((S (gspf_index_recode_endpoint_signs_exists)) * sc)) /\ exists ff_q_gspf_recode_endpoint_signs_exists_bit. sb = ff_q_gspf_recode_endpoint_signs_exists_bit * S ((S (gspf_index_recode_endpoint_signs_exists)) * sc) + (gspf_bit_recode_endpoint_signs_exists))) -> (((gspf_bit_recode_endpoint_signs_exists = 0) /\ (((exists gsp_beta_height_gspf_recode_endpoint_signs_exists_one. gsp_beta_height_gspf_recode_endpoint_signs_exists_one + S (1) = S ((S (gspf_index_recode_endpoint_signs_exists)) * fc)) /\ exists gsp_beta_quotient_gspf_recode_endpoint_signs_exists_one. fb = gsp_beta_quotient_gspf_recode_endpoint_signs_exists_one * S ((S (gspf_index_recode_endpoint_signs_exists)) * fc) + (1)))) \/ ((gspf_bit_recode_endpoint_signs_exists = 1) /\ (((exists ff_h_gspf_recode_endpoint_signs_exists_predecessor. ff_h_gspf_recode_endpoint_signs_exists_predecessor + S (r) = S ((S (gspf_index_recode_endpoint_signs_exists)) * fc)) /\ exists ff_q_gspf_recode_endpoint_signs_exists_predecessor. fb = ff_q_gspf_recode_endpoint_signs_exists_predecessor * S ((S (gspf_index_recode_endpoint_signs_exists)) * fc) + (r)))))) - 0010
specialize beta_sign_factor_prefix_exists sb - 0011
specialize beta_sign_factor_prefix_exists sc - 0012
specialize beta_sign_factor_prefix_exists r - 0013
specialize beta_sign_factor_prefix_exists l - 0014
specialize beta_sign_factor_prefix_exists e - 0015
apply beta_sign_factor_prefix_exists - 0016
exact hcount - 0017
cases hsigns_exists - 0018
cases hsigns_exists_witness - 0019
have hproduct_exists : exists F. (exists ff_u_recode_endpoint_product_exists ff_v_recode_endpoint_product_exists. ((((exists ff_h_recode_endpoint_product_exists_start. ff_h_recode_endpoint_product_exists_start + S (1) = S ((S (0)) * ff_v_recode_endpoint_product_exists)) /\ exists ff_q_recode_endpoint_product_exists_start. ff_u_recode_endpoint_product_exists = ff_q_recode_endpoint_product_exists_start * S ((S (0)) * ff_v_recode_endpoint_product_exists) + (1))) /\ ((((exists ff_h_recode_endpoint_product_exists_terminal. ff_h_recode_endpoint_product_exists_terminal + S (F) = S ((S (l)) * ff_v_recode_endpoint_product_exists)) /\ exists ff_q_recode_endpoint_product_exists_terminal. ff_u_recode_endpoint_product_exists = ff_q_recode_endpoint_product_exists_terminal * S ((S (l)) * ff_v_recode_endpoint_product_exists) + (F))) /\ forall ff_i_recode_endpoint_product_exists. (exists ff_lt_recode_endpoint_product_exists_bound. ff_lt_recode_endpoint_product_exists_bound + S ff_i_recode_endpoint_product_exists = l) -> exists ff_p_recode_endpoint_product_exists ff_r_recode_endpoint_product_exists ff_s_recode_endpoint_product_exists. ((((exists ff_h_recode_endpoint_product_exists_factor. ff_h_recode_endpoint_product_exists_factor + S (ff_p_recode_endpoint_product_exists) = S ((S (ff_i_recode_endpoint_product_exists)) * x1)) /\ exists ff_q_recode_endpoint_product_exists_factor. x = ff_q_recode_endpoint_product_exists_factor * S ((S (ff_i_recode_endpoint_product_exists)) * x1) + (ff_p_recode_endpoint_product_exists))) /\ ((((exists ff_h_recode_endpoint_product_exists_partial. ff_h_recode_endpoint_product_exists_partial + S (ff_r_recode_endpoint_product_exists) = S ((S (ff_i_recode_endpoint_product_exists)) * ff_v_recode_endpoint_product_exists)) /\ exists ff_q_recode_endpoint_product_exists_partial. ff_u_recode_endpoint_product_exists = ff_q_recode_endpoint_product_exists_partial * S ((S (ff_i_recode_endpoint_product_exists)) * ff_v_recode_endpoint_product_exists) + (ff_r_recode_endpoint_product_exists))) /\ ((((exists ff_h_recode_endpoint_product_exists_successor. ff_h_recode_endpoint_product_exists_successor + S (ff_s_recode_endpoint_product_exists) = S ((S (S ff_i_recode_endpoint_product_exists)) * ff_v_recode_endpoint_product_exists)) /\ exists ff_q_recode_endpoint_product_exists_successor. ff_u_recode_endpoint_product_exists = ff_q_recode_endpoint_product_exists_successor * S ((S (S ff_i_recode_endpoint_product_exists)) * ff_v_recode_endpoint_product_exists) + (ff_s_recode_endpoint_product_exists))) /\ ff_s_recode_endpoint_product_exists = ff_r_recode_endpoint_product_exists * ff_p_recode_endpoint_product_exists)))))) - 0020
specialize beta_product_exists x - 0021
specialize beta_product_exists x1 - 0022
specialize beta_product_exists l - 0023
exact beta_product_exists - 0024
cases hproduct_exists - 0025
have hpower_exists : exists R. (exists ff_b_recode_endpoint_power_exists ff_c_recode_endpoint_power_exists. ((forall ff_i_recode_endpoint_power_exists_repeat. (exists ff_lt_recode_endpoint_power_exists_repeat_bound. ff_lt_recode_endpoint_power_exists_repeat_bound + S ff_i_recode_endpoint_power_exists_repeat = e) -> (((exists ff_h_recode_endpoint_power_exists_repeat_decoded. ff_h_recode_endpoint_power_exists_repeat_decoded + S (r) = S ((S (ff_i_recode_endpoint_power_exists_repeat)) * ff_c_recode_endpoint_power_exists)) /\ exists ff_q_recode_endpoint_power_exists_repeat_decoded. ff_b_recode_endpoint_power_exists = ff_q_recode_endpoint_power_exists_repeat_decoded * S ((S (ff_i_recode_endpoint_power_exists_repeat)) * ff_c_recode_endpoint_power_exists) + (r)))) /\ (exists ff_u_recode_endpoint_power_exists_product ff_v_recode_endpoint_power_exists_product. ((((exists ff_h_recode_endpoint_power_exists_product_start. ff_h_recode_endpoint_power_exists_product_start + S (1) = S ((S (0)) * ff_v_recode_endpoint_power_exists_product)) /\ exists ff_q_recode_endpoint_power_exists_product_start. ff_u_recode_endpoint_power_exists_product = ff_q_recode_endpoint_power_exists_product_start * S ((S (0)) * ff_v_recode_endpoint_power_exists_product) + (1))) /\ ((((exists ff_h_recode_endpoint_power_exists_product_terminal. ff_h_recode_endpoint_power_exists_product_terminal + S (R) = S ((S (e)) * ff_v_recode_endpoint_power_exists_product)) /\ exists ff_q_recode_endpoint_power_exists_product_terminal. ff_u_recode_endpoint_power_exists_product = ff_q_recode_endpoint_power_exists_product_terminal * S ((S (e)) * ff_v_recode_endpoint_power_exists_product) + (R))) /\ forall ff_i_recode_endpoint_power_exists_product. (exists ff_lt_recode_endpoint_power_exists_product_bound. ff_lt_recode_endpoint_power_exists_product_bound + S ff_i_recode_endpoint_power_exists_product = e) -> exists ff_p_recode_endpoint_power_exists_product ff_r_recode_endpoint_power_exists_product ff_s_recode_endpoint_power_exists_product. ((((exists ff_h_recode_endpoint_power_exists_product_factor. ff_h_recode_endpoint_power_exists_product_factor + S (ff_p_recode_endpoint_power_exists_product) = S ((S (ff_i_recode_endpoint_power_exists_product)) * ff_c_recode_endpoint_power_exists)) /\ exists ff_q_recode_endpoint_power_exists_product_factor. ff_b_recode_endpoint_power_exists = ff_q_recode_endpoint_power_exists_product_factor * S ((S (ff_i_recode_endpoint_power_exists_product)) * ff_c_recode_endpoint_power_exists) + (ff_p_recode_endpoint_power_exists_product))) /\ ((((exists ff_h_recode_endpoint_power_exists_product_partial. ff_h_recode_endpoint_power_exists_product_partial + S (ff_r_recode_endpoint_power_exists_product) = S ((S (ff_i_recode_endpoint_power_exists_product)) * ff_v_recode_endpoint_power_exists_product)) /\ exists ff_q_recode_endpoint_power_exists_product_partial. ff_u_recode_endpoint_power_exists_product = ff_q_recode_endpoint_power_exists_product_partial * S ((S (ff_i_recode_endpoint_power_exists_product)) * ff_v_recode_endpoint_power_exists_product) + (ff_r_recode_endpoint_power_exists_product))) /\ ((((exists ff_h_recode_endpoint_power_exists_product_successor. ff_h_recode_endpoint_power_exists_product_successor + S (ff_s_recode_endpoint_power_exists_product) = S ((S (S ff_i_recode_endpoint_power_exists_product)) * ff_v_recode_endpoint_power_exists_product)) /\ exists ff_q_recode_endpoint_power_exists_product_successor. ff_u_recode_endpoint_power_exists_product = ff_q_recode_endpoint_power_exists_product_successor * S ((S (S ff_i_recode_endpoint_power_exists_product)) * ff_v_recode_endpoint_power_exists_product) + (ff_s_recode_endpoint_power_exists_product))) /\ ff_s_recode_endpoint_power_exists_product = ff_r_recode_endpoint_power_exists_product * ff_p_recode_endpoint_power_exists_product)))))))) - 0026
specialize pow_exists r - 0027
specialize pow_exists e - 0028
exact pow_exists - 0029
cases hpower_exists - 0030
have hequal : x2 = x3 - 0031
specialize beta_sign_factor_product_power sb - 0032
specialize beta_sign_factor_product_power sc - 0033
specialize beta_sign_factor_product_power x - 0034
specialize beta_sign_factor_product_power x1 - 0035
specialize beta_sign_factor_product_power r - 0036
specialize beta_sign_factor_product_power l - 0037
specialize beta_sign_factor_product_power e - 0038
specialize beta_sign_factor_product_power x2 - 0039
specialize beta_sign_factor_product_power x3 - 0040
apply beta_sign_factor_product_power - 0041
exact hcount - 0042
exact hsigns_exists_witness_witness - 0043
exact hproduct_exists_witness - 0044
exact hpower_exists_witness - 0045
exists x - 0046
exists x1 - 0047
exists x2 - 0048
exists x3 - 0049
split - 0050
exact hsigns_exists_witness_witness - 0051
split - 0052
exact hproduct_exists_witness - 0053
split - 0054
exact hpower_exists_witness - 0055
exact hequal