PA00FF

distinct_odd_prime_eisenstein_quotient_sum_identity

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

For distinct odd primes, the two decoded finite quotient sums add exactly to h*k.

Exact expanded PA statement

forall p q h k tb tc qb qc ub uc sb sc vb vc wb wc ab ac bb bc Q U. p = 2 * h + 1 -> q = 2 * k + 1 -> ((~(p = 1) /\ forall frp_prime_left_quotient_sum_identity_prime_p frp_prime_right_quotient_sum_identity_prime_p. p = frp_prime_left_quotient_sum_identity_prime_p * frp_prime_right_quotient_sum_identity_prime_p -> frp_prime_left_quotient_sum_identity_prime_p = 1 \/ frp_prime_right_quotient_sum_identity_prime_p = 1)) -> ((~(q = 1) /\ forall frp_prime_left_quotient_sum_identity_prime_q frp_prime_right_quotient_sum_identity_prime_q. q = frp_prime_left_quotient_sum_identity_prime_q * frp_prime_right_quotient_sum_identity_prime_q -> frp_prime_left_quotient_sum_identity_prime_q = 1 \/ frp_prime_right_quotient_sum_identity_prime_q = 1)) -> ~(p = q) -> (forall esd_index_quotient_sum_identity_first_scaled esd_value_quotient_sum_identity_first_scaled. (exists esd_gap_quotient_sum_identity_first_scaled. esd_gap_quotient_sum_identity_first_scaled + S esd_index_quotient_sum_identity_first_scaled = h) -> (((exists ff_h_esd_quotient_sum_identity_first_scaled_decoded. ff_h_esd_quotient_sum_identity_first_scaled_decoded + S (esd_value_quotient_sum_identity_first_scaled) = S ((S (esd_index_quotient_sum_identity_first_scaled)) * tc)) /\ exists ff_q_esd_quotient_sum_identity_first_scaled_decoded. tb = ff_q_esd_quotient_sum_identity_first_scaled_decoded * S ((S (esd_index_quotient_sum_identity_first_scaled)) * tc) + (esd_value_quotient_sum_identity_first_scaled))) -> esd_value_quotient_sum_identity_first_scaled = q * (1 + esd_index_quotient_sum_identity_first_scaled)) -> (forall fdp_index_quotient_sum_identity_first_divisions. (exists gsp_lt_gap_quotient_sum_identity_first_divisions_index_bound. gsp_lt_gap_quotient_sum_identity_first_divisions_index_bound + S fdp_index_quotient_sum_identity_first_divisions = h) -> exists fdp_value_quotient_sum_identity_first_divisions fdp_quotient_quotient_sum_identity_first_divisions fdp_remainder_quotient_sum_identity_first_divisions. (((exists ff_h_fdp_quotient_sum_identity_first_divisions_source. ff_h_fdp_quotient_sum_identity_first_divisions_source + S (fdp_value_quotient_sum_identity_first_divisions) = S ((S (fdp_index_quotient_sum_identity_first_divisions)) * tc)) /\ exists ff_q_fdp_quotient_sum_identity_first_divisions_source. tb = ff_q_fdp_quotient_sum_identity_first_divisions_source * S ((S (fdp_index_quotient_sum_identity_first_divisions)) * tc) + (fdp_value_quotient_sum_identity_first_divisions))) /\ ((((exists ff_h_fdp_quotient_sum_identity_first_divisions_quotient_entry. ff_h_fdp_quotient_sum_identity_first_divisions_quotient_entry + S (fdp_quotient_quotient_sum_identity_first_divisions) = S ((S (fdp_index_quotient_sum_identity_first_divisions)) * qc)) /\ exists ff_q_fdp_quotient_sum_identity_first_divisions_quotient_entry. qb = ff_q_fdp_quotient_sum_identity_first_divisions_quotient_entry * S ((S (fdp_index_quotient_sum_identity_first_divisions)) * qc) + (fdp_quotient_quotient_sum_identity_first_divisions))) /\ ((((exists ff_h_fdp_quotient_sum_identity_first_divisions_remainder_entry. ff_h_fdp_quotient_sum_identity_first_divisions_remainder_entry + S (fdp_remainder_quotient_sum_identity_first_divisions) = S ((S (fdp_index_quotient_sum_identity_first_divisions)) * uc)) /\ exists ff_q_fdp_quotient_sum_identity_first_divisions_remainder_entry. ub = ff_q_fdp_quotient_sum_identity_first_divisions_remainder_entry * S ((S (fdp_index_quotient_sum_identity_first_divisions)) * uc) + (fdp_remainder_quotient_sum_identity_first_divisions))) /\ (fdp_value_quotient_sum_identity_first_divisions = p * fdp_quotient_quotient_sum_identity_first_divisions + fdp_remainder_quotient_sum_identity_first_divisions /\ (exists gsp_lt_gap_quotient_sum_identity_first_divisions_remainder_bound. gsp_lt_gap_quotient_sum_identity_first_divisions_remainder_bound + S fdp_remainder_quotient_sum_identity_first_divisions = p))))) -> (forall esd_index_quotient_sum_identity_second_scaled esd_value_quotient_sum_identity_second_scaled. (exists esd_gap_quotient_sum_identity_second_scaled. esd_gap_quotient_sum_identity_second_scaled + S esd_index_quotient_sum_identity_second_scaled = k) -> (((exists ff_h_esd_quotient_sum_identity_second_scaled_decoded. ff_h_esd_quotient_sum_identity_second_scaled_decoded + S (esd_value_quotient_sum_identity_second_scaled) = S ((S (esd_index_quotient_sum_identity_second_scaled)) * sc)) /\ exists ff_q_esd_quotient_sum_identity_second_scaled_decoded. sb = ff_q_esd_quotient_sum_identity_second_scaled_decoded * S ((S (esd_index_quotient_sum_identity_second_scaled)) * sc) + (esd_value_quotient_sum_identity_second_scaled))) -> esd_value_quotient_sum_identity_second_scaled = p * (1 + esd_index_quotient_sum_identity_second_scaled)) -> (forall fdp_index_quotient_sum_identity_second_divisions. (exists gsp_lt_gap_quotient_sum_identity_second_divisions_index_bound. gsp_lt_gap_quotient_sum_identity_second_divisions_index_bound + S fdp_index_quotient_sum_identity_second_divisions = k) -> exists fdp_value_quotient_sum_identity_second_divisions fdp_quotient_quotient_sum_identity_second_divisions fdp_remainder_quotient_sum_identity_second_divisions. (((exists ff_h_fdp_quotient_sum_identity_second_divisions_source. ff_h_fdp_quotient_sum_identity_second_divisions_source + S (fdp_value_quotient_sum_identity_second_divisions) = S ((S (fdp_index_quotient_sum_identity_second_divisions)) * sc)) /\ exists ff_q_fdp_quotient_sum_identity_second_divisions_source. sb = ff_q_fdp_quotient_sum_identity_second_divisions_source * S ((S (fdp_index_quotient_sum_identity_second_divisions)) * sc) + (fdp_value_quotient_sum_identity_second_divisions))) /\ ((((exists ff_h_fdp_quotient_sum_identity_second_divisions_quotient_entry. ff_h_fdp_quotient_sum_identity_second_divisions_quotient_entry + S (fdp_quotient_quotient_sum_identity_second_divisions) = S ((S (fdp_index_quotient_sum_identity_second_divisions)) * vc)) /\ exists ff_q_fdp_quotient_sum_identity_second_divisions_quotient_entry. vb = ff_q_fdp_quotient_sum_identity_second_divisions_quotient_entry * S ((S (fdp_index_quotient_sum_identity_second_divisions)) * vc) + (fdp_quotient_quotient_sum_identity_second_divisions))) /\ ((((exists ff_h_fdp_quotient_sum_identity_second_divisions_remainder_entry. ff_h_fdp_quotient_sum_identity_second_divisions_remainder_entry + S (fdp_remainder_quotient_sum_identity_second_divisions) = S ((S (fdp_index_quotient_sum_identity_second_divisions)) * wc)) /\ exists ff_q_fdp_quotient_sum_identity_second_divisions_remainder_entry. wb = ff_q_fdp_quotient_sum_identity_second_divisions_remainder_entry * S ((S (fdp_index_quotient_sum_identity_second_divisions)) * wc) + (fdp_remainder_quotient_sum_identity_second_divisions))) /\ (fdp_value_quotient_sum_identity_second_divisions = q * fdp_quotient_quotient_sum_identity_second_divisions + fdp_remainder_quotient_sum_identity_second_divisions /\ (exists gsp_lt_gap_quotient_sum_identity_second_divisions_remainder_bound. gsp_lt_gap_quotient_sum_identity_second_divisions_remainder_bound + S fdp_remainder_quotient_sum_identity_second_divisions = q))))) -> (forall erc_row_quotient_sum_identity_first_outer. (exists erc_lt_gap_quotient_sum_identity_first_outer_bound. erc_lt_gap_quotient_sum_identity_first_outer_bound + S (erc_row_quotient_sum_identity_first_outer) = h) -> exists erc_count_quotient_sum_identity_first_outer. ((((exists ff_h_erc_quotient_sum_identity_first_outer_decoded. ff_h_erc_quotient_sum_identity_first_outer_decoded + S (erc_count_quotient_sum_identity_first_outer) = S ((S (erc_row_quotient_sum_identity_first_outer)) * ac)) /\ exists ff_q_erc_quotient_sum_identity_first_outer_decoded. ab = ff_q_erc_quotient_sum_identity_first_outer_decoded * S ((S (erc_row_quotient_sum_identity_first_outer)) * ac) + (erc_count_quotient_sum_identity_first_outer))) /\ (exists erc_row_code_quotient_sum_identity_first_outer_witness erc_row_scale_quotient_sum_identity_first_outer_witness. ((forall eri_column_erc_quotient_sum_identity_first_outer_witness_row. (exists eri_gap_erc_quotient_sum_identity_first_outer_witness_row_bound. eri_gap_erc_quotient_sum_identity_first_outer_witness_row_bound + S (eri_column_erc_quotient_sum_identity_first_outer_witness_row) = k) -> exists eri_bit_erc_quotient_sum_identity_first_outer_witness_row. ((((exists ff_h_eri_erc_quotient_sum_identity_first_outer_witness_row_decoded. ff_h_eri_erc_quotient_sum_identity_first_outer_witness_row_decoded + S (eri_bit_erc_quotient_sum_identity_first_outer_witness_row) = S ((S (eri_column_erc_quotient_sum_identity_first_outer_witness_row)) * erc_row_scale_quotient_sum_identity_first_outer_witness)) /\ exists ff_q_eri_erc_quotient_sum_identity_first_outer_witness_row_decoded. erc_row_code_quotient_sum_identity_first_outer_witness = ff_q_eri_erc_quotient_sum_identity_first_outer_witness_row_decoded * S ((S (eri_column_erc_quotient_sum_identity_first_outer_witness_row)) * erc_row_scale_quotient_sum_identity_first_outer_witness) + (eri_bit_erc_quotient_sum_identity_first_outer_witness_row))) /\ (((eri_bit_erc_quotient_sum_identity_first_outer_witness_row = 0 /\ ((exists eri_gap_erc_quotient_sum_identity_first_outer_witness_row_choice_left. eri_gap_erc_quotient_sum_identity_first_outer_witness_row_choice_left + S (q * S erc_row_quotient_sum_identity_first_outer) = p * S eri_column_erc_quotient_sum_identity_first_outer_witness_row) /\ ~(exists eri_gap_erc_quotient_sum_identity_first_outer_witness_row_choice_right. eri_gap_erc_quotient_sum_identity_first_outer_witness_row_choice_right + S (p * S eri_column_erc_quotient_sum_identity_first_outer_witness_row) = q * S erc_row_quotient_sum_identity_first_outer))) \/ (eri_bit_erc_quotient_sum_identity_first_outer_witness_row = 1 /\ ((exists eri_gap_erc_quotient_sum_identity_first_outer_witness_row_choice_right. eri_gap_erc_quotient_sum_identity_first_outer_witness_row_choice_right + S (p * S eri_column_erc_quotient_sum_identity_first_outer_witness_row) = q * S erc_row_quotient_sum_identity_first_outer) /\ ~(exists eri_gap_erc_quotient_sum_identity_first_outer_witness_row_choice_left. eri_gap_erc_quotient_sum_identity_first_outer_witness_row_choice_left + S (q * S erc_row_quotient_sum_identity_first_outer) = p * S eri_column_erc_quotient_sum_identity_first_outer_witness_row))))))) /\ (((exists ff_u_erc_quotient_sum_identity_first_outer_witness_count_sum ff_v_erc_quotient_sum_identity_first_outer_witness_count_sum. ((((exists ff_h_erc_quotient_sum_identity_first_outer_witness_count_sum_start. ff_h_erc_quotient_sum_identity_first_outer_witness_count_sum_start + S (0) = S ((S (0)) * ff_v_erc_quotient_sum_identity_first_outer_witness_count_sum)) /\ exists ff_q_erc_quotient_sum_identity_first_outer_witness_count_sum_start. ff_u_erc_quotient_sum_identity_first_outer_witness_count_sum = ff_q_erc_quotient_sum_identity_first_outer_witness_count_sum_start * S ((S (0)) * ff_v_erc_quotient_sum_identity_first_outer_witness_count_sum) + (0))) /\ ((((exists ff_h_erc_quotient_sum_identity_first_outer_witness_count_sum_terminal. ff_h_erc_quotient_sum_identity_first_outer_witness_count_sum_terminal + S (erc_count_quotient_sum_identity_first_outer) = S ((S (k)) * ff_v_erc_quotient_sum_identity_first_outer_witness_count_sum)) /\ exists ff_q_erc_quotient_sum_identity_first_outer_witness_count_sum_terminal. ff_u_erc_quotient_sum_identity_first_outer_witness_count_sum = ff_q_erc_quotient_sum_identity_first_outer_witness_count_sum_terminal * S ((S (k)) * ff_v_erc_quotient_sum_identity_first_outer_witness_count_sum) + (erc_count_quotient_sum_identity_first_outer))) /\ forall ff_i_erc_quotient_sum_identity_first_outer_witness_count_sum. (exists ff_lt_erc_quotient_sum_identity_first_outer_witness_count_sum_bound. ff_lt_erc_quotient_sum_identity_first_outer_witness_count_sum_bound + S ff_i_erc_quotient_sum_identity_first_outer_witness_count_sum = k) -> exists ff_a_erc_quotient_sum_identity_first_outer_witness_count_sum ff_r_erc_quotient_sum_identity_first_outer_witness_count_sum ff_s_erc_quotient_sum_identity_first_outer_witness_count_sum. ((((exists ff_h_erc_quotient_sum_identity_first_outer_witness_count_sum_summand. ff_h_erc_quotient_sum_identity_first_outer_witness_count_sum_summand + S (ff_a_erc_quotient_sum_identity_first_outer_witness_count_sum) = S ((S (ff_i_erc_quotient_sum_identity_first_outer_witness_count_sum)) * erc_row_scale_quotient_sum_identity_first_outer_witness)) /\ exists ff_q_erc_quotient_sum_identity_first_outer_witness_count_sum_summand. erc_row_code_quotient_sum_identity_first_outer_witness = ff_q_erc_quotient_sum_identity_first_outer_witness_count_sum_summand * S ((S (ff_i_erc_quotient_sum_identity_first_outer_witness_count_sum)) * erc_row_scale_quotient_sum_identity_first_outer_witness) + (ff_a_erc_quotient_sum_identity_first_outer_witness_count_sum))) /\ ((((exists ff_h_erc_quotient_sum_identity_first_outer_witness_count_sum_partial. ff_h_erc_quotient_sum_identity_first_outer_witness_count_sum_partial + S (ff_r_erc_quotient_sum_identity_first_outer_witness_count_sum) = S ((S (ff_i_erc_quotient_sum_identity_first_outer_witness_count_sum)) * ff_v_erc_quotient_sum_identity_first_outer_witness_count_sum)) /\ exists ff_q_erc_quotient_sum_identity_first_outer_witness_count_sum_partial. ff_u_erc_quotient_sum_identity_first_outer_witness_count_sum = ff_q_erc_quotient_sum_identity_first_outer_witness_count_sum_partial * S ((S (ff_i_erc_quotient_sum_identity_first_outer_witness_count_sum)) * ff_v_erc_quotient_sum_identity_first_outer_witness_count_sum) + (ff_r_erc_quotient_sum_identity_first_outer_witness_count_sum))) /\ ((((exists ff_h_erc_quotient_sum_identity_first_outer_witness_count_sum_successor. ff_h_erc_quotient_sum_identity_first_outer_witness_count_sum_successor + S (ff_s_erc_quotient_sum_identity_first_outer_witness_count_sum) = S ((S (S ff_i_erc_quotient_sum_identity_first_outer_witness_count_sum)) * ff_v_erc_quotient_sum_identity_first_outer_witness_count_sum)) /\ exists ff_q_erc_quotient_sum_identity_first_outer_witness_count_sum_successor. ff_u_erc_quotient_sum_identity_first_outer_witness_count_sum = ff_q_erc_quotient_sum_identity_first_outer_witness_count_sum_successor * S ((S (S ff_i_erc_quotient_sum_identity_first_outer_witness_count_sum)) * ff_v_erc_quotient_sum_identity_first_outer_witness_count_sum) + (ff_s_erc_quotient_sum_identity_first_outer_witness_count_sum))) /\ ff_s_erc_quotient_sum_identity_first_outer_witness_count_sum = ff_r_erc_quotient_sum_identity_first_outer_witness_count_sum + ff_a_erc_quotient_sum_identity_first_outer_witness_count_sum)))))) /\ (forall ff_i_erc_quotient_sum_identity_first_outer_witness_count_bits. (exists ff_lt_erc_quotient_sum_identity_first_outer_witness_count_bits_bound. ff_lt_erc_quotient_sum_identity_first_outer_witness_count_bits_bound + S ff_i_erc_quotient_sum_identity_first_outer_witness_count_bits = k) -> exists ff_bit_erc_quotient_sum_identity_first_outer_witness_count_bits. ((((exists ff_h_erc_quotient_sum_identity_first_outer_witness_count_bits_decoded. ff_h_erc_quotient_sum_identity_first_outer_witness_count_bits_decoded + S (ff_bit_erc_quotient_sum_identity_first_outer_witness_count_bits) = S ((S (ff_i_erc_quotient_sum_identity_first_outer_witness_count_bits)) * erc_row_scale_quotient_sum_identity_first_outer_witness)) /\ exists ff_q_erc_quotient_sum_identity_first_outer_witness_count_bits_decoded. erc_row_code_quotient_sum_identity_first_outer_witness = ff_q_erc_quotient_sum_identity_first_outer_witness_count_bits_decoded * S ((S (ff_i_erc_quotient_sum_identity_first_outer_witness_count_bits)) * erc_row_scale_quotient_sum_identity_first_outer_witness) + (ff_bit_erc_quotient_sum_identity_first_outer_witness_count_bits))) /\ (ff_bit_erc_quotient_sum_identity_first_outer_witness_count_bits = 0 \/ ff_bit_erc_quotient_sum_identity_first_outer_witness_count_bits = 1))))))))) -> (forall erc_row_quotient_sum_identity_second_outer. (exists erc_lt_gap_quotient_sum_identity_second_outer_bound. erc_lt_gap_quotient_sum_identity_second_outer_bound + S (erc_row_quotient_sum_identity_second_outer) = k) -> exists erc_count_quotient_sum_identity_second_outer. ((((exists ff_h_erc_quotient_sum_identity_second_outer_decoded. ff_h_erc_quotient_sum_identity_second_outer_decoded + S (erc_count_quotient_sum_identity_second_outer) = S ((S (erc_row_quotient_sum_identity_second_outer)) * bc)) /\ exists ff_q_erc_quotient_sum_identity_second_outer_decoded. bb = ff_q_erc_quotient_sum_identity_second_outer_decoded * S ((S (erc_row_quotient_sum_identity_second_outer)) * bc) + (erc_count_quotient_sum_identity_second_outer))) /\ (exists erc_row_code_quotient_sum_identity_second_outer_witness erc_row_scale_quotient_sum_identity_second_outer_witness. ((forall eri_column_erc_quotient_sum_identity_second_outer_witness_row. (exists eri_gap_erc_quotient_sum_identity_second_outer_witness_row_bound. eri_gap_erc_quotient_sum_identity_second_outer_witness_row_bound + S (eri_column_erc_quotient_sum_identity_second_outer_witness_row) = h) -> exists eri_bit_erc_quotient_sum_identity_second_outer_witness_row. ((((exists ff_h_eri_erc_quotient_sum_identity_second_outer_witness_row_decoded. ff_h_eri_erc_quotient_sum_identity_second_outer_witness_row_decoded + S (eri_bit_erc_quotient_sum_identity_second_outer_witness_row) = S ((S (eri_column_erc_quotient_sum_identity_second_outer_witness_row)) * erc_row_scale_quotient_sum_identity_second_outer_witness)) /\ exists ff_q_eri_erc_quotient_sum_identity_second_outer_witness_row_decoded. erc_row_code_quotient_sum_identity_second_outer_witness = ff_q_eri_erc_quotient_sum_identity_second_outer_witness_row_decoded * S ((S (eri_column_erc_quotient_sum_identity_second_outer_witness_row)) * erc_row_scale_quotient_sum_identity_second_outer_witness) + (eri_bit_erc_quotient_sum_identity_second_outer_witness_row))) /\ (((eri_bit_erc_quotient_sum_identity_second_outer_witness_row = 0 /\ ((exists eri_gap_erc_quotient_sum_identity_second_outer_witness_row_choice_left. eri_gap_erc_quotient_sum_identity_second_outer_witness_row_choice_left + S (p * S erc_row_quotient_sum_identity_second_outer) = q * S eri_column_erc_quotient_sum_identity_second_outer_witness_row) /\ ~(exists eri_gap_erc_quotient_sum_identity_second_outer_witness_row_choice_right. eri_gap_erc_quotient_sum_identity_second_outer_witness_row_choice_right + S (q * S eri_column_erc_quotient_sum_identity_second_outer_witness_row) = p * S erc_row_quotient_sum_identity_second_outer))) \/ (eri_bit_erc_quotient_sum_identity_second_outer_witness_row = 1 /\ ((exists eri_gap_erc_quotient_sum_identity_second_outer_witness_row_choice_right. eri_gap_erc_quotient_sum_identity_second_outer_witness_row_choice_right + S (q * S eri_column_erc_quotient_sum_identity_second_outer_witness_row) = p * S erc_row_quotient_sum_identity_second_outer) /\ ~(exists eri_gap_erc_quotient_sum_identity_second_outer_witness_row_choice_left. eri_gap_erc_quotient_sum_identity_second_outer_witness_row_choice_left + S (p * S erc_row_quotient_sum_identity_second_outer) = q * S eri_column_erc_quotient_sum_identity_second_outer_witness_row))))))) /\ (((exists ff_u_erc_quotient_sum_identity_second_outer_witness_count_sum ff_v_erc_quotient_sum_identity_second_outer_witness_count_sum. ((((exists ff_h_erc_quotient_sum_identity_second_outer_witness_count_sum_start. ff_h_erc_quotient_sum_identity_second_outer_witness_count_sum_start + S (0) = S ((S (0)) * ff_v_erc_quotient_sum_identity_second_outer_witness_count_sum)) /\ exists ff_q_erc_quotient_sum_identity_second_outer_witness_count_sum_start. ff_u_erc_quotient_sum_identity_second_outer_witness_count_sum = ff_q_erc_quotient_sum_identity_second_outer_witness_count_sum_start * S ((S (0)) * ff_v_erc_quotient_sum_identity_second_outer_witness_count_sum) + (0))) /\ ((((exists ff_h_erc_quotient_sum_identity_second_outer_witness_count_sum_terminal. ff_h_erc_quotient_sum_identity_second_outer_witness_count_sum_terminal + S (erc_count_quotient_sum_identity_second_outer) = S ((S (h)) * ff_v_erc_quotient_sum_identity_second_outer_witness_count_sum)) /\ exists ff_q_erc_quotient_sum_identity_second_outer_witness_count_sum_terminal. ff_u_erc_quotient_sum_identity_second_outer_witness_count_sum = ff_q_erc_quotient_sum_identity_second_outer_witness_count_sum_terminal * S ((S (h)) * ff_v_erc_quotient_sum_identity_second_outer_witness_count_sum) + (erc_count_quotient_sum_identity_second_outer))) /\ forall ff_i_erc_quotient_sum_identity_second_outer_witness_count_sum. (exists ff_lt_erc_quotient_sum_identity_second_outer_witness_count_sum_bound. ff_lt_erc_quotient_sum_identity_second_outer_witness_count_sum_bound + S ff_i_erc_quotient_sum_identity_second_outer_witness_count_sum = h) -> exists ff_a_erc_quotient_sum_identity_second_outer_witness_count_sum ff_r_erc_quotient_sum_identity_second_outer_witness_count_sum ff_s_erc_quotient_sum_identity_second_outer_witness_count_sum. ((((exists ff_h_erc_quotient_sum_identity_second_outer_witness_count_sum_summand. ff_h_erc_quotient_sum_identity_second_outer_witness_count_sum_summand + S (ff_a_erc_quotient_sum_identity_second_outer_witness_count_sum) = S ((S (ff_i_erc_quotient_sum_identity_second_outer_witness_count_sum)) * erc_row_scale_quotient_sum_identity_second_outer_witness)) /\ exists ff_q_erc_quotient_sum_identity_second_outer_witness_count_sum_summand. erc_row_code_quotient_sum_identity_second_outer_witness = ff_q_erc_quotient_sum_identity_second_outer_witness_count_sum_summand * S ((S (ff_i_erc_quotient_sum_identity_second_outer_witness_count_sum)) * erc_row_scale_quotient_sum_identity_second_outer_witness) + (ff_a_erc_quotient_sum_identity_second_outer_witness_count_sum))) /\ ((((exists ff_h_erc_quotient_sum_identity_second_outer_witness_count_sum_partial. ff_h_erc_quotient_sum_identity_second_outer_witness_count_sum_partial + S (ff_r_erc_quotient_sum_identity_second_outer_witness_count_sum) = S ((S (ff_i_erc_quotient_sum_identity_second_outer_witness_count_sum)) * ff_v_erc_quotient_sum_identity_second_outer_witness_count_sum)) /\ exists ff_q_erc_quotient_sum_identity_second_outer_witness_count_sum_partial. ff_u_erc_quotient_sum_identity_second_outer_witness_count_sum = ff_q_erc_quotient_sum_identity_second_outer_witness_count_sum_partial * S ((S (ff_i_erc_quotient_sum_identity_second_outer_witness_count_sum)) * ff_v_erc_quotient_sum_identity_second_outer_witness_count_sum) + (ff_r_erc_quotient_sum_identity_second_outer_witness_count_sum))) /\ ((((exists ff_h_erc_quotient_sum_identity_second_outer_witness_count_sum_successor. ff_h_erc_quotient_sum_identity_second_outer_witness_count_sum_successor + S (ff_s_erc_quotient_sum_identity_second_outer_witness_count_sum) = S ((S (S ff_i_erc_quotient_sum_identity_second_outer_witness_count_sum)) * ff_v_erc_quotient_sum_identity_second_outer_witness_count_sum)) /\ exists ff_q_erc_quotient_sum_identity_second_outer_witness_count_sum_successor. ff_u_erc_quotient_sum_identity_second_outer_witness_count_sum = ff_q_erc_quotient_sum_identity_second_outer_witness_count_sum_successor * S ((S (S ff_i_erc_quotient_sum_identity_second_outer_witness_count_sum)) * ff_v_erc_quotient_sum_identity_second_outer_witness_count_sum) + (ff_s_erc_quotient_sum_identity_second_outer_witness_count_sum))) /\ ff_s_erc_quotient_sum_identity_second_outer_witness_count_sum = ff_r_erc_quotient_sum_identity_second_outer_witness_count_sum + ff_a_erc_quotient_sum_identity_second_outer_witness_count_sum)))))) /\ (forall ff_i_erc_quotient_sum_identity_second_outer_witness_count_bits. (exists ff_lt_erc_quotient_sum_identity_second_outer_witness_count_bits_bound. ff_lt_erc_quotient_sum_identity_second_outer_witness_count_bits_bound + S ff_i_erc_quotient_sum_identity_second_outer_witness_count_bits = h) -> exists ff_bit_erc_quotient_sum_identity_second_outer_witness_count_bits. ((((exists ff_h_erc_quotient_sum_identity_second_outer_witness_count_bits_decoded. ff_h_erc_quotient_sum_identity_second_outer_witness_count_bits_decoded + S (ff_bit_erc_quotient_sum_identity_second_outer_witness_count_bits) = S ((S (ff_i_erc_quotient_sum_identity_second_outer_witness_count_bits)) * erc_row_scale_quotient_sum_identity_second_outer_witness)) /\ exists ff_q_erc_quotient_sum_identity_second_outer_witness_count_bits_decoded. erc_row_code_quotient_sum_identity_second_outer_witness = ff_q_erc_quotient_sum_identity_second_outer_witness_count_bits_decoded * S ((S (ff_i_erc_quotient_sum_identity_second_outer_witness_count_bits)) * erc_row_scale_quotient_sum_identity_second_outer_witness) + (ff_bit_erc_quotient_sum_identity_second_outer_witness_count_bits))) /\ (ff_bit_erc_quotient_sum_identity_second_outer_witness_count_bits = 0 \/ ff_bit_erc_quotient_sum_identity_second_outer_witness_count_bits = 1))))))))) -> (exists ff_u_quotient_sum_identity_first_sum ff_v_quotient_sum_identity_first_sum. ((((exists ff_h_quotient_sum_identity_first_sum_start. ff_h_quotient_sum_identity_first_sum_start + S (0) = S ((S (0)) * ff_v_quotient_sum_identity_first_sum)) /\ exists ff_q_quotient_sum_identity_first_sum_start. ff_u_quotient_sum_identity_first_sum = ff_q_quotient_sum_identity_first_sum_start * S ((S (0)) * ff_v_quotient_sum_identity_first_sum) + (0))) /\ ((((exists ff_h_quotient_sum_identity_first_sum_terminal. ff_h_quotient_sum_identity_first_sum_terminal + S (Q) = S ((S (h)) * ff_v_quotient_sum_identity_first_sum)) /\ exists ff_q_quotient_sum_identity_first_sum_terminal. ff_u_quotient_sum_identity_first_sum = ff_q_quotient_sum_identity_first_sum_terminal * S ((S (h)) * ff_v_quotient_sum_identity_first_sum) + (Q))) /\ forall ff_i_quotient_sum_identity_first_sum. (exists ff_lt_quotient_sum_identity_first_sum_bound. ff_lt_quotient_sum_identity_first_sum_bound + S ff_i_quotient_sum_identity_first_sum = h) -> exists ff_a_quotient_sum_identity_first_sum ff_r_quotient_sum_identity_first_sum ff_s_quotient_sum_identity_first_sum. ((((exists ff_h_quotient_sum_identity_first_sum_summand. ff_h_quotient_sum_identity_first_sum_summand + S (ff_a_quotient_sum_identity_first_sum) = S ((S (ff_i_quotient_sum_identity_first_sum)) * qc)) /\ exists ff_q_quotient_sum_identity_first_sum_summand. qb = ff_q_quotient_sum_identity_first_sum_summand * S ((S (ff_i_quotient_sum_identity_first_sum)) * qc) + (ff_a_quotient_sum_identity_first_sum))) /\ ((((exists ff_h_quotient_sum_identity_first_sum_partial. ff_h_quotient_sum_identity_first_sum_partial + S (ff_r_quotient_sum_identity_first_sum) = S ((S (ff_i_quotient_sum_identity_first_sum)) * ff_v_quotient_sum_identity_first_sum)) /\ exists ff_q_quotient_sum_identity_first_sum_partial. ff_u_quotient_sum_identity_first_sum = ff_q_quotient_sum_identity_first_sum_partial * S ((S (ff_i_quotient_sum_identity_first_sum)) * ff_v_quotient_sum_identity_first_sum) + (ff_r_quotient_sum_identity_first_sum))) /\ ((((exists ff_h_quotient_sum_identity_first_sum_successor. ff_h_quotient_sum_identity_first_sum_successor + S (ff_s_quotient_sum_identity_first_sum) = S ((S (S ff_i_quotient_sum_identity_first_sum)) * ff_v_quotient_sum_identity_first_sum)) /\ exists ff_q_quotient_sum_identity_first_sum_successor. ff_u_quotient_sum_identity_first_sum = ff_q_quotient_sum_identity_first_sum_successor * S ((S (S ff_i_quotient_sum_identity_first_sum)) * ff_v_quotient_sum_identity_first_sum) + (ff_s_quotient_sum_identity_first_sum))) /\ ff_s_quotient_sum_identity_first_sum = ff_r_quotient_sum_identity_first_sum + ff_a_quotient_sum_identity_first_sum)))))) -> (exists ff_u_quotient_sum_identity_second_sum ff_v_quotient_sum_identity_second_sum. ((((exists ff_h_quotient_sum_identity_second_sum_start. ff_h_quotient_sum_identity_second_sum_start + S (0) = S ((S (0)) * ff_v_quotient_sum_identity_second_sum)) /\ exists ff_q_quotient_sum_identity_second_sum_start. ff_u_quotient_sum_identity_second_sum = ff_q_quotient_sum_identity_second_sum_start * S ((S (0)) * ff_v_quotient_sum_identity_second_sum) + (0))) /\ ((((exists ff_h_quotient_sum_identity_second_sum_terminal. ff_h_quotient_sum_identity_second_sum_terminal + S (U) = S ((S (k)) * ff_v_quotient_sum_identity_second_sum)) /\ exists ff_q_quotient_sum_identity_second_sum_terminal. ff_u_quotient_sum_identity_second_sum = ff_q_quotient_sum_identity_second_sum_terminal * S ((S (k)) * ff_v_quotient_sum_identity_second_sum) + (U))) /\ forall ff_i_quotient_sum_identity_second_sum. (exists ff_lt_quotient_sum_identity_second_sum_bound. ff_lt_quotient_sum_identity_second_sum_bound + S ff_i_quotient_sum_identity_second_sum = k) -> exists ff_a_quotient_sum_identity_second_sum ff_r_quotient_sum_identity_second_sum ff_s_quotient_sum_identity_second_sum. ((((exists ff_h_quotient_sum_identity_second_sum_summand. ff_h_quotient_sum_identity_second_sum_summand + S (ff_a_quotient_sum_identity_second_sum) = S ((S (ff_i_quotient_sum_identity_second_sum)) * vc)) /\ exists ff_q_quotient_sum_identity_second_sum_summand. vb = ff_q_quotient_sum_identity_second_sum_summand * S ((S (ff_i_quotient_sum_identity_second_sum)) * vc) + (ff_a_quotient_sum_identity_second_sum))) /\ ((((exists ff_h_quotient_sum_identity_second_sum_partial. ff_h_quotient_sum_identity_second_sum_partial + S (ff_r_quotient_sum_identity_second_sum) = S ((S (ff_i_quotient_sum_identity_second_sum)) * ff_v_quotient_sum_identity_second_sum)) /\ exists ff_q_quotient_sum_identity_second_sum_partial. ff_u_quotient_sum_identity_second_sum = ff_q_quotient_sum_identity_second_sum_partial * S ((S (ff_i_quotient_sum_identity_second_sum)) * ff_v_quotient_sum_identity_second_sum) + (ff_r_quotient_sum_identity_second_sum))) /\ ((((exists ff_h_quotient_sum_identity_second_sum_successor. ff_h_quotient_sum_identity_second_sum_successor + S (ff_s_quotient_sum_identity_second_sum) = S ((S (S ff_i_quotient_sum_identity_second_sum)) * ff_v_quotient_sum_identity_second_sum)) /\ exists ff_q_quotient_sum_identity_second_sum_successor. ff_u_quotient_sum_identity_second_sum = ff_q_quotient_sum_identity_second_sum_successor * S ((S (S ff_i_quotient_sum_identity_second_sum)) * ff_v_quotient_sum_identity_second_sum) + (ff_s_quotient_sum_identity_second_sum))) /\ ff_s_quotient_sum_identity_second_sum = ff_r_quotient_sum_identity_second_sum + ff_a_quotient_sum_identity_second_sum)))))) -> Q + U = h * k

Structural proof guide

Generated structural guide

For distinct odd primes, the two decoded finite quotient sums add exactly to h*k.

Use the direct prerequisites beta_sum_exists, distinct_odd_prime_quotient_sum_equals_rectangle_total, eisenstein_rectangle_floor_sum_identity as previously established PA formulas.

The proof proceeds by case analysis (2), intermediate claims (6), equality transport (2).

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 k
  5. 0005intro tb
  6. 0006intro tc
  7. 0007intro qb
  8. 0008intro qc
  9. 0009intro ub
  10. 0010intro uc
  11. 0011intro sb
  12. 0012intro sc
  13. 0013intro vb
  14. 0014intro vc
  15. 0015intro wb
  16. 0016intro wc
  17. 0017intro ab
  18. 0018intro ac
  19. 0019intro bb
  20. 0020intro bc
  21. 0021intro Q
  22. 0022intro U
  23. 0023intro hpodd
  24. 0024intro hqodd
  25. 0025intro hp
  26. 0026intro hq
  27. 0027intro hpq
  28. 0028intro hfirstscaled
  29. 0029intro hfirstdivisions
  30. 0030intro hsecondscaled
  31. 0031intro hseconddivisions
  32. 0032intro hfirstouter
  33. 0033intro hsecondouter
  34. 0034intro hfirstsum
  35. 0035intro hsecondsum
  36. 0036have hfirst_total : exists N. (exists ff_u_quotient_sum_identity_first_total ff_v_quotient_sum_identity_first_total. ((((exists ff_h_quotient_sum_identity_first_total_start. ff_h_quotient_sum_identity_first_total_start + S (0) = S ((S (0)) * ff_v_quotient_sum_identity_first_total)) /\ exists ff_q_quotient_sum_identity_first_total_start. ff_u_quotient_sum_identity_first_total = ff_q_quotient_sum_identity_first_total_start * S ((S (0)) * ff_v_quotient_sum_identity_first_total) + (0))) /\ ((((exists ff_h_quotient_sum_identity_first_total_terminal. ff_h_quotient_sum_identity_first_total_terminal + S (N) = S ((S (h)) * ff_v_quotient_sum_identity_first_total)) /\ exists ff_q_quotient_sum_identity_first_total_terminal. ff_u_quotient_sum_identity_first_total = ff_q_quotient_sum_identity_first_total_terminal * S ((S (h)) * ff_v_quotient_sum_identity_first_total) + (N))) /\ forall ff_i_quotient_sum_identity_first_total. (exists ff_lt_quotient_sum_identity_first_total_bound. ff_lt_quotient_sum_identity_first_total_bound + S ff_i_quotient_sum_identity_first_total = h) -> exists ff_a_quotient_sum_identity_first_total ff_r_quotient_sum_identity_first_total ff_s_quotient_sum_identity_first_total. ((((exists ff_h_quotient_sum_identity_first_total_summand. ff_h_quotient_sum_identity_first_total_summand + S (ff_a_quotient_sum_identity_first_total) = S ((S (ff_i_quotient_sum_identity_first_total)) * ac)) /\ exists ff_q_quotient_sum_identity_first_total_summand. ab = ff_q_quotient_sum_identity_first_total_summand * S ((S (ff_i_quotient_sum_identity_first_total)) * ac) + (ff_a_quotient_sum_identity_first_total))) /\ ((((exists ff_h_quotient_sum_identity_first_total_partial. ff_h_quotient_sum_identity_first_total_partial + S (ff_r_quotient_sum_identity_first_total) = S ((S (ff_i_quotient_sum_identity_first_total)) * ff_v_quotient_sum_identity_first_total)) /\ exists ff_q_quotient_sum_identity_first_total_partial. ff_u_quotient_sum_identity_first_total = ff_q_quotient_sum_identity_first_total_partial * S ((S (ff_i_quotient_sum_identity_first_total)) * ff_v_quotient_sum_identity_first_total) + (ff_r_quotient_sum_identity_first_total))) /\ ((((exists ff_h_quotient_sum_identity_first_total_successor. ff_h_quotient_sum_identity_first_total_successor + S (ff_s_quotient_sum_identity_first_total) = S ((S (S ff_i_quotient_sum_identity_first_total)) * ff_v_quotient_sum_identity_first_total)) /\ exists ff_q_quotient_sum_identity_first_total_successor. ff_u_quotient_sum_identity_first_total = ff_q_quotient_sum_identity_first_total_successor * S ((S (S ff_i_quotient_sum_identity_first_total)) * ff_v_quotient_sum_identity_first_total) + (ff_s_quotient_sum_identity_first_total))) /\ ff_s_quotient_sum_identity_first_total = ff_r_quotient_sum_identity_first_total + ff_a_quotient_sum_identity_first_total))))))
  37. 0037specialize beta_sum_exists ab
  38. 0038specialize beta_sum_exists ac
  39. 0039specialize beta_sum_exists h
  40. 0040exact beta_sum_exists
  41. 0041cases hfirst_total
  42. 0042have hsecond_total : exists T. (exists ff_u_quotient_sum_identity_second_total ff_v_quotient_sum_identity_second_total. ((((exists ff_h_quotient_sum_identity_second_total_start. ff_h_quotient_sum_identity_second_total_start + S (0) = S ((S (0)) * ff_v_quotient_sum_identity_second_total)) /\ exists ff_q_quotient_sum_identity_second_total_start. ff_u_quotient_sum_identity_second_total = ff_q_quotient_sum_identity_second_total_start * S ((S (0)) * ff_v_quotient_sum_identity_second_total) + (0))) /\ ((((exists ff_h_quotient_sum_identity_second_total_terminal. ff_h_quotient_sum_identity_second_total_terminal + S (T) = S ((S (k)) * ff_v_quotient_sum_identity_second_total)) /\ exists ff_q_quotient_sum_identity_second_total_terminal. ff_u_quotient_sum_identity_second_total = ff_q_quotient_sum_identity_second_total_terminal * S ((S (k)) * ff_v_quotient_sum_identity_second_total) + (T))) /\ forall ff_i_quotient_sum_identity_second_total. (exists ff_lt_quotient_sum_identity_second_total_bound. ff_lt_quotient_sum_identity_second_total_bound + S ff_i_quotient_sum_identity_second_total = k) -> exists ff_a_quotient_sum_identity_second_total ff_r_quotient_sum_identity_second_total ff_s_quotient_sum_identity_second_total. ((((exists ff_h_quotient_sum_identity_second_total_summand. ff_h_quotient_sum_identity_second_total_summand + S (ff_a_quotient_sum_identity_second_total) = S ((S (ff_i_quotient_sum_identity_second_total)) * bc)) /\ exists ff_q_quotient_sum_identity_second_total_summand. bb = ff_q_quotient_sum_identity_second_total_summand * S ((S (ff_i_quotient_sum_identity_second_total)) * bc) + (ff_a_quotient_sum_identity_second_total))) /\ ((((exists ff_h_quotient_sum_identity_second_total_partial. ff_h_quotient_sum_identity_second_total_partial + S (ff_r_quotient_sum_identity_second_total) = S ((S (ff_i_quotient_sum_identity_second_total)) * ff_v_quotient_sum_identity_second_total)) /\ exists ff_q_quotient_sum_identity_second_total_partial. ff_u_quotient_sum_identity_second_total = ff_q_quotient_sum_identity_second_total_partial * S ((S (ff_i_quotient_sum_identity_second_total)) * ff_v_quotient_sum_identity_second_total) + (ff_r_quotient_sum_identity_second_total))) /\ ((((exists ff_h_quotient_sum_identity_second_total_successor. ff_h_quotient_sum_identity_second_total_successor + S (ff_s_quotient_sum_identity_second_total) = S ((S (S ff_i_quotient_sum_identity_second_total)) * ff_v_quotient_sum_identity_second_total)) /\ exists ff_q_quotient_sum_identity_second_total_successor. ff_u_quotient_sum_identity_second_total = ff_q_quotient_sum_identity_second_total_successor * S ((S (S ff_i_quotient_sum_identity_second_total)) * ff_v_quotient_sum_identity_second_total) + (ff_s_quotient_sum_identity_second_total))) /\ ff_s_quotient_sum_identity_second_total = ff_r_quotient_sum_identity_second_total + ff_a_quotient_sum_identity_second_total))))))
  43. 0043specialize beta_sum_exists bb
  44. 0044specialize beta_sum_exists bc
  45. 0045specialize beta_sum_exists k
  46. 0046exact beta_sum_exists
  47. 0047cases hsecond_total
  48. 0048have hqp : ~(q = p)
  49. 0049intro hqp_eq
  50. 0050apply hpq
  51. 0051symm
  52. 0052exact hqp_eq
  53. 0053have hQ : Q = x
  54. 0054specialize distinct_odd_prime_quotient_sum_equals_rectangle_total p
  55. 0055specialize distinct_odd_prime_quotient_sum_equals_rectangle_total q
  56. 0056specialize distinct_odd_prime_quotient_sum_equals_rectangle_total h
  57. 0057specialize distinct_odd_prime_quotient_sum_equals_rectangle_total k
  58. 0058specialize distinct_odd_prime_quotient_sum_equals_rectangle_total tb
  59. 0059specialize distinct_odd_prime_quotient_sum_equals_rectangle_total tc
  60. 0060specialize distinct_odd_prime_quotient_sum_equals_rectangle_total qb
  61. 0061specialize distinct_odd_prime_quotient_sum_equals_rectangle_total qc
  62. 0062specialize distinct_odd_prime_quotient_sum_equals_rectangle_total ub
  63. 0063specialize distinct_odd_prime_quotient_sum_equals_rectangle_total uc
  64. 0064specialize distinct_odd_prime_quotient_sum_equals_rectangle_total ab
  65. 0065specialize distinct_odd_prime_quotient_sum_equals_rectangle_total ac
  66. 0066specialize distinct_odd_prime_quotient_sum_equals_rectangle_total Q
  67. 0067specialize distinct_odd_prime_quotient_sum_equals_rectangle_total x
  68. 0068apply distinct_odd_prime_quotient_sum_equals_rectangle_total
  69. 0069exact hpodd
  70. 0070exact hqodd
  71. 0071exact hp
  72. 0072exact hq
  73. 0073exact hpq
  74. 0074exact hfirstscaled
  75. 0075exact hfirstdivisions
  76. 0076exact hfirstouter
  77. 0077exact hfirstsum
  78. 0078exact hfirst_total_witness
  79. 0079have hU : U = x1
  80. 0080specialize distinct_odd_prime_quotient_sum_equals_rectangle_total q
  81. 0081specialize distinct_odd_prime_quotient_sum_equals_rectangle_total p
  82. 0082specialize distinct_odd_prime_quotient_sum_equals_rectangle_total k
  83. 0083specialize distinct_odd_prime_quotient_sum_equals_rectangle_total h
  84. 0084specialize distinct_odd_prime_quotient_sum_equals_rectangle_total sb
  85. 0085specialize distinct_odd_prime_quotient_sum_equals_rectangle_total sc
  86. 0086specialize distinct_odd_prime_quotient_sum_equals_rectangle_total vb
  87. 0087specialize distinct_odd_prime_quotient_sum_equals_rectangle_total vc
  88. 0088specialize distinct_odd_prime_quotient_sum_equals_rectangle_total wb
  89. 0089specialize distinct_odd_prime_quotient_sum_equals_rectangle_total wc
  90. 0090specialize distinct_odd_prime_quotient_sum_equals_rectangle_total bb
  91. 0091specialize distinct_odd_prime_quotient_sum_equals_rectangle_total bc
  92. 0092specialize distinct_odd_prime_quotient_sum_equals_rectangle_total U
  93. 0093specialize distinct_odd_prime_quotient_sum_equals_rectangle_total x1
  94. 0094apply distinct_odd_prime_quotient_sum_equals_rectangle_total
  95. 0095exact hqodd
  96. 0096exact hpodd
  97. 0097exact hq
  98. 0098exact hp
  99. 0099exact hqp
  100. 0100exact hsecondscaled
  101. 0101exact hseconddivisions
  102. 0102exact hsecondouter
  103. 0103exact hsecondsum
  104. 0104exact hsecond_total_witness
  105. 0105have harea : x + x1 = h * k
  106. 0106specialize eisenstein_rectangle_floor_sum_identity p
  107. 0107specialize eisenstein_rectangle_floor_sum_identity q
  108. 0108specialize eisenstein_rectangle_floor_sum_identity h
  109. 0109specialize eisenstein_rectangle_floor_sum_identity k
  110. 0110specialize eisenstein_rectangle_floor_sum_identity ab
  111. 0111specialize eisenstein_rectangle_floor_sum_identity ac
  112. 0112specialize eisenstein_rectangle_floor_sum_identity bb
  113. 0113specialize eisenstein_rectangle_floor_sum_identity bc
  114. 0114specialize eisenstein_rectangle_floor_sum_identity x
  115. 0115specialize eisenstein_rectangle_floor_sum_identity x1
  116. 0116apply eisenstein_rectangle_floor_sum_identity
  117. 0117exact hfirstouter
  118. 0118exact hsecondouter
  119. 0119exact hfirst_total_witness
  120. 0120exact hsecond_total_witness
  121. 0121rewrite hQ
  122. 0122rewrite hU
  123. 0123exact harea