PA00EU · theorem

eisenstein_successor_row_count_decompose

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

A semantic successor row count is its restricted count plus its final decoded bit.

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. ∀ sh. ∀ i. ∀ n. sh = S h → (∃ x. ∃ y. (∀ z. Lt(z,sh) → ∃ m. BetaAt(x,y,z,m) ∧ (m = 0 ∧ (Lt(q · S i,p · S z) ∧ ¬Lt(p · S z,q · S i)) ∨ m = 1 ∧ (Lt(p · S z,q · S i) ∧ ¬Lt(q · S i,p · S z)))) ∧ BitCount(x,y,sh,n)) → ∃ x. ∃ y. ∃ z. ∃ m. (∀ k. Lt(k,sh) → ∃ j. BetaAt(z,m,k,j) ∧ (j = 0 ∧ (Lt(q · S i,p · S k) ∧ ¬Lt(p · S k,q · S i)) ∨ j = 1 ∧ (Lt(p · S k,q · S i) ∧ ¬Lt(q · S i,p · S k)))) ∧ BitCount(z,m,sh,n) ∧ ((∀ k. Lt(k,h) → ∃ j. BetaAt(z,m,k,j) ∧ (j = 0 ∧ (Lt(q · S i,p · S k) ∧ ¬Lt(p · S k,q · S i)) ∨ j = 1 ∧ (Lt(p · S k,q · S i) ∧ ¬Lt(q · S i,p · S k)))) ∧ BetaAt(z,m,h,x)) ∧ (BitCount(z,m,h,y) ∧ (x = 0 ∨ x = 1) ∧ n = y + x)

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

22 occurrences

In local proof propositions

8 occurrences

Exact expanded native-PA statement
forall p q h sh i n. sh = S h -> (exists erc_row_code_fubini_row_decompose_source erc_row_scale_fubini_row_decompose_source. ((forall eri_column_erc_fubini_row_decompose_source_row. (exists eri_gap_erc_fubini_row_decompose_source_row_bound. eri_gap_erc_fubini_row_decompose_source_row_bound + S (eri_column_erc_fubini_row_decompose_source_row) = sh) -> exists eri_bit_erc_fubini_row_decompose_source_row. ((((exists ff_h_eri_erc_fubini_row_decompose_source_row_decoded. ff_h_eri_erc_fubini_row_decompose_source_row_decoded + S (eri_bit_erc_fubini_row_decompose_source_row) = S ((S (eri_column_erc_fubini_row_decompose_source_row)) * erc_row_scale_fubini_row_decompose_source)) /\ exists ff_q_eri_erc_fubini_row_decompose_source_row_decoded. erc_row_code_fubini_row_decompose_source = ff_q_eri_erc_fubini_row_decompose_source_row_decoded * S ((S (eri_column_erc_fubini_row_decompose_source_row)) * erc_row_scale_fubini_row_decompose_source) + (eri_bit_erc_fubini_row_decompose_source_row))) /\ (((eri_bit_erc_fubini_row_decompose_source_row = 0 /\ ((exists eri_gap_erc_fubini_row_decompose_source_row_choice_left. eri_gap_erc_fubini_row_decompose_source_row_choice_left + S (q * S i) = p * S eri_column_erc_fubini_row_decompose_source_row) /\ ~(exists eri_gap_erc_fubini_row_decompose_source_row_choice_right. eri_gap_erc_fubini_row_decompose_source_row_choice_right + S (p * S eri_column_erc_fubini_row_decompose_source_row) = q * S i))) \/ (eri_bit_erc_fubini_row_decompose_source_row = 1 /\ ((exists eri_gap_erc_fubini_row_decompose_source_row_choice_right. eri_gap_erc_fubini_row_decompose_source_row_choice_right + S (p * S eri_column_erc_fubini_row_decompose_source_row) = q * S i) /\ ~(exists eri_gap_erc_fubini_row_decompose_source_row_choice_left. eri_gap_erc_fubini_row_decompose_source_row_choice_left + S (q * S i) = p * S eri_column_erc_fubini_row_decompose_source_row))))))) /\ (((exists ff_u_erc_fubini_row_decompose_source_count_sum ff_v_erc_fubini_row_decompose_source_count_sum. ((((exists ff_h_erc_fubini_row_decompose_source_count_sum_start. ff_h_erc_fubini_row_decompose_source_count_sum_start + S (0) = S ((S (0)) * ff_v_erc_fubini_row_decompose_source_count_sum)) /\ exists ff_q_erc_fubini_row_decompose_source_count_sum_start. ff_u_erc_fubini_row_decompose_source_count_sum = ff_q_erc_fubini_row_decompose_source_count_sum_start * S ((S (0)) * ff_v_erc_fubini_row_decompose_source_count_sum) + (0))) /\ ((((exists ff_h_erc_fubini_row_decompose_source_count_sum_terminal. ff_h_erc_fubini_row_decompose_source_count_sum_terminal + S (n) = S ((S (sh)) * ff_v_erc_fubini_row_decompose_source_count_sum)) /\ exists ff_q_erc_fubini_row_decompose_source_count_sum_terminal. ff_u_erc_fubini_row_decompose_source_count_sum = ff_q_erc_fubini_row_decompose_source_count_sum_terminal * S ((S (sh)) * ff_v_erc_fubini_row_decompose_source_count_sum) + (n))) /\ forall ff_i_erc_fubini_row_decompose_source_count_sum. (exists ff_lt_erc_fubini_row_decompose_source_count_sum_bound. ff_lt_erc_fubini_row_decompose_source_count_sum_bound + S ff_i_erc_fubini_row_decompose_source_count_sum = sh) -> exists ff_a_erc_fubini_row_decompose_source_count_sum ff_r_erc_fubini_row_decompose_source_count_sum ff_s_erc_fubini_row_decompose_source_count_sum. ((((exists ff_h_erc_fubini_row_decompose_source_count_sum_summand. ff_h_erc_fubini_row_decompose_source_count_sum_summand + S (ff_a_erc_fubini_row_decompose_source_count_sum) = S ((S (ff_i_erc_fubini_row_decompose_source_count_sum)) * erc_row_scale_fubini_row_decompose_source)) /\ exists ff_q_erc_fubini_row_decompose_source_count_sum_summand. erc_row_code_fubini_row_decompose_source = ff_q_erc_fubini_row_decompose_source_count_sum_summand * S ((S (ff_i_erc_fubini_row_decompose_source_count_sum)) * erc_row_scale_fubini_row_decompose_source) + (ff_a_erc_fubini_row_decompose_source_count_sum))) /\ ((((exists ff_h_erc_fubini_row_decompose_source_count_sum_partial. ff_h_erc_fubini_row_decompose_source_count_sum_partial + S (ff_r_erc_fubini_row_decompose_source_count_sum) = S ((S (ff_i_erc_fubini_row_decompose_source_count_sum)) * ff_v_erc_fubini_row_decompose_source_count_sum)) /\ exists ff_q_erc_fubini_row_decompose_source_count_sum_partial. ff_u_erc_fubini_row_decompose_source_count_sum = ff_q_erc_fubini_row_decompose_source_count_sum_partial * S ((S (ff_i_erc_fubini_row_decompose_source_count_sum)) * ff_v_erc_fubini_row_decompose_source_count_sum) + (ff_r_erc_fubini_row_decompose_source_count_sum))) /\ ((((exists ff_h_erc_fubini_row_decompose_source_count_sum_successor. ff_h_erc_fubini_row_decompose_source_count_sum_successor + S (ff_s_erc_fubini_row_decompose_source_count_sum) = S ((S (S ff_i_erc_fubini_row_decompose_source_count_sum)) * ff_v_erc_fubini_row_decompose_source_count_sum)) /\ exists ff_q_erc_fubini_row_decompose_source_count_sum_successor. ff_u_erc_fubini_row_decompose_source_count_sum = ff_q_erc_fubini_row_decompose_source_count_sum_successor * S ((S (S ff_i_erc_fubini_row_decompose_source_count_sum)) * ff_v_erc_fubini_row_decompose_source_count_sum) + (ff_s_erc_fubini_row_decompose_source_count_sum))) /\ ff_s_erc_fubini_row_decompose_source_count_sum = ff_r_erc_fubini_row_decompose_source_count_sum + ff_a_erc_fubini_row_decompose_source_count_sum)))))) /\ (forall ff_i_erc_fubini_row_decompose_source_count_bits. (exists ff_lt_erc_fubini_row_decompose_source_count_bits_bound. ff_lt_erc_fubini_row_decompose_source_count_bits_bound + S ff_i_erc_fubini_row_decompose_source_count_bits = sh) -> exists ff_bit_erc_fubini_row_decompose_source_count_bits. ((((exists ff_h_erc_fubini_row_decompose_source_count_bits_decoded. ff_h_erc_fubini_row_decompose_source_count_bits_decoded + S (ff_bit_erc_fubini_row_decompose_source_count_bits) = S ((S (ff_i_erc_fubini_row_decompose_source_count_bits)) * erc_row_scale_fubini_row_decompose_source)) /\ exists ff_q_erc_fubini_row_decompose_source_count_bits_decoded. erc_row_code_fubini_row_decompose_source = ff_q_erc_fubini_row_decompose_source_count_bits_decoded * S ((S (ff_i_erc_fubini_row_decompose_source_count_bits)) * erc_row_scale_fubini_row_decompose_source) + (ff_bit_erc_fubini_row_decompose_source_count_bits))) /\ (ff_bit_erc_fubini_row_decompose_source_count_bits = 0 \/ ff_bit_erc_fubini_row_decompose_source_count_bits = 1))))))) -> (exists efrd_terminal_bit_fubini_row_decompose_result efrd_reduced_count_fubini_row_decompose_result. (exists efrd_row_code_fubini_row_decompose_result_split efrd_row_scale_fubini_row_decompose_result_split. (((((forall eri_column_efrd_fubini_row_decompose_result_split_successor_prefix. (exists eri_gap_efrd_fubini_row_decompose_result_split_successor_prefix_bound. eri_gap_efrd_fubini_row_decompose_result_split_successor_prefix_bound + S (eri_column_efrd_fubini_row_decompose_result_split_successor_prefix) = sh) -> exists eri_bit_efrd_fubini_row_decompose_result_split_successor_prefix. ((((exists ff_h_eri_efrd_fubini_row_decompose_result_split_successor_prefix_decoded. ff_h_eri_efrd_fubini_row_decompose_result_split_successor_prefix_decoded + S (eri_bit_efrd_fubini_row_decompose_result_split_successor_prefix) = S ((S (eri_column_efrd_fubini_row_decompose_result_split_successor_prefix)) * efrd_row_scale_fubini_row_decompose_result_split)) /\ exists ff_q_eri_efrd_fubini_row_decompose_result_split_successor_prefix_decoded. efrd_row_code_fubini_row_decompose_result_split = ff_q_eri_efrd_fubini_row_decompose_result_split_successor_prefix_decoded * S ((S (eri_column_efrd_fubini_row_decompose_result_split_successor_prefix)) * efrd_row_scale_fubini_row_decompose_result_split) + (eri_bit_efrd_fubini_row_decompose_result_split_successor_prefix))) /\ (((eri_bit_efrd_fubini_row_decompose_result_split_successor_prefix = 0 /\ ((exists eri_gap_efrd_fubini_row_decompose_result_split_successor_prefix_choice_left. eri_gap_efrd_fubini_row_decompose_result_split_successor_prefix_choice_left + S (q * S i) = p * S eri_column_efrd_fubini_row_decompose_result_split_successor_prefix) /\ ~(exists eri_gap_efrd_fubini_row_decompose_result_split_successor_prefix_choice_right. eri_gap_efrd_fubini_row_decompose_result_split_successor_prefix_choice_right + S (p * S eri_column_efrd_fubini_row_decompose_result_split_successor_prefix) = q * S i))) \/ (eri_bit_efrd_fubini_row_decompose_result_split_successor_prefix = 1 /\ ((exists eri_gap_efrd_fubini_row_decompose_result_split_successor_prefix_choice_right. eri_gap_efrd_fubini_row_decompose_result_split_successor_prefix_choice_right + S (p * S eri_column_efrd_fubini_row_decompose_result_split_successor_prefix) = q * S i) /\ ~(exists eri_gap_efrd_fubini_row_decompose_result_split_successor_prefix_choice_left. eri_gap_efrd_fubini_row_decompose_result_split_successor_prefix_choice_left + S (q * S i) = p * S eri_column_efrd_fubini_row_decompose_result_split_successor_prefix))))))) /\ (((exists ff_u_efrd_fubini_row_decompose_result_split_successor_count_sum ff_v_efrd_fubini_row_decompose_result_split_successor_count_sum. ((((exists ff_h_efrd_fubini_row_decompose_result_split_successor_count_sum_start. ff_h_efrd_fubini_row_decompose_result_split_successor_count_sum_start + S (0) = S ((S (0)) * ff_v_efrd_fubini_row_decompose_result_split_successor_count_sum)) /\ exists ff_q_efrd_fubini_row_decompose_result_split_successor_count_sum_start. ff_u_efrd_fubini_row_decompose_result_split_successor_count_sum = ff_q_efrd_fubini_row_decompose_result_split_successor_count_sum_start * S ((S (0)) * ff_v_efrd_fubini_row_decompose_result_split_successor_count_sum) + (0))) /\ ((((exists ff_h_efrd_fubini_row_decompose_result_split_successor_count_sum_terminal. ff_h_efrd_fubini_row_decompose_result_split_successor_count_sum_terminal + S (n) = S ((S (sh)) * ff_v_efrd_fubini_row_decompose_result_split_successor_count_sum)) /\ exists ff_q_efrd_fubini_row_decompose_result_split_successor_count_sum_terminal. ff_u_efrd_fubini_row_decompose_result_split_successor_count_sum = ff_q_efrd_fubini_row_decompose_result_split_successor_count_sum_terminal * S ((S (sh)) * ff_v_efrd_fubini_row_decompose_result_split_successor_count_sum) + (n))) /\ forall ff_i_efrd_fubini_row_decompose_result_split_successor_count_sum. (exists ff_lt_efrd_fubini_row_decompose_result_split_successor_count_sum_bound. ff_lt_efrd_fubini_row_decompose_result_split_successor_count_sum_bound + S ff_i_efrd_fubini_row_decompose_result_split_successor_count_sum = sh) -> exists ff_a_efrd_fubini_row_decompose_result_split_successor_count_sum ff_r_efrd_fubini_row_decompose_result_split_successor_count_sum ff_s_efrd_fubini_row_decompose_result_split_successor_count_sum. ((((exists ff_h_efrd_fubini_row_decompose_result_split_successor_count_sum_summand. ff_h_efrd_fubini_row_decompose_result_split_successor_count_sum_summand + S (ff_a_efrd_fubini_row_decompose_result_split_successor_count_sum) = S ((S (ff_i_efrd_fubini_row_decompose_result_split_successor_count_sum)) * efrd_row_scale_fubini_row_decompose_result_split)) /\ exists ff_q_efrd_fubini_row_decompose_result_split_successor_count_sum_summand. efrd_row_code_fubini_row_decompose_result_split = ff_q_efrd_fubini_row_decompose_result_split_successor_count_sum_summand * S ((S (ff_i_efrd_fubini_row_decompose_result_split_successor_count_sum)) * efrd_row_scale_fubini_row_decompose_result_split) + (ff_a_efrd_fubini_row_decompose_result_split_successor_count_sum))) /\ ((((exists ff_h_efrd_fubini_row_decompose_result_split_successor_count_sum_partial. ff_h_efrd_fubini_row_decompose_result_split_successor_count_sum_partial + S (ff_r_efrd_fubini_row_decompose_result_split_successor_count_sum) = S ((S (ff_i_efrd_fubini_row_decompose_result_split_successor_count_sum)) * ff_v_efrd_fubini_row_decompose_result_split_successor_count_sum)) /\ exists ff_q_efrd_fubini_row_decompose_result_split_successor_count_sum_partial. ff_u_efrd_fubini_row_decompose_result_split_successor_count_sum = ff_q_efrd_fubini_row_decompose_result_split_successor_count_sum_partial * S ((S (ff_i_efrd_fubini_row_decompose_result_split_successor_count_sum)) * ff_v_efrd_fubini_row_decompose_result_split_successor_count_sum) + (ff_r_efrd_fubini_row_decompose_result_split_successor_count_sum))) /\ ((((exists ff_h_efrd_fubini_row_decompose_result_split_successor_count_sum_successor. ff_h_efrd_fubini_row_decompose_result_split_successor_count_sum_successor + S (ff_s_efrd_fubini_row_decompose_result_split_successor_count_sum) = S ((S (S ff_i_efrd_fubini_row_decompose_result_split_successor_count_sum)) * ff_v_efrd_fubini_row_decompose_result_split_successor_count_sum)) /\ exists ff_q_efrd_fubini_row_decompose_result_split_successor_count_sum_successor. ff_u_efrd_fubini_row_decompose_result_split_successor_count_sum = ff_q_efrd_fubini_row_decompose_result_split_successor_count_sum_successor * S ((S (S ff_i_efrd_fubini_row_decompose_result_split_successor_count_sum)) * ff_v_efrd_fubini_row_decompose_result_split_successor_count_sum) + (ff_s_efrd_fubini_row_decompose_result_split_successor_count_sum))) /\ ff_s_efrd_fubini_row_decompose_result_split_successor_count_sum = ff_r_efrd_fubini_row_decompose_result_split_successor_count_sum + ff_a_efrd_fubini_row_decompose_result_split_successor_count_sum)))))) /\ (forall ff_i_efrd_fubini_row_decompose_result_split_successor_count_bits. (exists ff_lt_efrd_fubini_row_decompose_result_split_successor_count_bits_bound. ff_lt_efrd_fubini_row_decompose_result_split_successor_count_bits_bound + S ff_i_efrd_fubini_row_decompose_result_split_successor_count_bits = sh) -> exists ff_bit_efrd_fubini_row_decompose_result_split_successor_count_bits. ((((exists ff_h_efrd_fubini_row_decompose_result_split_successor_count_bits_decoded. ff_h_efrd_fubini_row_decompose_result_split_successor_count_bits_decoded + S (ff_bit_efrd_fubini_row_decompose_result_split_successor_count_bits) = S ((S (ff_i_efrd_fubini_row_decompose_result_split_successor_count_bits)) * efrd_row_scale_fubini_row_decompose_result_split)) /\ exists ff_q_efrd_fubini_row_decompose_result_split_successor_count_bits_decoded. efrd_row_code_fubini_row_decompose_result_split = ff_q_efrd_fubini_row_decompose_result_split_successor_count_bits_decoded * S ((S (ff_i_efrd_fubini_row_decompose_result_split_successor_count_bits)) * efrd_row_scale_fubini_row_decompose_result_split) + (ff_bit_efrd_fubini_row_decompose_result_split_successor_count_bits))) /\ (ff_bit_efrd_fubini_row_decompose_result_split_successor_count_bits = 0 \/ ff_bit_efrd_fubini_row_decompose_result_split_successor_count_bits = 1)))))) /\ ((forall eri_column_efrd_fubini_row_decompose_result_split_reduced_prefix. (exists eri_gap_efrd_fubini_row_decompose_result_split_reduced_prefix_bound. eri_gap_efrd_fubini_row_decompose_result_split_reduced_prefix_bound + S (eri_column_efrd_fubini_row_decompose_result_split_reduced_prefix) = h) -> exists eri_bit_efrd_fubini_row_decompose_result_split_reduced_prefix. ((((exists ff_h_eri_efrd_fubini_row_decompose_result_split_reduced_prefix_decoded. ff_h_eri_efrd_fubini_row_decompose_result_split_reduced_prefix_decoded + S (eri_bit_efrd_fubini_row_decompose_result_split_reduced_prefix) = S ((S (eri_column_efrd_fubini_row_decompose_result_split_reduced_prefix)) * efrd_row_scale_fubini_row_decompose_result_split)) /\ exists ff_q_eri_efrd_fubini_row_decompose_result_split_reduced_prefix_decoded. efrd_row_code_fubini_row_decompose_result_split = ff_q_eri_efrd_fubini_row_decompose_result_split_reduced_prefix_decoded * S ((S (eri_column_efrd_fubini_row_decompose_result_split_reduced_prefix)) * efrd_row_scale_fubini_row_decompose_result_split) + (eri_bit_efrd_fubini_row_decompose_result_split_reduced_prefix))) /\ (((eri_bit_efrd_fubini_row_decompose_result_split_reduced_prefix = 0 /\ ((exists eri_gap_efrd_fubini_row_decompose_result_split_reduced_prefix_choice_left. eri_gap_efrd_fubini_row_decompose_result_split_reduced_prefix_choice_left + S (q * S i) = p * S eri_column_efrd_fubini_row_decompose_result_split_reduced_prefix) /\ ~(exists eri_gap_efrd_fubini_row_decompose_result_split_reduced_prefix_choice_right. eri_gap_efrd_fubini_row_decompose_result_split_reduced_prefix_choice_right + S (p * S eri_column_efrd_fubini_row_decompose_result_split_reduced_prefix) = q * S i))) \/ (eri_bit_efrd_fubini_row_decompose_result_split_reduced_prefix = 1 /\ ((exists eri_gap_efrd_fubini_row_decompose_result_split_reduced_prefix_choice_right. eri_gap_efrd_fubini_row_decompose_result_split_reduced_prefix_choice_right + S (p * S eri_column_efrd_fubini_row_decompose_result_split_reduced_prefix) = q * S i) /\ ~(exists eri_gap_efrd_fubini_row_decompose_result_split_reduced_prefix_choice_left. eri_gap_efrd_fubini_row_decompose_result_split_reduced_prefix_choice_left + S (q * S i) = p * S eri_column_efrd_fubini_row_decompose_result_split_reduced_prefix))))))) /\ (((exists ff_h_efrd_fubini_row_decompose_result_split_terminal_entry. ff_h_efrd_fubini_row_decompose_result_split_terminal_entry + S (efrd_terminal_bit_fubini_row_decompose_result) = S ((S (h)) * efrd_row_scale_fubini_row_decompose_result_split)) /\ exists ff_q_efrd_fubini_row_decompose_result_split_terminal_entry. efrd_row_code_fubini_row_decompose_result_split = ff_q_efrd_fubini_row_decompose_result_split_terminal_entry * S ((S (h)) * efrd_row_scale_fubini_row_decompose_result_split) + (efrd_terminal_bit_fubini_row_decompose_result))))) /\ (((((exists ff_u_efrd_fubini_row_decompose_result_split_reduced_count_sum ff_v_efrd_fubini_row_decompose_result_split_reduced_count_sum. ((((exists ff_h_efrd_fubini_row_decompose_result_split_reduced_count_sum_start. ff_h_efrd_fubini_row_decompose_result_split_reduced_count_sum_start + S (0) = S ((S (0)) * ff_v_efrd_fubini_row_decompose_result_split_reduced_count_sum)) /\ exists ff_q_efrd_fubini_row_decompose_result_split_reduced_count_sum_start. ff_u_efrd_fubini_row_decompose_result_split_reduced_count_sum = ff_q_efrd_fubini_row_decompose_result_split_reduced_count_sum_start * S ((S (0)) * ff_v_efrd_fubini_row_decompose_result_split_reduced_count_sum) + (0))) /\ ((((exists ff_h_efrd_fubini_row_decompose_result_split_reduced_count_sum_terminal. ff_h_efrd_fubini_row_decompose_result_split_reduced_count_sum_terminal + S (efrd_reduced_count_fubini_row_decompose_result) = S ((S (h)) * ff_v_efrd_fubini_row_decompose_result_split_reduced_count_sum)) /\ exists ff_q_efrd_fubini_row_decompose_result_split_reduced_count_sum_terminal. ff_u_efrd_fubini_row_decompose_result_split_reduced_count_sum = ff_q_efrd_fubini_row_decompose_result_split_reduced_count_sum_terminal * S ((S (h)) * ff_v_efrd_fubini_row_decompose_result_split_reduced_count_sum) + (efrd_reduced_count_fubini_row_decompose_result))) /\ forall ff_i_efrd_fubini_row_decompose_result_split_reduced_count_sum. (exists ff_lt_efrd_fubini_row_decompose_result_split_reduced_count_sum_bound. ff_lt_efrd_fubini_row_decompose_result_split_reduced_count_sum_bound + S ff_i_efrd_fubini_row_decompose_result_split_reduced_count_sum = h) -> exists ff_a_efrd_fubini_row_decompose_result_split_reduced_count_sum ff_r_efrd_fubini_row_decompose_result_split_reduced_count_sum ff_s_efrd_fubini_row_decompose_result_split_reduced_count_sum. ((((exists ff_h_efrd_fubini_row_decompose_result_split_reduced_count_sum_summand. ff_h_efrd_fubini_row_decompose_result_split_reduced_count_sum_summand + S (ff_a_efrd_fubini_row_decompose_result_split_reduced_count_sum) = S ((S (ff_i_efrd_fubini_row_decompose_result_split_reduced_count_sum)) * efrd_row_scale_fubini_row_decompose_result_split)) /\ exists ff_q_efrd_fubini_row_decompose_result_split_reduced_count_sum_summand. efrd_row_code_fubini_row_decompose_result_split = ff_q_efrd_fubini_row_decompose_result_split_reduced_count_sum_summand * S ((S (ff_i_efrd_fubini_row_decompose_result_split_reduced_count_sum)) * efrd_row_scale_fubini_row_decompose_result_split) + (ff_a_efrd_fubini_row_decompose_result_split_reduced_count_sum))) /\ ((((exists ff_h_efrd_fubini_row_decompose_result_split_reduced_count_sum_partial. ff_h_efrd_fubini_row_decompose_result_split_reduced_count_sum_partial + S (ff_r_efrd_fubini_row_decompose_result_split_reduced_count_sum) = S ((S (ff_i_efrd_fubini_row_decompose_result_split_reduced_count_sum)) * ff_v_efrd_fubini_row_decompose_result_split_reduced_count_sum)) /\ exists ff_q_efrd_fubini_row_decompose_result_split_reduced_count_sum_partial. ff_u_efrd_fubini_row_decompose_result_split_reduced_count_sum = ff_q_efrd_fubini_row_decompose_result_split_reduced_count_sum_partial * S ((S (ff_i_efrd_fubini_row_decompose_result_split_reduced_count_sum)) * ff_v_efrd_fubini_row_decompose_result_split_reduced_count_sum) + (ff_r_efrd_fubini_row_decompose_result_split_reduced_count_sum))) /\ ((((exists ff_h_efrd_fubini_row_decompose_result_split_reduced_count_sum_successor. ff_h_efrd_fubini_row_decompose_result_split_reduced_count_sum_successor + S (ff_s_efrd_fubini_row_decompose_result_split_reduced_count_sum) = S ((S (S ff_i_efrd_fubini_row_decompose_result_split_reduced_count_sum)) * ff_v_efrd_fubini_row_decompose_result_split_reduced_count_sum)) /\ exists ff_q_efrd_fubini_row_decompose_result_split_reduced_count_sum_successor. ff_u_efrd_fubini_row_decompose_result_split_reduced_count_sum = ff_q_efrd_fubini_row_decompose_result_split_reduced_count_sum_successor * S ((S (S ff_i_efrd_fubini_row_decompose_result_split_reduced_count_sum)) * ff_v_efrd_fubini_row_decompose_result_split_reduced_count_sum) + (ff_s_efrd_fubini_row_decompose_result_split_reduced_count_sum))) /\ ff_s_efrd_fubini_row_decompose_result_split_reduced_count_sum = ff_r_efrd_fubini_row_decompose_result_split_reduced_count_sum + ff_a_efrd_fubini_row_decompose_result_split_reduced_count_sum)))))) /\ (forall ff_i_efrd_fubini_row_decompose_result_split_reduced_count_bits. (exists ff_lt_efrd_fubini_row_decompose_result_split_reduced_count_bits_bound. ff_lt_efrd_fubini_row_decompose_result_split_reduced_count_bits_bound + S ff_i_efrd_fubini_row_decompose_result_split_reduced_count_bits = h) -> exists ff_bit_efrd_fubini_row_decompose_result_split_reduced_count_bits. ((((exists ff_h_efrd_fubini_row_decompose_result_split_reduced_count_bits_decoded. ff_h_efrd_fubini_row_decompose_result_split_reduced_count_bits_decoded + S (ff_bit_efrd_fubini_row_decompose_result_split_reduced_count_bits) = S ((S (ff_i_efrd_fubini_row_decompose_result_split_reduced_count_bits)) * efrd_row_scale_fubini_row_decompose_result_split)) /\ exists ff_q_efrd_fubini_row_decompose_result_split_reduced_count_bits_decoded. efrd_row_code_fubini_row_decompose_result_split = ff_q_efrd_fubini_row_decompose_result_split_reduced_count_bits_decoded * S ((S (ff_i_efrd_fubini_row_decompose_result_split_reduced_count_bits)) * efrd_row_scale_fubini_row_decompose_result_split) + (ff_bit_efrd_fubini_row_decompose_result_split_reduced_count_bits))) /\ (ff_bit_efrd_fubini_row_decompose_result_split_reduced_count_bits = 0 \/ ff_bit_efrd_fubini_row_decompose_result_split_reduced_count_bits = 1))))) /\ (efrd_terminal_bit_fubini_row_decompose_result = 0 \/ efrd_terminal_bit_fubini_row_decompose_result = 1)) /\ n = efrd_reduced_count_fubini_row_decompose_result + efrd_terminal_bit_fubini_row_decompose_result)))))

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

53 script commands · 13 reading checkpoints · 2 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 (2)
01Fix variables and assumptionsL1–8

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 sh
  5. L5
    intro i
  6. L6
    intro n
  7. L7
    intro hsh
  8. L8
    intro hwitness
02Separate the logical casesL9–11

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

  1. L9
    cases hwitness
  2. L10
    cases hwitness_witness
  3. L11
    cases hwitness_witness_witness
03Establish hprefixL12–21

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply eisenstein row indicator prefix succ restrict.

  1. L12
    have hprefix : ∀ eri_column_fubini_row_decompose_restricted. Lt(eri_column_fubini_row_decompose_restricted,h) → ∃ y. BetaAt(x,x1,eri_column_fubini_row_decompose_restricted,y) ∧ (y = 0 ∧ (Lt(q · S i,p · S eri_column_fubini_row_decompose_restricted) ∧ ¬Lt(p · S eri_column_fubini_row_decompose_restricted,q · S i)) ∨ y = 1 ∧ (Lt(p · S eri_column_fubini_row_decompose_restricted,q · S i) ∧ ¬Lt(q · S i,p · S eri_column_fubini_row_decompose_restricted)))Definitions: Lt(eri_column_fubini_row_decompose_restricted,h)BetaAt(x,x1,eri_column_fubini_row_decompose_restricted,y)Lt(q · S i,p · S eri_column_fubini_row_decompose_restricted)Lt(p · S eri_column_fubini_row_decompose_restricted,q · S i)Original native command in the exact edition
  2. L13
    specialize eisenstein_row_indicator_prefix_succ_restrict p
  3. L14
    specialize eisenstein_row_indicator_prefix_succ_restrict q
  4. L15
    specialize eisenstein_row_indicator_prefix_succ_restrict i
  5. L16
    specialize eisenstein_row_indicator_prefix_succ_restrict x
  6. L17
    specialize eisenstein_row_indicator_prefix_succ_restrict x1
  7. L18
    specialize eisenstein_row_indicator_prefix_succ_restrict h
  8. L19
    specialize eisenstein_row_indicator_prefix_succ_restrict sh
  9. L20
    apply eisenstein_row_indicator_prefix_succ_restrict
  10. L21
    exact hsh
04Use earlier factsL22–22

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

  1. L22
    exact hwitness_witness_witness_left
05Establish hsplitL23–31

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

  1. L23
    have hsplit : ∃ a. ∃ r. BetaAt(x,x1,h,a) ∧ (BitCount(x,x1,h,r) ∧ ((a = 0 ∨ a = 1) ∧ n = r + a))Definitions: BetaAt(x,x1,h,a)BitCount(x,x1,h,r)Original native command in the exact edition
  2. L24
    specialize bit_count_succ_decompose x
  3. L25
    specialize bit_count_succ_decompose x1
  4. L26
    specialize bit_count_succ_decompose h
  5. L27
    specialize bit_count_succ_decompose sh
  6. L28
    specialize bit_count_succ_decompose n
  7. L29
    apply bit_count_succ_decompose
  8. L30
    exact hsh
  9. L31
    exact hwitness_witness_witness_right
06Separate the logical casesL32–36

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

  1. L32
    cases hsplit
  2. L33
    cases hsplit_witness
  3. L34
    cases hsplit_witness_witness
  4. L35
    cases hsplit_witness_witness_right
  5. L36
    cases hsplit_witness_witness_right_right
07Construct an explicit witnessL37–40

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

  1. L37
    exists x2
  2. L38
    exists x3
  3. L39
    exists x
  4. L40
    exists x1
08Separate the logical casesL41–43

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

  1. L41
    split
  2. L42
    split
  3. L43
    split
09Use earlier factsL44–45

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

  1. L44
    exact hwitness_witness_witness_left
  2. L45
    exact hwitness_witness_witness_right
10Separate the logical casesL46–46

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

  1. L46
    split
11Use earlier factsL47–48

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

  1. L47
    exact hprefix
  2. L48
    exact hsplit_witness_witness_left
12Separate the logical casesL49–50

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

  1. L49
    split
  2. L50
    split
13Use earlier factsL51–53

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

  1. L51
    exact hsplit_witness_witness_right_left
  2. L52
    exact hsplit_witness_witness_right_right_left
  3. L53
    exact hsplit_witness_witness_right_right_right

Library-wide reading audit

Original defined command ledger · 53 lines
  1. 0001intro p
  2. 0002intro q
  3. 0003intro h
  4. 0004intro sh
  5. 0005intro i
  6. 0006intro n
  7. 0007intro hsh
  8. 0008intro hwitness
  9. 0009cases hwitness
  10. 0010cases hwitness_witness
  11. 0011cases hwitness_witness_witness
  12. 0012have hprefix : ∀ eri_column_fubini_row_decompose_restricted. Lt(eri_column_fubini_row_decompose_restricted,h) → ∃ y. BetaAt(x,x1,eri_column_fubini_row_decompose_restricted,y) ∧ (y = 0 ∧ (Lt(q · S i,p · S eri_column_fubini_row_decompose_restricted) ∧ ¬Lt(p · S eri_column_fubini_row_decompose_restricted,q · S i)) ∨ y = 1 ∧ (Lt(p · S eri_column_fubini_row_decompose_restricted,q · S i) ∧ ¬Lt(q · S i,p · S eri_column_fubini_row_decompose_restricted)))
    Exact native replay linehave hprefix : forall eri_column_fubini_row_decompose_restricted. (exists eri_gap_fubini_row_decompose_restricted_bound. eri_gap_fubini_row_decompose_restricted_bound + S (eri_column_fubini_row_decompose_restricted) = h) -> exists eri_bit_fubini_row_decompose_restricted. ((((exists ff_h_eri_fubini_row_decompose_restricted_decoded. ff_h_eri_fubini_row_decompose_restricted_decoded + S (eri_bit_fubini_row_decompose_restricted) = S ((S (eri_column_fubini_row_decompose_restricted)) * x1)) /\ exists ff_q_eri_fubini_row_decompose_restricted_decoded. x = ff_q_eri_fubini_row_decompose_restricted_decoded * S ((S (eri_column_fubini_row_decompose_restricted)) * x1) + (eri_bit_fubini_row_decompose_restricted))) /\ (((eri_bit_fubini_row_decompose_restricted = 0 /\ ((exists eri_gap_fubini_row_decompose_restricted_choice_left. eri_gap_fubini_row_decompose_restricted_choice_left + S (q * S i) = p * S eri_column_fubini_row_decompose_restricted) /\ ~(exists eri_gap_fubini_row_decompose_restricted_choice_right. eri_gap_fubini_row_decompose_restricted_choice_right + S (p * S eri_column_fubini_row_decompose_restricted) = q * S i))) \/ (eri_bit_fubini_row_decompose_restricted = 1 /\ ((exists eri_gap_fubini_row_decompose_restricted_choice_right. eri_gap_fubini_row_decompose_restricted_choice_right + S (p * S eri_column_fubini_row_decompose_restricted) = q * S i) /\ ~(exists eri_gap_fubini_row_decompose_restricted_choice_left. eri_gap_fubini_row_decompose_restricted_choice_left + S (q * S i) = p * S eri_column_fubini_row_decompose_restricted))))))
  13. 0013specialize eisenstein_row_indicator_prefix_succ_restrict p
  14. 0014specialize eisenstein_row_indicator_prefix_succ_restrict q
  15. 0015specialize eisenstein_row_indicator_prefix_succ_restrict i
  16. 0016specialize eisenstein_row_indicator_prefix_succ_restrict x
  17. 0017specialize eisenstein_row_indicator_prefix_succ_restrict x1
  18. 0018specialize eisenstein_row_indicator_prefix_succ_restrict h
  19. 0019specialize eisenstein_row_indicator_prefix_succ_restrict sh
  20. 0020apply eisenstein_row_indicator_prefix_succ_restrict
  21. 0021exact hsh
  22. 0022exact hwitness_witness_witness_left
  23. 0023have hsplit : ∃ a. ∃ r. BetaAt(x,x1,h,a) ∧ (BitCount(x,x1,h,r) ∧ ((a = 0 ∨ a = 1) ∧ n = r + a))
    Exact native replay linehave hsplit : exists a r. (((exists ff_h_fubini_row_decompose_split_last. ff_h_fubini_row_decompose_split_last + S (a) = S ((S (h)) * x1)) /\ exists ff_q_fubini_row_decompose_split_last. x = ff_q_fubini_row_decompose_split_last * S ((S (h)) * x1) + (a))) /\ ((((exists ff_u_fubini_row_decompose_split_reduced_sum ff_v_fubini_row_decompose_split_reduced_sum. ((((exists ff_h_fubini_row_decompose_split_reduced_sum_start. ff_h_fubini_row_decompose_split_reduced_sum_start + S (0) = S ((S (0)) * ff_v_fubini_row_decompose_split_reduced_sum)) /\ exists ff_q_fubini_row_decompose_split_reduced_sum_start. ff_u_fubini_row_decompose_split_reduced_sum = ff_q_fubini_row_decompose_split_reduced_sum_start * S ((S (0)) * ff_v_fubini_row_decompose_split_reduced_sum) + (0))) /\ ((((exists ff_h_fubini_row_decompose_split_reduced_sum_terminal. ff_h_fubini_row_decompose_split_reduced_sum_terminal + S (r) = S ((S (h)) * ff_v_fubini_row_decompose_split_reduced_sum)) /\ exists ff_q_fubini_row_decompose_split_reduced_sum_terminal. ff_u_fubini_row_decompose_split_reduced_sum = ff_q_fubini_row_decompose_split_reduced_sum_terminal * S ((S (h)) * ff_v_fubini_row_decompose_split_reduced_sum) + (r))) /\ forall ff_i_fubini_row_decompose_split_reduced_sum. (exists ff_lt_fubini_row_decompose_split_reduced_sum_bound. ff_lt_fubini_row_decompose_split_reduced_sum_bound + S ff_i_fubini_row_decompose_split_reduced_sum = h) -> exists ff_a_fubini_row_decompose_split_reduced_sum ff_r_fubini_row_decompose_split_reduced_sum ff_s_fubini_row_decompose_split_reduced_sum. ((((exists ff_h_fubini_row_decompose_split_reduced_sum_summand. ff_h_fubini_row_decompose_split_reduced_sum_summand + S (ff_a_fubini_row_decompose_split_reduced_sum) = S ((S (ff_i_fubini_row_decompose_split_reduced_sum)) * x1)) /\ exists ff_q_fubini_row_decompose_split_reduced_sum_summand. x = ff_q_fubini_row_decompose_split_reduced_sum_summand * S ((S (ff_i_fubini_row_decompose_split_reduced_sum)) * x1) + (ff_a_fubini_row_decompose_split_reduced_sum))) /\ ((((exists ff_h_fubini_row_decompose_split_reduced_sum_partial. ff_h_fubini_row_decompose_split_reduced_sum_partial + S (ff_r_fubini_row_decompose_split_reduced_sum) = S ((S (ff_i_fubini_row_decompose_split_reduced_sum)) * ff_v_fubini_row_decompose_split_reduced_sum)) /\ exists ff_q_fubini_row_decompose_split_reduced_sum_partial. ff_u_fubini_row_decompose_split_reduced_sum = ff_q_fubini_row_decompose_split_reduced_sum_partial * S ((S (ff_i_fubini_row_decompose_split_reduced_sum)) * ff_v_fubini_row_decompose_split_reduced_sum) + (ff_r_fubini_row_decompose_split_reduced_sum))) /\ ((((exists ff_h_fubini_row_decompose_split_reduced_sum_successor. ff_h_fubini_row_decompose_split_reduced_sum_successor + S (ff_s_fubini_row_decompose_split_reduced_sum) = S ((S (S ff_i_fubini_row_decompose_split_reduced_sum)) * ff_v_fubini_row_decompose_split_reduced_sum)) /\ exists ff_q_fubini_row_decompose_split_reduced_sum_successor. ff_u_fubini_row_decompose_split_reduced_sum = ff_q_fubini_row_decompose_split_reduced_sum_successor * S ((S (S ff_i_fubini_row_decompose_split_reduced_sum)) * ff_v_fubini_row_decompose_split_reduced_sum) + (ff_s_fubini_row_decompose_split_reduced_sum))) /\ ff_s_fubini_row_decompose_split_reduced_sum = ff_r_fubini_row_decompose_split_reduced_sum + ff_a_fubini_row_decompose_split_reduced_sum)))))) /\ (forall ff_i_fubini_row_decompose_split_reduced_bits. (exists ff_lt_fubini_row_decompose_split_reduced_bits_bound. ff_lt_fubini_row_decompose_split_reduced_bits_bound + S ff_i_fubini_row_decompose_split_reduced_bits = h) -> exists ff_bit_fubini_row_decompose_split_reduced_bits. ((((exists ff_h_fubini_row_decompose_split_reduced_bits_decoded. ff_h_fubini_row_decompose_split_reduced_bits_decoded + S (ff_bit_fubini_row_decompose_split_reduced_bits) = S ((S (ff_i_fubini_row_decompose_split_reduced_bits)) * x1)) /\ exists ff_q_fubini_row_decompose_split_reduced_bits_decoded. x = ff_q_fubini_row_decompose_split_reduced_bits_decoded * S ((S (ff_i_fubini_row_decompose_split_reduced_bits)) * x1) + (ff_bit_fubini_row_decompose_split_reduced_bits))) /\ (ff_bit_fubini_row_decompose_split_reduced_bits = 0 \/ ff_bit_fubini_row_decompose_split_reduced_bits = 1))))) /\ ((a = 0 \/ a = 1) /\ n = r + a))
  24. 0024specialize bit_count_succ_decompose x
  25. 0025specialize bit_count_succ_decompose x1
  26. 0026specialize bit_count_succ_decompose h
  27. 0027specialize bit_count_succ_decompose sh
  28. 0028specialize bit_count_succ_decompose n
  29. 0029apply bit_count_succ_decompose
  30. 0030exact hsh
  31. 0031exact hwitness_witness_witness_right
  32. 0032cases hsplit
  33. 0033cases hsplit_witness
  34. 0034cases hsplit_witness_witness
  35. 0035cases hsplit_witness_witness_right
  36. 0036cases hsplit_witness_witness_right_right
  37. 0037exists x2
  38. 0038exists x3
  39. 0039exists x
  40. 0040exists x1
  41. 0041split
  42. 0042split
  43. 0043split
  44. 0044exact hwitness_witness_witness_left
  45. 0045exact hwitness_witness_witness_right
  46. 0046split
  47. 0047exact hprefix
  48. 0048exact hsplit_witness_witness_left
  49. 0049split
  50. 0050split
  51. 0051exact hsplit_witness_witness_right_left
  52. 0052exact hsplit_witness_witness_right_right_left
  53. 0053exact hsplit_witness_witness_right_right_right