PA00EF · theorem

eisenstein_row_transposed_column_count_partition

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

One semantic row and the constructed whole transposed column partition all k cells.

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. ∀ i. ∀ rb. ∀ rc. ∀ bb. ∀ bc. ∀ n. (∀ x. Lt(x,k) → ∃ y. BetaAt(rb,rc,x,y) ∧ (y = 0 ∧ (Lt(q · S i,p · S x) ∧ ¬Lt(p · S x,q · S i)) ∨ y = 1 ∧ (Lt(p · S x,q · S i) ∧ ¬Lt(q · S i,p · S x)))) → BitCount(rb,rc,k,n) → (∀ x. Lt(x,k) → ∃ y. BetaAt(bb,bc,x,y) ∧ (∃ z. ∃ m. (∀ j. Lt(j,h) → ∃ u. BetaAt(z,m,j,u) ∧ (u = 0 ∧ (Lt(p · S x,q · S j) ∧ ¬Lt(q · S j,p · S x)) ∨ u = 1 ∧ (Lt(q · S j,p · S x) ∧ ¬Lt(p · S x,q · S j)))) ∧ BitCount(z,m,h,y))) → Lt(i,h) → ∃ x. ∃ y. ∃ z. (∀ m. Lt(m,k) → ∃ j. BetaAt(x,y,m,j) ∧ (∃ u. ∃ v. ∃ w. BetaAt(bb,bc,m,u) ∧ (∀ x0. Lt(x0,h) → ∃ x1. BetaAt(v,w,x0,x1) ∧ (x1 = 0 ∧ (Lt(p · S m,q · S x0) ∧ ¬Lt(q · S x0,p · S m)) ∨ x1 = 1 ∧ (Lt(q · S x0,p · S m) ∧ ¬Lt(p · S m,q · S x0)))) ∧ BitCount(v,w,h,u)BetaAt(v,w,i,j))) ∧ (BitCount(x,y,k,z) ∧ n + z = 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

29 occurrences

In local proof propositions

26 occurrences

Exact expanded native-PA statement
forall p q h k i rb rc bb bc n. (forall eri_column_transposed_column_original_row. (exists eri_gap_transposed_column_original_row_bound. eri_gap_transposed_column_original_row_bound + S (eri_column_transposed_column_original_row) = k) -> exists eri_bit_transposed_column_original_row. ((((exists ff_h_eri_transposed_column_original_row_decoded. ff_h_eri_transposed_column_original_row_decoded + S (eri_bit_transposed_column_original_row) = S ((S (eri_column_transposed_column_original_row)) * rc)) /\ exists ff_q_eri_transposed_column_original_row_decoded. rb = ff_q_eri_transposed_column_original_row_decoded * S ((S (eri_column_transposed_column_original_row)) * rc) + (eri_bit_transposed_column_original_row))) /\ (((eri_bit_transposed_column_original_row = 0 /\ ((exists eri_gap_transposed_column_original_row_choice_left. eri_gap_transposed_column_original_row_choice_left + S (q * S i) = p * S eri_column_transposed_column_original_row) /\ ~(exists eri_gap_transposed_column_original_row_choice_right. eri_gap_transposed_column_original_row_choice_right + S (p * S eri_column_transposed_column_original_row) = q * S i))) \/ (eri_bit_transposed_column_original_row = 1 /\ ((exists eri_gap_transposed_column_original_row_choice_right. eri_gap_transposed_column_original_row_choice_right + S (p * S eri_column_transposed_column_original_row) = q * S i) /\ ~(exists eri_gap_transposed_column_original_row_choice_left. eri_gap_transposed_column_original_row_choice_left + S (q * S i) = p * S eri_column_transposed_column_original_row))))))) -> (((exists ff_u_transposed_column_original_count_sum ff_v_transposed_column_original_count_sum. ((((exists ff_h_transposed_column_original_count_sum_start. ff_h_transposed_column_original_count_sum_start + S (0) = S ((S (0)) * ff_v_transposed_column_original_count_sum)) /\ exists ff_q_transposed_column_original_count_sum_start. ff_u_transposed_column_original_count_sum = ff_q_transposed_column_original_count_sum_start * S ((S (0)) * ff_v_transposed_column_original_count_sum) + (0))) /\ ((((exists ff_h_transposed_column_original_count_sum_terminal. ff_h_transposed_column_original_count_sum_terminal + S (n) = S ((S (k)) * ff_v_transposed_column_original_count_sum)) /\ exists ff_q_transposed_column_original_count_sum_terminal. ff_u_transposed_column_original_count_sum = ff_q_transposed_column_original_count_sum_terminal * S ((S (k)) * ff_v_transposed_column_original_count_sum) + (n))) /\ forall ff_i_transposed_column_original_count_sum. (exists ff_lt_transposed_column_original_count_sum_bound. ff_lt_transposed_column_original_count_sum_bound + S ff_i_transposed_column_original_count_sum = k) -> exists ff_a_transposed_column_original_count_sum ff_r_transposed_column_original_count_sum ff_s_transposed_column_original_count_sum. ((((exists ff_h_transposed_column_original_count_sum_summand. ff_h_transposed_column_original_count_sum_summand + S (ff_a_transposed_column_original_count_sum) = S ((S (ff_i_transposed_column_original_count_sum)) * rc)) /\ exists ff_q_transposed_column_original_count_sum_summand. rb = ff_q_transposed_column_original_count_sum_summand * S ((S (ff_i_transposed_column_original_count_sum)) * rc) + (ff_a_transposed_column_original_count_sum))) /\ ((((exists ff_h_transposed_column_original_count_sum_partial. ff_h_transposed_column_original_count_sum_partial + S (ff_r_transposed_column_original_count_sum) = S ((S (ff_i_transposed_column_original_count_sum)) * ff_v_transposed_column_original_count_sum)) /\ exists ff_q_transposed_column_original_count_sum_partial. ff_u_transposed_column_original_count_sum = ff_q_transposed_column_original_count_sum_partial * S ((S (ff_i_transposed_column_original_count_sum)) * ff_v_transposed_column_original_count_sum) + (ff_r_transposed_column_original_count_sum))) /\ ((((exists ff_h_transposed_column_original_count_sum_successor. ff_h_transposed_column_original_count_sum_successor + S (ff_s_transposed_column_original_count_sum) = S ((S (S ff_i_transposed_column_original_count_sum)) * ff_v_transposed_column_original_count_sum)) /\ exists ff_q_transposed_column_original_count_sum_successor. ff_u_transposed_column_original_count_sum = ff_q_transposed_column_original_count_sum_successor * S ((S (S ff_i_transposed_column_original_count_sum)) * ff_v_transposed_column_original_count_sum) + (ff_s_transposed_column_original_count_sum))) /\ ff_s_transposed_column_original_count_sum = ff_r_transposed_column_original_count_sum + ff_a_transposed_column_original_count_sum)))))) /\ (forall ff_i_transposed_column_original_count_bits. (exists ff_lt_transposed_column_original_count_bits_bound. ff_lt_transposed_column_original_count_bits_bound + S ff_i_transposed_column_original_count_bits = k) -> exists ff_bit_transposed_column_original_count_bits. ((((exists ff_h_transposed_column_original_count_bits_decoded. ff_h_transposed_column_original_count_bits_decoded + S (ff_bit_transposed_column_original_count_bits) = S ((S (ff_i_transposed_column_original_count_bits)) * rc)) /\ exists ff_q_transposed_column_original_count_bits_decoded. rb = ff_q_transposed_column_original_count_bits_decoded * S ((S (ff_i_transposed_column_original_count_bits)) * rc) + (ff_bit_transposed_column_original_count_bits))) /\ (ff_bit_transposed_column_original_count_bits = 0 \/ ff_bit_transposed_column_original_count_bits = 1))))) -> (forall erc_row_transposed_column_outer. (exists erc_lt_gap_transposed_column_outer_bound. erc_lt_gap_transposed_column_outer_bound + S (erc_row_transposed_column_outer) = k) -> exists erc_count_transposed_column_outer. ((((exists ff_h_erc_transposed_column_outer_decoded. ff_h_erc_transposed_column_outer_decoded + S (erc_count_transposed_column_outer) = S ((S (erc_row_transposed_column_outer)) * bc)) /\ exists ff_q_erc_transposed_column_outer_decoded. bb = ff_q_erc_transposed_column_outer_decoded * S ((S (erc_row_transposed_column_outer)) * bc) + (erc_count_transposed_column_outer))) /\ (exists erc_row_code_transposed_column_outer_witness erc_row_scale_transposed_column_outer_witness. ((forall eri_column_erc_transposed_column_outer_witness_row. (exists eri_gap_erc_transposed_column_outer_witness_row_bound. eri_gap_erc_transposed_column_outer_witness_row_bound + S (eri_column_erc_transposed_column_outer_witness_row) = h) -> exists eri_bit_erc_transposed_column_outer_witness_row. ((((exists ff_h_eri_erc_transposed_column_outer_witness_row_decoded. ff_h_eri_erc_transposed_column_outer_witness_row_decoded + S (eri_bit_erc_transposed_column_outer_witness_row) = S ((S (eri_column_erc_transposed_column_outer_witness_row)) * erc_row_scale_transposed_column_outer_witness)) /\ exists ff_q_eri_erc_transposed_column_outer_witness_row_decoded. erc_row_code_transposed_column_outer_witness = ff_q_eri_erc_transposed_column_outer_witness_row_decoded * S ((S (eri_column_erc_transposed_column_outer_witness_row)) * erc_row_scale_transposed_column_outer_witness) + (eri_bit_erc_transposed_column_outer_witness_row))) /\ (((eri_bit_erc_transposed_column_outer_witness_row = 0 /\ ((exists eri_gap_erc_transposed_column_outer_witness_row_choice_left. eri_gap_erc_transposed_column_outer_witness_row_choice_left + S (p * S erc_row_transposed_column_outer) = q * S eri_column_erc_transposed_column_outer_witness_row) /\ ~(exists eri_gap_erc_transposed_column_outer_witness_row_choice_right. eri_gap_erc_transposed_column_outer_witness_row_choice_right + S (q * S eri_column_erc_transposed_column_outer_witness_row) = p * S erc_row_transposed_column_outer))) \/ (eri_bit_erc_transposed_column_outer_witness_row = 1 /\ ((exists eri_gap_erc_transposed_column_outer_witness_row_choice_right. eri_gap_erc_transposed_column_outer_witness_row_choice_right + S (q * S eri_column_erc_transposed_column_outer_witness_row) = p * S erc_row_transposed_column_outer) /\ ~(exists eri_gap_erc_transposed_column_outer_witness_row_choice_left. eri_gap_erc_transposed_column_outer_witness_row_choice_left + S (p * S erc_row_transposed_column_outer) = q * S eri_column_erc_transposed_column_outer_witness_row))))))) /\ (((exists ff_u_erc_transposed_column_outer_witness_count_sum ff_v_erc_transposed_column_outer_witness_count_sum. ((((exists ff_h_erc_transposed_column_outer_witness_count_sum_start. ff_h_erc_transposed_column_outer_witness_count_sum_start + S (0) = S ((S (0)) * ff_v_erc_transposed_column_outer_witness_count_sum)) /\ exists ff_q_erc_transposed_column_outer_witness_count_sum_start. ff_u_erc_transposed_column_outer_witness_count_sum = ff_q_erc_transposed_column_outer_witness_count_sum_start * S ((S (0)) * ff_v_erc_transposed_column_outer_witness_count_sum) + (0))) /\ ((((exists ff_h_erc_transposed_column_outer_witness_count_sum_terminal. ff_h_erc_transposed_column_outer_witness_count_sum_terminal + S (erc_count_transposed_column_outer) = S ((S (h)) * ff_v_erc_transposed_column_outer_witness_count_sum)) /\ exists ff_q_erc_transposed_column_outer_witness_count_sum_terminal. ff_u_erc_transposed_column_outer_witness_count_sum = ff_q_erc_transposed_column_outer_witness_count_sum_terminal * S ((S (h)) * ff_v_erc_transposed_column_outer_witness_count_sum) + (erc_count_transposed_column_outer))) /\ forall ff_i_erc_transposed_column_outer_witness_count_sum. (exists ff_lt_erc_transposed_column_outer_witness_count_sum_bound. ff_lt_erc_transposed_column_outer_witness_count_sum_bound + S ff_i_erc_transposed_column_outer_witness_count_sum = h) -> exists ff_a_erc_transposed_column_outer_witness_count_sum ff_r_erc_transposed_column_outer_witness_count_sum ff_s_erc_transposed_column_outer_witness_count_sum. ((((exists ff_h_erc_transposed_column_outer_witness_count_sum_summand. ff_h_erc_transposed_column_outer_witness_count_sum_summand + S (ff_a_erc_transposed_column_outer_witness_count_sum) = S ((S (ff_i_erc_transposed_column_outer_witness_count_sum)) * erc_row_scale_transposed_column_outer_witness)) /\ exists ff_q_erc_transposed_column_outer_witness_count_sum_summand. erc_row_code_transposed_column_outer_witness = ff_q_erc_transposed_column_outer_witness_count_sum_summand * S ((S (ff_i_erc_transposed_column_outer_witness_count_sum)) * erc_row_scale_transposed_column_outer_witness) + (ff_a_erc_transposed_column_outer_witness_count_sum))) /\ ((((exists ff_h_erc_transposed_column_outer_witness_count_sum_partial. ff_h_erc_transposed_column_outer_witness_count_sum_partial + S (ff_r_erc_transposed_column_outer_witness_count_sum) = S ((S (ff_i_erc_transposed_column_outer_witness_count_sum)) * ff_v_erc_transposed_column_outer_witness_count_sum)) /\ exists ff_q_erc_transposed_column_outer_witness_count_sum_partial. ff_u_erc_transposed_column_outer_witness_count_sum = ff_q_erc_transposed_column_outer_witness_count_sum_partial * S ((S (ff_i_erc_transposed_column_outer_witness_count_sum)) * ff_v_erc_transposed_column_outer_witness_count_sum) + (ff_r_erc_transposed_column_outer_witness_count_sum))) /\ ((((exists ff_h_erc_transposed_column_outer_witness_count_sum_successor. ff_h_erc_transposed_column_outer_witness_count_sum_successor + S (ff_s_erc_transposed_column_outer_witness_count_sum) = S ((S (S ff_i_erc_transposed_column_outer_witness_count_sum)) * ff_v_erc_transposed_column_outer_witness_count_sum)) /\ exists ff_q_erc_transposed_column_outer_witness_count_sum_successor. ff_u_erc_transposed_column_outer_witness_count_sum = ff_q_erc_transposed_column_outer_witness_count_sum_successor * S ((S (S ff_i_erc_transposed_column_outer_witness_count_sum)) * ff_v_erc_transposed_column_outer_witness_count_sum) + (ff_s_erc_transposed_column_outer_witness_count_sum))) /\ ff_s_erc_transposed_column_outer_witness_count_sum = ff_r_erc_transposed_column_outer_witness_count_sum + ff_a_erc_transposed_column_outer_witness_count_sum)))))) /\ (forall ff_i_erc_transposed_column_outer_witness_count_bits. (exists ff_lt_erc_transposed_column_outer_witness_count_bits_bound. ff_lt_erc_transposed_column_outer_witness_count_bits_bound + S ff_i_erc_transposed_column_outer_witness_count_bits = h) -> exists ff_bit_erc_transposed_column_outer_witness_count_bits. ((((exists ff_h_erc_transposed_column_outer_witness_count_bits_decoded. ff_h_erc_transposed_column_outer_witness_count_bits_decoded + S (ff_bit_erc_transposed_column_outer_witness_count_bits) = S ((S (ff_i_erc_transposed_column_outer_witness_count_bits)) * erc_row_scale_transposed_column_outer_witness)) /\ exists ff_q_erc_transposed_column_outer_witness_count_bits_decoded. erc_row_code_transposed_column_outer_witness = ff_q_erc_transposed_column_outer_witness_count_bits_decoded * S ((S (ff_i_erc_transposed_column_outer_witness_count_bits)) * erc_row_scale_transposed_column_outer_witness) + (ff_bit_erc_transposed_column_outer_witness_count_bits))) /\ (ff_bit_erc_transposed_column_outer_witness_count_bits = 0 \/ ff_bit_erc_transposed_column_outer_witness_count_bits = 1))))))))) -> (exists edt_lt_gap_transposed_column_fixed_bound. edt_lt_gap_transposed_column_fixed_bound + S (i) = h) -> (exists z e m. ((forall etc_row_index_transposed_column_endpoint_prefix. (exists edt_lt_gap_transposed_column_endpoint_prefix_bound. edt_lt_gap_transposed_column_endpoint_prefix_bound + S (etc_row_index_transposed_column_endpoint_prefix) = k) -> exists etc_bit_transposed_column_endpoint_prefix. ((((exists ff_h_etc_transposed_column_endpoint_prefix_decoded. ff_h_etc_transposed_column_endpoint_prefix_decoded + S (etc_bit_transposed_column_endpoint_prefix) = S ((S (etc_row_index_transposed_column_endpoint_prefix)) * e)) /\ exists ff_q_etc_transposed_column_endpoint_prefix_decoded. z = ff_q_etc_transposed_column_endpoint_prefix_decoded * S ((S (etc_row_index_transposed_column_endpoint_prefix)) * e) + (etc_bit_transposed_column_endpoint_prefix))) /\ (exists etc_count_transposed_column_endpoint_prefix_witness etc_row_code_transposed_column_endpoint_prefix_witness etc_row_scale_transposed_column_endpoint_prefix_witness. ((((((exists ff_h_etc_transposed_column_endpoint_prefix_witness_outer_entry. ff_h_etc_transposed_column_endpoint_prefix_witness_outer_entry + S (etc_count_transposed_column_endpoint_prefix_witness) = S ((S (etc_row_index_transposed_column_endpoint_prefix)) * bc)) /\ exists ff_q_etc_transposed_column_endpoint_prefix_witness_outer_entry. bb = ff_q_etc_transposed_column_endpoint_prefix_witness_outer_entry * S ((S (etc_row_index_transposed_column_endpoint_prefix)) * bc) + (etc_count_transposed_column_endpoint_prefix_witness))) /\ (forall eri_column_etc_transposed_column_endpoint_prefix_witness_row. (exists eri_gap_etc_transposed_column_endpoint_prefix_witness_row_bound. eri_gap_etc_transposed_column_endpoint_prefix_witness_row_bound + S (eri_column_etc_transposed_column_endpoint_prefix_witness_row) = h) -> exists eri_bit_etc_transposed_column_endpoint_prefix_witness_row. ((((exists ff_h_eri_etc_transposed_column_endpoint_prefix_witness_row_decoded. ff_h_eri_etc_transposed_column_endpoint_prefix_witness_row_decoded + S (eri_bit_etc_transposed_column_endpoint_prefix_witness_row) = S ((S (eri_column_etc_transposed_column_endpoint_prefix_witness_row)) * etc_row_scale_transposed_column_endpoint_prefix_witness)) /\ exists ff_q_eri_etc_transposed_column_endpoint_prefix_witness_row_decoded. etc_row_code_transposed_column_endpoint_prefix_witness = ff_q_eri_etc_transposed_column_endpoint_prefix_witness_row_decoded * S ((S (eri_column_etc_transposed_column_endpoint_prefix_witness_row)) * etc_row_scale_transposed_column_endpoint_prefix_witness) + (eri_bit_etc_transposed_column_endpoint_prefix_witness_row))) /\ (((eri_bit_etc_transposed_column_endpoint_prefix_witness_row = 0 /\ ((exists eri_gap_etc_transposed_column_endpoint_prefix_witness_row_choice_left. eri_gap_etc_transposed_column_endpoint_prefix_witness_row_choice_left + S (p * S etc_row_index_transposed_column_endpoint_prefix) = q * S eri_column_etc_transposed_column_endpoint_prefix_witness_row) /\ ~(exists eri_gap_etc_transposed_column_endpoint_prefix_witness_row_choice_right. eri_gap_etc_transposed_column_endpoint_prefix_witness_row_choice_right + S (q * S eri_column_etc_transposed_column_endpoint_prefix_witness_row) = p * S etc_row_index_transposed_column_endpoint_prefix))) \/ (eri_bit_etc_transposed_column_endpoint_prefix_witness_row = 1 /\ ((exists eri_gap_etc_transposed_column_endpoint_prefix_witness_row_choice_right. eri_gap_etc_transposed_column_endpoint_prefix_witness_row_choice_right + S (q * S eri_column_etc_transposed_column_endpoint_prefix_witness_row) = p * S etc_row_index_transposed_column_endpoint_prefix) /\ ~(exists eri_gap_etc_transposed_column_endpoint_prefix_witness_row_choice_left. eri_gap_etc_transposed_column_endpoint_prefix_witness_row_choice_left + S (p * S etc_row_index_transposed_column_endpoint_prefix) = q * S eri_column_etc_transposed_column_endpoint_prefix_witness_row)))))))) /\ (((exists ff_u_etc_transposed_column_endpoint_prefix_witness_count_relation_sum ff_v_etc_transposed_column_endpoint_prefix_witness_count_relation_sum. ((((exists ff_h_etc_transposed_column_endpoint_prefix_witness_count_relation_sum_start. ff_h_etc_transposed_column_endpoint_prefix_witness_count_relation_sum_start + S (0) = S ((S (0)) * ff_v_etc_transposed_column_endpoint_prefix_witness_count_relation_sum)) /\ exists ff_q_etc_transposed_column_endpoint_prefix_witness_count_relation_sum_start. ff_u_etc_transposed_column_endpoint_prefix_witness_count_relation_sum = ff_q_etc_transposed_column_endpoint_prefix_witness_count_relation_sum_start * S ((S (0)) * ff_v_etc_transposed_column_endpoint_prefix_witness_count_relation_sum) + (0))) /\ ((((exists ff_h_etc_transposed_column_endpoint_prefix_witness_count_relation_sum_terminal. ff_h_etc_transposed_column_endpoint_prefix_witness_count_relation_sum_terminal + S (etc_count_transposed_column_endpoint_prefix_witness) = S ((S (h)) * ff_v_etc_transposed_column_endpoint_prefix_witness_count_relation_sum)) /\ exists ff_q_etc_transposed_column_endpoint_prefix_witness_count_relation_sum_terminal. ff_u_etc_transposed_column_endpoint_prefix_witness_count_relation_sum = ff_q_etc_transposed_column_endpoint_prefix_witness_count_relation_sum_terminal * S ((S (h)) * ff_v_etc_transposed_column_endpoint_prefix_witness_count_relation_sum) + (etc_count_transposed_column_endpoint_prefix_witness))) /\ forall ff_i_etc_transposed_column_endpoint_prefix_witness_count_relation_sum. (exists ff_lt_etc_transposed_column_endpoint_prefix_witness_count_relation_sum_bound. ff_lt_etc_transposed_column_endpoint_prefix_witness_count_relation_sum_bound + S ff_i_etc_transposed_column_endpoint_prefix_witness_count_relation_sum = h) -> exists ff_a_etc_transposed_column_endpoint_prefix_witness_count_relation_sum ff_r_etc_transposed_column_endpoint_prefix_witness_count_relation_sum ff_s_etc_transposed_column_endpoint_prefix_witness_count_relation_sum. ((((exists ff_h_etc_transposed_column_endpoint_prefix_witness_count_relation_sum_summand. ff_h_etc_transposed_column_endpoint_prefix_witness_count_relation_sum_summand + S (ff_a_etc_transposed_column_endpoint_prefix_witness_count_relation_sum) = S ((S (ff_i_etc_transposed_column_endpoint_prefix_witness_count_relation_sum)) * etc_row_scale_transposed_column_endpoint_prefix_witness)) /\ exists ff_q_etc_transposed_column_endpoint_prefix_witness_count_relation_sum_summand. etc_row_code_transposed_column_endpoint_prefix_witness = ff_q_etc_transposed_column_endpoint_prefix_witness_count_relation_sum_summand * S ((S (ff_i_etc_transposed_column_endpoint_prefix_witness_count_relation_sum)) * etc_row_scale_transposed_column_endpoint_prefix_witness) + (ff_a_etc_transposed_column_endpoint_prefix_witness_count_relation_sum))) /\ ((((exists ff_h_etc_transposed_column_endpoint_prefix_witness_count_relation_sum_partial. ff_h_etc_transposed_column_endpoint_prefix_witness_count_relation_sum_partial + S (ff_r_etc_transposed_column_endpoint_prefix_witness_count_relation_sum) = S ((S (ff_i_etc_transposed_column_endpoint_prefix_witness_count_relation_sum)) * ff_v_etc_transposed_column_endpoint_prefix_witness_count_relation_sum)) /\ exists ff_q_etc_transposed_column_endpoint_prefix_witness_count_relation_sum_partial. ff_u_etc_transposed_column_endpoint_prefix_witness_count_relation_sum = ff_q_etc_transposed_column_endpoint_prefix_witness_count_relation_sum_partial * S ((S (ff_i_etc_transposed_column_endpoint_prefix_witness_count_relation_sum)) * ff_v_etc_transposed_column_endpoint_prefix_witness_count_relation_sum) + (ff_r_etc_transposed_column_endpoint_prefix_witness_count_relation_sum))) /\ ((((exists ff_h_etc_transposed_column_endpoint_prefix_witness_count_relation_sum_successor. ff_h_etc_transposed_column_endpoint_prefix_witness_count_relation_sum_successor + S (ff_s_etc_transposed_column_endpoint_prefix_witness_count_relation_sum) = S ((S (S ff_i_etc_transposed_column_endpoint_prefix_witness_count_relation_sum)) * ff_v_etc_transposed_column_endpoint_prefix_witness_count_relation_sum)) /\ exists ff_q_etc_transposed_column_endpoint_prefix_witness_count_relation_sum_successor. ff_u_etc_transposed_column_endpoint_prefix_witness_count_relation_sum = ff_q_etc_transposed_column_endpoint_prefix_witness_count_relation_sum_successor * S ((S (S ff_i_etc_transposed_column_endpoint_prefix_witness_count_relation_sum)) * ff_v_etc_transposed_column_endpoint_prefix_witness_count_relation_sum) + (ff_s_etc_transposed_column_endpoint_prefix_witness_count_relation_sum))) /\ ff_s_etc_transposed_column_endpoint_prefix_witness_count_relation_sum = ff_r_etc_transposed_column_endpoint_prefix_witness_count_relation_sum + ff_a_etc_transposed_column_endpoint_prefix_witness_count_relation_sum)))))) /\ (forall ff_i_etc_transposed_column_endpoint_prefix_witness_count_relation_bits. (exists ff_lt_etc_transposed_column_endpoint_prefix_witness_count_relation_bits_bound. ff_lt_etc_transposed_column_endpoint_prefix_witness_count_relation_bits_bound + S ff_i_etc_transposed_column_endpoint_prefix_witness_count_relation_bits = h) -> exists ff_bit_etc_transposed_column_endpoint_prefix_witness_count_relation_bits. ((((exists ff_h_etc_transposed_column_endpoint_prefix_witness_count_relation_bits_decoded. ff_h_etc_transposed_column_endpoint_prefix_witness_count_relation_bits_decoded + S (ff_bit_etc_transposed_column_endpoint_prefix_witness_count_relation_bits) = S ((S (ff_i_etc_transposed_column_endpoint_prefix_witness_count_relation_bits)) * etc_row_scale_transposed_column_endpoint_prefix_witness)) /\ exists ff_q_etc_transposed_column_endpoint_prefix_witness_count_relation_bits_decoded. etc_row_code_transposed_column_endpoint_prefix_witness = ff_q_etc_transposed_column_endpoint_prefix_witness_count_relation_bits_decoded * S ((S (ff_i_etc_transposed_column_endpoint_prefix_witness_count_relation_bits)) * etc_row_scale_transposed_column_endpoint_prefix_witness) + (ff_bit_etc_transposed_column_endpoint_prefix_witness_count_relation_bits))) /\ (ff_bit_etc_transposed_column_endpoint_prefix_witness_count_relation_bits = 0 \/ ff_bit_etc_transposed_column_endpoint_prefix_witness_count_relation_bits = 1)))))) /\ (((exists ff_h_etc_transposed_column_endpoint_prefix_witness_inner_entry. ff_h_etc_transposed_column_endpoint_prefix_witness_inner_entry + S (etc_bit_transposed_column_endpoint_prefix) = S ((S (i)) * etc_row_scale_transposed_column_endpoint_prefix_witness)) /\ exists ff_q_etc_transposed_column_endpoint_prefix_witness_inner_entry. etc_row_code_transposed_column_endpoint_prefix_witness = ff_q_etc_transposed_column_endpoint_prefix_witness_inner_entry * S ((S (i)) * etc_row_scale_transposed_column_endpoint_prefix_witness) + (etc_bit_transposed_column_endpoint_prefix))))))) /\ ((((exists ff_u_transposed_column_endpoint_count_sum ff_v_transposed_column_endpoint_count_sum. ((((exists ff_h_transposed_column_endpoint_count_sum_start. ff_h_transposed_column_endpoint_count_sum_start + S (0) = S ((S (0)) * ff_v_transposed_column_endpoint_count_sum)) /\ exists ff_q_transposed_column_endpoint_count_sum_start. ff_u_transposed_column_endpoint_count_sum = ff_q_transposed_column_endpoint_count_sum_start * S ((S (0)) * ff_v_transposed_column_endpoint_count_sum) + (0))) /\ ((((exists ff_h_transposed_column_endpoint_count_sum_terminal. ff_h_transposed_column_endpoint_count_sum_terminal + S (m) = S ((S (k)) * ff_v_transposed_column_endpoint_count_sum)) /\ exists ff_q_transposed_column_endpoint_count_sum_terminal. ff_u_transposed_column_endpoint_count_sum = ff_q_transposed_column_endpoint_count_sum_terminal * S ((S (k)) * ff_v_transposed_column_endpoint_count_sum) + (m))) /\ forall ff_i_transposed_column_endpoint_count_sum. (exists ff_lt_transposed_column_endpoint_count_sum_bound. ff_lt_transposed_column_endpoint_count_sum_bound + S ff_i_transposed_column_endpoint_count_sum = k) -> exists ff_a_transposed_column_endpoint_count_sum ff_r_transposed_column_endpoint_count_sum ff_s_transposed_column_endpoint_count_sum. ((((exists ff_h_transposed_column_endpoint_count_sum_summand. ff_h_transposed_column_endpoint_count_sum_summand + S (ff_a_transposed_column_endpoint_count_sum) = S ((S (ff_i_transposed_column_endpoint_count_sum)) * e)) /\ exists ff_q_transposed_column_endpoint_count_sum_summand. z = ff_q_transposed_column_endpoint_count_sum_summand * S ((S (ff_i_transposed_column_endpoint_count_sum)) * e) + (ff_a_transposed_column_endpoint_count_sum))) /\ ((((exists ff_h_transposed_column_endpoint_count_sum_partial. ff_h_transposed_column_endpoint_count_sum_partial + S (ff_r_transposed_column_endpoint_count_sum) = S ((S (ff_i_transposed_column_endpoint_count_sum)) * ff_v_transposed_column_endpoint_count_sum)) /\ exists ff_q_transposed_column_endpoint_count_sum_partial. ff_u_transposed_column_endpoint_count_sum = ff_q_transposed_column_endpoint_count_sum_partial * S ((S (ff_i_transposed_column_endpoint_count_sum)) * ff_v_transposed_column_endpoint_count_sum) + (ff_r_transposed_column_endpoint_count_sum))) /\ ((((exists ff_h_transposed_column_endpoint_count_sum_successor. ff_h_transposed_column_endpoint_count_sum_successor + S (ff_s_transposed_column_endpoint_count_sum) = S ((S (S ff_i_transposed_column_endpoint_count_sum)) * ff_v_transposed_column_endpoint_count_sum)) /\ exists ff_q_transposed_column_endpoint_count_sum_successor. ff_u_transposed_column_endpoint_count_sum = ff_q_transposed_column_endpoint_count_sum_successor * S ((S (S ff_i_transposed_column_endpoint_count_sum)) * ff_v_transposed_column_endpoint_count_sum) + (ff_s_transposed_column_endpoint_count_sum))) /\ ff_s_transposed_column_endpoint_count_sum = ff_r_transposed_column_endpoint_count_sum + ff_a_transposed_column_endpoint_count_sum)))))) /\ (forall ff_i_transposed_column_endpoint_count_bits. (exists ff_lt_transposed_column_endpoint_count_bits_bound. ff_lt_transposed_column_endpoint_count_bits_bound + S ff_i_transposed_column_endpoint_count_bits = k) -> exists ff_bit_transposed_column_endpoint_count_bits. ((((exists ff_h_transposed_column_endpoint_count_bits_decoded. ff_h_transposed_column_endpoint_count_bits_decoded + S (ff_bit_transposed_column_endpoint_count_bits) = S ((S (ff_i_transposed_column_endpoint_count_bits)) * e)) /\ exists ff_q_transposed_column_endpoint_count_bits_decoded. z = ff_q_transposed_column_endpoint_count_bits_decoded * S ((S (ff_i_transposed_column_endpoint_count_bits)) * e) + (ff_bit_transposed_column_endpoint_count_bits))) /\ (ff_bit_transposed_column_endpoint_count_bits = 0 \/ ff_bit_transposed_column_endpoint_count_bits = 1))))) /\ n + m = 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

105 script commands · 20 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 (6)
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 i
  6. L6
    intro rb
  7. L7
    intro rc
  8. L8
    intro bb
  9. L9
    intro bc
  10. L10
    intro n
02Fix variables and assumptionsL11–14

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

  1. L11
    intro hrow
  2. L12
    intro hrow_count
  3. L13
    intro houter
  4. L14
    intro hi
03Establish hchoicesL15–24

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply eisenstein transposed outer column choices.

  1. L15
    have hchoices : ∀ etc_row_index_transposed_column_choices. Lt(etc_row_index_transposed_column_choices,k) → ∃ x. ∃ y. ∃ z. ∃ n. BetaAt(bb,bc,etc_row_index_transposed_column_choices,y) ∧ (∀ m. Lt(m,h) → ∃ j. BetaAt(z,n,m,j) ∧ (j = 0 ∧ (Lt(p · S etc_row_index_transposed_column_choices,q · S m) ∧ ¬Lt(q · S m,p · S etc_row_index_transposed_column_choices)) ∨ j = 1 ∧ (Lt(q · S m,p · S etc_row_index_transposed_column_choices) ∧ ¬Lt(p · S etc_row_index_transposed_column_choices,q · S m)))) ∧ BitCount(z,n,h,y) ∧ BetaAt(z,n,i,x)Definitions: Lt(etc_row_index_transposed_column_choices,k)BetaAt(bb,bc,etc_row_index_transposed_column_choices,y)Lt(m,h)BetaAt(z,n,m,j)Lt(p · S etc_row_index_transposed_column_choices,q · S m)Lt(q · S m,p · S etc_row_index_transposed_column_choices)BitCount(z,n,h,y)BetaAt(z,n,i,x)Original native command in the exact edition
  2. L16
    specialize eisenstein_transposed_outer_column_choices p
  3. L17
    specialize eisenstein_transposed_outer_column_choices q
  4. L18
    specialize eisenstein_transposed_outer_column_choices h
  5. L19
    specialize eisenstein_transposed_outer_column_choices k
  6. L20
    specialize eisenstein_transposed_outer_column_choices bb
  7. L21
    specialize eisenstein_transposed_outer_column_choices bc
  8. L22
    specialize eisenstein_transposed_outer_column_choices i
  9. L23
    apply eisenstein_transposed_outer_column_choices
  10. L24
    exact houter
04Use earlier factsL25–25

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

  1. L25
    exact hi
05Establish hprefixL26–35

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply eisenstein transposed column prefix exists.

  1. L26
    have hprefix : ∃ z. ∃ e. ∀ x. Lt(x,k) → ∃ y. BetaAt(z,e,x,y) ∧ (∃ n. ∃ m. ∃ j. BetaAt(bb,bc,x,n) ∧ (∀ u. Lt(u,h) → ∃ v. BetaAt(m,j,u,v) ∧ (v = 0 ∧ (Lt(p · S x,q · S u) ∧ ¬Lt(q · S u,p · S x)) ∨ v = 1 ∧ (Lt(q · S u,p · S x) ∧ ¬Lt(p · S x,q · S u)))) ∧ BitCount(m,j,h,n) ∧ BetaAt(m,j,i,y))Definitions: Lt(x,k)BetaAt(z,e,x,y)BetaAt(bb,bc,x,n)Lt(u,h)BetaAt(m,j,u,v)Lt(p · S x,q · S u)Lt(q · S u,p · S x)BitCount(m,j,h,n)BetaAt(m,j,i,y)Original native command in the exact edition
  2. L27
    specialize eisenstein_transposed_column_prefix_exists p
  3. L28
    specialize eisenstein_transposed_column_prefix_exists q
  4. L29
    specialize eisenstein_transposed_column_prefix_exists h
  5. L30
    specialize eisenstein_transposed_column_prefix_exists bb
  6. L31
    specialize eisenstein_transposed_column_prefix_exists bc
  7. L32
    specialize eisenstein_transposed_column_prefix_exists i
  8. L33
    specialize eisenstein_transposed_column_prefix_exists k
  9. L34
    apply eisenstein_transposed_column_prefix_exists
  10. L35
    exact hchoices
06Separate the logical casesL36–37

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

  1. L36
    cases hprefix
  2. L37
    cases hprefix_witness
07Establish hallbitsL38–47

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

  1. L38
    have hallbits : AllBits(x,x1,k)Definitions: AllBits(x,x1,k)Original native command in the exact edition
  2. L39
    specialize eisenstein_transposed_column_prefix_all_bits p
  3. L40
    specialize eisenstein_transposed_column_prefix_all_bits q
  4. L41
    specialize eisenstein_transposed_column_prefix_all_bits h
  5. L42
    specialize eisenstein_transposed_column_prefix_all_bits bb
  6. L43
    specialize eisenstein_transposed_column_prefix_all_bits bc
  7. L44
    specialize eisenstein_transposed_column_prefix_all_bits i
  8. L45
    specialize eisenstein_transposed_column_prefix_all_bits x
  9. L46
    specialize eisenstein_transposed_column_prefix_all_bits x1
  10. L47
    specialize eisenstein_transposed_column_prefix_all_bits k
08Use earlier factsL48–50

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

  1. L48
    apply eisenstein_transposed_column_prefix_all_bits
  2. L49
    exact hprefix_witness_witness
  3. L50
    exact hi
09Establish hcountL51–56

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

  1. L51
    have hcount : ∃ m. BitCount(x,x1,k,m)Definitions: BitCount(x,x1,k,m)Original native command in the exact edition
  2. L52
    specialize bit_count_exists x
  3. L53
    specialize bit_count_exists x1
  4. L54
    specialize bit_count_exists k
  5. L55
    apply bit_count_exists
  6. L56
    exact hallbits
10Separate the logical casesL57–57

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

  1. L57
    cases hcount
11Establish hcomplementL58–67

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

  1. L58
    have hcomplement : ∀ j. ∀ a. ∀ d. Lt(j,k) → BetaAt(rb,rc,j,a) → BetaAt(x,x1,j,d) → a = 0 ∧ d = 1 ∨ a = 1 ∧ d = 0Definitions: Lt(j,k)BetaAt(rb,rc,j,a)BetaAt(x,x1,j,d)Original native command in the exact edition
  2. L59
    intro j
  3. L60
    intro a
  4. L61
    intro d
  5. L62
    intro hj
  6. L63
    intro ha
  7. L64
    intro hd
  8. L65
    specialize eisenstein_transposed_column_pointwise_complement p
  9. L66
    specialize eisenstein_transposed_column_pointwise_complement q
  10. L67
    specialize eisenstein_transposed_column_pointwise_complement h
12Use earlier factsL68–77

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

  1. L68
    specialize eisenstein_transposed_column_pointwise_complement k
  2. L69
    specialize eisenstein_transposed_column_pointwise_complement i
  3. L70
    specialize eisenstein_transposed_column_pointwise_complement rb
  4. L71
    specialize eisenstein_transposed_column_pointwise_complement rc
  5. L72
    specialize eisenstein_transposed_column_pointwise_complement bb
  6. L73
    specialize eisenstein_transposed_column_pointwise_complement bc
  7. L74
    specialize eisenstein_transposed_column_pointwise_complement x
  8. L75
    specialize eisenstein_transposed_column_pointwise_complement x1
  9. L76
    specialize eisenstein_transposed_column_pointwise_complement j
  10. L77
    specialize eisenstein_transposed_column_pointwise_complement a
13Use earlier factsL78–85

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

  1. L78
    specialize eisenstein_transposed_column_pointwise_complement d
  2. L79
    apply eisenstein_transposed_column_pointwise_complement
  3. L80
    exact hrow
  4. L81
    exact hprefix_witness_witness
  5. L82
    exact hi
  6. L83
    exact hj
  7. L84
    exact ha
  8. L85
    exact hd
14Establish hpartitionL86–95

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply complementary bit counts add length.

  1. L86
    have hpartition : n + x2 = k
  2. L87
    specialize complementary_bit_counts_add_length rb
  3. L88
    specialize complementary_bit_counts_add_length rc
  4. L89
    specialize complementary_bit_counts_add_length x
  5. L90
    specialize complementary_bit_counts_add_length x1
  6. L91
    specialize complementary_bit_counts_add_length k
  7. L92
    specialize complementary_bit_counts_add_length n
  8. L93
    specialize complementary_bit_counts_add_length x2
  9. L94
    apply complementary_bit_counts_add_length
  10. L95
    exact hrow_count
15Use earlier factsL96–97

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

  1. L96
    exact hcount_witness
  2. L97
    exact hcomplement
16Construct an explicit witnessL98–100

Supply the displayed value, then prove that it has the required property.

  1. L98
    exists x
  2. L99
    exists x1
  3. L100
    exists x2
17Separate the logical casesL101–101

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

  1. L101
    split
18Use earlier factsL102–102

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

  1. L102
    exact hprefix_witness_witness
19Separate the logical casesL103–103

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

  1. L103
    split
20Use earlier factsL104–105

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

  1. L104
    exact hcount_witness
  2. L105
    exact hpartition

Library-wide reading audit

Original defined command ledger · 105 lines
  1. 0001intro p
  2. 0002intro q
  3. 0003intro h
  4. 0004intro k
  5. 0005intro i
  6. 0006intro rb
  7. 0007intro rc
  8. 0008intro bb
  9. 0009intro bc
  10. 0010intro n
  11. 0011intro hrow
  12. 0012intro hrow_count
  13. 0013intro houter
  14. 0014intro hi
  15. 0015have hchoices : ∀ etc_row_index_transposed_column_choices. Lt(etc_row_index_transposed_column_choices,k) → ∃ x. ∃ y. ∃ z. ∃ n. BetaAt(bb,bc,etc_row_index_transposed_column_choices,y) ∧ (∀ m. Lt(m,h) → ∃ j. BetaAt(z,n,m,j) ∧ (j = 0 ∧ (Lt(p · S etc_row_index_transposed_column_choices,q · S m) ∧ ¬Lt(q · S m,p · S etc_row_index_transposed_column_choices)) ∨ j = 1 ∧ (Lt(q · S m,p · S etc_row_index_transposed_column_choices) ∧ ¬Lt(p · S etc_row_index_transposed_column_choices,q · S m)))) ∧ BitCount(z,n,h,y)BetaAt(z,n,i,x)
    Exact native replay linehave hchoices : forall etc_row_index_transposed_column_choices. (exists edt_lt_gap_transposed_column_choices_bound. edt_lt_gap_transposed_column_choices_bound + S (etc_row_index_transposed_column_choices) = k) -> exists etc_bit_transposed_column_choices. (exists etc_count_transposed_column_choices_witness etc_row_code_transposed_column_choices_witness etc_row_scale_transposed_column_choices_witness. ((((((exists ff_h_etc_transposed_column_choices_witness_outer_entry. ff_h_etc_transposed_column_choices_witness_outer_entry + S (etc_count_transposed_column_choices_witness) = S ((S (etc_row_index_transposed_column_choices)) * bc)) /\ exists ff_q_etc_transposed_column_choices_witness_outer_entry. bb = ff_q_etc_transposed_column_choices_witness_outer_entry * S ((S (etc_row_index_transposed_column_choices)) * bc) + (etc_count_transposed_column_choices_witness))) /\ (forall eri_column_etc_transposed_column_choices_witness_row. (exists eri_gap_etc_transposed_column_choices_witness_row_bound. eri_gap_etc_transposed_column_choices_witness_row_bound + S (eri_column_etc_transposed_column_choices_witness_row) = h) -> exists eri_bit_etc_transposed_column_choices_witness_row. ((((exists ff_h_eri_etc_transposed_column_choices_witness_row_decoded. ff_h_eri_etc_transposed_column_choices_witness_row_decoded + S (eri_bit_etc_transposed_column_choices_witness_row) = S ((S (eri_column_etc_transposed_column_choices_witness_row)) * etc_row_scale_transposed_column_choices_witness)) /\ exists ff_q_eri_etc_transposed_column_choices_witness_row_decoded. etc_row_code_transposed_column_choices_witness = ff_q_eri_etc_transposed_column_choices_witness_row_decoded * S ((S (eri_column_etc_transposed_column_choices_witness_row)) * etc_row_scale_transposed_column_choices_witness) + (eri_bit_etc_transposed_column_choices_witness_row))) /\ (((eri_bit_etc_transposed_column_choices_witness_row = 0 /\ ((exists eri_gap_etc_transposed_column_choices_witness_row_choice_left. eri_gap_etc_transposed_column_choices_witness_row_choice_left + S (p * S etc_row_index_transposed_column_choices) = q * S eri_column_etc_transposed_column_choices_witness_row) /\ ~(exists eri_gap_etc_transposed_column_choices_witness_row_choice_right. eri_gap_etc_transposed_column_choices_witness_row_choice_right + S (q * S eri_column_etc_transposed_column_choices_witness_row) = p * S etc_row_index_transposed_column_choices))) \/ (eri_bit_etc_transposed_column_choices_witness_row = 1 /\ ((exists eri_gap_etc_transposed_column_choices_witness_row_choice_right. eri_gap_etc_transposed_column_choices_witness_row_choice_right + S (q * S eri_column_etc_transposed_column_choices_witness_row) = p * S etc_row_index_transposed_column_choices) /\ ~(exists eri_gap_etc_transposed_column_choices_witness_row_choice_left. eri_gap_etc_transposed_column_choices_witness_row_choice_left + S (p * S etc_row_index_transposed_column_choices) = q * S eri_column_etc_transposed_column_choices_witness_row)))))))) /\ (((exists ff_u_etc_transposed_column_choices_witness_count_relation_sum ff_v_etc_transposed_column_choices_witness_count_relation_sum. ((((exists ff_h_etc_transposed_column_choices_witness_count_relation_sum_start. ff_h_etc_transposed_column_choices_witness_count_relation_sum_start + S (0) = S ((S (0)) * ff_v_etc_transposed_column_choices_witness_count_relation_sum)) /\ exists ff_q_etc_transposed_column_choices_witness_count_relation_sum_start. ff_u_etc_transposed_column_choices_witness_count_relation_sum = ff_q_etc_transposed_column_choices_witness_count_relation_sum_start * S ((S (0)) * ff_v_etc_transposed_column_choices_witness_count_relation_sum) + (0))) /\ ((((exists ff_h_etc_transposed_column_choices_witness_count_relation_sum_terminal. ff_h_etc_transposed_column_choices_witness_count_relation_sum_terminal + S (etc_count_transposed_column_choices_witness) = S ((S (h)) * ff_v_etc_transposed_column_choices_witness_count_relation_sum)) /\ exists ff_q_etc_transposed_column_choices_witness_count_relation_sum_terminal. ff_u_etc_transposed_column_choices_witness_count_relation_sum = ff_q_etc_transposed_column_choices_witness_count_relation_sum_terminal * S ((S (h)) * ff_v_etc_transposed_column_choices_witness_count_relation_sum) + (etc_count_transposed_column_choices_witness))) /\ forall ff_i_etc_transposed_column_choices_witness_count_relation_sum. (exists ff_lt_etc_transposed_column_choices_witness_count_relation_sum_bound. ff_lt_etc_transposed_column_choices_witness_count_relation_sum_bound + S ff_i_etc_transposed_column_choices_witness_count_relation_sum = h) -> exists ff_a_etc_transposed_column_choices_witness_count_relation_sum ff_r_etc_transposed_column_choices_witness_count_relation_sum ff_s_etc_transposed_column_choices_witness_count_relation_sum. ((((exists ff_h_etc_transposed_column_choices_witness_count_relation_sum_summand. ff_h_etc_transposed_column_choices_witness_count_relation_sum_summand + S (ff_a_etc_transposed_column_choices_witness_count_relation_sum) = S ((S (ff_i_etc_transposed_column_choices_witness_count_relation_sum)) * etc_row_scale_transposed_column_choices_witness)) /\ exists ff_q_etc_transposed_column_choices_witness_count_relation_sum_summand. etc_row_code_transposed_column_choices_witness = ff_q_etc_transposed_column_choices_witness_count_relation_sum_summand * S ((S (ff_i_etc_transposed_column_choices_witness_count_relation_sum)) * etc_row_scale_transposed_column_choices_witness) + (ff_a_etc_transposed_column_choices_witness_count_relation_sum))) /\ ((((exists ff_h_etc_transposed_column_choices_witness_count_relation_sum_partial. ff_h_etc_transposed_column_choices_witness_count_relation_sum_partial + S (ff_r_etc_transposed_column_choices_witness_count_relation_sum) = S ((S (ff_i_etc_transposed_column_choices_witness_count_relation_sum)) * ff_v_etc_transposed_column_choices_witness_count_relation_sum)) /\ exists ff_q_etc_transposed_column_choices_witness_count_relation_sum_partial. ff_u_etc_transposed_column_choices_witness_count_relation_sum = ff_q_etc_transposed_column_choices_witness_count_relation_sum_partial * S ((S (ff_i_etc_transposed_column_choices_witness_count_relation_sum)) * ff_v_etc_transposed_column_choices_witness_count_relation_sum) + (ff_r_etc_transposed_column_choices_witness_count_relation_sum))) /\ ((((exists ff_h_etc_transposed_column_choices_witness_count_relation_sum_successor. ff_h_etc_transposed_column_choices_witness_count_relation_sum_successor + S (ff_s_etc_transposed_column_choices_witness_count_relation_sum) = S ((S (S ff_i_etc_transposed_column_choices_witness_count_relation_sum)) * ff_v_etc_transposed_column_choices_witness_count_relation_sum)) /\ exists ff_q_etc_transposed_column_choices_witness_count_relation_sum_successor. ff_u_etc_transposed_column_choices_witness_count_relation_sum = ff_q_etc_transposed_column_choices_witness_count_relation_sum_successor * S ((S (S ff_i_etc_transposed_column_choices_witness_count_relation_sum)) * ff_v_etc_transposed_column_choices_witness_count_relation_sum) + (ff_s_etc_transposed_column_choices_witness_count_relation_sum))) /\ ff_s_etc_transposed_column_choices_witness_count_relation_sum = ff_r_etc_transposed_column_choices_witness_count_relation_sum + ff_a_etc_transposed_column_choices_witness_count_relation_sum)))))) /\ (forall ff_i_etc_transposed_column_choices_witness_count_relation_bits. (exists ff_lt_etc_transposed_column_choices_witness_count_relation_bits_bound. ff_lt_etc_transposed_column_choices_witness_count_relation_bits_bound + S ff_i_etc_transposed_column_choices_witness_count_relation_bits = h) -> exists ff_bit_etc_transposed_column_choices_witness_count_relation_bits. ((((exists ff_h_etc_transposed_column_choices_witness_count_relation_bits_decoded. ff_h_etc_transposed_column_choices_witness_count_relation_bits_decoded + S (ff_bit_etc_transposed_column_choices_witness_count_relation_bits) = S ((S (ff_i_etc_transposed_column_choices_witness_count_relation_bits)) * etc_row_scale_transposed_column_choices_witness)) /\ exists ff_q_etc_transposed_column_choices_witness_count_relation_bits_decoded. etc_row_code_transposed_column_choices_witness = ff_q_etc_transposed_column_choices_witness_count_relation_bits_decoded * S ((S (ff_i_etc_transposed_column_choices_witness_count_relation_bits)) * etc_row_scale_transposed_column_choices_witness) + (ff_bit_etc_transposed_column_choices_witness_count_relation_bits))) /\ (ff_bit_etc_transposed_column_choices_witness_count_relation_bits = 0 \/ ff_bit_etc_transposed_column_choices_witness_count_relation_bits = 1)))))) /\ (((exists ff_h_etc_transposed_column_choices_witness_inner_entry. ff_h_etc_transposed_column_choices_witness_inner_entry + S (etc_bit_transposed_column_choices) = S ((S (i)) * etc_row_scale_transposed_column_choices_witness)) /\ exists ff_q_etc_transposed_column_choices_witness_inner_entry. etc_row_code_transposed_column_choices_witness = ff_q_etc_transposed_column_choices_witness_inner_entry * S ((S (i)) * etc_row_scale_transposed_column_choices_witness) + (etc_bit_transposed_column_choices)))))
  16. 0016specialize eisenstein_transposed_outer_column_choices p
  17. 0017specialize eisenstein_transposed_outer_column_choices q
  18. 0018specialize eisenstein_transposed_outer_column_choices h
  19. 0019specialize eisenstein_transposed_outer_column_choices k
  20. 0020specialize eisenstein_transposed_outer_column_choices bb
  21. 0021specialize eisenstein_transposed_outer_column_choices bc
  22. 0022specialize eisenstein_transposed_outer_column_choices i
  23. 0023apply eisenstein_transposed_outer_column_choices
  24. 0024exact houter
  25. 0025exact hi
  26. 0026have hprefix : ∃ z. ∃ e. ∀ x. Lt(x,k) → ∃ y. BetaAt(z,e,x,y) ∧ (∃ n. ∃ m. ∃ j. BetaAt(bb,bc,x,n) ∧ (∀ u. Lt(u,h) → ∃ v. BetaAt(m,j,u,v) ∧ (v = 0 ∧ (Lt(p · S x,q · S u) ∧ ¬Lt(q · S u,p · S x)) ∨ v = 1 ∧ (Lt(q · S u,p · S x) ∧ ¬Lt(p · S x,q · S u)))) ∧ BitCount(m,j,h,n)BetaAt(m,j,i,y))
    Exact native replay linehave hprefix : exists z e. (forall etc_row_index_transposed_column_exists_result. (exists edt_lt_gap_transposed_column_exists_result_bound. edt_lt_gap_transposed_column_exists_result_bound + S (etc_row_index_transposed_column_exists_result) = k) -> exists etc_bit_transposed_column_exists_result. ((((exists ff_h_etc_transposed_column_exists_result_decoded. ff_h_etc_transposed_column_exists_result_decoded + S (etc_bit_transposed_column_exists_result) = S ((S (etc_row_index_transposed_column_exists_result)) * e)) /\ exists ff_q_etc_transposed_column_exists_result_decoded. z = ff_q_etc_transposed_column_exists_result_decoded * S ((S (etc_row_index_transposed_column_exists_result)) * e) + (etc_bit_transposed_column_exists_result))) /\ (exists etc_count_transposed_column_exists_result_witness etc_row_code_transposed_column_exists_result_witness etc_row_scale_transposed_column_exists_result_witness. ((((((exists ff_h_etc_transposed_column_exists_result_witness_outer_entry. ff_h_etc_transposed_column_exists_result_witness_outer_entry + S (etc_count_transposed_column_exists_result_witness) = S ((S (etc_row_index_transposed_column_exists_result)) * bc)) /\ exists ff_q_etc_transposed_column_exists_result_witness_outer_entry. bb = ff_q_etc_transposed_column_exists_result_witness_outer_entry * S ((S (etc_row_index_transposed_column_exists_result)) * bc) + (etc_count_transposed_column_exists_result_witness))) /\ (forall eri_column_etc_transposed_column_exists_result_witness_row. (exists eri_gap_etc_transposed_column_exists_result_witness_row_bound. eri_gap_etc_transposed_column_exists_result_witness_row_bound + S (eri_column_etc_transposed_column_exists_result_witness_row) = h) -> exists eri_bit_etc_transposed_column_exists_result_witness_row. ((((exists ff_h_eri_etc_transposed_column_exists_result_witness_row_decoded. ff_h_eri_etc_transposed_column_exists_result_witness_row_decoded + S (eri_bit_etc_transposed_column_exists_result_witness_row) = S ((S (eri_column_etc_transposed_column_exists_result_witness_row)) * etc_row_scale_transposed_column_exists_result_witness)) /\ exists ff_q_eri_etc_transposed_column_exists_result_witness_row_decoded. etc_row_code_transposed_column_exists_result_witness = ff_q_eri_etc_transposed_column_exists_result_witness_row_decoded * S ((S (eri_column_etc_transposed_column_exists_result_witness_row)) * etc_row_scale_transposed_column_exists_result_witness) + (eri_bit_etc_transposed_column_exists_result_witness_row))) /\ (((eri_bit_etc_transposed_column_exists_result_witness_row = 0 /\ ((exists eri_gap_etc_transposed_column_exists_result_witness_row_choice_left. eri_gap_etc_transposed_column_exists_result_witness_row_choice_left + S (p * S etc_row_index_transposed_column_exists_result) = q * S eri_column_etc_transposed_column_exists_result_witness_row) /\ ~(exists eri_gap_etc_transposed_column_exists_result_witness_row_choice_right. eri_gap_etc_transposed_column_exists_result_witness_row_choice_right + S (q * S eri_column_etc_transposed_column_exists_result_witness_row) = p * S etc_row_index_transposed_column_exists_result))) \/ (eri_bit_etc_transposed_column_exists_result_witness_row = 1 /\ ((exists eri_gap_etc_transposed_column_exists_result_witness_row_choice_right. eri_gap_etc_transposed_column_exists_result_witness_row_choice_right + S (q * S eri_column_etc_transposed_column_exists_result_witness_row) = p * S etc_row_index_transposed_column_exists_result) /\ ~(exists eri_gap_etc_transposed_column_exists_result_witness_row_choice_left. eri_gap_etc_transposed_column_exists_result_witness_row_choice_left + S (p * S etc_row_index_transposed_column_exists_result) = q * S eri_column_etc_transposed_column_exists_result_witness_row)))))))) /\ (((exists ff_u_etc_transposed_column_exists_result_witness_count_relation_sum ff_v_etc_transposed_column_exists_result_witness_count_relation_sum. ((((exists ff_h_etc_transposed_column_exists_result_witness_count_relation_sum_start. ff_h_etc_transposed_column_exists_result_witness_count_relation_sum_start + S (0) = S ((S (0)) * ff_v_etc_transposed_column_exists_result_witness_count_relation_sum)) /\ exists ff_q_etc_transposed_column_exists_result_witness_count_relation_sum_start. ff_u_etc_transposed_column_exists_result_witness_count_relation_sum = ff_q_etc_transposed_column_exists_result_witness_count_relation_sum_start * S ((S (0)) * ff_v_etc_transposed_column_exists_result_witness_count_relation_sum) + (0))) /\ ((((exists ff_h_etc_transposed_column_exists_result_witness_count_relation_sum_terminal. ff_h_etc_transposed_column_exists_result_witness_count_relation_sum_terminal + S (etc_count_transposed_column_exists_result_witness) = S ((S (h)) * ff_v_etc_transposed_column_exists_result_witness_count_relation_sum)) /\ exists ff_q_etc_transposed_column_exists_result_witness_count_relation_sum_terminal. ff_u_etc_transposed_column_exists_result_witness_count_relation_sum = ff_q_etc_transposed_column_exists_result_witness_count_relation_sum_terminal * S ((S (h)) * ff_v_etc_transposed_column_exists_result_witness_count_relation_sum) + (etc_count_transposed_column_exists_result_witness))) /\ forall ff_i_etc_transposed_column_exists_result_witness_count_relation_sum. (exists ff_lt_etc_transposed_column_exists_result_witness_count_relation_sum_bound. ff_lt_etc_transposed_column_exists_result_witness_count_relation_sum_bound + S ff_i_etc_transposed_column_exists_result_witness_count_relation_sum = h) -> exists ff_a_etc_transposed_column_exists_result_witness_count_relation_sum ff_r_etc_transposed_column_exists_result_witness_count_relation_sum ff_s_etc_transposed_column_exists_result_witness_count_relation_sum. ((((exists ff_h_etc_transposed_column_exists_result_witness_count_relation_sum_summand. ff_h_etc_transposed_column_exists_result_witness_count_relation_sum_summand + S (ff_a_etc_transposed_column_exists_result_witness_count_relation_sum) = S ((S (ff_i_etc_transposed_column_exists_result_witness_count_relation_sum)) * etc_row_scale_transposed_column_exists_result_witness)) /\ exists ff_q_etc_transposed_column_exists_result_witness_count_relation_sum_summand. etc_row_code_transposed_column_exists_result_witness = ff_q_etc_transposed_column_exists_result_witness_count_relation_sum_summand * S ((S (ff_i_etc_transposed_column_exists_result_witness_count_relation_sum)) * etc_row_scale_transposed_column_exists_result_witness) + (ff_a_etc_transposed_column_exists_result_witness_count_relation_sum))) /\ ((((exists ff_h_etc_transposed_column_exists_result_witness_count_relation_sum_partial. ff_h_etc_transposed_column_exists_result_witness_count_relation_sum_partial + S (ff_r_etc_transposed_column_exists_result_witness_count_relation_sum) = S ((S (ff_i_etc_transposed_column_exists_result_witness_count_relation_sum)) * ff_v_etc_transposed_column_exists_result_witness_count_relation_sum)) /\ exists ff_q_etc_transposed_column_exists_result_witness_count_relation_sum_partial. ff_u_etc_transposed_column_exists_result_witness_count_relation_sum = ff_q_etc_transposed_column_exists_result_witness_count_relation_sum_partial * S ((S (ff_i_etc_transposed_column_exists_result_witness_count_relation_sum)) * ff_v_etc_transposed_column_exists_result_witness_count_relation_sum) + (ff_r_etc_transposed_column_exists_result_witness_count_relation_sum))) /\ ((((exists ff_h_etc_transposed_column_exists_result_witness_count_relation_sum_successor. ff_h_etc_transposed_column_exists_result_witness_count_relation_sum_successor + S (ff_s_etc_transposed_column_exists_result_witness_count_relation_sum) = S ((S (S ff_i_etc_transposed_column_exists_result_witness_count_relation_sum)) * ff_v_etc_transposed_column_exists_result_witness_count_relation_sum)) /\ exists ff_q_etc_transposed_column_exists_result_witness_count_relation_sum_successor. ff_u_etc_transposed_column_exists_result_witness_count_relation_sum = ff_q_etc_transposed_column_exists_result_witness_count_relation_sum_successor * S ((S (S ff_i_etc_transposed_column_exists_result_witness_count_relation_sum)) * ff_v_etc_transposed_column_exists_result_witness_count_relation_sum) + (ff_s_etc_transposed_column_exists_result_witness_count_relation_sum))) /\ ff_s_etc_transposed_column_exists_result_witness_count_relation_sum = ff_r_etc_transposed_column_exists_result_witness_count_relation_sum + ff_a_etc_transposed_column_exists_result_witness_count_relation_sum)))))) /\ (forall ff_i_etc_transposed_column_exists_result_witness_count_relation_bits. (exists ff_lt_etc_transposed_column_exists_result_witness_count_relation_bits_bound. ff_lt_etc_transposed_column_exists_result_witness_count_relation_bits_bound + S ff_i_etc_transposed_column_exists_result_witness_count_relation_bits = h) -> exists ff_bit_etc_transposed_column_exists_result_witness_count_relation_bits. ((((exists ff_h_etc_transposed_column_exists_result_witness_count_relation_bits_decoded. ff_h_etc_transposed_column_exists_result_witness_count_relation_bits_decoded + S (ff_bit_etc_transposed_column_exists_result_witness_count_relation_bits) = S ((S (ff_i_etc_transposed_column_exists_result_witness_count_relation_bits)) * etc_row_scale_transposed_column_exists_result_witness)) /\ exists ff_q_etc_transposed_column_exists_result_witness_count_relation_bits_decoded. etc_row_code_transposed_column_exists_result_witness = ff_q_etc_transposed_column_exists_result_witness_count_relation_bits_decoded * S ((S (ff_i_etc_transposed_column_exists_result_witness_count_relation_bits)) * etc_row_scale_transposed_column_exists_result_witness) + (ff_bit_etc_transposed_column_exists_result_witness_count_relation_bits))) /\ (ff_bit_etc_transposed_column_exists_result_witness_count_relation_bits = 0 \/ ff_bit_etc_transposed_column_exists_result_witness_count_relation_bits = 1)))))) /\ (((exists ff_h_etc_transposed_column_exists_result_witness_inner_entry. ff_h_etc_transposed_column_exists_result_witness_inner_entry + S (etc_bit_transposed_column_exists_result) = S ((S (i)) * etc_row_scale_transposed_column_exists_result_witness)) /\ exists ff_q_etc_transposed_column_exists_result_witness_inner_entry. etc_row_code_transposed_column_exists_result_witness = ff_q_etc_transposed_column_exists_result_witness_inner_entry * S ((S (i)) * etc_row_scale_transposed_column_exists_result_witness) + (etc_bit_transposed_column_exists_result)))))))
  27. 0027specialize eisenstein_transposed_column_prefix_exists p
  28. 0028specialize eisenstein_transposed_column_prefix_exists q
  29. 0029specialize eisenstein_transposed_column_prefix_exists h
  30. 0030specialize eisenstein_transposed_column_prefix_exists bb
  31. 0031specialize eisenstein_transposed_column_prefix_exists bc
  32. 0032specialize eisenstein_transposed_column_prefix_exists i
  33. 0033specialize eisenstein_transposed_column_prefix_exists k
  34. 0034apply eisenstein_transposed_column_prefix_exists
  35. 0035exact hchoices
  36. 0036cases hprefix
  37. 0037cases hprefix_witness
  38. 0038have hallbits : AllBits(x,x1,k)
    Exact native replay linehave hallbits : forall ff_i_transposed_column_endpoint_all_bits. (exists ff_lt_transposed_column_endpoint_all_bits_bound. ff_lt_transposed_column_endpoint_all_bits_bound + S ff_i_transposed_column_endpoint_all_bits = k) -> exists ff_bit_transposed_column_endpoint_all_bits. ((((exists ff_h_transposed_column_endpoint_all_bits_decoded. ff_h_transposed_column_endpoint_all_bits_decoded + S (ff_bit_transposed_column_endpoint_all_bits) = S ((S (ff_i_transposed_column_endpoint_all_bits)) * x1)) /\ exists ff_q_transposed_column_endpoint_all_bits_decoded. x = ff_q_transposed_column_endpoint_all_bits_decoded * S ((S (ff_i_transposed_column_endpoint_all_bits)) * x1) + (ff_bit_transposed_column_endpoint_all_bits))) /\ (ff_bit_transposed_column_endpoint_all_bits = 0 \/ ff_bit_transposed_column_endpoint_all_bits = 1))
  39. 0039specialize eisenstein_transposed_column_prefix_all_bits p
  40. 0040specialize eisenstein_transposed_column_prefix_all_bits q
  41. 0041specialize eisenstein_transposed_column_prefix_all_bits h
  42. 0042specialize eisenstein_transposed_column_prefix_all_bits bb
  43. 0043specialize eisenstein_transposed_column_prefix_all_bits bc
  44. 0044specialize eisenstein_transposed_column_prefix_all_bits i
  45. 0045specialize eisenstein_transposed_column_prefix_all_bits x
  46. 0046specialize eisenstein_transposed_column_prefix_all_bits x1
  47. 0047specialize eisenstein_transposed_column_prefix_all_bits k
  48. 0048apply eisenstein_transposed_column_prefix_all_bits
  49. 0049exact hprefix_witness_witness
  50. 0050exact hi
  51. 0051have hcount : ∃ m. BitCount(x,x1,k,m)
    Exact native replay linehave hcount : exists m. (((exists ff_u_transposed_column_endpoint_count_exists_sum ff_v_transposed_column_endpoint_count_exists_sum. ((((exists ff_h_transposed_column_endpoint_count_exists_sum_start. ff_h_transposed_column_endpoint_count_exists_sum_start + S (0) = S ((S (0)) * ff_v_transposed_column_endpoint_count_exists_sum)) /\ exists ff_q_transposed_column_endpoint_count_exists_sum_start. ff_u_transposed_column_endpoint_count_exists_sum = ff_q_transposed_column_endpoint_count_exists_sum_start * S ((S (0)) * ff_v_transposed_column_endpoint_count_exists_sum) + (0))) /\ ((((exists ff_h_transposed_column_endpoint_count_exists_sum_terminal. ff_h_transposed_column_endpoint_count_exists_sum_terminal + S (m) = S ((S (k)) * ff_v_transposed_column_endpoint_count_exists_sum)) /\ exists ff_q_transposed_column_endpoint_count_exists_sum_terminal. ff_u_transposed_column_endpoint_count_exists_sum = ff_q_transposed_column_endpoint_count_exists_sum_terminal * S ((S (k)) * ff_v_transposed_column_endpoint_count_exists_sum) + (m))) /\ forall ff_i_transposed_column_endpoint_count_exists_sum. (exists ff_lt_transposed_column_endpoint_count_exists_sum_bound. ff_lt_transposed_column_endpoint_count_exists_sum_bound + S ff_i_transposed_column_endpoint_count_exists_sum = k) -> exists ff_a_transposed_column_endpoint_count_exists_sum ff_r_transposed_column_endpoint_count_exists_sum ff_s_transposed_column_endpoint_count_exists_sum. ((((exists ff_h_transposed_column_endpoint_count_exists_sum_summand. ff_h_transposed_column_endpoint_count_exists_sum_summand + S (ff_a_transposed_column_endpoint_count_exists_sum) = S ((S (ff_i_transposed_column_endpoint_count_exists_sum)) * x1)) /\ exists ff_q_transposed_column_endpoint_count_exists_sum_summand. x = ff_q_transposed_column_endpoint_count_exists_sum_summand * S ((S (ff_i_transposed_column_endpoint_count_exists_sum)) * x1) + (ff_a_transposed_column_endpoint_count_exists_sum))) /\ ((((exists ff_h_transposed_column_endpoint_count_exists_sum_partial. ff_h_transposed_column_endpoint_count_exists_sum_partial + S (ff_r_transposed_column_endpoint_count_exists_sum) = S ((S (ff_i_transposed_column_endpoint_count_exists_sum)) * ff_v_transposed_column_endpoint_count_exists_sum)) /\ exists ff_q_transposed_column_endpoint_count_exists_sum_partial. ff_u_transposed_column_endpoint_count_exists_sum = ff_q_transposed_column_endpoint_count_exists_sum_partial * S ((S (ff_i_transposed_column_endpoint_count_exists_sum)) * ff_v_transposed_column_endpoint_count_exists_sum) + (ff_r_transposed_column_endpoint_count_exists_sum))) /\ ((((exists ff_h_transposed_column_endpoint_count_exists_sum_successor. ff_h_transposed_column_endpoint_count_exists_sum_successor + S (ff_s_transposed_column_endpoint_count_exists_sum) = S ((S (S ff_i_transposed_column_endpoint_count_exists_sum)) * ff_v_transposed_column_endpoint_count_exists_sum)) /\ exists ff_q_transposed_column_endpoint_count_exists_sum_successor. ff_u_transposed_column_endpoint_count_exists_sum = ff_q_transposed_column_endpoint_count_exists_sum_successor * S ((S (S ff_i_transposed_column_endpoint_count_exists_sum)) * ff_v_transposed_column_endpoint_count_exists_sum) + (ff_s_transposed_column_endpoint_count_exists_sum))) /\ ff_s_transposed_column_endpoint_count_exists_sum = ff_r_transposed_column_endpoint_count_exists_sum + ff_a_transposed_column_endpoint_count_exists_sum)))))) /\ (forall ff_i_transposed_column_endpoint_count_exists_bits. (exists ff_lt_transposed_column_endpoint_count_exists_bits_bound. ff_lt_transposed_column_endpoint_count_exists_bits_bound + S ff_i_transposed_column_endpoint_count_exists_bits = k) -> exists ff_bit_transposed_column_endpoint_count_exists_bits. ((((exists ff_h_transposed_column_endpoint_count_exists_bits_decoded. ff_h_transposed_column_endpoint_count_exists_bits_decoded + S (ff_bit_transposed_column_endpoint_count_exists_bits) = S ((S (ff_i_transposed_column_endpoint_count_exists_bits)) * x1)) /\ exists ff_q_transposed_column_endpoint_count_exists_bits_decoded. x = ff_q_transposed_column_endpoint_count_exists_bits_decoded * S ((S (ff_i_transposed_column_endpoint_count_exists_bits)) * x1) + (ff_bit_transposed_column_endpoint_count_exists_bits))) /\ (ff_bit_transposed_column_endpoint_count_exists_bits = 0 \/ ff_bit_transposed_column_endpoint_count_exists_bits = 1)))))
  52. 0052specialize bit_count_exists x
  53. 0053specialize bit_count_exists x1
  54. 0054specialize bit_count_exists k
  55. 0055apply bit_count_exists
  56. 0056exact hallbits
  57. 0057cases hcount
  58. 0058have hcomplement : ∀ j. ∀ a. ∀ d. Lt(j,k)BetaAt(rb,rc,j,a)BetaAt(x,x1,j,d) → a = 0 ∧ d = 1 ∨ a = 1 ∧ d = 0
    Exact native replay linehave hcomplement : forall j a d. (exists edt_lt_gap_transposed_column_endpoint_complement_bound. edt_lt_gap_transposed_column_endpoint_complement_bound + S (j) = k) -> (((exists ff_h_transposed_column_endpoint_complement_row. ff_h_transposed_column_endpoint_complement_row + S (a) = S ((S (j)) * rc)) /\ exists ff_q_transposed_column_endpoint_complement_row. rb = ff_q_transposed_column_endpoint_complement_row * S ((S (j)) * rc) + (a))) -> (((exists ff_h_transposed_column_endpoint_complement_column. ff_h_transposed_column_endpoint_complement_column + S (d) = S ((S (j)) * x1)) /\ exists ff_q_transposed_column_endpoint_complement_column. x = ff_q_transposed_column_endpoint_complement_column * S ((S (j)) * x1) + (d))) -> ((a = 0 /\ d = 1) \/ (a = 1 /\ d = 0))
  59. 0059intro j
  60. 0060intro a
  61. 0061intro d
  62. 0062intro hj
  63. 0063intro ha
  64. 0064intro hd
  65. 0065specialize eisenstein_transposed_column_pointwise_complement p
  66. 0066specialize eisenstein_transposed_column_pointwise_complement q
  67. 0067specialize eisenstein_transposed_column_pointwise_complement h
  68. 0068specialize eisenstein_transposed_column_pointwise_complement k
  69. 0069specialize eisenstein_transposed_column_pointwise_complement i
  70. 0070specialize eisenstein_transposed_column_pointwise_complement rb
  71. 0071specialize eisenstein_transposed_column_pointwise_complement rc
  72. 0072specialize eisenstein_transposed_column_pointwise_complement bb
  73. 0073specialize eisenstein_transposed_column_pointwise_complement bc
  74. 0074specialize eisenstein_transposed_column_pointwise_complement x
  75. 0075specialize eisenstein_transposed_column_pointwise_complement x1
  76. 0076specialize eisenstein_transposed_column_pointwise_complement j
  77. 0077specialize eisenstein_transposed_column_pointwise_complement a
  78. 0078specialize eisenstein_transposed_column_pointwise_complement d
  79. 0079apply eisenstein_transposed_column_pointwise_complement
  80. 0080exact hrow
  81. 0081exact hprefix_witness_witness
  82. 0082exact hi
  83. 0083exact hj
  84. 0084exact ha
  85. 0085exact hd
  86. 0086have hpartition : n + x2 = k
  87. 0087specialize complementary_bit_counts_add_length rb
  88. 0088specialize complementary_bit_counts_add_length rc
  89. 0089specialize complementary_bit_counts_add_length x
  90. 0090specialize complementary_bit_counts_add_length x1
  91. 0091specialize complementary_bit_counts_add_length k
  92. 0092specialize complementary_bit_counts_add_length n
  93. 0093specialize complementary_bit_counts_add_length x2
  94. 0094apply complementary_bit_counts_add_length
  95. 0095exact hrow_count
  96. 0096exact hcount_witness
  97. 0097exact hcomplement
  98. 0098exists x
  99. 0099exists x1
  100. 0100exists x2
  101. 0101split
  102. 0102exact hprefix_witness_witness
  103. 0103split
  104. 0104exact hcount_witness
  105. 0105exact hpartition