PA00F2 · theorem

eisenstein_successor_row_split_sum_add

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

The successor outer Sum is exactly the reduced-row Sum plus the terminal-bit Sum.

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. ∀ bb. ∀ bc. ∀ db. ∀ dc. ∀ tb. ∀ tc. ∀ l. ∀ R. ∀ D. ∀ T. (∀ x. Lt(x,l) → ∃ y. ∃ z. ∃ n. BetaAt(bb,bc,x,y)BetaAt(db,dc,x,z)BetaAt(tb,tc,x,n) ∧ (∃ m. ∃ k. (∀ i. Lt(i,sh) → ∃ j. BetaAt(m,k,i,j) ∧ (j = 0 ∧ (Lt(q · S x,p · S i) ∧ ¬Lt(p · S i,q · S x)) ∨ j = 1 ∧ (Lt(p · S i,q · S x) ∧ ¬Lt(q · S x,p · S i)))) ∧ BitCount(m,k,sh,y) ∧ ((∀ i. Lt(i,h) → ∃ j. BetaAt(m,k,i,j) ∧ (j = 0 ∧ (Lt(q · S x,p · S i) ∧ ¬Lt(p · S i,q · S x)) ∨ j = 1 ∧ (Lt(p · S i,q · S x) ∧ ¬Lt(q · S x,p · S i)))) ∧ BetaAt(m,k,h,n)) ∧ (BitCount(m,k,h,z) ∧ (n = 0 ∨ n = 1) ∧ y = z + n))) → Sum(db,dc,l,R)Sum(tb,tc,l,D)Sum(bb,bc,l,T) → R + D = T

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

4 occurrences

Exact expanded native-PA statement
forall p q h sh bb bc db dc tb tc l R D T. (forall efrd_row_index_fubini_row_split_semantic_prefix. (exists efrd_lt_gap_fubini_row_split_semantic_prefix_bound. efrd_lt_gap_fubini_row_split_semantic_prefix_bound + S (efrd_row_index_fubini_row_split_semantic_prefix) = l) -> exists efrd_count_fubini_row_split_semantic_prefix efrd_reduced_count_fubini_row_split_semantic_prefix efrd_terminal_bit_fubini_row_split_semantic_prefix. (((((((exists ff_h_efrd_fubini_row_split_semantic_prefix_entry_outer_entry. ff_h_efrd_fubini_row_split_semantic_prefix_entry_outer_entry + S (efrd_count_fubini_row_split_semantic_prefix) = S ((S (efrd_row_index_fubini_row_split_semantic_prefix)) * bc)) /\ exists ff_q_efrd_fubini_row_split_semantic_prefix_entry_outer_entry. bb = ff_q_efrd_fubini_row_split_semantic_prefix_entry_outer_entry * S ((S (efrd_row_index_fubini_row_split_semantic_prefix)) * bc) + (efrd_count_fubini_row_split_semantic_prefix))) /\ (((exists ff_h_efrd_fubini_row_split_semantic_prefix_entry_reduced_entry. ff_h_efrd_fubini_row_split_semantic_prefix_entry_reduced_entry + S (efrd_reduced_count_fubini_row_split_semantic_prefix) = S ((S (efrd_row_index_fubini_row_split_semantic_prefix)) * dc)) /\ exists ff_q_efrd_fubini_row_split_semantic_prefix_entry_reduced_entry. db = ff_q_efrd_fubini_row_split_semantic_prefix_entry_reduced_entry * S ((S (efrd_row_index_fubini_row_split_semantic_prefix)) * dc) + (efrd_reduced_count_fubini_row_split_semantic_prefix)))) /\ (((exists ff_h_efrd_fubini_row_split_semantic_prefix_entry_terminal_entry. ff_h_efrd_fubini_row_split_semantic_prefix_entry_terminal_entry + S (efrd_terminal_bit_fubini_row_split_semantic_prefix) = S ((S (efrd_row_index_fubini_row_split_semantic_prefix)) * tc)) /\ exists ff_q_efrd_fubini_row_split_semantic_prefix_entry_terminal_entry. tb = ff_q_efrd_fubini_row_split_semantic_prefix_entry_terminal_entry * S ((S (efrd_row_index_fubini_row_split_semantic_prefix)) * tc) + (efrd_terminal_bit_fubini_row_split_semantic_prefix)))) /\ (exists efrd_row_code_fubini_row_split_semantic_prefix_entry_split efrd_row_scale_fubini_row_split_semantic_prefix_entry_split. (((((forall eri_column_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix. (exists eri_gap_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix_bound. eri_gap_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix_bound + S (eri_column_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix) = sh) -> exists eri_bit_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix. ((((exists ff_h_eri_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix_decoded. ff_h_eri_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix_decoded + S (eri_bit_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix) = S ((S (eri_column_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix)) * efrd_row_scale_fubini_row_split_semantic_prefix_entry_split)) /\ exists ff_q_eri_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix_decoded. efrd_row_code_fubini_row_split_semantic_prefix_entry_split = ff_q_eri_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix_decoded * S ((S (eri_column_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix)) * efrd_row_scale_fubini_row_split_semantic_prefix_entry_split) + (eri_bit_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix))) /\ (((eri_bit_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix = 0 /\ ((exists eri_gap_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix_choice_left. eri_gap_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix_choice_left + S (q * S efrd_row_index_fubini_row_split_semantic_prefix) = p * S eri_column_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix) /\ ~(exists eri_gap_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix_choice_right. eri_gap_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix_choice_right + S (p * S eri_column_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix) = q * S efrd_row_index_fubini_row_split_semantic_prefix))) \/ (eri_bit_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix = 1 /\ ((exists eri_gap_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix_choice_right. eri_gap_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix_choice_right + S (p * S eri_column_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix) = q * S efrd_row_index_fubini_row_split_semantic_prefix) /\ ~(exists eri_gap_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix_choice_left. eri_gap_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix_choice_left + S (q * S efrd_row_index_fubini_row_split_semantic_prefix) = p * S eri_column_efrd_fubini_row_split_semantic_prefix_entry_split_successor_prefix))))))) /\ (((exists ff_u_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum ff_v_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum. ((((exists ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum_start. ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum_start + S (0) = S ((S (0)) * ff_v_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum)) /\ exists ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum_start. ff_u_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum = ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum_start * S ((S (0)) * ff_v_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum) + (0))) /\ ((((exists ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum_terminal. ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum_terminal + S (efrd_count_fubini_row_split_semantic_prefix) = S ((S (sh)) * ff_v_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum)) /\ exists ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum_terminal. ff_u_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum = ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum_terminal * S ((S (sh)) * ff_v_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum) + (efrd_count_fubini_row_split_semantic_prefix))) /\ forall ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum. (exists ff_lt_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum_bound. ff_lt_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum_bound + S ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum = sh) -> exists ff_a_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum ff_r_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum ff_s_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum. ((((exists ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum_summand. ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum_summand + S (ff_a_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum) = S ((S (ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum)) * efrd_row_scale_fubini_row_split_semantic_prefix_entry_split)) /\ exists ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum_summand. efrd_row_code_fubini_row_split_semantic_prefix_entry_split = ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum_summand * S ((S (ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum)) * efrd_row_scale_fubini_row_split_semantic_prefix_entry_split) + (ff_a_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum))) /\ ((((exists ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum_partial. ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum_partial + S (ff_r_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum) = S ((S (ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum)) * ff_v_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum)) /\ exists ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum_partial. ff_u_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum = ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum_partial * S ((S (ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum)) * ff_v_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum) + (ff_r_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum))) /\ ((((exists ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum_successor. ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum_successor + S (ff_s_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum) = S ((S (S ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum)) * ff_v_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum)) /\ exists ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum_successor. ff_u_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum = ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum_successor * S ((S (S ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum)) * ff_v_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum) + (ff_s_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum))) /\ ff_s_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum = ff_r_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum + ff_a_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_sum)))))) /\ (forall ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_bits. (exists ff_lt_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_bits_bound. ff_lt_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_bits_bound + S ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_bits = sh) -> exists ff_bit_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_bits. ((((exists ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_bits_decoded. ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_bits_decoded + S (ff_bit_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_bits) = S ((S (ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_bits)) * efrd_row_scale_fubini_row_split_semantic_prefix_entry_split)) /\ exists ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_bits_decoded. efrd_row_code_fubini_row_split_semantic_prefix_entry_split = ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_bits_decoded * S ((S (ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_bits)) * efrd_row_scale_fubini_row_split_semantic_prefix_entry_split) + (ff_bit_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_bits))) /\ (ff_bit_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_bits = 0 \/ ff_bit_efrd_fubini_row_split_semantic_prefix_entry_split_successor_count_bits = 1)))))) /\ ((forall eri_column_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix. (exists eri_gap_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix_bound. eri_gap_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix_bound + S (eri_column_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix) = h) -> exists eri_bit_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix. ((((exists ff_h_eri_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix_decoded. ff_h_eri_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix_decoded + S (eri_bit_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix) = S ((S (eri_column_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix)) * efrd_row_scale_fubini_row_split_semantic_prefix_entry_split)) /\ exists ff_q_eri_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix_decoded. efrd_row_code_fubini_row_split_semantic_prefix_entry_split = ff_q_eri_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix_decoded * S ((S (eri_column_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix)) * efrd_row_scale_fubini_row_split_semantic_prefix_entry_split) + (eri_bit_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix))) /\ (((eri_bit_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix = 0 /\ ((exists eri_gap_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix_choice_left. eri_gap_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix_choice_left + S (q * S efrd_row_index_fubini_row_split_semantic_prefix) = p * S eri_column_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix) /\ ~(exists eri_gap_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix_choice_right. eri_gap_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix_choice_right + S (p * S eri_column_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix) = q * S efrd_row_index_fubini_row_split_semantic_prefix))) \/ (eri_bit_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix = 1 /\ ((exists eri_gap_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix_choice_right. eri_gap_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix_choice_right + S (p * S eri_column_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix) = q * S efrd_row_index_fubini_row_split_semantic_prefix) /\ ~(exists eri_gap_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix_choice_left. eri_gap_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix_choice_left + S (q * S efrd_row_index_fubini_row_split_semantic_prefix) = p * S eri_column_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_prefix))))))) /\ (((exists ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_terminal_entry. ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_terminal_entry + S (efrd_terminal_bit_fubini_row_split_semantic_prefix) = S ((S (h)) * efrd_row_scale_fubini_row_split_semantic_prefix_entry_split)) /\ exists ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_terminal_entry. efrd_row_code_fubini_row_split_semantic_prefix_entry_split = ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_terminal_entry * S ((S (h)) * efrd_row_scale_fubini_row_split_semantic_prefix_entry_split) + (efrd_terminal_bit_fubini_row_split_semantic_prefix))))) /\ (((((exists ff_u_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum ff_v_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum. ((((exists ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum_start. ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum_start + S (0) = S ((S (0)) * ff_v_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum)) /\ exists ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum_start. ff_u_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum = ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum_start * S ((S (0)) * ff_v_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum) + (0))) /\ ((((exists ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum_terminal. ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum_terminal + S (efrd_reduced_count_fubini_row_split_semantic_prefix) = S ((S (h)) * ff_v_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum)) /\ exists ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum_terminal. ff_u_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum = ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum_terminal * S ((S (h)) * ff_v_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum) + (efrd_reduced_count_fubini_row_split_semantic_prefix))) /\ forall ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum. (exists ff_lt_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum_bound. ff_lt_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum_bound + S ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum = h) -> exists ff_a_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum ff_r_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum ff_s_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum. ((((exists ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum_summand. ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum_summand + S (ff_a_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum) = S ((S (ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum)) * efrd_row_scale_fubini_row_split_semantic_prefix_entry_split)) /\ exists ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum_summand. efrd_row_code_fubini_row_split_semantic_prefix_entry_split = ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum_summand * S ((S (ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum)) * efrd_row_scale_fubini_row_split_semantic_prefix_entry_split) + (ff_a_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum))) /\ ((((exists ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum_partial. ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum_partial + S (ff_r_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum) = S ((S (ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum)) * ff_v_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum)) /\ exists ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum_partial. ff_u_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum = ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum_partial * S ((S (ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum)) * ff_v_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum) + (ff_r_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum))) /\ ((((exists ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum_successor. ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum_successor + S (ff_s_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum) = S ((S (S ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum)) * ff_v_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum)) /\ exists ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum_successor. ff_u_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum = ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum_successor * S ((S (S ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum)) * ff_v_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum) + (ff_s_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum))) /\ ff_s_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum = ff_r_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum + ff_a_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_sum)))))) /\ (forall ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_bits. (exists ff_lt_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_bits_bound. ff_lt_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_bits_bound + S ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_bits = h) -> exists ff_bit_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_bits. ((((exists ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_bits_decoded. ff_h_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_bits_decoded + S (ff_bit_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_bits) = S ((S (ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_bits)) * efrd_row_scale_fubini_row_split_semantic_prefix_entry_split)) /\ exists ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_bits_decoded. efrd_row_code_fubini_row_split_semantic_prefix_entry_split = ff_q_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_bits_decoded * S ((S (ff_i_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_bits)) * efrd_row_scale_fubini_row_split_semantic_prefix_entry_split) + (ff_bit_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_bits))) /\ (ff_bit_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_bits = 0 \/ ff_bit_efrd_fubini_row_split_semantic_prefix_entry_split_reduced_count_bits = 1))))) /\ (efrd_terminal_bit_fubini_row_split_semantic_prefix = 0 \/ efrd_terminal_bit_fubini_row_split_semantic_prefix = 1)) /\ efrd_count_fubini_row_split_semantic_prefix = efrd_reduced_count_fubini_row_split_semantic_prefix + efrd_terminal_bit_fubini_row_split_semantic_prefix))))))) -> (exists ff_u_fubini_row_split_reduced_sum ff_v_fubini_row_split_reduced_sum. ((((exists ff_h_fubini_row_split_reduced_sum_start. ff_h_fubini_row_split_reduced_sum_start + S (0) = S ((S (0)) * ff_v_fubini_row_split_reduced_sum)) /\ exists ff_q_fubini_row_split_reduced_sum_start. ff_u_fubini_row_split_reduced_sum = ff_q_fubini_row_split_reduced_sum_start * S ((S (0)) * ff_v_fubini_row_split_reduced_sum) + (0))) /\ ((((exists ff_h_fubini_row_split_reduced_sum_terminal. ff_h_fubini_row_split_reduced_sum_terminal + S (R) = S ((S (l)) * ff_v_fubini_row_split_reduced_sum)) /\ exists ff_q_fubini_row_split_reduced_sum_terminal. ff_u_fubini_row_split_reduced_sum = ff_q_fubini_row_split_reduced_sum_terminal * S ((S (l)) * ff_v_fubini_row_split_reduced_sum) + (R))) /\ forall ff_i_fubini_row_split_reduced_sum. (exists ff_lt_fubini_row_split_reduced_sum_bound. ff_lt_fubini_row_split_reduced_sum_bound + S ff_i_fubini_row_split_reduced_sum = l) -> exists ff_a_fubini_row_split_reduced_sum ff_r_fubini_row_split_reduced_sum ff_s_fubini_row_split_reduced_sum. ((((exists ff_h_fubini_row_split_reduced_sum_summand. ff_h_fubini_row_split_reduced_sum_summand + S (ff_a_fubini_row_split_reduced_sum) = S ((S (ff_i_fubini_row_split_reduced_sum)) * dc)) /\ exists ff_q_fubini_row_split_reduced_sum_summand. db = ff_q_fubini_row_split_reduced_sum_summand * S ((S (ff_i_fubini_row_split_reduced_sum)) * dc) + (ff_a_fubini_row_split_reduced_sum))) /\ ((((exists ff_h_fubini_row_split_reduced_sum_partial. ff_h_fubini_row_split_reduced_sum_partial + S (ff_r_fubini_row_split_reduced_sum) = S ((S (ff_i_fubini_row_split_reduced_sum)) * ff_v_fubini_row_split_reduced_sum)) /\ exists ff_q_fubini_row_split_reduced_sum_partial. ff_u_fubini_row_split_reduced_sum = ff_q_fubini_row_split_reduced_sum_partial * S ((S (ff_i_fubini_row_split_reduced_sum)) * ff_v_fubini_row_split_reduced_sum) + (ff_r_fubini_row_split_reduced_sum))) /\ ((((exists ff_h_fubini_row_split_reduced_sum_successor. ff_h_fubini_row_split_reduced_sum_successor + S (ff_s_fubini_row_split_reduced_sum) = S ((S (S ff_i_fubini_row_split_reduced_sum)) * ff_v_fubini_row_split_reduced_sum)) /\ exists ff_q_fubini_row_split_reduced_sum_successor. ff_u_fubini_row_split_reduced_sum = ff_q_fubini_row_split_reduced_sum_successor * S ((S (S ff_i_fubini_row_split_reduced_sum)) * ff_v_fubini_row_split_reduced_sum) + (ff_s_fubini_row_split_reduced_sum))) /\ ff_s_fubini_row_split_reduced_sum = ff_r_fubini_row_split_reduced_sum + ff_a_fubini_row_split_reduced_sum)))))) -> (exists ff_u_fubini_row_split_terminal_sum ff_v_fubini_row_split_terminal_sum. ((((exists ff_h_fubini_row_split_terminal_sum_start. ff_h_fubini_row_split_terminal_sum_start + S (0) = S ((S (0)) * ff_v_fubini_row_split_terminal_sum)) /\ exists ff_q_fubini_row_split_terminal_sum_start. ff_u_fubini_row_split_terminal_sum = ff_q_fubini_row_split_terminal_sum_start * S ((S (0)) * ff_v_fubini_row_split_terminal_sum) + (0))) /\ ((((exists ff_h_fubini_row_split_terminal_sum_terminal. ff_h_fubini_row_split_terminal_sum_terminal + S (D) = S ((S (l)) * ff_v_fubini_row_split_terminal_sum)) /\ exists ff_q_fubini_row_split_terminal_sum_terminal. ff_u_fubini_row_split_terminal_sum = ff_q_fubini_row_split_terminal_sum_terminal * S ((S (l)) * ff_v_fubini_row_split_terminal_sum) + (D))) /\ forall ff_i_fubini_row_split_terminal_sum. (exists ff_lt_fubini_row_split_terminal_sum_bound. ff_lt_fubini_row_split_terminal_sum_bound + S ff_i_fubini_row_split_terminal_sum = l) -> exists ff_a_fubini_row_split_terminal_sum ff_r_fubini_row_split_terminal_sum ff_s_fubini_row_split_terminal_sum. ((((exists ff_h_fubini_row_split_terminal_sum_summand. ff_h_fubini_row_split_terminal_sum_summand + S (ff_a_fubini_row_split_terminal_sum) = S ((S (ff_i_fubini_row_split_terminal_sum)) * tc)) /\ exists ff_q_fubini_row_split_terminal_sum_summand. tb = ff_q_fubini_row_split_terminal_sum_summand * S ((S (ff_i_fubini_row_split_terminal_sum)) * tc) + (ff_a_fubini_row_split_terminal_sum))) /\ ((((exists ff_h_fubini_row_split_terminal_sum_partial. ff_h_fubini_row_split_terminal_sum_partial + S (ff_r_fubini_row_split_terminal_sum) = S ((S (ff_i_fubini_row_split_terminal_sum)) * ff_v_fubini_row_split_terminal_sum)) /\ exists ff_q_fubini_row_split_terminal_sum_partial. ff_u_fubini_row_split_terminal_sum = ff_q_fubini_row_split_terminal_sum_partial * S ((S (ff_i_fubini_row_split_terminal_sum)) * ff_v_fubini_row_split_terminal_sum) + (ff_r_fubini_row_split_terminal_sum))) /\ ((((exists ff_h_fubini_row_split_terminal_sum_successor. ff_h_fubini_row_split_terminal_sum_successor + S (ff_s_fubini_row_split_terminal_sum) = S ((S (S ff_i_fubini_row_split_terminal_sum)) * ff_v_fubini_row_split_terminal_sum)) /\ exists ff_q_fubini_row_split_terminal_sum_successor. ff_u_fubini_row_split_terminal_sum = ff_q_fubini_row_split_terminal_sum_successor * S ((S (S ff_i_fubini_row_split_terminal_sum)) * ff_v_fubini_row_split_terminal_sum) + (ff_s_fubini_row_split_terminal_sum))) /\ ff_s_fubini_row_split_terminal_sum = ff_r_fubini_row_split_terminal_sum + ff_a_fubini_row_split_terminal_sum)))))) -> (exists ff_u_fubini_row_split_source_sum ff_v_fubini_row_split_source_sum. ((((exists ff_h_fubini_row_split_source_sum_start. ff_h_fubini_row_split_source_sum_start + S (0) = S ((S (0)) * ff_v_fubini_row_split_source_sum)) /\ exists ff_q_fubini_row_split_source_sum_start. ff_u_fubini_row_split_source_sum = ff_q_fubini_row_split_source_sum_start * S ((S (0)) * ff_v_fubini_row_split_source_sum) + (0))) /\ ((((exists ff_h_fubini_row_split_source_sum_terminal. ff_h_fubini_row_split_source_sum_terminal + S (T) = S ((S (l)) * ff_v_fubini_row_split_source_sum)) /\ exists ff_q_fubini_row_split_source_sum_terminal. ff_u_fubini_row_split_source_sum = ff_q_fubini_row_split_source_sum_terminal * S ((S (l)) * ff_v_fubini_row_split_source_sum) + (T))) /\ forall ff_i_fubini_row_split_source_sum. (exists ff_lt_fubini_row_split_source_sum_bound. ff_lt_fubini_row_split_source_sum_bound + S ff_i_fubini_row_split_source_sum = l) -> exists ff_a_fubini_row_split_source_sum ff_r_fubini_row_split_source_sum ff_s_fubini_row_split_source_sum. ((((exists ff_h_fubini_row_split_source_sum_summand. ff_h_fubini_row_split_source_sum_summand + S (ff_a_fubini_row_split_source_sum) = S ((S (ff_i_fubini_row_split_source_sum)) * bc)) /\ exists ff_q_fubini_row_split_source_sum_summand. bb = ff_q_fubini_row_split_source_sum_summand * S ((S (ff_i_fubini_row_split_source_sum)) * bc) + (ff_a_fubini_row_split_source_sum))) /\ ((((exists ff_h_fubini_row_split_source_sum_partial. ff_h_fubini_row_split_source_sum_partial + S (ff_r_fubini_row_split_source_sum) = S ((S (ff_i_fubini_row_split_source_sum)) * ff_v_fubini_row_split_source_sum)) /\ exists ff_q_fubini_row_split_source_sum_partial. ff_u_fubini_row_split_source_sum = ff_q_fubini_row_split_source_sum_partial * S ((S (ff_i_fubini_row_split_source_sum)) * ff_v_fubini_row_split_source_sum) + (ff_r_fubini_row_split_source_sum))) /\ ((((exists ff_h_fubini_row_split_source_sum_successor. ff_h_fubini_row_split_source_sum_successor + S (ff_s_fubini_row_split_source_sum) = S ((S (S ff_i_fubini_row_split_source_sum)) * ff_v_fubini_row_split_source_sum)) /\ exists ff_q_fubini_row_split_source_sum_successor. ff_u_fubini_row_split_source_sum = ff_q_fubini_row_split_source_sum_successor * S ((S (S ff_i_fubini_row_split_source_sum)) * ff_v_fubini_row_split_source_sum) + (ff_s_fubini_row_split_source_sum))) /\ ff_s_fubini_row_split_source_sum = ff_r_fubini_row_split_source_sum + ff_a_fubini_row_split_source_sum)))))) -> R + D = T

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

63 script commands · 7 reading checkpoints · 1 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–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 sh
  5. L5
    intro bb
  6. L6
    intro bc
  7. L7
    intro db
  8. L8
    intro dc
  9. L9
    intro tb
  10. L10
    intro tc
02Fix variables and assumptionsL11–18

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

  1. L11
    intro l
  2. L12
    intro R
  3. L13
    intro D
  4. L14
    intro T
  5. L15
    intro hprefix
  6. L16
    intro hreduced
  7. L17
    intro hterminal
  8. L18
    intro hsource
03Establish hpointwiseL19–28

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

  1. L19
    have hpointwise : ∀ i. ∀ r. ∀ a. ∀ n. Lt(i,l) → BetaAt(db,dc,i,r) → BetaAt(tb,tc,i,a) → BetaAt(bb,bc,i,n) → n = r + aDefinitions: Lt(i,l)BetaAt(db,dc,i,r)BetaAt(tb,tc,i,a)BetaAt(bb,bc,i,n)Original native command in the exact edition
  2. L20
    intro i
  3. L21
    intro r
  4. L22
    intro a
  5. L23
    intro n
  6. L24
    intro hi
  7. L25
    intro hr
  8. L26
    intro ha
  9. L27
    intro hn
  10. L28
    specialize eisenstein_successor_row_split_decoded_add p
04Use earlier factsL29–38

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

  1. L29
    specialize eisenstein_successor_row_split_decoded_add q
  2. L30
    specialize eisenstein_successor_row_split_decoded_add h
  3. L31
    specialize eisenstein_successor_row_split_decoded_add sh
  4. L32
    specialize eisenstein_successor_row_split_decoded_add bb
  5. L33
    specialize eisenstein_successor_row_split_decoded_add bc
  6. L34
    specialize eisenstein_successor_row_split_decoded_add db
  7. L35
    specialize eisenstein_successor_row_split_decoded_add dc
  8. L36
    specialize eisenstein_successor_row_split_decoded_add tb
  9. L37
    specialize eisenstein_successor_row_split_decoded_add tc
  10. L38
    specialize eisenstein_successor_row_split_decoded_add l
05Use earlier factsL39–48

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

  1. L39
    specialize eisenstein_successor_row_split_decoded_add i
  2. L40
    specialize eisenstein_successor_row_split_decoded_add n
  3. L41
    specialize eisenstein_successor_row_split_decoded_add r
  4. L42
    specialize eisenstein_successor_row_split_decoded_add a
  5. L43
    apply eisenstein_successor_row_split_decoded_add
  6. L44
    exact hprefix
  7. L45
    exact hi
  8. L46
    exact hn
  9. L47
    exact hr
  10. L48
    exact ha
06Use earlier factsL49–58

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

  1. L49
    specialize beta_sum_pointwise_add db
  2. L50
    specialize beta_sum_pointwise_add dc
  3. L51
    specialize beta_sum_pointwise_add tb
  4. L52
    specialize beta_sum_pointwise_add tc
  5. L53
    specialize beta_sum_pointwise_add bb
  6. L54
    specialize beta_sum_pointwise_add bc
  7. L55
    specialize beta_sum_pointwise_add l
  8. L56
    specialize beta_sum_pointwise_add R
  9. L57
    specialize beta_sum_pointwise_add D
  10. L58
    specialize beta_sum_pointwise_add T
07Use earlier factsL59–63

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

  1. L59
    apply beta_sum_pointwise_add
  2. L60
    exact hreduced
  3. L61
    exact hterminal
  4. L62
    exact hsource
  5. L63
    exact hpointwise

Library-wide reading audit

Original defined command ledger · 63 lines
  1. 0001intro p
  2. 0002intro q
  3. 0003intro h
  4. 0004intro sh
  5. 0005intro bb
  6. 0006intro bc
  7. 0007intro db
  8. 0008intro dc
  9. 0009intro tb
  10. 0010intro tc
  11. 0011intro l
  12. 0012intro R
  13. 0013intro D
  14. 0014intro T
  15. 0015intro hprefix
  16. 0016intro hreduced
  17. 0017intro hterminal
  18. 0018intro hsource
  19. 0019have hpointwise : ∀ i. ∀ r. ∀ a. ∀ n. Lt(i,l)BetaAt(db,dc,i,r)BetaAt(tb,tc,i,a)BetaAt(bb,bc,i,n) → n = r + a
    Exact native replay linehave hpointwise : forall i r a n. (exists efrd_lt_gap_fubini_row_split_sum_pointwise_bound. efrd_lt_gap_fubini_row_split_sum_pointwise_bound + S (i) = l) -> (((exists ff_h_fubini_row_split_sum_pointwise_reduced. ff_h_fubini_row_split_sum_pointwise_reduced + S (r) = S ((S (i)) * dc)) /\ exists ff_q_fubini_row_split_sum_pointwise_reduced. db = ff_q_fubini_row_split_sum_pointwise_reduced * S ((S (i)) * dc) + (r))) -> (((exists ff_h_fubini_row_split_sum_pointwise_terminal. ff_h_fubini_row_split_sum_pointwise_terminal + S (a) = S ((S (i)) * tc)) /\ exists ff_q_fubini_row_split_sum_pointwise_terminal. tb = ff_q_fubini_row_split_sum_pointwise_terminal * S ((S (i)) * tc) + (a))) -> (((exists ff_h_fubini_row_split_sum_pointwise_source. ff_h_fubini_row_split_sum_pointwise_source + S (n) = S ((S (i)) * bc)) /\ exists ff_q_fubini_row_split_sum_pointwise_source. bb = ff_q_fubini_row_split_sum_pointwise_source * S ((S (i)) * bc) + (n))) -> n = r + a
  20. 0020intro i
  21. 0021intro r
  22. 0022intro a
  23. 0023intro n
  24. 0024intro hi
  25. 0025intro hr
  26. 0026intro ha
  27. 0027intro hn
  28. 0028specialize eisenstein_successor_row_split_decoded_add p
  29. 0029specialize eisenstein_successor_row_split_decoded_add q
  30. 0030specialize eisenstein_successor_row_split_decoded_add h
  31. 0031specialize eisenstein_successor_row_split_decoded_add sh
  32. 0032specialize eisenstein_successor_row_split_decoded_add bb
  33. 0033specialize eisenstein_successor_row_split_decoded_add bc
  34. 0034specialize eisenstein_successor_row_split_decoded_add db
  35. 0035specialize eisenstein_successor_row_split_decoded_add dc
  36. 0036specialize eisenstein_successor_row_split_decoded_add tb
  37. 0037specialize eisenstein_successor_row_split_decoded_add tc
  38. 0038specialize eisenstein_successor_row_split_decoded_add l
  39. 0039specialize eisenstein_successor_row_split_decoded_add i
  40. 0040specialize eisenstein_successor_row_split_decoded_add n
  41. 0041specialize eisenstein_successor_row_split_decoded_add r
  42. 0042specialize eisenstein_successor_row_split_decoded_add a
  43. 0043apply eisenstein_successor_row_split_decoded_add
  44. 0044exact hprefix
  45. 0045exact hi
  46. 0046exact hn
  47. 0047exact hr
  48. 0048exact ha
  49. 0049specialize beta_sum_pointwise_add db
  50. 0050specialize beta_sum_pointwise_add dc
  51. 0051specialize beta_sum_pointwise_add tb
  52. 0052specialize beta_sum_pointwise_add tc
  53. 0053specialize beta_sum_pointwise_add bb
  54. 0054specialize beta_sum_pointwise_add bc
  55. 0055specialize beta_sum_pointwise_add l
  56. 0056specialize beta_sum_pointwise_add R
  57. 0057specialize beta_sum_pointwise_add D
  58. 0058specialize beta_sum_pointwise_add T
  59. 0059apply beta_sum_pointwise_add
  60. 0060exact hreduced
  61. 0061exact hterminal
  62. 0062exact hsource
  63. 0063exact hpointwise