PA00F9

eisenstein_successor_terminal_bit_matches_last_column

Alpha v16 checked-use theorem · independently closed; not Stable

The terminal-bit prefix and the constructed last column decode the same bit at every bounded row.

Exact expanded PA statement

forall p q h sh bb bc db dc tb tc cb cc l j a d. sh = S h -> (forall efrd_row_index_fubini_terminal_column_split_prefix. (exists efrd_lt_gap_fubini_terminal_column_split_prefix_bound. efrd_lt_gap_fubini_terminal_column_split_prefix_bound + S (efrd_row_index_fubini_terminal_column_split_prefix) = l) -> exists efrd_count_fubini_terminal_column_split_prefix efrd_reduced_count_fubini_terminal_column_split_prefix efrd_terminal_bit_fubini_terminal_column_split_prefix. (((((((exists ff_h_efrd_fubini_terminal_column_split_prefix_entry_outer_entry. ff_h_efrd_fubini_terminal_column_split_prefix_entry_outer_entry + S (efrd_count_fubini_terminal_column_split_prefix) = S ((S (efrd_row_index_fubini_terminal_column_split_prefix)) * bc)) /\ exists ff_q_efrd_fubini_terminal_column_split_prefix_entry_outer_entry. bb = ff_q_efrd_fubini_terminal_column_split_prefix_entry_outer_entry * S ((S (efrd_row_index_fubini_terminal_column_split_prefix)) * bc) + (efrd_count_fubini_terminal_column_split_prefix))) /\ (((exists ff_h_efrd_fubini_terminal_column_split_prefix_entry_reduced_entry. ff_h_efrd_fubini_terminal_column_split_prefix_entry_reduced_entry + S (efrd_reduced_count_fubini_terminal_column_split_prefix) = S ((S (efrd_row_index_fubini_terminal_column_split_prefix)) * dc)) /\ exists ff_q_efrd_fubini_terminal_column_split_prefix_entry_reduced_entry. db = ff_q_efrd_fubini_terminal_column_split_prefix_entry_reduced_entry * S ((S (efrd_row_index_fubini_terminal_column_split_prefix)) * dc) + (efrd_reduced_count_fubini_terminal_column_split_prefix)))) /\ (((exists ff_h_efrd_fubini_terminal_column_split_prefix_entry_terminal_entry. ff_h_efrd_fubini_terminal_column_split_prefix_entry_terminal_entry + S (efrd_terminal_bit_fubini_terminal_column_split_prefix) = S ((S (efrd_row_index_fubini_terminal_column_split_prefix)) * tc)) /\ exists ff_q_efrd_fubini_terminal_column_split_prefix_entry_terminal_entry. tb = ff_q_efrd_fubini_terminal_column_split_prefix_entry_terminal_entry * S ((S (efrd_row_index_fubini_terminal_column_split_prefix)) * tc) + (efrd_terminal_bit_fubini_terminal_column_split_prefix)))) /\ (exists efrd_row_code_fubini_terminal_column_split_prefix_entry_split efrd_row_scale_fubini_terminal_column_split_prefix_entry_split. (((((forall eri_column_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix. (exists eri_gap_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix_bound. eri_gap_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix_bound + S (eri_column_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix) = sh) -> exists eri_bit_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix. ((((exists ff_h_eri_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix_decoded. ff_h_eri_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix_decoded + S (eri_bit_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix) = S ((S (eri_column_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix)) * efrd_row_scale_fubini_terminal_column_split_prefix_entry_split)) /\ exists ff_q_eri_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix_decoded. efrd_row_code_fubini_terminal_column_split_prefix_entry_split = ff_q_eri_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix_decoded * S ((S (eri_column_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix)) * efrd_row_scale_fubini_terminal_column_split_prefix_entry_split) + (eri_bit_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix))) /\ (((eri_bit_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix = 0 /\ ((exists eri_gap_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix_choice_left. eri_gap_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix_choice_left + S (p * S efrd_row_index_fubini_terminal_column_split_prefix) = q * S eri_column_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix) /\ ~(exists eri_gap_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix_choice_right. eri_gap_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix_choice_right + S (q * S eri_column_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix) = p * S efrd_row_index_fubini_terminal_column_split_prefix))) \/ (eri_bit_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix = 1 /\ ((exists eri_gap_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix_choice_right. eri_gap_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix_choice_right + S (q * S eri_column_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix) = p * S efrd_row_index_fubini_terminal_column_split_prefix) /\ ~(exists eri_gap_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix_choice_left. eri_gap_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix_choice_left + S (p * S efrd_row_index_fubini_terminal_column_split_prefix) = q * S eri_column_efrd_fubini_terminal_column_split_prefix_entry_split_successor_prefix))))))) /\ (((exists ff_u_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum ff_v_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum. ((((exists ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum_start. ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum_start + S (0) = S ((S (0)) * ff_v_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum)) /\ exists ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum_start. ff_u_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum = ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum_start * S ((S (0)) * ff_v_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum) + (0))) /\ ((((exists ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum_terminal. ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum_terminal + S (efrd_count_fubini_terminal_column_split_prefix) = S ((S (sh)) * ff_v_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum)) /\ exists ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum_terminal. ff_u_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum = ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum_terminal * S ((S (sh)) * ff_v_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum) + (efrd_count_fubini_terminal_column_split_prefix))) /\ forall ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum. (exists ff_lt_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum_bound. ff_lt_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum_bound + S ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum = sh) -> exists ff_a_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum ff_r_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum ff_s_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum. ((((exists ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum_summand. ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum_summand + S (ff_a_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum) = S ((S (ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum)) * efrd_row_scale_fubini_terminal_column_split_prefix_entry_split)) /\ exists ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum_summand. efrd_row_code_fubini_terminal_column_split_prefix_entry_split = ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum_summand * S ((S (ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum)) * efrd_row_scale_fubini_terminal_column_split_prefix_entry_split) + (ff_a_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum))) /\ ((((exists ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum_partial. ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum_partial + S (ff_r_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum) = S ((S (ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum)) * ff_v_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum)) /\ exists ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum_partial. ff_u_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum = ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum_partial * S ((S (ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum)) * ff_v_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum) + (ff_r_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum))) /\ ((((exists ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum_successor. ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum_successor + S (ff_s_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum) = S ((S (S ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum)) * ff_v_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum)) /\ exists ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum_successor. ff_u_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum = ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum_successor * S ((S (S ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum)) * ff_v_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum) + (ff_s_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum))) /\ ff_s_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum = ff_r_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum + ff_a_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_sum)))))) /\ (forall ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_bits. (exists ff_lt_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_bits_bound. ff_lt_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_bits_bound + S ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_bits = sh) -> exists ff_bit_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_bits. ((((exists ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_bits_decoded. ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_bits_decoded + S (ff_bit_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_bits) = S ((S (ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_bits)) * efrd_row_scale_fubini_terminal_column_split_prefix_entry_split)) /\ exists ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_bits_decoded. efrd_row_code_fubini_terminal_column_split_prefix_entry_split = ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_bits_decoded * S ((S (ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_bits)) * efrd_row_scale_fubini_terminal_column_split_prefix_entry_split) + (ff_bit_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_bits))) /\ (ff_bit_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_bits = 0 \/ ff_bit_efrd_fubini_terminal_column_split_prefix_entry_split_successor_count_bits = 1)))))) /\ ((forall eri_column_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix. (exists eri_gap_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix_bound. eri_gap_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix_bound + S (eri_column_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix) = h) -> exists eri_bit_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix. ((((exists ff_h_eri_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix_decoded. ff_h_eri_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix_decoded + S (eri_bit_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix) = S ((S (eri_column_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix)) * efrd_row_scale_fubini_terminal_column_split_prefix_entry_split)) /\ exists ff_q_eri_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix_decoded. efrd_row_code_fubini_terminal_column_split_prefix_entry_split = ff_q_eri_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix_decoded * S ((S (eri_column_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix)) * efrd_row_scale_fubini_terminal_column_split_prefix_entry_split) + (eri_bit_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix))) /\ (((eri_bit_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix = 0 /\ ((exists eri_gap_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix_choice_left. eri_gap_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix_choice_left + S (p * S efrd_row_index_fubini_terminal_column_split_prefix) = q * S eri_column_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix) /\ ~(exists eri_gap_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix_choice_right. eri_gap_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix_choice_right + S (q * S eri_column_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix) = p * S efrd_row_index_fubini_terminal_column_split_prefix))) \/ (eri_bit_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix = 1 /\ ((exists eri_gap_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix_choice_right. eri_gap_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix_choice_right + S (q * S eri_column_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix) = p * S efrd_row_index_fubini_terminal_column_split_prefix) /\ ~(exists eri_gap_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix_choice_left. eri_gap_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix_choice_left + S (p * S efrd_row_index_fubini_terminal_column_split_prefix) = q * S eri_column_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_prefix))))))) /\ (((exists ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_terminal_entry. ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_terminal_entry + S (efrd_terminal_bit_fubini_terminal_column_split_prefix) = S ((S (h)) * efrd_row_scale_fubini_terminal_column_split_prefix_entry_split)) /\ exists ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_terminal_entry. efrd_row_code_fubini_terminal_column_split_prefix_entry_split = ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_terminal_entry * S ((S (h)) * efrd_row_scale_fubini_terminal_column_split_prefix_entry_split) + (efrd_terminal_bit_fubini_terminal_column_split_prefix))))) /\ (((((exists ff_u_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum ff_v_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum. ((((exists ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum_start. ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum_start + S (0) = S ((S (0)) * ff_v_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum)) /\ exists ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum_start. ff_u_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum = ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum_start * S ((S (0)) * ff_v_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum) + (0))) /\ ((((exists ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum_terminal. ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum_terminal + S (efrd_reduced_count_fubini_terminal_column_split_prefix) = S ((S (h)) * ff_v_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum)) /\ exists ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum_terminal. ff_u_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum = ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum_terminal * S ((S (h)) * ff_v_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum) + (efrd_reduced_count_fubini_terminal_column_split_prefix))) /\ forall ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum. (exists ff_lt_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum_bound. ff_lt_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum_bound + S ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum = h) -> exists ff_a_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum ff_r_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum ff_s_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum. ((((exists ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum_summand. ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum_summand + S (ff_a_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum) = S ((S (ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum)) * efrd_row_scale_fubini_terminal_column_split_prefix_entry_split)) /\ exists ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum_summand. efrd_row_code_fubini_terminal_column_split_prefix_entry_split = ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum_summand * S ((S (ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum)) * efrd_row_scale_fubini_terminal_column_split_prefix_entry_split) + (ff_a_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum))) /\ ((((exists ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum_partial. ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum_partial + S (ff_r_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum) = S ((S (ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum)) * ff_v_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum)) /\ exists ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum_partial. ff_u_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum = ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum_partial * S ((S (ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum)) * ff_v_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum) + (ff_r_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum))) /\ ((((exists ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum_successor. ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum_successor + S (ff_s_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum) = S ((S (S ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum)) * ff_v_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum)) /\ exists ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum_successor. ff_u_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum = ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum_successor * S ((S (S ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum)) * ff_v_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum) + (ff_s_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum))) /\ ff_s_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum = ff_r_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum + ff_a_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_sum)))))) /\ (forall ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_bits. (exists ff_lt_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_bits_bound. ff_lt_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_bits_bound + S ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_bits = h) -> exists ff_bit_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_bits. ((((exists ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_bits_decoded. ff_h_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_bits_decoded + S (ff_bit_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_bits) = S ((S (ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_bits)) * efrd_row_scale_fubini_terminal_column_split_prefix_entry_split)) /\ exists ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_bits_decoded. efrd_row_code_fubini_terminal_column_split_prefix_entry_split = ff_q_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_bits_decoded * S ((S (ff_i_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_bits)) * efrd_row_scale_fubini_terminal_column_split_prefix_entry_split) + (ff_bit_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_bits))) /\ (ff_bit_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_bits = 0 \/ ff_bit_efrd_fubini_terminal_column_split_prefix_entry_split_reduced_count_bits = 1))))) /\ (efrd_terminal_bit_fubini_terminal_column_split_prefix = 0 \/ efrd_terminal_bit_fubini_terminal_column_split_prefix = 1)) /\ efrd_count_fubini_terminal_column_split_prefix = efrd_reduced_count_fubini_terminal_column_split_prefix + efrd_terminal_bit_fubini_terminal_column_split_prefix))))))) -> (forall etc_row_index_fubini_terminal_column_prefix. (exists edt_lt_gap_fubini_terminal_column_prefix_bound. edt_lt_gap_fubini_terminal_column_prefix_bound + S (etc_row_index_fubini_terminal_column_prefix) = l) -> exists etc_bit_fubini_terminal_column_prefix. ((((exists ff_h_etc_fubini_terminal_column_prefix_decoded. ff_h_etc_fubini_terminal_column_prefix_decoded + S (etc_bit_fubini_terminal_column_prefix) = S ((S (etc_row_index_fubini_terminal_column_prefix)) * cc)) /\ exists ff_q_etc_fubini_terminal_column_prefix_decoded. cb = ff_q_etc_fubini_terminal_column_prefix_decoded * S ((S (etc_row_index_fubini_terminal_column_prefix)) * cc) + (etc_bit_fubini_terminal_column_prefix))) /\ (exists etc_count_fubini_terminal_column_prefix_witness etc_row_code_fubini_terminal_column_prefix_witness etc_row_scale_fubini_terminal_column_prefix_witness. ((((((exists ff_h_etc_fubini_terminal_column_prefix_witness_outer_entry. ff_h_etc_fubini_terminal_column_prefix_witness_outer_entry + S (etc_count_fubini_terminal_column_prefix_witness) = S ((S (etc_row_index_fubini_terminal_column_prefix)) * bc)) /\ exists ff_q_etc_fubini_terminal_column_prefix_witness_outer_entry. bb = ff_q_etc_fubini_terminal_column_prefix_witness_outer_entry * S ((S (etc_row_index_fubini_terminal_column_prefix)) * bc) + (etc_count_fubini_terminal_column_prefix_witness))) /\ (forall eri_column_etc_fubini_terminal_column_prefix_witness_row. (exists eri_gap_etc_fubini_terminal_column_prefix_witness_row_bound. eri_gap_etc_fubini_terminal_column_prefix_witness_row_bound + S (eri_column_etc_fubini_terminal_column_prefix_witness_row) = sh) -> exists eri_bit_etc_fubini_terminal_column_prefix_witness_row. ((((exists ff_h_eri_etc_fubini_terminal_column_prefix_witness_row_decoded. ff_h_eri_etc_fubini_terminal_column_prefix_witness_row_decoded + S (eri_bit_etc_fubini_terminal_column_prefix_witness_row) = S ((S (eri_column_etc_fubini_terminal_column_prefix_witness_row)) * etc_row_scale_fubini_terminal_column_prefix_witness)) /\ exists ff_q_eri_etc_fubini_terminal_column_prefix_witness_row_decoded. etc_row_code_fubini_terminal_column_prefix_witness = ff_q_eri_etc_fubini_terminal_column_prefix_witness_row_decoded * S ((S (eri_column_etc_fubini_terminal_column_prefix_witness_row)) * etc_row_scale_fubini_terminal_column_prefix_witness) + (eri_bit_etc_fubini_terminal_column_prefix_witness_row))) /\ (((eri_bit_etc_fubini_terminal_column_prefix_witness_row = 0 /\ ((exists eri_gap_etc_fubini_terminal_column_prefix_witness_row_choice_left. eri_gap_etc_fubini_terminal_column_prefix_witness_row_choice_left + S (p * S etc_row_index_fubini_terminal_column_prefix) = q * S eri_column_etc_fubini_terminal_column_prefix_witness_row) /\ ~(exists eri_gap_etc_fubini_terminal_column_prefix_witness_row_choice_right. eri_gap_etc_fubini_terminal_column_prefix_witness_row_choice_right + S (q * S eri_column_etc_fubini_terminal_column_prefix_witness_row) = p * S etc_row_index_fubini_terminal_column_prefix))) \/ (eri_bit_etc_fubini_terminal_column_prefix_witness_row = 1 /\ ((exists eri_gap_etc_fubini_terminal_column_prefix_witness_row_choice_right. eri_gap_etc_fubini_terminal_column_prefix_witness_row_choice_right + S (q * S eri_column_etc_fubini_terminal_column_prefix_witness_row) = p * S etc_row_index_fubini_terminal_column_prefix) /\ ~(exists eri_gap_etc_fubini_terminal_column_prefix_witness_row_choice_left. eri_gap_etc_fubini_terminal_column_prefix_witness_row_choice_left + S (p * S etc_row_index_fubini_terminal_column_prefix) = q * S eri_column_etc_fubini_terminal_column_prefix_witness_row)))))))) /\ (((exists ff_u_etc_fubini_terminal_column_prefix_witness_count_relation_sum ff_v_etc_fubini_terminal_column_prefix_witness_count_relation_sum. ((((exists ff_h_etc_fubini_terminal_column_prefix_witness_count_relation_sum_start. ff_h_etc_fubini_terminal_column_prefix_witness_count_relation_sum_start + S (0) = S ((S (0)) * ff_v_etc_fubini_terminal_column_prefix_witness_count_relation_sum)) /\ exists ff_q_etc_fubini_terminal_column_prefix_witness_count_relation_sum_start. ff_u_etc_fubini_terminal_column_prefix_witness_count_relation_sum = ff_q_etc_fubini_terminal_column_prefix_witness_count_relation_sum_start * S ((S (0)) * ff_v_etc_fubini_terminal_column_prefix_witness_count_relation_sum) + (0))) /\ ((((exists ff_h_etc_fubini_terminal_column_prefix_witness_count_relation_sum_terminal. ff_h_etc_fubini_terminal_column_prefix_witness_count_relation_sum_terminal + S (etc_count_fubini_terminal_column_prefix_witness) = S ((S (sh)) * ff_v_etc_fubini_terminal_column_prefix_witness_count_relation_sum)) /\ exists ff_q_etc_fubini_terminal_column_prefix_witness_count_relation_sum_terminal. ff_u_etc_fubini_terminal_column_prefix_witness_count_relation_sum = ff_q_etc_fubini_terminal_column_prefix_witness_count_relation_sum_terminal * S ((S (sh)) * ff_v_etc_fubini_terminal_column_prefix_witness_count_relation_sum) + (etc_count_fubini_terminal_column_prefix_witness))) /\ forall ff_i_etc_fubini_terminal_column_prefix_witness_count_relation_sum. (exists ff_lt_etc_fubini_terminal_column_prefix_witness_count_relation_sum_bound. ff_lt_etc_fubini_terminal_column_prefix_witness_count_relation_sum_bound + S ff_i_etc_fubini_terminal_column_prefix_witness_count_relation_sum = sh) -> exists ff_a_etc_fubini_terminal_column_prefix_witness_count_relation_sum ff_r_etc_fubini_terminal_column_prefix_witness_count_relation_sum ff_s_etc_fubini_terminal_column_prefix_witness_count_relation_sum. ((((exists ff_h_etc_fubini_terminal_column_prefix_witness_count_relation_sum_summand. ff_h_etc_fubini_terminal_column_prefix_witness_count_relation_sum_summand + S (ff_a_etc_fubini_terminal_column_prefix_witness_count_relation_sum) = S ((S (ff_i_etc_fubini_terminal_column_prefix_witness_count_relation_sum)) * etc_row_scale_fubini_terminal_column_prefix_witness)) /\ exists ff_q_etc_fubini_terminal_column_prefix_witness_count_relation_sum_summand. etc_row_code_fubini_terminal_column_prefix_witness = ff_q_etc_fubini_terminal_column_prefix_witness_count_relation_sum_summand * S ((S (ff_i_etc_fubini_terminal_column_prefix_witness_count_relation_sum)) * etc_row_scale_fubini_terminal_column_prefix_witness) + (ff_a_etc_fubini_terminal_column_prefix_witness_count_relation_sum))) /\ ((((exists ff_h_etc_fubini_terminal_column_prefix_witness_count_relation_sum_partial. ff_h_etc_fubini_terminal_column_prefix_witness_count_relation_sum_partial + S (ff_r_etc_fubini_terminal_column_prefix_witness_count_relation_sum) = S ((S (ff_i_etc_fubini_terminal_column_prefix_witness_count_relation_sum)) * ff_v_etc_fubini_terminal_column_prefix_witness_count_relation_sum)) /\ exists ff_q_etc_fubini_terminal_column_prefix_witness_count_relation_sum_partial. ff_u_etc_fubini_terminal_column_prefix_witness_count_relation_sum = ff_q_etc_fubini_terminal_column_prefix_witness_count_relation_sum_partial * S ((S (ff_i_etc_fubini_terminal_column_prefix_witness_count_relation_sum)) * ff_v_etc_fubini_terminal_column_prefix_witness_count_relation_sum) + (ff_r_etc_fubini_terminal_column_prefix_witness_count_relation_sum))) /\ ((((exists ff_h_etc_fubini_terminal_column_prefix_witness_count_relation_sum_successor. ff_h_etc_fubini_terminal_column_prefix_witness_count_relation_sum_successor + S (ff_s_etc_fubini_terminal_column_prefix_witness_count_relation_sum) = S ((S (S ff_i_etc_fubini_terminal_column_prefix_witness_count_relation_sum)) * ff_v_etc_fubini_terminal_column_prefix_witness_count_relation_sum)) /\ exists ff_q_etc_fubini_terminal_column_prefix_witness_count_relation_sum_successor. ff_u_etc_fubini_terminal_column_prefix_witness_count_relation_sum = ff_q_etc_fubini_terminal_column_prefix_witness_count_relation_sum_successor * S ((S (S ff_i_etc_fubini_terminal_column_prefix_witness_count_relation_sum)) * ff_v_etc_fubini_terminal_column_prefix_witness_count_relation_sum) + (ff_s_etc_fubini_terminal_column_prefix_witness_count_relation_sum))) /\ ff_s_etc_fubini_terminal_column_prefix_witness_count_relation_sum = ff_r_etc_fubini_terminal_column_prefix_witness_count_relation_sum + ff_a_etc_fubini_terminal_column_prefix_witness_count_relation_sum)))))) /\ (forall ff_i_etc_fubini_terminal_column_prefix_witness_count_relation_bits. (exists ff_lt_etc_fubini_terminal_column_prefix_witness_count_relation_bits_bound. ff_lt_etc_fubini_terminal_column_prefix_witness_count_relation_bits_bound + S ff_i_etc_fubini_terminal_column_prefix_witness_count_relation_bits = sh) -> exists ff_bit_etc_fubini_terminal_column_prefix_witness_count_relation_bits. ((((exists ff_h_etc_fubini_terminal_column_prefix_witness_count_relation_bits_decoded. ff_h_etc_fubini_terminal_column_prefix_witness_count_relation_bits_decoded + S (ff_bit_etc_fubini_terminal_column_prefix_witness_count_relation_bits) = S ((S (ff_i_etc_fubini_terminal_column_prefix_witness_count_relation_bits)) * etc_row_scale_fubini_terminal_column_prefix_witness)) /\ exists ff_q_etc_fubini_terminal_column_prefix_witness_count_relation_bits_decoded. etc_row_code_fubini_terminal_column_prefix_witness = ff_q_etc_fubini_terminal_column_prefix_witness_count_relation_bits_decoded * S ((S (ff_i_etc_fubini_terminal_column_prefix_witness_count_relation_bits)) * etc_row_scale_fubini_terminal_column_prefix_witness) + (ff_bit_etc_fubini_terminal_column_prefix_witness_count_relation_bits))) /\ (ff_bit_etc_fubini_terminal_column_prefix_witness_count_relation_bits = 0 \/ ff_bit_etc_fubini_terminal_column_prefix_witness_count_relation_bits = 1)))))) /\ (((exists ff_h_etc_fubini_terminal_column_prefix_witness_inner_entry. ff_h_etc_fubini_terminal_column_prefix_witness_inner_entry + S (etc_bit_fubini_terminal_column_prefix) = S ((S (h)) * etc_row_scale_fubini_terminal_column_prefix_witness)) /\ exists ff_q_etc_fubini_terminal_column_prefix_witness_inner_entry. etc_row_code_fubini_terminal_column_prefix_witness = ff_q_etc_fubini_terminal_column_prefix_witness_inner_entry * S ((S (h)) * etc_row_scale_fubini_terminal_column_prefix_witness) + (etc_bit_fubini_terminal_column_prefix))))))) -> (exists efrd_lt_gap_fubini_terminal_column_bound. efrd_lt_gap_fubini_terminal_column_bound + S (j) = l) -> (((exists ff_h_fubini_terminal_column_terminal_entry. ff_h_fubini_terminal_column_terminal_entry + S (a) = S ((S (j)) * tc)) /\ exists ff_q_fubini_terminal_column_terminal_entry. tb = ff_q_fubini_terminal_column_terminal_entry * S ((S (j)) * tc) + (a))) -> (((exists ff_h_fubini_terminal_column_column_entry. ff_h_fubini_terminal_column_column_entry + S (d) = S ((S (j)) * cc)) /\ exists ff_q_fubini_terminal_column_column_entry. cb = ff_q_fubini_terminal_column_column_entry * S ((S (j)) * cc) + (d))) -> a = d

Structural proof guide

Generated structural guide

The terminal-bit prefix and the constructed last column decode the same bit at every bounded row.

Use the direct prerequisites le_refl, beta_at_unique, eisenstein_row_indicator_decoded_choice, eisenstein_cell_indicator_choice_unique as previously established PA formulas.

The proof proceeds by case analysis (20), intermediate claims (7), equality transport (5).

Referenced ingredients

Proof neighborhood

Direct dependencies

Direct 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.

  1. 0001intro p
  2. 0002intro q
  3. 0003intro h
  4. 0004intro sh
  5. 0005intro bb
  6. 0006intro bc
  7. 0007intro db
  8. 0008intro dc
  9. 0009intro tb
  10. 0010intro tc
  11. 0011intro cb
  12. 0012intro cc
  13. 0013intro l
  14. 0014intro j
  15. 0015intro a
  16. 0016intro d
  17. 0017intro hsh
  18. 0018intro hsplit
  19. 0019intro hcolumn
  20. 0020intro hj
  21. 0021intro ha
  22. 0022intro hd
  23. 0023have hhsh : exists gap. gap + S h = sh
  24. 0024rewrite hsh
  25. 0025specialize le_refl (S h)
  26. 0026exact le_refl
  27. 0027have hsplit_stored : exists n r storeda. (((((((exists ff_h_efrd_fubini_terminal_column_split_stored_outer_entry. ff_h_efrd_fubini_terminal_column_split_stored_outer_entry + S (n) = S ((S (j)) * bc)) /\ exists ff_q_efrd_fubini_terminal_column_split_stored_outer_entry. bb = ff_q_efrd_fubini_terminal_column_split_stored_outer_entry * S ((S (j)) * bc) + (n))) /\ (((exists ff_h_efrd_fubini_terminal_column_split_stored_reduced_entry. ff_h_efrd_fubini_terminal_column_split_stored_reduced_entry + S (r) = S ((S (j)) * dc)) /\ exists ff_q_efrd_fubini_terminal_column_split_stored_reduced_entry. db = ff_q_efrd_fubini_terminal_column_split_stored_reduced_entry * S ((S (j)) * dc) + (r)))) /\ (((exists ff_h_efrd_fubini_terminal_column_split_stored_terminal_entry. ff_h_efrd_fubini_terminal_column_split_stored_terminal_entry + S (storeda) = S ((S (j)) * tc)) /\ exists ff_q_efrd_fubini_terminal_column_split_stored_terminal_entry. tb = ff_q_efrd_fubini_terminal_column_split_stored_terminal_entry * S ((S (j)) * tc) + (storeda)))) /\ (exists efrd_row_code_fubini_terminal_column_split_stored_split efrd_row_scale_fubini_terminal_column_split_stored_split. (((((forall eri_column_efrd_fubini_terminal_column_split_stored_split_successor_prefix. (exists eri_gap_efrd_fubini_terminal_column_split_stored_split_successor_prefix_bound. eri_gap_efrd_fubini_terminal_column_split_stored_split_successor_prefix_bound + S (eri_column_efrd_fubini_terminal_column_split_stored_split_successor_prefix) = sh) -> exists eri_bit_efrd_fubini_terminal_column_split_stored_split_successor_prefix. ((((exists ff_h_eri_efrd_fubini_terminal_column_split_stored_split_successor_prefix_decoded. ff_h_eri_efrd_fubini_terminal_column_split_stored_split_successor_prefix_decoded + S (eri_bit_efrd_fubini_terminal_column_split_stored_split_successor_prefix) = S ((S (eri_column_efrd_fubini_terminal_column_split_stored_split_successor_prefix)) * efrd_row_scale_fubini_terminal_column_split_stored_split)) /\ exists ff_q_eri_efrd_fubini_terminal_column_split_stored_split_successor_prefix_decoded. efrd_row_code_fubini_terminal_column_split_stored_split = ff_q_eri_efrd_fubini_terminal_column_split_stored_split_successor_prefix_decoded * S ((S (eri_column_efrd_fubini_terminal_column_split_stored_split_successor_prefix)) * efrd_row_scale_fubini_terminal_column_split_stored_split) + (eri_bit_efrd_fubini_terminal_column_split_stored_split_successor_prefix))) /\ (((eri_bit_efrd_fubini_terminal_column_split_stored_split_successor_prefix = 0 /\ ((exists eri_gap_efrd_fubini_terminal_column_split_stored_split_successor_prefix_choice_left. eri_gap_efrd_fubini_terminal_column_split_stored_split_successor_prefix_choice_left + S (p * S j) = q * S eri_column_efrd_fubini_terminal_column_split_stored_split_successor_prefix) /\ ~(exists eri_gap_efrd_fubini_terminal_column_split_stored_split_successor_prefix_choice_right. eri_gap_efrd_fubini_terminal_column_split_stored_split_successor_prefix_choice_right + S (q * S eri_column_efrd_fubini_terminal_column_split_stored_split_successor_prefix) = p * S j))) \/ (eri_bit_efrd_fubini_terminal_column_split_stored_split_successor_prefix = 1 /\ ((exists eri_gap_efrd_fubini_terminal_column_split_stored_split_successor_prefix_choice_right. eri_gap_efrd_fubini_terminal_column_split_stored_split_successor_prefix_choice_right + S (q * S eri_column_efrd_fubini_terminal_column_split_stored_split_successor_prefix) = p * S j) /\ ~(exists eri_gap_efrd_fubini_terminal_column_split_stored_split_successor_prefix_choice_left. eri_gap_efrd_fubini_terminal_column_split_stored_split_successor_prefix_choice_left + S (p * S j) = q * S eri_column_efrd_fubini_terminal_column_split_stored_split_successor_prefix))))))) /\ (((exists ff_u_efrd_fubini_terminal_column_split_stored_split_successor_count_sum ff_v_efrd_fubini_terminal_column_split_stored_split_successor_count_sum. ((((exists ff_h_efrd_fubini_terminal_column_split_stored_split_successor_count_sum_start. ff_h_efrd_fubini_terminal_column_split_stored_split_successor_count_sum_start + S (0) = S ((S (0)) * ff_v_efrd_fubini_terminal_column_split_stored_split_successor_count_sum)) /\ exists ff_q_efrd_fubini_terminal_column_split_stored_split_successor_count_sum_start. ff_u_efrd_fubini_terminal_column_split_stored_split_successor_count_sum = ff_q_efrd_fubini_terminal_column_split_stored_split_successor_count_sum_start * S ((S (0)) * ff_v_efrd_fubini_terminal_column_split_stored_split_successor_count_sum) + (0))) /\ ((((exists ff_h_efrd_fubini_terminal_column_split_stored_split_successor_count_sum_terminal. ff_h_efrd_fubini_terminal_column_split_stored_split_successor_count_sum_terminal + S (n) = S ((S (sh)) * ff_v_efrd_fubini_terminal_column_split_stored_split_successor_count_sum)) /\ exists ff_q_efrd_fubini_terminal_column_split_stored_split_successor_count_sum_terminal. ff_u_efrd_fubini_terminal_column_split_stored_split_successor_count_sum = ff_q_efrd_fubini_terminal_column_split_stored_split_successor_count_sum_terminal * S ((S (sh)) * ff_v_efrd_fubini_terminal_column_split_stored_split_successor_count_sum) + (n))) /\ forall ff_i_efrd_fubini_terminal_column_split_stored_split_successor_count_sum. (exists ff_lt_efrd_fubini_terminal_column_split_stored_split_successor_count_sum_bound. ff_lt_efrd_fubini_terminal_column_split_stored_split_successor_count_sum_bound + S ff_i_efrd_fubini_terminal_column_split_stored_split_successor_count_sum = sh) -> exists ff_a_efrd_fubini_terminal_column_split_stored_split_successor_count_sum ff_r_efrd_fubini_terminal_column_split_stored_split_successor_count_sum ff_s_efrd_fubini_terminal_column_split_stored_split_successor_count_sum. ((((exists ff_h_efrd_fubini_terminal_column_split_stored_split_successor_count_sum_summand. ff_h_efrd_fubini_terminal_column_split_stored_split_successor_count_sum_summand + S (ff_a_efrd_fubini_terminal_column_split_stored_split_successor_count_sum) = S ((S (ff_i_efrd_fubini_terminal_column_split_stored_split_successor_count_sum)) * efrd_row_scale_fubini_terminal_column_split_stored_split)) /\ exists ff_q_efrd_fubini_terminal_column_split_stored_split_successor_count_sum_summand. efrd_row_code_fubini_terminal_column_split_stored_split = ff_q_efrd_fubini_terminal_column_split_stored_split_successor_count_sum_summand * S ((S (ff_i_efrd_fubini_terminal_column_split_stored_split_successor_count_sum)) * efrd_row_scale_fubini_terminal_column_split_stored_split) + (ff_a_efrd_fubini_terminal_column_split_stored_split_successor_count_sum))) /\ ((((exists ff_h_efrd_fubini_terminal_column_split_stored_split_successor_count_sum_partial. ff_h_efrd_fubini_terminal_column_split_stored_split_successor_count_sum_partial + S (ff_r_efrd_fubini_terminal_column_split_stored_split_successor_count_sum) = S ((S (ff_i_efrd_fubini_terminal_column_split_stored_split_successor_count_sum)) * ff_v_efrd_fubini_terminal_column_split_stored_split_successor_count_sum)) /\ exists ff_q_efrd_fubini_terminal_column_split_stored_split_successor_count_sum_partial. ff_u_efrd_fubini_terminal_column_split_stored_split_successor_count_sum = ff_q_efrd_fubini_terminal_column_split_stored_split_successor_count_sum_partial * S ((S (ff_i_efrd_fubini_terminal_column_split_stored_split_successor_count_sum)) * ff_v_efrd_fubini_terminal_column_split_stored_split_successor_count_sum) + (ff_r_efrd_fubini_terminal_column_split_stored_split_successor_count_sum))) /\ ((((exists ff_h_efrd_fubini_terminal_column_split_stored_split_successor_count_sum_successor. ff_h_efrd_fubini_terminal_column_split_stored_split_successor_count_sum_successor + S (ff_s_efrd_fubini_terminal_column_split_stored_split_successor_count_sum) = S ((S (S ff_i_efrd_fubini_terminal_column_split_stored_split_successor_count_sum)) * ff_v_efrd_fubini_terminal_column_split_stored_split_successor_count_sum)) /\ exists ff_q_efrd_fubini_terminal_column_split_stored_split_successor_count_sum_successor. ff_u_efrd_fubini_terminal_column_split_stored_split_successor_count_sum = ff_q_efrd_fubini_terminal_column_split_stored_split_successor_count_sum_successor * S ((S (S ff_i_efrd_fubini_terminal_column_split_stored_split_successor_count_sum)) * ff_v_efrd_fubini_terminal_column_split_stored_split_successor_count_sum) + (ff_s_efrd_fubini_terminal_column_split_stored_split_successor_count_sum))) /\ ff_s_efrd_fubini_terminal_column_split_stored_split_successor_count_sum = ff_r_efrd_fubini_terminal_column_split_stored_split_successor_count_sum + ff_a_efrd_fubini_terminal_column_split_stored_split_successor_count_sum)))))) /\ (forall ff_i_efrd_fubini_terminal_column_split_stored_split_successor_count_bits. (exists ff_lt_efrd_fubini_terminal_column_split_stored_split_successor_count_bits_bound. ff_lt_efrd_fubini_terminal_column_split_stored_split_successor_count_bits_bound + S ff_i_efrd_fubini_terminal_column_split_stored_split_successor_count_bits = sh) -> exists ff_bit_efrd_fubini_terminal_column_split_stored_split_successor_count_bits. ((((exists ff_h_efrd_fubini_terminal_column_split_stored_split_successor_count_bits_decoded. ff_h_efrd_fubini_terminal_column_split_stored_split_successor_count_bits_decoded + S (ff_bit_efrd_fubini_terminal_column_split_stored_split_successor_count_bits) = S ((S (ff_i_efrd_fubini_terminal_column_split_stored_split_successor_count_bits)) * efrd_row_scale_fubini_terminal_column_split_stored_split)) /\ exists ff_q_efrd_fubini_terminal_column_split_stored_split_successor_count_bits_decoded. efrd_row_code_fubini_terminal_column_split_stored_split = ff_q_efrd_fubini_terminal_column_split_stored_split_successor_count_bits_decoded * S ((S (ff_i_efrd_fubini_terminal_column_split_stored_split_successor_count_bits)) * efrd_row_scale_fubini_terminal_column_split_stored_split) + (ff_bit_efrd_fubini_terminal_column_split_stored_split_successor_count_bits))) /\ (ff_bit_efrd_fubini_terminal_column_split_stored_split_successor_count_bits = 0 \/ ff_bit_efrd_fubini_terminal_column_split_stored_split_successor_count_bits = 1)))))) /\ ((forall eri_column_efrd_fubini_terminal_column_split_stored_split_reduced_prefix. (exists eri_gap_efrd_fubini_terminal_column_split_stored_split_reduced_prefix_bound. eri_gap_efrd_fubini_terminal_column_split_stored_split_reduced_prefix_bound + S (eri_column_efrd_fubini_terminal_column_split_stored_split_reduced_prefix) = h) -> exists eri_bit_efrd_fubini_terminal_column_split_stored_split_reduced_prefix. ((((exists ff_h_eri_efrd_fubini_terminal_column_split_stored_split_reduced_prefix_decoded. ff_h_eri_efrd_fubini_terminal_column_split_stored_split_reduced_prefix_decoded + S (eri_bit_efrd_fubini_terminal_column_split_stored_split_reduced_prefix) = S ((S (eri_column_efrd_fubini_terminal_column_split_stored_split_reduced_prefix)) * efrd_row_scale_fubini_terminal_column_split_stored_split)) /\ exists ff_q_eri_efrd_fubini_terminal_column_split_stored_split_reduced_prefix_decoded. efrd_row_code_fubini_terminal_column_split_stored_split = ff_q_eri_efrd_fubini_terminal_column_split_stored_split_reduced_prefix_decoded * S ((S (eri_column_efrd_fubini_terminal_column_split_stored_split_reduced_prefix)) * efrd_row_scale_fubini_terminal_column_split_stored_split) + (eri_bit_efrd_fubini_terminal_column_split_stored_split_reduced_prefix))) /\ (((eri_bit_efrd_fubini_terminal_column_split_stored_split_reduced_prefix = 0 /\ ((exists eri_gap_efrd_fubini_terminal_column_split_stored_split_reduced_prefix_choice_left. eri_gap_efrd_fubini_terminal_column_split_stored_split_reduced_prefix_choice_left + S (p * S j) = q * S eri_column_efrd_fubini_terminal_column_split_stored_split_reduced_prefix) /\ ~(exists eri_gap_efrd_fubini_terminal_column_split_stored_split_reduced_prefix_choice_right. eri_gap_efrd_fubini_terminal_column_split_stored_split_reduced_prefix_choice_right + S (q * S eri_column_efrd_fubini_terminal_column_split_stored_split_reduced_prefix) = p * S j))) \/ (eri_bit_efrd_fubini_terminal_column_split_stored_split_reduced_prefix = 1 /\ ((exists eri_gap_efrd_fubini_terminal_column_split_stored_split_reduced_prefix_choice_right. eri_gap_efrd_fubini_terminal_column_split_stored_split_reduced_prefix_choice_right + S (q * S eri_column_efrd_fubini_terminal_column_split_stored_split_reduced_prefix) = p * S j) /\ ~(exists eri_gap_efrd_fubini_terminal_column_split_stored_split_reduced_prefix_choice_left. eri_gap_efrd_fubini_terminal_column_split_stored_split_reduced_prefix_choice_left + S (p * S j) = q * S eri_column_efrd_fubini_terminal_column_split_stored_split_reduced_prefix))))))) /\ (((exists ff_h_efrd_fubini_terminal_column_split_stored_split_terminal_entry. ff_h_efrd_fubini_terminal_column_split_stored_split_terminal_entry + S (storeda) = S ((S (h)) * efrd_row_scale_fubini_terminal_column_split_stored_split)) /\ exists ff_q_efrd_fubini_terminal_column_split_stored_split_terminal_entry. efrd_row_code_fubini_terminal_column_split_stored_split = ff_q_efrd_fubini_terminal_column_split_stored_split_terminal_entry * S ((S (h)) * efrd_row_scale_fubini_terminal_column_split_stored_split) + (storeda))))) /\ (((((exists ff_u_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum ff_v_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum. ((((exists ff_h_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum_start. ff_h_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum_start + S (0) = S ((S (0)) * ff_v_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum)) /\ exists ff_q_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum_start. ff_u_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum = ff_q_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum_start * S ((S (0)) * ff_v_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum) + (0))) /\ ((((exists ff_h_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum_terminal. ff_h_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum_terminal + S (r) = S ((S (h)) * ff_v_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum)) /\ exists ff_q_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum_terminal. ff_u_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum = ff_q_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum_terminal * S ((S (h)) * ff_v_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum) + (r))) /\ forall ff_i_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum. (exists ff_lt_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum_bound. ff_lt_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum_bound + S ff_i_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum = h) -> exists ff_a_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum ff_r_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum ff_s_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum. ((((exists ff_h_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum_summand. ff_h_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum_summand + S (ff_a_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum) = S ((S (ff_i_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum)) * efrd_row_scale_fubini_terminal_column_split_stored_split)) /\ exists ff_q_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum_summand. efrd_row_code_fubini_terminal_column_split_stored_split = ff_q_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum_summand * S ((S (ff_i_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum)) * efrd_row_scale_fubini_terminal_column_split_stored_split) + (ff_a_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum))) /\ ((((exists ff_h_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum_partial. ff_h_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum_partial + S (ff_r_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum) = S ((S (ff_i_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum)) * ff_v_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum)) /\ exists ff_q_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum_partial. ff_u_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum = ff_q_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum_partial * S ((S (ff_i_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum)) * ff_v_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum) + (ff_r_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum))) /\ ((((exists ff_h_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum_successor. ff_h_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum_successor + S (ff_s_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum) = S ((S (S ff_i_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum)) * ff_v_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum)) /\ exists ff_q_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum_successor. ff_u_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum = ff_q_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum_successor * S ((S (S ff_i_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum)) * ff_v_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum) + (ff_s_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum))) /\ ff_s_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum = ff_r_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum + ff_a_efrd_fubini_terminal_column_split_stored_split_reduced_count_sum)))))) /\ (forall ff_i_efrd_fubini_terminal_column_split_stored_split_reduced_count_bits. (exists ff_lt_efrd_fubini_terminal_column_split_stored_split_reduced_count_bits_bound. ff_lt_efrd_fubini_terminal_column_split_stored_split_reduced_count_bits_bound + S ff_i_efrd_fubini_terminal_column_split_stored_split_reduced_count_bits = h) -> exists ff_bit_efrd_fubini_terminal_column_split_stored_split_reduced_count_bits. ((((exists ff_h_efrd_fubini_terminal_column_split_stored_split_reduced_count_bits_decoded. ff_h_efrd_fubini_terminal_column_split_stored_split_reduced_count_bits_decoded + S (ff_bit_efrd_fubini_terminal_column_split_stored_split_reduced_count_bits) = S ((S (ff_i_efrd_fubini_terminal_column_split_stored_split_reduced_count_bits)) * efrd_row_scale_fubini_terminal_column_split_stored_split)) /\ exists ff_q_efrd_fubini_terminal_column_split_stored_split_reduced_count_bits_decoded. efrd_row_code_fubini_terminal_column_split_stored_split = ff_q_efrd_fubini_terminal_column_split_stored_split_reduced_count_bits_decoded * S ((S (ff_i_efrd_fubini_terminal_column_split_stored_split_reduced_count_bits)) * efrd_row_scale_fubini_terminal_column_split_stored_split) + (ff_bit_efrd_fubini_terminal_column_split_stored_split_reduced_count_bits))) /\ (ff_bit_efrd_fubini_terminal_column_split_stored_split_reduced_count_bits = 0 \/ ff_bit_efrd_fubini_terminal_column_split_stored_split_reduced_count_bits = 1))))) /\ (storeda = 0 \/ storeda = 1)) /\ n = r + storeda))))))
  28. 0028specialize hsplit j
  29. 0029apply hsplit
  30. 0030exact hj
  31. 0031cases hsplit_stored
  32. 0032cases hsplit_stored_witness
  33. 0033cases hsplit_stored_witness_witness
  34. 0034cases hsplit_stored_witness_witness_witness
  35. 0035cases hsplit_stored_witness_witness_witness_left
  36. 0036cases hsplit_stored_witness_witness_witness_left_left
  37. 0037have hstored_a_eq : x2 = a
  38. 0038specialize beta_at_unique tb
  39. 0039specialize beta_at_unique tc
  40. 0040specialize beta_at_unique j
  41. 0041specialize beta_at_unique x2
  42. 0042specialize beta_at_unique a
  43. 0043apply beta_at_unique
  44. 0044exact hsplit_stored_witness_witness_witness_left_right
  45. 0045exact ha
  46. 0046cases hsplit_stored_witness_witness_witness_right
  47. 0047cases hsplit_stored_witness_witness_witness_right_witness
  48. 0048cases hsplit_stored_witness_witness_witness_right_witness_witness
  49. 0049cases hsplit_stored_witness_witness_witness_right_witness_witness_left
  50. 0050cases hsplit_stored_witness_witness_witness_right_witness_witness_left_left
  51. 0051cases hsplit_stored_witness_witness_witness_right_witness_witness_left_right
  52. 0052have hterminal_choice : ((x2 = 0 /\ ((exists eri_gap_fubini_terminal_column_terminal_choice_left. eri_gap_fubini_terminal_column_terminal_choice_left + S (p * S j) = q * S h) /\ ~(exists eri_gap_fubini_terminal_column_terminal_choice_right. eri_gap_fubini_terminal_column_terminal_choice_right + S (q * S h) = p * S j))) \/ (x2 = 1 /\ ((exists eri_gap_fubini_terminal_column_terminal_choice_right. eri_gap_fubini_terminal_column_terminal_choice_right + S (q * S h) = p * S j) /\ ~(exists eri_gap_fubini_terminal_column_terminal_choice_left. eri_gap_fubini_terminal_column_terminal_choice_left + S (p * S j) = q * S h))))
  53. 0053specialize eisenstein_row_indicator_decoded_choice q
  54. 0054specialize eisenstein_row_indicator_decoded_choice p
  55. 0055specialize eisenstein_row_indicator_decoded_choice j
  56. 0056specialize eisenstein_row_indicator_decoded_choice x3
  57. 0057specialize eisenstein_row_indicator_decoded_choice x4
  58. 0058specialize eisenstein_row_indicator_decoded_choice sh
  59. 0059specialize eisenstein_row_indicator_decoded_choice h
  60. 0060specialize eisenstein_row_indicator_decoded_choice x2
  61. 0061apply eisenstein_row_indicator_decoded_choice
  62. 0062exact hsplit_stored_witness_witness_witness_right_witness_witness_left_left_left
  63. 0063exact hhsh
  64. 0064exact hsplit_stored_witness_witness_witness_right_witness_witness_left_right_right
  65. 0065have hcolumn_stored : exists storedd. ((((exists ff_h_fubini_terminal_column_stored_entry. ff_h_fubini_terminal_column_stored_entry + S (storedd) = S ((S (j)) * cc)) /\ exists ff_q_fubini_terminal_column_stored_entry. cb = ff_q_fubini_terminal_column_stored_entry * S ((S (j)) * cc) + (storedd))) /\ (exists etc_count_fubini_terminal_column_stored_witness etc_row_code_fubini_terminal_column_stored_witness etc_row_scale_fubini_terminal_column_stored_witness. ((((((exists ff_h_etc_fubini_terminal_column_stored_witness_outer_entry. ff_h_etc_fubini_terminal_column_stored_witness_outer_entry + S (etc_count_fubini_terminal_column_stored_witness) = S ((S (j)) * bc)) /\ exists ff_q_etc_fubini_terminal_column_stored_witness_outer_entry. bb = ff_q_etc_fubini_terminal_column_stored_witness_outer_entry * S ((S (j)) * bc) + (etc_count_fubini_terminal_column_stored_witness))) /\ (forall eri_column_etc_fubini_terminal_column_stored_witness_row. (exists eri_gap_etc_fubini_terminal_column_stored_witness_row_bound. eri_gap_etc_fubini_terminal_column_stored_witness_row_bound + S (eri_column_etc_fubini_terminal_column_stored_witness_row) = sh) -> exists eri_bit_etc_fubini_terminal_column_stored_witness_row. ((((exists ff_h_eri_etc_fubini_terminal_column_stored_witness_row_decoded. ff_h_eri_etc_fubini_terminal_column_stored_witness_row_decoded + S (eri_bit_etc_fubini_terminal_column_stored_witness_row) = S ((S (eri_column_etc_fubini_terminal_column_stored_witness_row)) * etc_row_scale_fubini_terminal_column_stored_witness)) /\ exists ff_q_eri_etc_fubini_terminal_column_stored_witness_row_decoded. etc_row_code_fubini_terminal_column_stored_witness = ff_q_eri_etc_fubini_terminal_column_stored_witness_row_decoded * S ((S (eri_column_etc_fubini_terminal_column_stored_witness_row)) * etc_row_scale_fubini_terminal_column_stored_witness) + (eri_bit_etc_fubini_terminal_column_stored_witness_row))) /\ (((eri_bit_etc_fubini_terminal_column_stored_witness_row = 0 /\ ((exists eri_gap_etc_fubini_terminal_column_stored_witness_row_choice_left. eri_gap_etc_fubini_terminal_column_stored_witness_row_choice_left + S (p * S j) = q * S eri_column_etc_fubini_terminal_column_stored_witness_row) /\ ~(exists eri_gap_etc_fubini_terminal_column_stored_witness_row_choice_right. eri_gap_etc_fubini_terminal_column_stored_witness_row_choice_right + S (q * S eri_column_etc_fubini_terminal_column_stored_witness_row) = p * S j))) \/ (eri_bit_etc_fubini_terminal_column_stored_witness_row = 1 /\ ((exists eri_gap_etc_fubini_terminal_column_stored_witness_row_choice_right. eri_gap_etc_fubini_terminal_column_stored_witness_row_choice_right + S (q * S eri_column_etc_fubini_terminal_column_stored_witness_row) = p * S j) /\ ~(exists eri_gap_etc_fubini_terminal_column_stored_witness_row_choice_left. eri_gap_etc_fubini_terminal_column_stored_witness_row_choice_left + S (p * S j) = q * S eri_column_etc_fubini_terminal_column_stored_witness_row)))))))) /\ (((exists ff_u_etc_fubini_terminal_column_stored_witness_count_relation_sum ff_v_etc_fubini_terminal_column_stored_witness_count_relation_sum. ((((exists ff_h_etc_fubini_terminal_column_stored_witness_count_relation_sum_start. ff_h_etc_fubini_terminal_column_stored_witness_count_relation_sum_start + S (0) = S ((S (0)) * ff_v_etc_fubini_terminal_column_stored_witness_count_relation_sum)) /\ exists ff_q_etc_fubini_terminal_column_stored_witness_count_relation_sum_start. ff_u_etc_fubini_terminal_column_stored_witness_count_relation_sum = ff_q_etc_fubini_terminal_column_stored_witness_count_relation_sum_start * S ((S (0)) * ff_v_etc_fubini_terminal_column_stored_witness_count_relation_sum) + (0))) /\ ((((exists ff_h_etc_fubini_terminal_column_stored_witness_count_relation_sum_terminal. ff_h_etc_fubini_terminal_column_stored_witness_count_relation_sum_terminal + S (etc_count_fubini_terminal_column_stored_witness) = S ((S (sh)) * ff_v_etc_fubini_terminal_column_stored_witness_count_relation_sum)) /\ exists ff_q_etc_fubini_terminal_column_stored_witness_count_relation_sum_terminal. ff_u_etc_fubini_terminal_column_stored_witness_count_relation_sum = ff_q_etc_fubini_terminal_column_stored_witness_count_relation_sum_terminal * S ((S (sh)) * ff_v_etc_fubini_terminal_column_stored_witness_count_relation_sum) + (etc_count_fubini_terminal_column_stored_witness))) /\ forall ff_i_etc_fubini_terminal_column_stored_witness_count_relation_sum. (exists ff_lt_etc_fubini_terminal_column_stored_witness_count_relation_sum_bound. ff_lt_etc_fubini_terminal_column_stored_witness_count_relation_sum_bound + S ff_i_etc_fubini_terminal_column_stored_witness_count_relation_sum = sh) -> exists ff_a_etc_fubini_terminal_column_stored_witness_count_relation_sum ff_r_etc_fubini_terminal_column_stored_witness_count_relation_sum ff_s_etc_fubini_terminal_column_stored_witness_count_relation_sum. ((((exists ff_h_etc_fubini_terminal_column_stored_witness_count_relation_sum_summand. ff_h_etc_fubini_terminal_column_stored_witness_count_relation_sum_summand + S (ff_a_etc_fubini_terminal_column_stored_witness_count_relation_sum) = S ((S (ff_i_etc_fubini_terminal_column_stored_witness_count_relation_sum)) * etc_row_scale_fubini_terminal_column_stored_witness)) /\ exists ff_q_etc_fubini_terminal_column_stored_witness_count_relation_sum_summand. etc_row_code_fubini_terminal_column_stored_witness = ff_q_etc_fubini_terminal_column_stored_witness_count_relation_sum_summand * S ((S (ff_i_etc_fubini_terminal_column_stored_witness_count_relation_sum)) * etc_row_scale_fubini_terminal_column_stored_witness) + (ff_a_etc_fubini_terminal_column_stored_witness_count_relation_sum))) /\ ((((exists ff_h_etc_fubini_terminal_column_stored_witness_count_relation_sum_partial. ff_h_etc_fubini_terminal_column_stored_witness_count_relation_sum_partial + S (ff_r_etc_fubini_terminal_column_stored_witness_count_relation_sum) = S ((S (ff_i_etc_fubini_terminal_column_stored_witness_count_relation_sum)) * ff_v_etc_fubini_terminal_column_stored_witness_count_relation_sum)) /\ exists ff_q_etc_fubini_terminal_column_stored_witness_count_relation_sum_partial. ff_u_etc_fubini_terminal_column_stored_witness_count_relation_sum = ff_q_etc_fubini_terminal_column_stored_witness_count_relation_sum_partial * S ((S (ff_i_etc_fubini_terminal_column_stored_witness_count_relation_sum)) * ff_v_etc_fubini_terminal_column_stored_witness_count_relation_sum) + (ff_r_etc_fubini_terminal_column_stored_witness_count_relation_sum))) /\ ((((exists ff_h_etc_fubini_terminal_column_stored_witness_count_relation_sum_successor. ff_h_etc_fubini_terminal_column_stored_witness_count_relation_sum_successor + S (ff_s_etc_fubini_terminal_column_stored_witness_count_relation_sum) = S ((S (S ff_i_etc_fubini_terminal_column_stored_witness_count_relation_sum)) * ff_v_etc_fubini_terminal_column_stored_witness_count_relation_sum)) /\ exists ff_q_etc_fubini_terminal_column_stored_witness_count_relation_sum_successor. ff_u_etc_fubini_terminal_column_stored_witness_count_relation_sum = ff_q_etc_fubini_terminal_column_stored_witness_count_relation_sum_successor * S ((S (S ff_i_etc_fubini_terminal_column_stored_witness_count_relation_sum)) * ff_v_etc_fubini_terminal_column_stored_witness_count_relation_sum) + (ff_s_etc_fubini_terminal_column_stored_witness_count_relation_sum))) /\ ff_s_etc_fubini_terminal_column_stored_witness_count_relation_sum = ff_r_etc_fubini_terminal_column_stored_witness_count_relation_sum + ff_a_etc_fubini_terminal_column_stored_witness_count_relation_sum)))))) /\ (forall ff_i_etc_fubini_terminal_column_stored_witness_count_relation_bits. (exists ff_lt_etc_fubini_terminal_column_stored_witness_count_relation_bits_bound. ff_lt_etc_fubini_terminal_column_stored_witness_count_relation_bits_bound + S ff_i_etc_fubini_terminal_column_stored_witness_count_relation_bits = sh) -> exists ff_bit_etc_fubini_terminal_column_stored_witness_count_relation_bits. ((((exists ff_h_etc_fubini_terminal_column_stored_witness_count_relation_bits_decoded. ff_h_etc_fubini_terminal_column_stored_witness_count_relation_bits_decoded + S (ff_bit_etc_fubini_terminal_column_stored_witness_count_relation_bits) = S ((S (ff_i_etc_fubini_terminal_column_stored_witness_count_relation_bits)) * etc_row_scale_fubini_terminal_column_stored_witness)) /\ exists ff_q_etc_fubini_terminal_column_stored_witness_count_relation_bits_decoded. etc_row_code_fubini_terminal_column_stored_witness = ff_q_etc_fubini_terminal_column_stored_witness_count_relation_bits_decoded * S ((S (ff_i_etc_fubini_terminal_column_stored_witness_count_relation_bits)) * etc_row_scale_fubini_terminal_column_stored_witness) + (ff_bit_etc_fubini_terminal_column_stored_witness_count_relation_bits))) /\ (ff_bit_etc_fubini_terminal_column_stored_witness_count_relation_bits = 0 \/ ff_bit_etc_fubini_terminal_column_stored_witness_count_relation_bits = 1)))))) /\ (((exists ff_h_etc_fubini_terminal_column_stored_witness_inner_entry. ff_h_etc_fubini_terminal_column_stored_witness_inner_entry + S (storedd) = S ((S (h)) * etc_row_scale_fubini_terminal_column_stored_witness)) /\ exists ff_q_etc_fubini_terminal_column_stored_witness_inner_entry. etc_row_code_fubini_terminal_column_stored_witness = ff_q_etc_fubini_terminal_column_stored_witness_inner_entry * S ((S (h)) * etc_row_scale_fubini_terminal_column_stored_witness) + (storedd))))))
  66. 0066specialize hcolumn j
  67. 0067apply hcolumn
  68. 0068exact hj
  69. 0069cases hcolumn_stored
  70. 0070cases hcolumn_stored_witness
  71. 0071have hstored_d_eq : x5 = d
  72. 0072specialize beta_at_unique cb
  73. 0073specialize beta_at_unique cc
  74. 0074specialize beta_at_unique j
  75. 0075specialize beta_at_unique x5
  76. 0076specialize beta_at_unique d
  77. 0077apply beta_at_unique
  78. 0078exact hcolumn_stored_witness_left
  79. 0079exact hd
  80. 0080cases hcolumn_stored_witness_right
  81. 0081cases hcolumn_stored_witness_right_witness
  82. 0082cases hcolumn_stored_witness_right_witness_witness
  83. 0083cases hcolumn_stored_witness_right_witness_witness_witness
  84. 0084cases hcolumn_stored_witness_right_witness_witness_witness_left
  85. 0085cases hcolumn_stored_witness_right_witness_witness_witness_left_left
  86. 0086have hcolumn_choice : ((x5 = 0 /\ ((exists eri_gap_fubini_terminal_column_column_choice_left. eri_gap_fubini_terminal_column_column_choice_left + S (p * S j) = q * S h) /\ ~(exists eri_gap_fubini_terminal_column_column_choice_right. eri_gap_fubini_terminal_column_column_choice_right + S (q * S h) = p * S j))) \/ (x5 = 1 /\ ((exists eri_gap_fubini_terminal_column_column_choice_right. eri_gap_fubini_terminal_column_column_choice_right + S (q * S h) = p * S j) /\ ~(exists eri_gap_fubini_terminal_column_column_choice_left. eri_gap_fubini_terminal_column_column_choice_left + S (p * S j) = q * S h))))
  87. 0087specialize eisenstein_row_indicator_decoded_choice q
  88. 0088specialize eisenstein_row_indicator_decoded_choice p
  89. 0089specialize eisenstein_row_indicator_decoded_choice j
  90. 0090specialize eisenstein_row_indicator_decoded_choice x7
  91. 0091specialize eisenstein_row_indicator_decoded_choice x8
  92. 0092specialize eisenstein_row_indicator_decoded_choice sh
  93. 0093specialize eisenstein_row_indicator_decoded_choice h
  94. 0094specialize eisenstein_row_indicator_decoded_choice x5
  95. 0095apply eisenstein_row_indicator_decoded_choice
  96. 0096exact hcolumn_stored_witness_right_witness_witness_witness_left_left_right
  97. 0097exact hhsh
  98. 0098exact hcolumn_stored_witness_right_witness_witness_witness_right
  99. 0099rewrite hstored_a_eq at hterminal_choice
  100. 0100rewrite hstored_a_eq at hterminal_choice
  101. 0101rewrite hstored_d_eq at hcolumn_choice
  102. 0102rewrite hstored_d_eq at hcolumn_choice
  103. 0103specialize eisenstein_cell_indicator_choice_unique q
  104. 0104specialize eisenstein_cell_indicator_choice_unique p
  105. 0105specialize eisenstein_cell_indicator_choice_unique j
  106. 0106specialize eisenstein_cell_indicator_choice_unique h
  107. 0107specialize eisenstein_cell_indicator_choice_unique a
  108. 0108specialize eisenstein_cell_indicator_choice_unique d
  109. 0109apply eisenstein_cell_indicator_choice_unique
  110. 0110exact hterminal_choice
  111. 0111exact hcolumn_choice