PA00FF · theorem

distinct_odd_prime_eisenstein_quotient_sum_identity

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

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

Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.

Statement with defined notation

∀ p. ∀ 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 → Prime(p)Prime(q) → ¬p = q → (∀ x. ∀ y. Lt(x,h)BetaAt(tb,tc,x,y) → y = q · (1 + x)) → DivisionPrefix(p,tb,tc,qb,qc,ub,uc,h) → (∀ x. ∀ y. Lt(x,k)BetaAt(sb,sc,x,y) → y = p · (1 + x)) → DivisionPrefix(q,sb,sc,vb,vc,wb,wc,k) → (∀ x. Lt(x,h) → ∃ y. BetaAt(ab,ac,x,y) ∧ (∃ z. ∃ n. (∀ m. Lt(m,k) → ∃ i. BetaAt(z,n,m,i) ∧ (i = 0 ∧ (Lt(q · S x,p · S m) ∧ ¬Lt(p · S m,q · S x)) ∨ i = 1 ∧ (Lt(p · S m,q · S x) ∧ ¬Lt(q · S x,p · S m)))) ∧ BitCount(z,n,k,y))) → (∀ x. Lt(x,k) → ∃ y. BetaAt(bb,bc,x,y) ∧ (∃ z. ∃ n. (∀ m. Lt(m,h) → ∃ i. BetaAt(z,n,m,i) ∧ (i = 0 ∧ (Lt(p · S x,q · S m) ∧ ¬Lt(q · S m,p · S x)) ∨ i = 1 ∧ (Lt(q · S m,p · S x) ∧ ¬Lt(p · S x,q · S m)))) ∧ BitCount(z,n,h,y))) → Sum(qb,qc,h,Q)Sum(vb,vc,k,U) → Q + U = h · k

Every purple notation token opens its conservative definition. This is a reading surface; the compiler expands the statement before the unchanged kernel checks it.

Definitions used by this theorem

In the theorem statement

28 occurrences

In local proof propositions

2 occurrences

Exact expanded native-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

Proof neighborhood

Direct theorem prerequisites

Direct theorem dependents

Definition-aware tactic body

Only local propositions introduced by have or suffices are compacted. The untrusted compiler re-expands each one before the original tactic script is replayed; defined notation is never accepted by the kernel. Open the exact replay line beneath every changed command.

Read the argument

Proof checkpoints

123 script commands · 19 reading checkpoints · 6 local claims

This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

Named ingredients (3)
01Fix variables and assumptionsL1–10

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro p
  2. L2
    intro q
  3. L3
    intro h
  4. L4
    intro k
  5. L5
    intro tb
  6. L6
    intro tc
  7. L7
    intro qb
  8. L8
    intro qc
  9. L9
    intro ub
  10. L10
    intro uc
02Fix variables and assumptionsL11–20

Work with arbitrary variables or the premises of the current implication.

  1. L11
    intro sb
  2. L12
    intro sc
  3. L13
    intro vb
  4. L14
    intro vc
  5. L15
    intro wb
  6. L16
    intro wc
  7. L17
    intro ab
  8. L18
    intro ac
  9. L19
    intro bb
  10. L20
    intro bc
03Fix variables and assumptionsL21–30

Work with arbitrary variables or the premises of the current implication.

  1. L21
    intro Q
  2. L22
    intro U
  3. L23
    intro hpodd
  4. L24
    intro hqodd
  5. L25
    intro hp
  6. L26
    intro hq
  7. L27
    intro hpq
  8. L28
    intro hfirstscaled
  9. L29
    intro hfirstdivisions
  10. L30
    intro hsecondscaled
04Fix variables and assumptionsL31–35

Work with arbitrary variables or the premises of the current implication.

  1. L31
    intro hseconddivisions
  2. L32
    intro hfirstouter
  3. L33
    intro hsecondouter
  4. L34
    intro hfirstsum
  5. L35
    intro hsecondsum
05Establish hfirst_totalL36–40

Establish this local claim before using it. It is not an additional assumption.

  1. L36
    have hfirst_total : ∃ N. Sum(ab,ac,h,N)Definitions: Sum(ab,ac,h,N)Original native command in the exact edition
  2. L37
    specialize beta_sum_exists ab
  3. L38
    specialize beta_sum_exists ac
  4. L39
    specialize beta_sum_exists h
  5. L40
    exact beta_sum_exists
06Separate the logical casesL41–41

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L41
    cases hfirst_total
07Establish hsecond_totalL42–46

Establish this local claim before using it. It is not an additional assumption.

  1. L42
    have hsecond_total : ∃ T. Sum(bb,bc,k,T)Definitions: Sum(bb,bc,k,T)Original native command in the exact edition
  2. L43
    specialize beta_sum_exists bb
  3. L44
    specialize beta_sum_exists bc
  4. L45
    specialize beta_sum_exists k
  5. L46
    exact beta_sum_exists
08Separate the logical casesL47–47

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L47
    cases hsecond_total
09Establish hqpL48–52

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hpq.

  1. L48
    have hqp : ~(q = p)
  2. L49
    intro hqp_eq
  3. L50
    apply hpq
  4. L51
    symm
  5. L52
    exact hqp_eq
10Establish hQL53–62

Establish this local claim before using it. It is not an additional assumption.

  1. L53
    have hQ : Q = x
  2. L54
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total p
  3. L55
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total q
  4. L56
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total h
  5. L57
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total k
  6. L58
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total tb
  7. L59
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total tc
  8. L60
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total qb
  9. L61
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total qc
  10. L62
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total ub
11Use earlier factsL63–72

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L63
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total uc
  2. L64
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total ab
  3. L65
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total ac
  4. L66
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total Q
  5. L67
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total x
  6. L68
    apply distinct_odd_prime_quotient_sum_equals_rectangle_total
  7. L69
    exact hpodd
  8. L70
    exact hqodd
  9. L71
    exact hp
  10. L72
    exact hq
12Use earlier factsL73–78

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L73
    exact hpq
  2. L74
    exact hfirstscaled
  3. L75
    exact hfirstdivisions
  4. L76
    exact hfirstouter
  5. L77
    exact hfirstsum
  6. L78
    exact hfirst_total_witness
13Establish hUL79–88

Establish this local claim before using it. It is not an additional assumption.

  1. L79
    have hU : U = x1
  2. L80
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total q
  3. L81
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total p
  4. L82
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total k
  5. L83
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total h
  6. L84
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total sb
  7. L85
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total sc
  8. L86
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total vb
  9. L87
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total vc
  10. L88
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total wb
14Use earlier factsL89–98

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L89
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total wc
  2. L90
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total bb
  3. L91
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total bc
  4. L92
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total U
  5. L93
    specialize distinct_odd_prime_quotient_sum_equals_rectangle_total x1
  6. L94
    apply distinct_odd_prime_quotient_sum_equals_rectangle_total
  7. L95
    exact hqodd
  8. L96
    exact hpodd
  9. L97
    exact hq
  10. L98
    exact hp
15Use earlier factsL99–104

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L99
    exact hqp
  2. L100
    exact hsecondscaled
  3. L101
    exact hseconddivisions
  4. L102
    exact hsecondouter
  5. L103
    exact hsecondsum
  6. L104
    exact hsecond_total_witness
16Establish hareaL105–114

Establish this local claim before using it. It is not an additional assumption.

  1. L105
    have harea : x + x1 = h * k
  2. L106
    specialize eisenstein_rectangle_floor_sum_identity p
  3. L107
    specialize eisenstein_rectangle_floor_sum_identity q
  4. L108
    specialize eisenstein_rectangle_floor_sum_identity h
  5. L109
    specialize eisenstein_rectangle_floor_sum_identity k
  6. L110
    specialize eisenstein_rectangle_floor_sum_identity ab
  7. L111
    specialize eisenstein_rectangle_floor_sum_identity ac
  8. L112
    specialize eisenstein_rectangle_floor_sum_identity bb
  9. L113
    specialize eisenstein_rectangle_floor_sum_identity bc
  10. L114
    specialize eisenstein_rectangle_floor_sum_identity x
17Use earlier factsL115–120

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L115
    specialize eisenstein_rectangle_floor_sum_identity x1
  2. L116
    apply eisenstein_rectangle_floor_sum_identity
  3. L117
    exact hfirstouter
  4. L118
    exact hsecondouter
  5. L119
    exact hfirst_total_witness
  6. L120
    exact hsecond_total_witness
18Calculate and transport equalitiesL121–122

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L121
    rewrite hQ
  2. L122
    rewrite hU
19Use earlier factsL123–123

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L123
    exact harea

Library-wide reading audit

Original defined command ledger · 123 lines
  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 : ∃ N. Sum(ab,ac,h,N)
    Exact native replay linehave 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 : ∃ T. Sum(bb,bc,k,T)
    Exact native replay linehave 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