LU001Q · theorem body

lucas_theorem_for_length

Alpha v34 checked-use · independently kernel and Lean verified; not Stable

For every prime p, every n,k, and every common length exceeding both, there exist actual terminating coherent digit streams, digit-binomial beta coefficients, their finite product, and the exact Lucas congruence.

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. ∀ n. ∀ k. ∀ C. ∀ l. Prime(p)Lt(n,l)Lt(k,l)Choose(n,k,C) → ∃ x. ∃ y. ∃ z. ∃ m. ∃ i. ∃ j. ∃ u. ∃ v. ∃ w. ∃ x0. ∃ x1. ∃ x2. ∃ x3. BetaAt(x,y,0,n) ∧ (∀ x4. Lt(x4,l) → ∃ x5. ∃ x6. ∃ x7. BetaAt(x,y,x4,x5) ∧ (BetaAt(x,y,S x4,x6) ∧ (BetaAt(z,m,x4,x7)DivRem(x5,p,x6,x7)))) ∧ (BetaAt(i,j,0,k) ∧ (∀ x4. Lt(x4,l) → ∃ x5. ∃ x6. ∃ x7. BetaAt(i,j,x4,x5) ∧ (BetaAt(i,j,S x4,x6) ∧ (BetaAt(u,v,x4,x7)DivRem(x5,p,x6,x7)))) ∧ (BetaAt(x,y,l,0) ∧ (BetaAt(i,j,l,0) ∧ ((∀ x4. Lt(x4,S l) → ∃ x5. ∃ x6. ∃ x7. BetaAt(x,y,x4,x5) ∧ (BetaAt(i,j,x4,x6) ∧ (BetaAt(w,x0,x4,x7)Choose(x5,x6,x7)))) ∧ ((∀ x4. Lt(x4,l) → ∃ x5. ∃ x6. ∃ x7. BetaAt(z,m,x4,x5) ∧ (BetaAt(u,v,x4,x6) ∧ (BetaAt(x1,x2,x4,x7)Choose(x5,x6,x7)))) ∧ (Product(x1,x2,l,x3) ∧ (BetaAt(w,x0,0,C)ModEq(p,C,x3))))))))

Every purple notation token opens its conservative definition. This reading surface never changes the unchanged intuitionistic kernel or confers checked-use authority.

Definitions used by this theorem

In the theorem statement

In local proof propositions

Exact expanded first-order statement
forall p n k C l. ((~(p = 1) /\ forall frm_prime_left_lmd_length_prime frm_prime_right_lmd_length_prime. p = frm_prime_left_lmd_length_prime * frm_prime_right_lmd_length_prime -> frm_prime_left_lmd_length_prime = 1 \/ frm_prime_right_lmd_length_prime = 1)) -> (exists lmd_gap_length_n. lmd_gap_length_n + S (n) = (l)) -> (exists lmd_gap_length_k. lmd_gap_length_k + S (k) = (l)) -> (((exists bcf_lt_gap_lmd_universal_choose_out_of_range. bcf_lt_gap_lmd_universal_choose_out_of_range + S (n) = k) /\ C = 0) \/ ((exists bcf_le_gap_lmd_universal_choose_in_range. bcf_le_gap_lmd_universal_choose_in_range + (k) = n) /\ (exists bcf_row_code_code_lmd_universal_choose bcf_row_code_scale_lmd_universal_choose bcf_row_scale_code_lmd_universal_choose bcf_row_scale_scale_lmd_universal_choose bcf_row_code_lmd_universal_choose bcf_row_scale_lmd_universal_choose. ((forall bcf_row_index_lmd_universal_choose_table. (exists bcf_lt_gap_lmd_universal_choose_table_row_bound. bcf_lt_gap_lmd_universal_choose_table_row_bound + S (bcf_row_index_lmd_universal_choose_table) = S (n)) -> exists bcf_row_code_lmd_universal_choose_table bcf_row_scale_lmd_universal_choose_table. ((((exists bcf_height_lmd_universal_choose_table_decoded_row_code. bcf_height_lmd_universal_choose_table_decoded_row_code + S (bcf_row_code_lmd_universal_choose_table) = S ((S (bcf_row_index_lmd_universal_choose_table)) * bcf_row_code_scale_lmd_universal_choose)) /\ exists bcf_quotient_lmd_universal_choose_table_decoded_row_code. bcf_row_code_code_lmd_universal_choose = bcf_quotient_lmd_universal_choose_table_decoded_row_code * S ((S (bcf_row_index_lmd_universal_choose_table)) * bcf_row_code_scale_lmd_universal_choose) + (bcf_row_code_lmd_universal_choose_table))) /\ ((((exists bcf_height_lmd_universal_choose_table_decoded_row_scale. bcf_height_lmd_universal_choose_table_decoded_row_scale + S (bcf_row_scale_lmd_universal_choose_table) = S ((S (bcf_row_index_lmd_universal_choose_table)) * bcf_row_scale_scale_lmd_universal_choose)) /\ exists bcf_quotient_lmd_universal_choose_table_decoded_row_scale. bcf_row_scale_code_lmd_universal_choose = bcf_quotient_lmd_universal_choose_table_decoded_row_scale * S ((S (bcf_row_index_lmd_universal_choose_table)) * bcf_row_scale_scale_lmd_universal_choose) + (bcf_row_scale_lmd_universal_choose_table))) /\ ((bcf_row_index_lmd_universal_choose_table = 0 /\ (forall bcf_index_lmd_universal_choose_table_zero_row. (exists bcf_lt_gap_lmd_universal_choose_table_zero_row_bound. bcf_lt_gap_lmd_universal_choose_table_zero_row_bound + S (bcf_index_lmd_universal_choose_table_zero_row) = S (n)) -> exists bcf_value_lmd_universal_choose_table_zero_row. ((((exists bcf_height_lmd_universal_choose_table_zero_row_entry. bcf_height_lmd_universal_choose_table_zero_row_entry + S (bcf_value_lmd_universal_choose_table_zero_row) = S ((S (bcf_index_lmd_universal_choose_table_zero_row)) * bcf_row_scale_lmd_universal_choose_table)) /\ exists bcf_quotient_lmd_universal_choose_table_zero_row_entry. bcf_row_code_lmd_universal_choose_table = bcf_quotient_lmd_universal_choose_table_zero_row_entry * S ((S (bcf_index_lmd_universal_choose_table_zero_row)) * bcf_row_scale_lmd_universal_choose_table) + (bcf_value_lmd_universal_choose_table_zero_row))) /\ ((bcf_index_lmd_universal_choose_table_zero_row = 0 /\ bcf_value_lmd_universal_choose_table_zero_row = 1) \/ exists bcf_predecessor_lmd_universal_choose_table_zero_row. bcf_index_lmd_universal_choose_table_zero_row = S bcf_predecessor_lmd_universal_choose_table_zero_row /\ bcf_value_lmd_universal_choose_table_zero_row = 0)))) \/ exists bcf_predecessor_lmd_universal_choose_table bcf_previous_code_lmd_universal_choose_table bcf_previous_scale_lmd_universal_choose_table. bcf_row_index_lmd_universal_choose_table = S bcf_predecessor_lmd_universal_choose_table /\ ((((exists bcf_height_lmd_universal_choose_table_decoded_previous_code. bcf_height_lmd_universal_choose_table_decoded_previous_code + S (bcf_previous_code_lmd_universal_choose_table) = S ((S (bcf_predecessor_lmd_universal_choose_table)) * bcf_row_code_scale_lmd_universal_choose)) /\ exists bcf_quotient_lmd_universal_choose_table_decoded_previous_code. bcf_row_code_code_lmd_universal_choose = bcf_quotient_lmd_universal_choose_table_decoded_previous_code * S ((S (bcf_predecessor_lmd_universal_choose_table)) * bcf_row_code_scale_lmd_universal_choose) + (bcf_previous_code_lmd_universal_choose_table))) /\ ((((exists bcf_height_lmd_universal_choose_table_decoded_previous_scale. bcf_height_lmd_universal_choose_table_decoded_previous_scale + S (bcf_previous_scale_lmd_universal_choose_table) = S ((S (bcf_predecessor_lmd_universal_choose_table)) * bcf_row_scale_scale_lmd_universal_choose)) /\ exists bcf_quotient_lmd_universal_choose_table_decoded_previous_scale. bcf_row_scale_code_lmd_universal_choose = bcf_quotient_lmd_universal_choose_table_decoded_previous_scale * S ((S (bcf_predecessor_lmd_universal_choose_table)) * bcf_row_scale_scale_lmd_universal_choose) + (bcf_previous_scale_lmd_universal_choose_table))) /\ (forall bcf_index_lmd_universal_choose_table_row_step. (exists bcf_lt_gap_lmd_universal_choose_table_row_step_bound. bcf_lt_gap_lmd_universal_choose_table_row_step_bound + S (bcf_index_lmd_universal_choose_table_row_step) = S (n)) -> exists bcf_value_lmd_universal_choose_table_row_step. ((((exists bcf_height_lmd_universal_choose_table_row_step_entry. bcf_height_lmd_universal_choose_table_row_step_entry + S (bcf_value_lmd_universal_choose_table_row_step) = S ((S (bcf_index_lmd_universal_choose_table_row_step)) * bcf_row_scale_lmd_universal_choose_table)) /\ exists bcf_quotient_lmd_universal_choose_table_row_step_entry. bcf_row_code_lmd_universal_choose_table = bcf_quotient_lmd_universal_choose_table_row_step_entry * S ((S (bcf_index_lmd_universal_choose_table_row_step)) * bcf_row_scale_lmd_universal_choose_table) + (bcf_value_lmd_universal_choose_table_row_step))) /\ ((bcf_index_lmd_universal_choose_table_row_step = 0 /\ bcf_value_lmd_universal_choose_table_row_step = 1) \/ exists bcf_predecessor_lmd_universal_choose_table_row_step bcf_left_lmd_universal_choose_table_row_step bcf_right_lmd_universal_choose_table_row_step. bcf_index_lmd_universal_choose_table_row_step = S bcf_predecessor_lmd_universal_choose_table_row_step /\ ((((exists bcf_height_lmd_universal_choose_table_row_step_previous_left. bcf_height_lmd_universal_choose_table_row_step_previous_left + S (bcf_left_lmd_universal_choose_table_row_step) = S ((S (bcf_predecessor_lmd_universal_choose_table_row_step)) * bcf_previous_scale_lmd_universal_choose_table)) /\ exists bcf_quotient_lmd_universal_choose_table_row_step_previous_left. bcf_previous_code_lmd_universal_choose_table = bcf_quotient_lmd_universal_choose_table_row_step_previous_left * S ((S (bcf_predecessor_lmd_universal_choose_table_row_step)) * bcf_previous_scale_lmd_universal_choose_table) + (bcf_left_lmd_universal_choose_table_row_step))) /\ ((((exists bcf_height_lmd_universal_choose_table_row_step_previous_right. bcf_height_lmd_universal_choose_table_row_step_previous_right + S (bcf_right_lmd_universal_choose_table_row_step) = S ((S (S (bcf_predecessor_lmd_universal_choose_table_row_step))) * bcf_previous_scale_lmd_universal_choose_table)) /\ exists bcf_quotient_lmd_universal_choose_table_row_step_previous_right. bcf_previous_code_lmd_universal_choose_table = bcf_quotient_lmd_universal_choose_table_row_step_previous_right * S ((S (S (bcf_predecessor_lmd_universal_choose_table_row_step))) * bcf_previous_scale_lmd_universal_choose_table) + (bcf_right_lmd_universal_choose_table_row_step))) /\ bcf_value_lmd_universal_choose_table_row_step = bcf_left_lmd_universal_choose_table_row_step + bcf_right_lmd_universal_choose_table_row_step))))))))))) /\ ((((exists bcf_height_lmd_universal_choose_decoded_row_code. bcf_height_lmd_universal_choose_decoded_row_code + S (bcf_row_code_lmd_universal_choose) = S ((S (n)) * bcf_row_code_scale_lmd_universal_choose)) /\ exists bcf_quotient_lmd_universal_choose_decoded_row_code. bcf_row_code_code_lmd_universal_choose = bcf_quotient_lmd_universal_choose_decoded_row_code * S ((S (n)) * bcf_row_code_scale_lmd_universal_choose) + (bcf_row_code_lmd_universal_choose))) /\ ((((exists bcf_height_lmd_universal_choose_decoded_row_scale. bcf_height_lmd_universal_choose_decoded_row_scale + S (bcf_row_scale_lmd_universal_choose) = S ((S (n)) * bcf_row_scale_scale_lmd_universal_choose)) /\ exists bcf_quotient_lmd_universal_choose_decoded_row_scale. bcf_row_scale_code_lmd_universal_choose = bcf_quotient_lmd_universal_choose_decoded_row_scale * S ((S (n)) * bcf_row_scale_scale_lmd_universal_choose) + (bcf_row_scale_lmd_universal_choose))) /\ (((exists bcf_height_lmd_universal_choose_decoded_value. bcf_height_lmd_universal_choose_decoded_value + S (C) = S ((S (k)) * bcf_row_scale_lmd_universal_choose)) /\ exists bcf_quotient_lmd_universal_choose_decoded_value. bcf_row_code_lmd_universal_choose = bcf_quotient_lmd_universal_choose_decoded_value * S ((S (k)) * bcf_row_scale_lmd_universal_choose) + (C))))))))) -> (exists qb qc db dc ub uc vb vc z t s w P. (((((((exists ff_h_lmd_full_n_initial. ff_h_lmd_full_n_initial + S (n) = S ((S (0)) * qc)) /\ exists ff_q_lmd_full_n_initial. qb = ff_q_lmd_full_n_initial * S ((S (0)) * qc) + (n))) /\ forall lmd_index_full_n. (exists lmd_gap_full_n_index. lmd_gap_full_n_index + S (lmd_index_full_n) = (l)) -> exists lmd_current_full_n lmd_successor_full_n lmd_digit_full_n. ((((exists ff_h_lmd_full_n_current. ff_h_lmd_full_n_current + S (lmd_current_full_n) = S ((S (lmd_index_full_n)) * qc)) /\ exists ff_q_lmd_full_n_current. qb = ff_q_lmd_full_n_current * S ((S (lmd_index_full_n)) * qc) + (lmd_current_full_n))) /\ ((((exists ff_h_lmd_full_n_successor. ff_h_lmd_full_n_successor + S (lmd_successor_full_n) = S ((S (S lmd_index_full_n)) * qc)) /\ exists ff_q_lmd_full_n_successor. qb = ff_q_lmd_full_n_successor * S ((S (S lmd_index_full_n)) * qc) + (lmd_successor_full_n))) /\ ((((exists ff_h_lmd_full_n_digit. ff_h_lmd_full_n_digit + S (lmd_digit_full_n) = S ((S (lmd_index_full_n)) * dc)) /\ exists ff_q_lmd_full_n_digit. db = ff_q_lmd_full_n_digit * S ((S (lmd_index_full_n)) * dc) + (lmd_digit_full_n))) /\ ((lmd_current_full_n = (p) * (lmd_successor_full_n) + (lmd_digit_full_n)) /\ (exists lmd_gap_full_n_digit_bound. lmd_gap_full_n_digit_bound + S (lmd_digit_full_n) = (p)))))))) /\ ((((((exists ff_h_lmd_full_k_initial. ff_h_lmd_full_k_initial + S (k) = S ((S (0)) * uc)) /\ exists ff_q_lmd_full_k_initial. ub = ff_q_lmd_full_k_initial * S ((S (0)) * uc) + (k))) /\ forall lmd_index_full_k. (exists lmd_gap_full_k_index. lmd_gap_full_k_index + S (lmd_index_full_k) = (l)) -> exists lmd_current_full_k lmd_successor_full_k lmd_digit_full_k. ((((exists ff_h_lmd_full_k_current. ff_h_lmd_full_k_current + S (lmd_current_full_k) = S ((S (lmd_index_full_k)) * uc)) /\ exists ff_q_lmd_full_k_current. ub = ff_q_lmd_full_k_current * S ((S (lmd_index_full_k)) * uc) + (lmd_current_full_k))) /\ ((((exists ff_h_lmd_full_k_successor. ff_h_lmd_full_k_successor + S (lmd_successor_full_k) = S ((S (S lmd_index_full_k)) * uc)) /\ exists ff_q_lmd_full_k_successor. ub = ff_q_lmd_full_k_successor * S ((S (S lmd_index_full_k)) * uc) + (lmd_successor_full_k))) /\ ((((exists ff_h_lmd_full_k_digit. ff_h_lmd_full_k_digit + S (lmd_digit_full_k) = S ((S (lmd_index_full_k)) * vc)) /\ exists ff_q_lmd_full_k_digit. vb = ff_q_lmd_full_k_digit * S ((S (lmd_index_full_k)) * vc) + (lmd_digit_full_k))) /\ ((lmd_current_full_k = (p) * (lmd_successor_full_k) + (lmd_digit_full_k)) /\ (exists lmd_gap_full_k_digit_bound. lmd_gap_full_k_digit_bound + S (lmd_digit_full_k) = (p)))))))) /\ ((((exists ff_h_lmd_terminal_upper_zero. ff_h_lmd_terminal_upper_zero + S (0) = S ((S (l)) * qc)) /\ exists ff_q_lmd_terminal_upper_zero. qb = ff_q_lmd_terminal_upper_zero * S ((S (l)) * qc) + (0))) /\ ((((exists ff_h_lmd_terminal_lower_zero. ff_h_lmd_terminal_lower_zero + S (0) = S ((S (l)) * uc)) /\ exists ff_q_lmd_terminal_lower_zero. ub = ff_q_lmd_terminal_lower_zero * S ((S (l)) * uc) + (0))) /\ ((forall lmd_choose_index_full_quotient_choose. (exists lmd_gap_full_quotient_choose_bound. lmd_gap_full_quotient_choose_bound + S (lmd_choose_index_full_quotient_choose) = (S l)) -> exists lmd_choose_upper_full_quotient_choose lmd_choose_lower_full_quotient_choose lmd_choose_value_full_quotient_choose. ((((exists ff_h_lmd_full_quotient_choose_upper. ff_h_lmd_full_quotient_choose_upper + S (lmd_choose_upper_full_quotient_choose) = S ((S (lmd_choose_index_full_quotient_choose)) * qc)) /\ exists ff_q_lmd_full_quotient_choose_upper. qb = ff_q_lmd_full_quotient_choose_upper * S ((S (lmd_choose_index_full_quotient_choose)) * qc) + (lmd_choose_upper_full_quotient_choose))) /\ ((((exists ff_h_lmd_full_quotient_choose_lower. ff_h_lmd_full_quotient_choose_lower + S (lmd_choose_lower_full_quotient_choose) = S ((S (lmd_choose_index_full_quotient_choose)) * uc)) /\ exists ff_q_lmd_full_quotient_choose_lower. ub = ff_q_lmd_full_quotient_choose_lower * S ((S (lmd_choose_index_full_quotient_choose)) * uc) + (lmd_choose_lower_full_quotient_choose))) /\ ((((exists ff_h_lmd_full_quotient_choose_result. ff_h_lmd_full_quotient_choose_result + S (lmd_choose_value_full_quotient_choose) = S ((S (lmd_choose_index_full_quotient_choose)) * t)) /\ exists ff_q_lmd_full_quotient_choose_result. z = ff_q_lmd_full_quotient_choose_result * S ((S (lmd_choose_index_full_quotient_choose)) * t) + (lmd_choose_value_full_quotient_choose))) /\ (((exists bcf_lt_gap_lmd_full_quotient_choose_choose_out_of_range. bcf_lt_gap_lmd_full_quotient_choose_choose_out_of_range + S (lmd_choose_upper_full_quotient_choose) = lmd_choose_lower_full_quotient_choose) /\ lmd_choose_value_full_quotient_choose = 0) \/ ((exists bcf_le_gap_lmd_full_quotient_choose_choose_in_range. bcf_le_gap_lmd_full_quotient_choose_choose_in_range + (lmd_choose_lower_full_quotient_choose) = lmd_choose_upper_full_quotient_choose) /\ (exists bcf_row_code_code_lmd_full_quotient_choose_choose bcf_row_code_scale_lmd_full_quotient_choose_choose bcf_row_scale_code_lmd_full_quotient_choose_choose bcf_row_scale_scale_lmd_full_quotient_choose_choose bcf_row_code_lmd_full_quotient_choose_choose bcf_row_scale_lmd_full_quotient_choose_choose. ((forall bcf_row_index_lmd_full_quotient_choose_choose_table. (exists bcf_lt_gap_lmd_full_quotient_choose_choose_table_row_bound. bcf_lt_gap_lmd_full_quotient_choose_choose_table_row_bound + S (bcf_row_index_lmd_full_quotient_choose_choose_table) = S (lmd_choose_upper_full_quotient_choose)) -> exists bcf_row_code_lmd_full_quotient_choose_choose_table bcf_row_scale_lmd_full_quotient_choose_choose_table. ((((exists bcf_height_lmd_full_quotient_choose_choose_table_decoded_row_code. bcf_height_lmd_full_quotient_choose_choose_table_decoded_row_code + S (bcf_row_code_lmd_full_quotient_choose_choose_table) = S ((S (bcf_row_index_lmd_full_quotient_choose_choose_table)) * bcf_row_code_scale_lmd_full_quotient_choose_choose)) /\ exists bcf_quotient_lmd_full_quotient_choose_choose_table_decoded_row_code. bcf_row_code_code_lmd_full_quotient_choose_choose = bcf_quotient_lmd_full_quotient_choose_choose_table_decoded_row_code * S ((S (bcf_row_index_lmd_full_quotient_choose_choose_table)) * bcf_row_code_scale_lmd_full_quotient_choose_choose) + (bcf_row_code_lmd_full_quotient_choose_choose_table))) /\ ((((exists bcf_height_lmd_full_quotient_choose_choose_table_decoded_row_scale. bcf_height_lmd_full_quotient_choose_choose_table_decoded_row_scale + S (bcf_row_scale_lmd_full_quotient_choose_choose_table) = S ((S (bcf_row_index_lmd_full_quotient_choose_choose_table)) * bcf_row_scale_scale_lmd_full_quotient_choose_choose)) /\ exists bcf_quotient_lmd_full_quotient_choose_choose_table_decoded_row_scale. bcf_row_scale_code_lmd_full_quotient_choose_choose = bcf_quotient_lmd_full_quotient_choose_choose_table_decoded_row_scale * S ((S (bcf_row_index_lmd_full_quotient_choose_choose_table)) * bcf_row_scale_scale_lmd_full_quotient_choose_choose) + (bcf_row_scale_lmd_full_quotient_choose_choose_table))) /\ ((bcf_row_index_lmd_full_quotient_choose_choose_table = 0 /\ (forall bcf_index_lmd_full_quotient_choose_choose_table_zero_row. (exists bcf_lt_gap_lmd_full_quotient_choose_choose_table_zero_row_bound. bcf_lt_gap_lmd_full_quotient_choose_choose_table_zero_row_bound + S (bcf_index_lmd_full_quotient_choose_choose_table_zero_row) = S (lmd_choose_upper_full_quotient_choose)) -> exists bcf_value_lmd_full_quotient_choose_choose_table_zero_row. ((((exists bcf_height_lmd_full_quotient_choose_choose_table_zero_row_entry. bcf_height_lmd_full_quotient_choose_choose_table_zero_row_entry + S (bcf_value_lmd_full_quotient_choose_choose_table_zero_row) = S ((S (bcf_index_lmd_full_quotient_choose_choose_table_zero_row)) * bcf_row_scale_lmd_full_quotient_choose_choose_table)) /\ exists bcf_quotient_lmd_full_quotient_choose_choose_table_zero_row_entry. bcf_row_code_lmd_full_quotient_choose_choose_table = bcf_quotient_lmd_full_quotient_choose_choose_table_zero_row_entry * S ((S (bcf_index_lmd_full_quotient_choose_choose_table_zero_row)) * bcf_row_scale_lmd_full_quotient_choose_choose_table) + (bcf_value_lmd_full_quotient_choose_choose_table_zero_row))) /\ ((bcf_index_lmd_full_quotient_choose_choose_table_zero_row = 0 /\ bcf_value_lmd_full_quotient_choose_choose_table_zero_row = 1) \/ exists bcf_predecessor_lmd_full_quotient_choose_choose_table_zero_row. bcf_index_lmd_full_quotient_choose_choose_table_zero_row = S bcf_predecessor_lmd_full_quotient_choose_choose_table_zero_row /\ bcf_value_lmd_full_quotient_choose_choose_table_zero_row = 0)))) \/ exists bcf_predecessor_lmd_full_quotient_choose_choose_table bcf_previous_code_lmd_full_quotient_choose_choose_table bcf_previous_scale_lmd_full_quotient_choose_choose_table. bcf_row_index_lmd_full_quotient_choose_choose_table = S bcf_predecessor_lmd_full_quotient_choose_choose_table /\ ((((exists bcf_height_lmd_full_quotient_choose_choose_table_decoded_previous_code. bcf_height_lmd_full_quotient_choose_choose_table_decoded_previous_code + S (bcf_previous_code_lmd_full_quotient_choose_choose_table) = S ((S (bcf_predecessor_lmd_full_quotient_choose_choose_table)) * bcf_row_code_scale_lmd_full_quotient_choose_choose)) /\ exists bcf_quotient_lmd_full_quotient_choose_choose_table_decoded_previous_code. bcf_row_code_code_lmd_full_quotient_choose_choose = bcf_quotient_lmd_full_quotient_choose_choose_table_decoded_previous_code * S ((S (bcf_predecessor_lmd_full_quotient_choose_choose_table)) * bcf_row_code_scale_lmd_full_quotient_choose_choose) + (bcf_previous_code_lmd_full_quotient_choose_choose_table))) /\ ((((exists bcf_height_lmd_full_quotient_choose_choose_table_decoded_previous_scale. bcf_height_lmd_full_quotient_choose_choose_table_decoded_previous_scale + S (bcf_previous_scale_lmd_full_quotient_choose_choose_table) = S ((S (bcf_predecessor_lmd_full_quotient_choose_choose_table)) * bcf_row_scale_scale_lmd_full_quotient_choose_choose)) /\ exists bcf_quotient_lmd_full_quotient_choose_choose_table_decoded_previous_scale. bcf_row_scale_code_lmd_full_quotient_choose_choose = bcf_quotient_lmd_full_quotient_choose_choose_table_decoded_previous_scale * S ((S (bcf_predecessor_lmd_full_quotient_choose_choose_table)) * bcf_row_scale_scale_lmd_full_quotient_choose_choose) + (bcf_previous_scale_lmd_full_quotient_choose_choose_table))) /\ (forall bcf_index_lmd_full_quotient_choose_choose_table_row_step. (exists bcf_lt_gap_lmd_full_quotient_choose_choose_table_row_step_bound. bcf_lt_gap_lmd_full_quotient_choose_choose_table_row_step_bound + S (bcf_index_lmd_full_quotient_choose_choose_table_row_step) = S (lmd_choose_upper_full_quotient_choose)) -> exists bcf_value_lmd_full_quotient_choose_choose_table_row_step. ((((exists bcf_height_lmd_full_quotient_choose_choose_table_row_step_entry. bcf_height_lmd_full_quotient_choose_choose_table_row_step_entry + S (bcf_value_lmd_full_quotient_choose_choose_table_row_step) = S ((S (bcf_index_lmd_full_quotient_choose_choose_table_row_step)) * bcf_row_scale_lmd_full_quotient_choose_choose_table)) /\ exists bcf_quotient_lmd_full_quotient_choose_choose_table_row_step_entry. bcf_row_code_lmd_full_quotient_choose_choose_table = bcf_quotient_lmd_full_quotient_choose_choose_table_row_step_entry * S ((S (bcf_index_lmd_full_quotient_choose_choose_table_row_step)) * bcf_row_scale_lmd_full_quotient_choose_choose_table) + (bcf_value_lmd_full_quotient_choose_choose_table_row_step))) /\ ((bcf_index_lmd_full_quotient_choose_choose_table_row_step = 0 /\ bcf_value_lmd_full_quotient_choose_choose_table_row_step = 1) \/ exists bcf_predecessor_lmd_full_quotient_choose_choose_table_row_step bcf_left_lmd_full_quotient_choose_choose_table_row_step bcf_right_lmd_full_quotient_choose_choose_table_row_step. bcf_index_lmd_full_quotient_choose_choose_table_row_step = S bcf_predecessor_lmd_full_quotient_choose_choose_table_row_step /\ ((((exists bcf_height_lmd_full_quotient_choose_choose_table_row_step_previous_left. bcf_height_lmd_full_quotient_choose_choose_table_row_step_previous_left + S (bcf_left_lmd_full_quotient_choose_choose_table_row_step) = S ((S (bcf_predecessor_lmd_full_quotient_choose_choose_table_row_step)) * bcf_previous_scale_lmd_full_quotient_choose_choose_table)) /\ exists bcf_quotient_lmd_full_quotient_choose_choose_table_row_step_previous_left. bcf_previous_code_lmd_full_quotient_choose_choose_table = bcf_quotient_lmd_full_quotient_choose_choose_table_row_step_previous_left * S ((S (bcf_predecessor_lmd_full_quotient_choose_choose_table_row_step)) * bcf_previous_scale_lmd_full_quotient_choose_choose_table) + (bcf_left_lmd_full_quotient_choose_choose_table_row_step))) /\ ((((exists bcf_height_lmd_full_quotient_choose_choose_table_row_step_previous_right. bcf_height_lmd_full_quotient_choose_choose_table_row_step_previous_right + S (bcf_right_lmd_full_quotient_choose_choose_table_row_step) = S ((S (S (bcf_predecessor_lmd_full_quotient_choose_choose_table_row_step))) * bcf_previous_scale_lmd_full_quotient_choose_choose_table)) /\ exists bcf_quotient_lmd_full_quotient_choose_choose_table_row_step_previous_right. bcf_previous_code_lmd_full_quotient_choose_choose_table = bcf_quotient_lmd_full_quotient_choose_choose_table_row_step_previous_right * S ((S (S (bcf_predecessor_lmd_full_quotient_choose_choose_table_row_step))) * bcf_previous_scale_lmd_full_quotient_choose_choose_table) + (bcf_right_lmd_full_quotient_choose_choose_table_row_step))) /\ bcf_value_lmd_full_quotient_choose_choose_table_row_step = bcf_left_lmd_full_quotient_choose_choose_table_row_step + bcf_right_lmd_full_quotient_choose_choose_table_row_step))))))))))) /\ ((((exists bcf_height_lmd_full_quotient_choose_choose_decoded_row_code. bcf_height_lmd_full_quotient_choose_choose_decoded_row_code + S (bcf_row_code_lmd_full_quotient_choose_choose) = S ((S (lmd_choose_upper_full_quotient_choose)) * bcf_row_code_scale_lmd_full_quotient_choose_choose)) /\ exists bcf_quotient_lmd_full_quotient_choose_choose_decoded_row_code. bcf_row_code_code_lmd_full_quotient_choose_choose = bcf_quotient_lmd_full_quotient_choose_choose_decoded_row_code * S ((S (lmd_choose_upper_full_quotient_choose)) * bcf_row_code_scale_lmd_full_quotient_choose_choose) + (bcf_row_code_lmd_full_quotient_choose_choose))) /\ ((((exists bcf_height_lmd_full_quotient_choose_choose_decoded_row_scale. bcf_height_lmd_full_quotient_choose_choose_decoded_row_scale + S (bcf_row_scale_lmd_full_quotient_choose_choose) = S ((S (lmd_choose_upper_full_quotient_choose)) * bcf_row_scale_scale_lmd_full_quotient_choose_choose)) /\ exists bcf_quotient_lmd_full_quotient_choose_choose_decoded_row_scale. bcf_row_scale_code_lmd_full_quotient_choose_choose = bcf_quotient_lmd_full_quotient_choose_choose_decoded_row_scale * S ((S (lmd_choose_upper_full_quotient_choose)) * bcf_row_scale_scale_lmd_full_quotient_choose_choose) + (bcf_row_scale_lmd_full_quotient_choose_choose))) /\ (((exists bcf_height_lmd_full_quotient_choose_choose_decoded_value. bcf_height_lmd_full_quotient_choose_choose_decoded_value + S (lmd_choose_value_full_quotient_choose) = S ((S (lmd_choose_lower_full_quotient_choose)) * bcf_row_scale_lmd_full_quotient_choose_choose)) /\ exists bcf_quotient_lmd_full_quotient_choose_choose_decoded_value. bcf_row_code_lmd_full_quotient_choose_choose = bcf_quotient_lmd_full_quotient_choose_choose_decoded_value * S ((S (lmd_choose_lower_full_quotient_choose)) * bcf_row_scale_lmd_full_quotient_choose_choose) + (lmd_choose_value_full_quotient_choose))))))))))))) /\ ((forall lmd_choose_index_full_digit_choose. (exists lmd_gap_full_digit_choose_bound. lmd_gap_full_digit_choose_bound + S (lmd_choose_index_full_digit_choose) = (l)) -> exists lmd_choose_upper_full_digit_choose lmd_choose_lower_full_digit_choose lmd_choose_value_full_digit_choose. ((((exists ff_h_lmd_full_digit_choose_upper. ff_h_lmd_full_digit_choose_upper + S (lmd_choose_upper_full_digit_choose) = S ((S (lmd_choose_index_full_digit_choose)) * dc)) /\ exists ff_q_lmd_full_digit_choose_upper. db = ff_q_lmd_full_digit_choose_upper * S ((S (lmd_choose_index_full_digit_choose)) * dc) + (lmd_choose_upper_full_digit_choose))) /\ ((((exists ff_h_lmd_full_digit_choose_lower. ff_h_lmd_full_digit_choose_lower + S (lmd_choose_lower_full_digit_choose) = S ((S (lmd_choose_index_full_digit_choose)) * vc)) /\ exists ff_q_lmd_full_digit_choose_lower. vb = ff_q_lmd_full_digit_choose_lower * S ((S (lmd_choose_index_full_digit_choose)) * vc) + (lmd_choose_lower_full_digit_choose))) /\ ((((exists ff_h_lmd_full_digit_choose_result. ff_h_lmd_full_digit_choose_result + S (lmd_choose_value_full_digit_choose) = S ((S (lmd_choose_index_full_digit_choose)) * w)) /\ exists ff_q_lmd_full_digit_choose_result. s = ff_q_lmd_full_digit_choose_result * S ((S (lmd_choose_index_full_digit_choose)) * w) + (lmd_choose_value_full_digit_choose))) /\ (((exists bcf_lt_gap_lmd_full_digit_choose_choose_out_of_range. bcf_lt_gap_lmd_full_digit_choose_choose_out_of_range + S (lmd_choose_upper_full_digit_choose) = lmd_choose_lower_full_digit_choose) /\ lmd_choose_value_full_digit_choose = 0) \/ ((exists bcf_le_gap_lmd_full_digit_choose_choose_in_range. bcf_le_gap_lmd_full_digit_choose_choose_in_range + (lmd_choose_lower_full_digit_choose) = lmd_choose_upper_full_digit_choose) /\ (exists bcf_row_code_code_lmd_full_digit_choose_choose bcf_row_code_scale_lmd_full_digit_choose_choose bcf_row_scale_code_lmd_full_digit_choose_choose bcf_row_scale_scale_lmd_full_digit_choose_choose bcf_row_code_lmd_full_digit_choose_choose bcf_row_scale_lmd_full_digit_choose_choose. ((forall bcf_row_index_lmd_full_digit_choose_choose_table. (exists bcf_lt_gap_lmd_full_digit_choose_choose_table_row_bound. bcf_lt_gap_lmd_full_digit_choose_choose_table_row_bound + S (bcf_row_index_lmd_full_digit_choose_choose_table) = S (lmd_choose_upper_full_digit_choose)) -> exists bcf_row_code_lmd_full_digit_choose_choose_table bcf_row_scale_lmd_full_digit_choose_choose_table. ((((exists bcf_height_lmd_full_digit_choose_choose_table_decoded_row_code. bcf_height_lmd_full_digit_choose_choose_table_decoded_row_code + S (bcf_row_code_lmd_full_digit_choose_choose_table) = S ((S (bcf_row_index_lmd_full_digit_choose_choose_table)) * bcf_row_code_scale_lmd_full_digit_choose_choose)) /\ exists bcf_quotient_lmd_full_digit_choose_choose_table_decoded_row_code. bcf_row_code_code_lmd_full_digit_choose_choose = bcf_quotient_lmd_full_digit_choose_choose_table_decoded_row_code * S ((S (bcf_row_index_lmd_full_digit_choose_choose_table)) * bcf_row_code_scale_lmd_full_digit_choose_choose) + (bcf_row_code_lmd_full_digit_choose_choose_table))) /\ ((((exists bcf_height_lmd_full_digit_choose_choose_table_decoded_row_scale. bcf_height_lmd_full_digit_choose_choose_table_decoded_row_scale + S (bcf_row_scale_lmd_full_digit_choose_choose_table) = S ((S (bcf_row_index_lmd_full_digit_choose_choose_table)) * bcf_row_scale_scale_lmd_full_digit_choose_choose)) /\ exists bcf_quotient_lmd_full_digit_choose_choose_table_decoded_row_scale. bcf_row_scale_code_lmd_full_digit_choose_choose = bcf_quotient_lmd_full_digit_choose_choose_table_decoded_row_scale * S ((S (bcf_row_index_lmd_full_digit_choose_choose_table)) * bcf_row_scale_scale_lmd_full_digit_choose_choose) + (bcf_row_scale_lmd_full_digit_choose_choose_table))) /\ ((bcf_row_index_lmd_full_digit_choose_choose_table = 0 /\ (forall bcf_index_lmd_full_digit_choose_choose_table_zero_row. (exists bcf_lt_gap_lmd_full_digit_choose_choose_table_zero_row_bound. bcf_lt_gap_lmd_full_digit_choose_choose_table_zero_row_bound + S (bcf_index_lmd_full_digit_choose_choose_table_zero_row) = S (lmd_choose_upper_full_digit_choose)) -> exists bcf_value_lmd_full_digit_choose_choose_table_zero_row. ((((exists bcf_height_lmd_full_digit_choose_choose_table_zero_row_entry. bcf_height_lmd_full_digit_choose_choose_table_zero_row_entry + S (bcf_value_lmd_full_digit_choose_choose_table_zero_row) = S ((S (bcf_index_lmd_full_digit_choose_choose_table_zero_row)) * bcf_row_scale_lmd_full_digit_choose_choose_table)) /\ exists bcf_quotient_lmd_full_digit_choose_choose_table_zero_row_entry. bcf_row_code_lmd_full_digit_choose_choose_table = bcf_quotient_lmd_full_digit_choose_choose_table_zero_row_entry * S ((S (bcf_index_lmd_full_digit_choose_choose_table_zero_row)) * bcf_row_scale_lmd_full_digit_choose_choose_table) + (bcf_value_lmd_full_digit_choose_choose_table_zero_row))) /\ ((bcf_index_lmd_full_digit_choose_choose_table_zero_row = 0 /\ bcf_value_lmd_full_digit_choose_choose_table_zero_row = 1) \/ exists bcf_predecessor_lmd_full_digit_choose_choose_table_zero_row. bcf_index_lmd_full_digit_choose_choose_table_zero_row = S bcf_predecessor_lmd_full_digit_choose_choose_table_zero_row /\ bcf_value_lmd_full_digit_choose_choose_table_zero_row = 0)))) \/ exists bcf_predecessor_lmd_full_digit_choose_choose_table bcf_previous_code_lmd_full_digit_choose_choose_table bcf_previous_scale_lmd_full_digit_choose_choose_table. bcf_row_index_lmd_full_digit_choose_choose_table = S bcf_predecessor_lmd_full_digit_choose_choose_table /\ ((((exists bcf_height_lmd_full_digit_choose_choose_table_decoded_previous_code. bcf_height_lmd_full_digit_choose_choose_table_decoded_previous_code + S (bcf_previous_code_lmd_full_digit_choose_choose_table) = S ((S (bcf_predecessor_lmd_full_digit_choose_choose_table)) * bcf_row_code_scale_lmd_full_digit_choose_choose)) /\ exists bcf_quotient_lmd_full_digit_choose_choose_table_decoded_previous_code. bcf_row_code_code_lmd_full_digit_choose_choose = bcf_quotient_lmd_full_digit_choose_choose_table_decoded_previous_code * S ((S (bcf_predecessor_lmd_full_digit_choose_choose_table)) * bcf_row_code_scale_lmd_full_digit_choose_choose) + (bcf_previous_code_lmd_full_digit_choose_choose_table))) /\ ((((exists bcf_height_lmd_full_digit_choose_choose_table_decoded_previous_scale. bcf_height_lmd_full_digit_choose_choose_table_decoded_previous_scale + S (bcf_previous_scale_lmd_full_digit_choose_choose_table) = S ((S (bcf_predecessor_lmd_full_digit_choose_choose_table)) * bcf_row_scale_scale_lmd_full_digit_choose_choose)) /\ exists bcf_quotient_lmd_full_digit_choose_choose_table_decoded_previous_scale. bcf_row_scale_code_lmd_full_digit_choose_choose = bcf_quotient_lmd_full_digit_choose_choose_table_decoded_previous_scale * S ((S (bcf_predecessor_lmd_full_digit_choose_choose_table)) * bcf_row_scale_scale_lmd_full_digit_choose_choose) + (bcf_previous_scale_lmd_full_digit_choose_choose_table))) /\ (forall bcf_index_lmd_full_digit_choose_choose_table_row_step. (exists bcf_lt_gap_lmd_full_digit_choose_choose_table_row_step_bound. bcf_lt_gap_lmd_full_digit_choose_choose_table_row_step_bound + S (bcf_index_lmd_full_digit_choose_choose_table_row_step) = S (lmd_choose_upper_full_digit_choose)) -> exists bcf_value_lmd_full_digit_choose_choose_table_row_step. ((((exists bcf_height_lmd_full_digit_choose_choose_table_row_step_entry. bcf_height_lmd_full_digit_choose_choose_table_row_step_entry + S (bcf_value_lmd_full_digit_choose_choose_table_row_step) = S ((S (bcf_index_lmd_full_digit_choose_choose_table_row_step)) * bcf_row_scale_lmd_full_digit_choose_choose_table)) /\ exists bcf_quotient_lmd_full_digit_choose_choose_table_row_step_entry. bcf_row_code_lmd_full_digit_choose_choose_table = bcf_quotient_lmd_full_digit_choose_choose_table_row_step_entry * S ((S (bcf_index_lmd_full_digit_choose_choose_table_row_step)) * bcf_row_scale_lmd_full_digit_choose_choose_table) + (bcf_value_lmd_full_digit_choose_choose_table_row_step))) /\ ((bcf_index_lmd_full_digit_choose_choose_table_row_step = 0 /\ bcf_value_lmd_full_digit_choose_choose_table_row_step = 1) \/ exists bcf_predecessor_lmd_full_digit_choose_choose_table_row_step bcf_left_lmd_full_digit_choose_choose_table_row_step bcf_right_lmd_full_digit_choose_choose_table_row_step. bcf_index_lmd_full_digit_choose_choose_table_row_step = S bcf_predecessor_lmd_full_digit_choose_choose_table_row_step /\ ((((exists bcf_height_lmd_full_digit_choose_choose_table_row_step_previous_left. bcf_height_lmd_full_digit_choose_choose_table_row_step_previous_left + S (bcf_left_lmd_full_digit_choose_choose_table_row_step) = S ((S (bcf_predecessor_lmd_full_digit_choose_choose_table_row_step)) * bcf_previous_scale_lmd_full_digit_choose_choose_table)) /\ exists bcf_quotient_lmd_full_digit_choose_choose_table_row_step_previous_left. bcf_previous_code_lmd_full_digit_choose_choose_table = bcf_quotient_lmd_full_digit_choose_choose_table_row_step_previous_left * S ((S (bcf_predecessor_lmd_full_digit_choose_choose_table_row_step)) * bcf_previous_scale_lmd_full_digit_choose_choose_table) + (bcf_left_lmd_full_digit_choose_choose_table_row_step))) /\ ((((exists bcf_height_lmd_full_digit_choose_choose_table_row_step_previous_right. bcf_height_lmd_full_digit_choose_choose_table_row_step_previous_right + S (bcf_right_lmd_full_digit_choose_choose_table_row_step) = S ((S (S (bcf_predecessor_lmd_full_digit_choose_choose_table_row_step))) * bcf_previous_scale_lmd_full_digit_choose_choose_table)) /\ exists bcf_quotient_lmd_full_digit_choose_choose_table_row_step_previous_right. bcf_previous_code_lmd_full_digit_choose_choose_table = bcf_quotient_lmd_full_digit_choose_choose_table_row_step_previous_right * S ((S (S (bcf_predecessor_lmd_full_digit_choose_choose_table_row_step))) * bcf_previous_scale_lmd_full_digit_choose_choose_table) + (bcf_right_lmd_full_digit_choose_choose_table_row_step))) /\ bcf_value_lmd_full_digit_choose_choose_table_row_step = bcf_left_lmd_full_digit_choose_choose_table_row_step + bcf_right_lmd_full_digit_choose_choose_table_row_step))))))))))) /\ ((((exists bcf_height_lmd_full_digit_choose_choose_decoded_row_code. bcf_height_lmd_full_digit_choose_choose_decoded_row_code + S (bcf_row_code_lmd_full_digit_choose_choose) = S ((S (lmd_choose_upper_full_digit_choose)) * bcf_row_code_scale_lmd_full_digit_choose_choose)) /\ exists bcf_quotient_lmd_full_digit_choose_choose_decoded_row_code. bcf_row_code_code_lmd_full_digit_choose_choose = bcf_quotient_lmd_full_digit_choose_choose_decoded_row_code * S ((S (lmd_choose_upper_full_digit_choose)) * bcf_row_code_scale_lmd_full_digit_choose_choose) + (bcf_row_code_lmd_full_digit_choose_choose))) /\ ((((exists bcf_height_lmd_full_digit_choose_choose_decoded_row_scale. bcf_height_lmd_full_digit_choose_choose_decoded_row_scale + S (bcf_row_scale_lmd_full_digit_choose_choose) = S ((S (lmd_choose_upper_full_digit_choose)) * bcf_row_scale_scale_lmd_full_digit_choose_choose)) /\ exists bcf_quotient_lmd_full_digit_choose_choose_decoded_row_scale. bcf_row_scale_code_lmd_full_digit_choose_choose = bcf_quotient_lmd_full_digit_choose_choose_decoded_row_scale * S ((S (lmd_choose_upper_full_digit_choose)) * bcf_row_scale_scale_lmd_full_digit_choose_choose) + (bcf_row_scale_lmd_full_digit_choose_choose))) /\ (((exists bcf_height_lmd_full_digit_choose_choose_decoded_value. bcf_height_lmd_full_digit_choose_choose_decoded_value + S (lmd_choose_value_full_digit_choose) = S ((S (lmd_choose_lower_full_digit_choose)) * bcf_row_scale_lmd_full_digit_choose_choose)) /\ exists bcf_quotient_lmd_full_digit_choose_choose_decoded_value. bcf_row_code_lmd_full_digit_choose_choose = bcf_quotient_lmd_full_digit_choose_choose_decoded_value * S ((S (lmd_choose_lower_full_digit_choose)) * bcf_row_scale_lmd_full_digit_choose_choose) + (lmd_choose_value_full_digit_choose))))))))))))) /\ ((exists ff_u_lmd_full_product ff_v_lmd_full_product. ((((exists ff_h_lmd_full_product_start. ff_h_lmd_full_product_start + S (1) = S ((S (0)) * ff_v_lmd_full_product)) /\ exists ff_q_lmd_full_product_start. ff_u_lmd_full_product = ff_q_lmd_full_product_start * S ((S (0)) * ff_v_lmd_full_product) + (1))) /\ ((((exists ff_h_lmd_full_product_terminal. ff_h_lmd_full_product_terminal + S (P) = S ((S (l)) * ff_v_lmd_full_product)) /\ exists ff_q_lmd_full_product_terminal. ff_u_lmd_full_product = ff_q_lmd_full_product_terminal * S ((S (l)) * ff_v_lmd_full_product) + (P))) /\ forall ff_i_lmd_full_product. (exists ff_lt_lmd_full_product_bound. ff_lt_lmd_full_product_bound + S ff_i_lmd_full_product = l) -> exists ff_p_lmd_full_product ff_r_lmd_full_product ff_s_lmd_full_product. ((((exists ff_h_lmd_full_product_factor. ff_h_lmd_full_product_factor + S (ff_p_lmd_full_product) = S ((S (ff_i_lmd_full_product)) * w)) /\ exists ff_q_lmd_full_product_factor. s = ff_q_lmd_full_product_factor * S ((S (ff_i_lmd_full_product)) * w) + (ff_p_lmd_full_product))) /\ ((((exists ff_h_lmd_full_product_partial. ff_h_lmd_full_product_partial + S (ff_r_lmd_full_product) = S ((S (ff_i_lmd_full_product)) * ff_v_lmd_full_product)) /\ exists ff_q_lmd_full_product_partial. ff_u_lmd_full_product = ff_q_lmd_full_product_partial * S ((S (ff_i_lmd_full_product)) * ff_v_lmd_full_product) + (ff_r_lmd_full_product))) /\ ((((exists ff_h_lmd_full_product_successor. ff_h_lmd_full_product_successor + S (ff_s_lmd_full_product) = S ((S (S ff_i_lmd_full_product)) * ff_v_lmd_full_product)) /\ exists ff_q_lmd_full_product_successor. ff_u_lmd_full_product = ff_q_lmd_full_product_successor * S ((S (S ff_i_lmd_full_product)) * ff_v_lmd_full_product) + (ff_s_lmd_full_product))) /\ ff_s_lmd_full_product = ff_r_lmd_full_product * ff_p_lmd_full_product)))))) /\ ((((exists ff_h_lmd_full_coefficient_start. ff_h_lmd_full_coefficient_start + S (C) = S ((S (0)) * t)) /\ exists ff_q_lmd_full_coefficient_start. z = ff_q_lmd_full_coefficient_start * S ((S (0)) * t) + (C))) /\ (exists lmd_mod_left_universal_result lmd_mod_right_universal_result. (C) + (p) * lmd_mod_left_universal_result = (P) + (p) * lmd_mod_right_universal_result)))))))))))

Proof neighborhood

Direct theorem prerequisites

Direct theorem dependents

Definition-aware tactic body

Only propositions whose conservative expansion has been checked for exact first-order equivalence are compacted. Every changed line retains its immutable exact replay command.

Read the argument

Proof checkpoints

179 script commands · 45 reading checkpoints · 12 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 (5)
01Fix variables and assumptionsL1–9

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

  1. L1
    intro p
  2. L2
    intro n
  3. L3
    intro k
  4. L4
    intro C
  5. L5
    intro l
  6. L6
    intro hprime
  7. L7
    intro hnlength
  8. L8
    intro hklength
  9. L9
    intro hchoose
02Establish hnchainL10–16

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas terminating prime digit chain exists.

  1. L10
    have hnchain : ∃ qb. ∃ qc. ∃ db. ∃ dc. BetaAt(qb,qc,0,n) ∧ (∀ x. Lt(x,l) → ∃ y. ∃ z. ∃ m. BetaAt(qb,qc,x,y) ∧ (BetaAt(qb,qc,S x,z) ∧ (BetaAt(db,dc,x,m) ∧ DivRem(y,p,z,m)))) ∧ BetaAt(qb,qc,l,0)Definitions: BetaAt(qb,qc,0,n)Lt(x,l)BetaAt(qb,qc,x,y)BetaAt(qb,qc,S x,z)BetaAt(db,dc,x,m)DivRem(y,p,z,m)BetaAt(qb,qc,l,0)Original native command in the exact edition
  2. L11
    specialize lucas_terminating_prime_digit_chain_exists p
  3. L12
    specialize lucas_terminating_prime_digit_chain_exists n
  4. L13
    specialize lucas_terminating_prime_digit_chain_exists l
  5. L14
    apply lucas_terminating_prime_digit_chain_exists
  6. L15
    exact hprime
  7. L16
    exact hnlength
03Separate the logical casesL17–21

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

  1. L17
    cases hnchain
  2. L18
    cases hnchain_witness
  3. L19
    cases hnchain_witness_witness
  4. L20
    cases hnchain_witness_witness_witness
  5. L21
    cases hnchain_witness_witness_witness_witness
04Establish hkchainL22–28

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas terminating prime digit chain exists.

  1. L22
    have hkchain : ∃ ub. ∃ uc. ∃ vb. ∃ vc. BetaAt(ub,uc,0,k) ∧ (∀ x. Lt(x,l) → ∃ y. ∃ z. ∃ n. BetaAt(ub,uc,x,y) ∧ (BetaAt(ub,uc,S x,z) ∧ (BetaAt(vb,vc,x,n) ∧ DivRem(y,p,z,n)))) ∧ BetaAt(ub,uc,l,0)Definitions: BetaAt(ub,uc,0,k)Lt(x,l)BetaAt(ub,uc,x,y)BetaAt(ub,uc,S x,z)BetaAt(vb,vc,x,n)DivRem(y,p,z,n)BetaAt(ub,uc,l,0)Original native command in the exact edition
  2. L23
    specialize lucas_terminating_prime_digit_chain_exists p
  3. L24
    specialize lucas_terminating_prime_digit_chain_exists k
  4. L25
    specialize lucas_terminating_prime_digit_chain_exists l
  5. L26
    apply lucas_terminating_prime_digit_chain_exists
  6. L27
    exact hprime
  7. L28
    exact hklength
05Separate the logical casesL29–33

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

  1. L29
    cases hkchain
  2. L30
    cases hkchain_witness
  3. L31
    cases hkchain_witness_witness
  4. L32
    cases hkchain_witness_witness_witness
  5. L33
    cases hkchain_witness_witness_witness_witness
06Establish hquotientL34–40

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

  1. L34
    have hquotient : ∃ z. ∃ t. ∀ y. Lt(y,S l) → ∃ n. ∃ m. ∃ k. BetaAt(x,x1,y,n) ∧ (BetaAt(x4,x5,y,m) ∧ (BetaAt(z,t,y,k) ∧ Choose(n,m,k)))Definitions: Lt(y,S l)BetaAt(x,x1,y,n)BetaAt(x4,x5,y,m)BetaAt(z,t,y,k)Choose(n,m,k)Original native command in the exact edition
  2. L35
    specialize lucas_choose_prefix_exists x
  3. L36
    specialize lucas_choose_prefix_exists x1
  4. L37
    specialize lucas_choose_prefix_exists x4
  5. L38
    specialize lucas_choose_prefix_exists x5
  6. L39
    specialize lucas_choose_prefix_exists (S l)
  7. L40
    exact lucas_choose_prefix_exists
07Separate the logical casesL41–42

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

  1. L41
    cases hquotient
  2. L42
    cases hquotient_witness
08Establish hdigitL43–49

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

  1. L43
    have hdigit : ∃ s. ∃ w. ∀ x. Lt(x,l) → ∃ y. ∃ z. ∃ n. BetaAt(x2,x3,x,y) ∧ (BetaAt(x6,x7,x,z) ∧ (BetaAt(s,w,x,n) ∧ Choose(y,z,n)))Definitions: Lt(x,l)BetaAt(x2,x3,x,y)BetaAt(x6,x7,x,z)BetaAt(s,w,x,n)Choose(y,z,n)Original native command in the exact edition
  2. L44
    specialize lucas_choose_prefix_exists x2
  3. L45
    specialize lucas_choose_prefix_exists x3
  4. L46
    specialize lucas_choose_prefix_exists x6
  5. L47
    specialize lucas_choose_prefix_exists x7
  6. L48
    specialize lucas_choose_prefix_exists l
  7. L49
    exact lucas_choose_prefix_exists
09Separate the logical casesL50–51

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

  1. L50
    cases hdigit
  2. L51
    cases hdigit_witness
10Establish hproductL52–56

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

  1. L52
    have hproduct : ∃ P. Product(x10,x11,l,P)Definitions: Product(x10,x11,l,P)Original native command in the exact edition
  2. L53
    specialize beta_product_exists x10
  3. L54
    specialize beta_product_exists x11
  4. L55
    specialize beta_product_exists l
  5. L56
    exact beta_product_exists
11Separate the logical casesL57–57

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

  1. L57
    cases hproduct
12Establish hdecodedL58–62

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

  1. L58
    have hdecoded : ∃ A. BetaAt(x8,x9,0,A)Definitions: BetaAt(x8,x9,0,A)Original native command in the exact edition
  2. L59
    specialize beta_at_exists x8
  3. L60
    specialize beta_at_exists x9
  4. L61
    specialize beta_at_exists 0
  5. L62
    exact beta_at_exists
13Separate the logical casesL63–63

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

  1. L63
    cases hdecoded
14Establish hninitialL64–73

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas digit chain initial value.

  1. L64
    have hninitial : BetaAt(x,x1,0,n)Definitions: BetaAt(x,x1,0,n)Original native command in the exact edition
  2. L65
    specialize lucas_digit_chain_initial_value p
  3. L66
    specialize lucas_digit_chain_initial_value n
  4. L67
    specialize lucas_digit_chain_initial_value x
  5. L68
    specialize lucas_digit_chain_initial_value x1
  6. L69
    specialize lucas_digit_chain_initial_value x2
  7. L70
    specialize lucas_digit_chain_initial_value x3
  8. L71
    specialize lucas_digit_chain_initial_value l
  9. L72
    apply lucas_digit_chain_initial_value
  10. L73
    exact hnchain_witness_witness_witness_witness_left
15Establish hkinitialL74–83

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lucas digit chain initial value.

  1. L74
    have hkinitial : BetaAt(x4,x5,0,k)Definitions: BetaAt(x4,x5,0,k)Original native command in the exact edition
  2. L75
    specialize lucas_digit_chain_initial_value p
  3. L76
    specialize lucas_digit_chain_initial_value k
  4. L77
    specialize lucas_digit_chain_initial_value x4
  5. L78
    specialize lucas_digit_chain_initial_value x5
  6. L79
    specialize lucas_digit_chain_initial_value x6
  7. L80
    specialize lucas_digit_chain_initial_value x7
  8. L81
    specialize lucas_digit_chain_initial_value l
  9. L82
    apply lucas_digit_chain_initial_value
  10. L83
    exact hkchain_witness_witness_witness_witness_left
16Establish hcoefficientL84–93

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

  1. L84
    have hcoefficient : Choose(n,k,x13)Definitions: Choose(n,k,x13)Original native command in the exact edition
  2. L85
    specialize lucas_choose_prefix_point x
  3. L86
    specialize lucas_choose_prefix_point x1
  4. L87
    specialize lucas_choose_prefix_point x4
  5. L88
    specialize lucas_choose_prefix_point x5
  6. L89
    specialize lucas_choose_prefix_point x8
  7. L90
    specialize lucas_choose_prefix_point x9
  8. L91
    specialize lucas_choose_prefix_point (S l)
  9. L92
    specialize lucas_choose_prefix_point 0
  10. L93
    specialize lucas_choose_prefix_point n
17Use earlier factsL94–97

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

  1. L94
    specialize lucas_choose_prefix_point k
  2. L95
    specialize lucas_choose_prefix_point x13
  3. L96
    apply lucas_choose_prefix_point
  4. L97
    exact hquotient_witness_witness
18Construct an explicit witnessL98–98

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

  1. L98
    exists l
19Calculate and transport equalitiesL99–99

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

  1. L99
    simp
20Use earlier factsL100–102

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

  1. L100
    exact hninitial
  2. L101
    exact hkinitial
  3. L102
    exact hdecoded_witness
21Establish hsameL103–112

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

  1. L103
    have hsame : x13 = C
  2. L104
    specialize choose_functional n
  3. L105
    specialize choose_functional k
  4. L106
    specialize choose_functional x13
  5. L107
    specialize choose_functional C
  6. L108
    apply choose_functional
  7. L109
    exact hcoefficient
  8. L110
    exact hchoose
  9. L111
    rewrite hsame at hdecoded_witness
  10. L112
    rewrite hsame at hdecoded_witness
22Establish hterminalL113–117

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

  1. L113
    have hterminal : ∃ T. BetaAt(x8,x9,l,T)Definitions: BetaAt(x8,x9,l,T)Original native command in the exact edition
  2. L114
    specialize beta_at_exists x8
  3. L115
    specialize beta_at_exists x9
  4. L116
    specialize beta_at_exists l
  5. L117
    exact beta_at_exists
23Separate the logical casesL118–118

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

  1. L118
    cases hterminal
24Establish hcongruenceL119–128

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

  1. L119
    have hcongruence : ModEq(p,C,x12)Definitions: ModEq(p,C,x12)Original native command in the exact edition
  2. L120
    specialize lucas_terminating_multidigit_theorem p
  3. L121
    specialize lucas_terminating_multidigit_theorem n
  4. L122
    specialize lucas_terminating_multidigit_theorem k
  5. L123
    specialize lucas_terminating_multidigit_theorem l
  6. L124
    specialize lucas_terminating_multidigit_theorem x
  7. L125
    specialize lucas_terminating_multidigit_theorem x1
  8. L126
    specialize lucas_terminating_multidigit_theorem x2
  9. L127
    specialize lucas_terminating_multidigit_theorem x3
  10. L128
    specialize lucas_terminating_multidigit_theorem x4
25Use earlier factsL129–138

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

  1. L129
    specialize lucas_terminating_multidigit_theorem x5
  2. L130
    specialize lucas_terminating_multidigit_theorem x6
  3. L131
    specialize lucas_terminating_multidigit_theorem x7
  4. L132
    specialize lucas_terminating_multidigit_theorem x8
  5. L133
    specialize lucas_terminating_multidigit_theorem x9
  6. L134
    specialize lucas_terminating_multidigit_theorem x10
  7. L135
    specialize lucas_terminating_multidigit_theorem x11
  8. L136
    specialize lucas_terminating_multidigit_theorem x12
  9. L137
    specialize lucas_terminating_multidigit_theorem C
  10. L138
    specialize lucas_terminating_multidigit_theorem x14
26Use earlier factsL139–148

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

  1. L139
    apply lucas_terminating_multidigit_theorem
  2. L140
    exact hprime
  3. L141
    exact hnchain_witness_witness_witness_witness_left
  4. L142
    exact hkchain_witness_witness_witness_witness_left
  5. L143
    exact hquotient_witness_witness
  6. L144
    exact hdigit_witness_witness
  7. L145
    exact hproduct_witness
  8. L146
    exact hdecoded_witness
  9. L147
    exact hterminal_witness
  10. L148
    exact hnchain_witness_witness_witness_witness_right
27Use earlier factsL149–149

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

  1. L149
    exact hkchain_witness_witness_witness_witness_right
28Construct an explicit witnessL150–159

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

  1. L150
    exists x
  2. L151
    exists x1
  3. L152
    exists x2
  4. L153
    exists x3
  5. L154
    exists x4
  6. L155
    exists x5
  7. L156
    exists x6
  8. L157
    exists x7
  9. L158
    exists x8
  10. L159
    exists x9
29Construct an explicit witnessL160–162

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

  1. L160
    exists x10
  2. L161
    exists x11
  3. L162
    exists x12
30Separate the logical casesL163–163

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

  1. L163
    split
31Use earlier factsL164–164

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

  1. L164
    exact hnchain_witness_witness_witness_witness_left
32Separate the logical casesL165–165

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

  1. L165
    split
33Use earlier factsL166–166

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

  1. L166
    exact hkchain_witness_witness_witness_witness_left
34Separate the logical casesL167–167

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

  1. L167
    split
35Use earlier factsL168–168

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

  1. L168
    exact hnchain_witness_witness_witness_witness_right
36Separate the logical casesL169–169

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

  1. L169
    split
37Use earlier factsL170–170

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

  1. L170
    exact hkchain_witness_witness_witness_witness_right
38Separate the logical casesL171–171

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

  1. L171
    split
39Use earlier factsL172–172

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

  1. L172
    exact hquotient_witness_witness
40Separate the logical casesL173–173

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

  1. L173
    split
41Use earlier factsL174–174

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

  1. L174
    exact hdigit_witness_witness
42Separate the logical casesL175–175

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

  1. L175
    split
43Use earlier factsL176–176

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

  1. L176
    exact hproduct_witness
44Separate the logical casesL177–177

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

  1. L177
    split
45Use earlier factsL178–179

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

  1. L178
    exact hdecoded_witness
  2. L179
    exact hcongruence

Library-wide reading audit

Original defined command ledger · 179 lines
  1. 0001intro p
  2. 0002intro n
  3. 0003intro k
  4. 0004intro C
  5. 0005intro l
  6. 0006intro hprime
  7. 0007intro hnlength
  8. 0008intro hklength
  9. 0009intro hchoose
  10. 0010have hnchain : ∃ qb. ∃ qc. ∃ db. ∃ dc. BetaAt(qb,qc,0,n) ∧ (∀ x. Lt(x,l) → ∃ y. ∃ z. ∃ m. BetaAt(qb,qc,x,y) ∧ (BetaAt(qb,qc,S x,z) ∧ (BetaAt(db,dc,x,m)DivRem(y,p,z,m)))) ∧ BetaAt(qb,qc,l,0)
    Exact native replay linehave hnchain : exists qb qc db dc. ((((((exists ff_h_lmd_universal_n_chain_initial. ff_h_lmd_universal_n_chain_initial + S (n) = S ((S (0)) * qc)) /\ exists ff_q_lmd_universal_n_chain_initial. qb = ff_q_lmd_universal_n_chain_initial * S ((S (0)) * qc) + (n))) /\ forall lmd_index_universal_n_chain. (exists lmd_gap_universal_n_chain_index. lmd_gap_universal_n_chain_index + S (lmd_index_universal_n_chain) = (l)) -> exists lmd_current_universal_n_chain lmd_successor_universal_n_chain lmd_digit_universal_n_chain. ((((exists ff_h_lmd_universal_n_chain_current. ff_h_lmd_universal_n_chain_current + S (lmd_current_universal_n_chain) = S ((S (lmd_index_universal_n_chain)) * qc)) /\ exists ff_q_lmd_universal_n_chain_current. qb = ff_q_lmd_universal_n_chain_current * S ((S (lmd_index_universal_n_chain)) * qc) + (lmd_current_universal_n_chain))) /\ ((((exists ff_h_lmd_universal_n_chain_successor. ff_h_lmd_universal_n_chain_successor + S (lmd_successor_universal_n_chain) = S ((S (S lmd_index_universal_n_chain)) * qc)) /\ exists ff_q_lmd_universal_n_chain_successor. qb = ff_q_lmd_universal_n_chain_successor * S ((S (S lmd_index_universal_n_chain)) * qc) + (lmd_successor_universal_n_chain))) /\ ((((exists ff_h_lmd_universal_n_chain_digit. ff_h_lmd_universal_n_chain_digit + S (lmd_digit_universal_n_chain) = S ((S (lmd_index_universal_n_chain)) * dc)) /\ exists ff_q_lmd_universal_n_chain_digit. db = ff_q_lmd_universal_n_chain_digit * S ((S (lmd_index_universal_n_chain)) * dc) + (lmd_digit_universal_n_chain))) /\ ((lmd_current_universal_n_chain = (p) * (lmd_successor_universal_n_chain) + (lmd_digit_universal_n_chain)) /\ (exists lmd_gap_universal_n_chain_digit_bound. lmd_gap_universal_n_chain_digit_bound + S (lmd_digit_universal_n_chain) = (p)))))))) /\ (((exists ff_h_lmd_universal_n_zero. ff_h_lmd_universal_n_zero + S (0) = S ((S (l)) * qc)) /\ exists ff_q_lmd_universal_n_zero. qb = ff_q_lmd_universal_n_zero * S ((S (l)) * qc) + (0))))
  11. 0011specialize lucas_terminating_prime_digit_chain_exists p
  12. 0012specialize lucas_terminating_prime_digit_chain_exists n
  13. 0013specialize lucas_terminating_prime_digit_chain_exists l
  14. 0014apply lucas_terminating_prime_digit_chain_exists
  15. 0015exact hprime
  16. 0016exact hnlength
  17. 0017cases hnchain
  18. 0018cases hnchain_witness
  19. 0019cases hnchain_witness_witness
  20. 0020cases hnchain_witness_witness_witness
  21. 0021cases hnchain_witness_witness_witness_witness
  22. 0022have hkchain : ∃ ub. ∃ uc. ∃ vb. ∃ vc. BetaAt(ub,uc,0,k) ∧ (∀ x. Lt(x,l) → ∃ y. ∃ z. ∃ n. BetaAt(ub,uc,x,y) ∧ (BetaAt(ub,uc,S x,z) ∧ (BetaAt(vb,vc,x,n)DivRem(y,p,z,n)))) ∧ BetaAt(ub,uc,l,0)
    Exact native replay linehave hkchain : exists ub uc vb vc. ((((((exists ff_h_lmd_universal_k_chain_initial. ff_h_lmd_universal_k_chain_initial + S (k) = S ((S (0)) * uc)) /\ exists ff_q_lmd_universal_k_chain_initial. ub = ff_q_lmd_universal_k_chain_initial * S ((S (0)) * uc) + (k))) /\ forall lmd_index_universal_k_chain. (exists lmd_gap_universal_k_chain_index. lmd_gap_universal_k_chain_index + S (lmd_index_universal_k_chain) = (l)) -> exists lmd_current_universal_k_chain lmd_successor_universal_k_chain lmd_digit_universal_k_chain. ((((exists ff_h_lmd_universal_k_chain_current. ff_h_lmd_universal_k_chain_current + S (lmd_current_universal_k_chain) = S ((S (lmd_index_universal_k_chain)) * uc)) /\ exists ff_q_lmd_universal_k_chain_current. ub = ff_q_lmd_universal_k_chain_current * S ((S (lmd_index_universal_k_chain)) * uc) + (lmd_current_universal_k_chain))) /\ ((((exists ff_h_lmd_universal_k_chain_successor. ff_h_lmd_universal_k_chain_successor + S (lmd_successor_universal_k_chain) = S ((S (S lmd_index_universal_k_chain)) * uc)) /\ exists ff_q_lmd_universal_k_chain_successor. ub = ff_q_lmd_universal_k_chain_successor * S ((S (S lmd_index_universal_k_chain)) * uc) + (lmd_successor_universal_k_chain))) /\ ((((exists ff_h_lmd_universal_k_chain_digit. ff_h_lmd_universal_k_chain_digit + S (lmd_digit_universal_k_chain) = S ((S (lmd_index_universal_k_chain)) * vc)) /\ exists ff_q_lmd_universal_k_chain_digit. vb = ff_q_lmd_universal_k_chain_digit * S ((S (lmd_index_universal_k_chain)) * vc) + (lmd_digit_universal_k_chain))) /\ ((lmd_current_universal_k_chain = (p) * (lmd_successor_universal_k_chain) + (lmd_digit_universal_k_chain)) /\ (exists lmd_gap_universal_k_chain_digit_bound. lmd_gap_universal_k_chain_digit_bound + S (lmd_digit_universal_k_chain) = (p)))))))) /\ (((exists ff_h_lmd_universal_k_zero. ff_h_lmd_universal_k_zero + S (0) = S ((S (l)) * uc)) /\ exists ff_q_lmd_universal_k_zero. ub = ff_q_lmd_universal_k_zero * S ((S (l)) * uc) + (0))))
  23. 0023specialize lucas_terminating_prime_digit_chain_exists p
  24. 0024specialize lucas_terminating_prime_digit_chain_exists k
  25. 0025specialize lucas_terminating_prime_digit_chain_exists l
  26. 0026apply lucas_terminating_prime_digit_chain_exists
  27. 0027exact hprime
  28. 0028exact hklength
  29. 0029cases hkchain
  30. 0030cases hkchain_witness
  31. 0031cases hkchain_witness_witness
  32. 0032cases hkchain_witness_witness_witness
  33. 0033cases hkchain_witness_witness_witness_witness
  34. 0034have hquotient : ∃ z. ∃ t. ∀ y. Lt(y,S l) → ∃ n. ∃ m. ∃ k. BetaAt(x,x1,y,n) ∧ (BetaAt(x4,x5,y,m) ∧ (BetaAt(z,t,y,k)Choose(n,m,k)))
    Exact native replay linehave hquotient : exists z t. (forall lmd_choose_index_universal_quotient. (exists lmd_gap_universal_quotient_bound. lmd_gap_universal_quotient_bound + S (lmd_choose_index_universal_quotient) = (S l)) -> exists lmd_choose_upper_universal_quotient lmd_choose_lower_universal_quotient lmd_choose_value_universal_quotient. ((((exists ff_h_lmd_universal_quotient_upper. ff_h_lmd_universal_quotient_upper + S (lmd_choose_upper_universal_quotient) = S ((S (lmd_choose_index_universal_quotient)) * x1)) /\ exists ff_q_lmd_universal_quotient_upper. x = ff_q_lmd_universal_quotient_upper * S ((S (lmd_choose_index_universal_quotient)) * x1) + (lmd_choose_upper_universal_quotient))) /\ ((((exists ff_h_lmd_universal_quotient_lower. ff_h_lmd_universal_quotient_lower + S (lmd_choose_lower_universal_quotient) = S ((S (lmd_choose_index_universal_quotient)) * x5)) /\ exists ff_q_lmd_universal_quotient_lower. x4 = ff_q_lmd_universal_quotient_lower * S ((S (lmd_choose_index_universal_quotient)) * x5) + (lmd_choose_lower_universal_quotient))) /\ ((((exists ff_h_lmd_universal_quotient_result. ff_h_lmd_universal_quotient_result + S (lmd_choose_value_universal_quotient) = S ((S (lmd_choose_index_universal_quotient)) * t)) /\ exists ff_q_lmd_universal_quotient_result. z = ff_q_lmd_universal_quotient_result * S ((S (lmd_choose_index_universal_quotient)) * t) + (lmd_choose_value_universal_quotient))) /\ (((exists bcf_lt_gap_lmd_universal_quotient_choose_out_of_range. bcf_lt_gap_lmd_universal_quotient_choose_out_of_range + S (lmd_choose_upper_universal_quotient) = lmd_choose_lower_universal_quotient) /\ lmd_choose_value_universal_quotient = 0) \/ ((exists bcf_le_gap_lmd_universal_quotient_choose_in_range. bcf_le_gap_lmd_universal_quotient_choose_in_range + (lmd_choose_lower_universal_quotient) = lmd_choose_upper_universal_quotient) /\ (exists bcf_row_code_code_lmd_universal_quotient_choose bcf_row_code_scale_lmd_universal_quotient_choose bcf_row_scale_code_lmd_universal_quotient_choose bcf_row_scale_scale_lmd_universal_quotient_choose bcf_row_code_lmd_universal_quotient_choose bcf_row_scale_lmd_universal_quotient_choose. ((forall bcf_row_index_lmd_universal_quotient_choose_table. (exists bcf_lt_gap_lmd_universal_quotient_choose_table_row_bound. bcf_lt_gap_lmd_universal_quotient_choose_table_row_bound + S (bcf_row_index_lmd_universal_quotient_choose_table) = S (lmd_choose_upper_universal_quotient)) -> exists bcf_row_code_lmd_universal_quotient_choose_table bcf_row_scale_lmd_universal_quotient_choose_table. ((((exists bcf_height_lmd_universal_quotient_choose_table_decoded_row_code. bcf_height_lmd_universal_quotient_choose_table_decoded_row_code + S (bcf_row_code_lmd_universal_quotient_choose_table) = S ((S (bcf_row_index_lmd_universal_quotient_choose_table)) * bcf_row_code_scale_lmd_universal_quotient_choose)) /\ exists bcf_quotient_lmd_universal_quotient_choose_table_decoded_row_code. bcf_row_code_code_lmd_universal_quotient_choose = bcf_quotient_lmd_universal_quotient_choose_table_decoded_row_code * S ((S (bcf_row_index_lmd_universal_quotient_choose_table)) * bcf_row_code_scale_lmd_universal_quotient_choose) + (bcf_row_code_lmd_universal_quotient_choose_table))) /\ ((((exists bcf_height_lmd_universal_quotient_choose_table_decoded_row_scale. bcf_height_lmd_universal_quotient_choose_table_decoded_row_scale + S (bcf_row_scale_lmd_universal_quotient_choose_table) = S ((S (bcf_row_index_lmd_universal_quotient_choose_table)) * bcf_row_scale_scale_lmd_universal_quotient_choose)) /\ exists bcf_quotient_lmd_universal_quotient_choose_table_decoded_row_scale. bcf_row_scale_code_lmd_universal_quotient_choose = bcf_quotient_lmd_universal_quotient_choose_table_decoded_row_scale * S ((S (bcf_row_index_lmd_universal_quotient_choose_table)) * bcf_row_scale_scale_lmd_universal_quotient_choose) + (bcf_row_scale_lmd_universal_quotient_choose_table))) /\ ((bcf_row_index_lmd_universal_quotient_choose_table = 0 /\ (forall bcf_index_lmd_universal_quotient_choose_table_zero_row. (exists bcf_lt_gap_lmd_universal_quotient_choose_table_zero_row_bound. bcf_lt_gap_lmd_universal_quotient_choose_table_zero_row_bound + S (bcf_index_lmd_universal_quotient_choose_table_zero_row) = S (lmd_choose_upper_universal_quotient)) -> exists bcf_value_lmd_universal_quotient_choose_table_zero_row. ((((exists bcf_height_lmd_universal_quotient_choose_table_zero_row_entry. bcf_height_lmd_universal_quotient_choose_table_zero_row_entry + S (bcf_value_lmd_universal_quotient_choose_table_zero_row) = S ((S (bcf_index_lmd_universal_quotient_choose_table_zero_row)) * bcf_row_scale_lmd_universal_quotient_choose_table)) /\ exists bcf_quotient_lmd_universal_quotient_choose_table_zero_row_entry. bcf_row_code_lmd_universal_quotient_choose_table = bcf_quotient_lmd_universal_quotient_choose_table_zero_row_entry * S ((S (bcf_index_lmd_universal_quotient_choose_table_zero_row)) * bcf_row_scale_lmd_universal_quotient_choose_table) + (bcf_value_lmd_universal_quotient_choose_table_zero_row))) /\ ((bcf_index_lmd_universal_quotient_choose_table_zero_row = 0 /\ bcf_value_lmd_universal_quotient_choose_table_zero_row = 1) \/ exists bcf_predecessor_lmd_universal_quotient_choose_table_zero_row. bcf_index_lmd_universal_quotient_choose_table_zero_row = S bcf_predecessor_lmd_universal_quotient_choose_table_zero_row /\ bcf_value_lmd_universal_quotient_choose_table_zero_row = 0)))) \/ exists bcf_predecessor_lmd_universal_quotient_choose_table bcf_previous_code_lmd_universal_quotient_choose_table bcf_previous_scale_lmd_universal_quotient_choose_table. bcf_row_index_lmd_universal_quotient_choose_table = S bcf_predecessor_lmd_universal_quotient_choose_table /\ ((((exists bcf_height_lmd_universal_quotient_choose_table_decoded_previous_code. bcf_height_lmd_universal_quotient_choose_table_decoded_previous_code + S (bcf_previous_code_lmd_universal_quotient_choose_table) = S ((S (bcf_predecessor_lmd_universal_quotient_choose_table)) * bcf_row_code_scale_lmd_universal_quotient_choose)) /\ exists bcf_quotient_lmd_universal_quotient_choose_table_decoded_previous_code. bcf_row_code_code_lmd_universal_quotient_choose = bcf_quotient_lmd_universal_quotient_choose_table_decoded_previous_code * S ((S (bcf_predecessor_lmd_universal_quotient_choose_table)) * bcf_row_code_scale_lmd_universal_quotient_choose) + (bcf_previous_code_lmd_universal_quotient_choose_table))) /\ ((((exists bcf_height_lmd_universal_quotient_choose_table_decoded_previous_scale. bcf_height_lmd_universal_quotient_choose_table_decoded_previous_scale + S (bcf_previous_scale_lmd_universal_quotient_choose_table) = S ((S (bcf_predecessor_lmd_universal_quotient_choose_table)) * bcf_row_scale_scale_lmd_universal_quotient_choose)) /\ exists bcf_quotient_lmd_universal_quotient_choose_table_decoded_previous_scale. bcf_row_scale_code_lmd_universal_quotient_choose = bcf_quotient_lmd_universal_quotient_choose_table_decoded_previous_scale * S ((S (bcf_predecessor_lmd_universal_quotient_choose_table)) * bcf_row_scale_scale_lmd_universal_quotient_choose) + (bcf_previous_scale_lmd_universal_quotient_choose_table))) /\ (forall bcf_index_lmd_universal_quotient_choose_table_row_step. (exists bcf_lt_gap_lmd_universal_quotient_choose_table_row_step_bound. bcf_lt_gap_lmd_universal_quotient_choose_table_row_step_bound + S (bcf_index_lmd_universal_quotient_choose_table_row_step) = S (lmd_choose_upper_universal_quotient)) -> exists bcf_value_lmd_universal_quotient_choose_table_row_step. ((((exists bcf_height_lmd_universal_quotient_choose_table_row_step_entry. bcf_height_lmd_universal_quotient_choose_table_row_step_entry + S (bcf_value_lmd_universal_quotient_choose_table_row_step) = S ((S (bcf_index_lmd_universal_quotient_choose_table_row_step)) * bcf_row_scale_lmd_universal_quotient_choose_table)) /\ exists bcf_quotient_lmd_universal_quotient_choose_table_row_step_entry. bcf_row_code_lmd_universal_quotient_choose_table = bcf_quotient_lmd_universal_quotient_choose_table_row_step_entry * S ((S (bcf_index_lmd_universal_quotient_choose_table_row_step)) * bcf_row_scale_lmd_universal_quotient_choose_table) + (bcf_value_lmd_universal_quotient_choose_table_row_step))) /\ ((bcf_index_lmd_universal_quotient_choose_table_row_step = 0 /\ bcf_value_lmd_universal_quotient_choose_table_row_step = 1) \/ exists bcf_predecessor_lmd_universal_quotient_choose_table_row_step bcf_left_lmd_universal_quotient_choose_table_row_step bcf_right_lmd_universal_quotient_choose_table_row_step. bcf_index_lmd_universal_quotient_choose_table_row_step = S bcf_predecessor_lmd_universal_quotient_choose_table_row_step /\ ((((exists bcf_height_lmd_universal_quotient_choose_table_row_step_previous_left. bcf_height_lmd_universal_quotient_choose_table_row_step_previous_left + S (bcf_left_lmd_universal_quotient_choose_table_row_step) = S ((S (bcf_predecessor_lmd_universal_quotient_choose_table_row_step)) * bcf_previous_scale_lmd_universal_quotient_choose_table)) /\ exists bcf_quotient_lmd_universal_quotient_choose_table_row_step_previous_left. bcf_previous_code_lmd_universal_quotient_choose_table = bcf_quotient_lmd_universal_quotient_choose_table_row_step_previous_left * S ((S (bcf_predecessor_lmd_universal_quotient_choose_table_row_step)) * bcf_previous_scale_lmd_universal_quotient_choose_table) + (bcf_left_lmd_universal_quotient_choose_table_row_step))) /\ ((((exists bcf_height_lmd_universal_quotient_choose_table_row_step_previous_right. bcf_height_lmd_universal_quotient_choose_table_row_step_previous_right + S (bcf_right_lmd_universal_quotient_choose_table_row_step) = S ((S (S (bcf_predecessor_lmd_universal_quotient_choose_table_row_step))) * bcf_previous_scale_lmd_universal_quotient_choose_table)) /\ exists bcf_quotient_lmd_universal_quotient_choose_table_row_step_previous_right. bcf_previous_code_lmd_universal_quotient_choose_table = bcf_quotient_lmd_universal_quotient_choose_table_row_step_previous_right * S ((S (S (bcf_predecessor_lmd_universal_quotient_choose_table_row_step))) * bcf_previous_scale_lmd_universal_quotient_choose_table) + (bcf_right_lmd_universal_quotient_choose_table_row_step))) /\ bcf_value_lmd_universal_quotient_choose_table_row_step = bcf_left_lmd_universal_quotient_choose_table_row_step + bcf_right_lmd_universal_quotient_choose_table_row_step))))))))))) /\ ((((exists bcf_height_lmd_universal_quotient_choose_decoded_row_code. bcf_height_lmd_universal_quotient_choose_decoded_row_code + S (bcf_row_code_lmd_universal_quotient_choose) = S ((S (lmd_choose_upper_universal_quotient)) * bcf_row_code_scale_lmd_universal_quotient_choose)) /\ exists bcf_quotient_lmd_universal_quotient_choose_decoded_row_code. bcf_row_code_code_lmd_universal_quotient_choose = bcf_quotient_lmd_universal_quotient_choose_decoded_row_code * S ((S (lmd_choose_upper_universal_quotient)) * bcf_row_code_scale_lmd_universal_quotient_choose) + (bcf_row_code_lmd_universal_quotient_choose))) /\ ((((exists bcf_height_lmd_universal_quotient_choose_decoded_row_scale. bcf_height_lmd_universal_quotient_choose_decoded_row_scale + S (bcf_row_scale_lmd_universal_quotient_choose) = S ((S (lmd_choose_upper_universal_quotient)) * bcf_row_scale_scale_lmd_universal_quotient_choose)) /\ exists bcf_quotient_lmd_universal_quotient_choose_decoded_row_scale. bcf_row_scale_code_lmd_universal_quotient_choose = bcf_quotient_lmd_universal_quotient_choose_decoded_row_scale * S ((S (lmd_choose_upper_universal_quotient)) * bcf_row_scale_scale_lmd_universal_quotient_choose) + (bcf_row_scale_lmd_universal_quotient_choose))) /\ (((exists bcf_height_lmd_universal_quotient_choose_decoded_value. bcf_height_lmd_universal_quotient_choose_decoded_value + S (lmd_choose_value_universal_quotient) = S ((S (lmd_choose_lower_universal_quotient)) * bcf_row_scale_lmd_universal_quotient_choose)) /\ exists bcf_quotient_lmd_universal_quotient_choose_decoded_value. bcf_row_code_lmd_universal_quotient_choose = bcf_quotient_lmd_universal_quotient_choose_decoded_value * S ((S (lmd_choose_lower_universal_quotient)) * bcf_row_scale_lmd_universal_quotient_choose) + (lmd_choose_value_universal_quotient)))))))))))))
  35. 0035specialize lucas_choose_prefix_exists x
  36. 0036specialize lucas_choose_prefix_exists x1
  37. 0037specialize lucas_choose_prefix_exists x4
  38. 0038specialize lucas_choose_prefix_exists x5
  39. 0039specialize lucas_choose_prefix_exists (S l)
  40. 0040exact lucas_choose_prefix_exists
  41. 0041cases hquotient
  42. 0042cases hquotient_witness
  43. 0043have hdigit : ∃ s. ∃ w. ∀ x. Lt(x,l) → ∃ y. ∃ z. ∃ n. BetaAt(x2,x3,x,y) ∧ (BetaAt(x6,x7,x,z) ∧ (BetaAt(s,w,x,n)Choose(y,z,n)))
    Exact native replay linehave hdigit : exists s w. (forall lmd_choose_index_universal_digit. (exists lmd_gap_universal_digit_bound. lmd_gap_universal_digit_bound + S (lmd_choose_index_universal_digit) = (l)) -> exists lmd_choose_upper_universal_digit lmd_choose_lower_universal_digit lmd_choose_value_universal_digit. ((((exists ff_h_lmd_universal_digit_upper. ff_h_lmd_universal_digit_upper + S (lmd_choose_upper_universal_digit) = S ((S (lmd_choose_index_universal_digit)) * x3)) /\ exists ff_q_lmd_universal_digit_upper. x2 = ff_q_lmd_universal_digit_upper * S ((S (lmd_choose_index_universal_digit)) * x3) + (lmd_choose_upper_universal_digit))) /\ ((((exists ff_h_lmd_universal_digit_lower. ff_h_lmd_universal_digit_lower + S (lmd_choose_lower_universal_digit) = S ((S (lmd_choose_index_universal_digit)) * x7)) /\ exists ff_q_lmd_universal_digit_lower. x6 = ff_q_lmd_universal_digit_lower * S ((S (lmd_choose_index_universal_digit)) * x7) + (lmd_choose_lower_universal_digit))) /\ ((((exists ff_h_lmd_universal_digit_result. ff_h_lmd_universal_digit_result + S (lmd_choose_value_universal_digit) = S ((S (lmd_choose_index_universal_digit)) * w)) /\ exists ff_q_lmd_universal_digit_result. s = ff_q_lmd_universal_digit_result * S ((S (lmd_choose_index_universal_digit)) * w) + (lmd_choose_value_universal_digit))) /\ (((exists bcf_lt_gap_lmd_universal_digit_choose_out_of_range. bcf_lt_gap_lmd_universal_digit_choose_out_of_range + S (lmd_choose_upper_universal_digit) = lmd_choose_lower_universal_digit) /\ lmd_choose_value_universal_digit = 0) \/ ((exists bcf_le_gap_lmd_universal_digit_choose_in_range. bcf_le_gap_lmd_universal_digit_choose_in_range + (lmd_choose_lower_universal_digit) = lmd_choose_upper_universal_digit) /\ (exists bcf_row_code_code_lmd_universal_digit_choose bcf_row_code_scale_lmd_universal_digit_choose bcf_row_scale_code_lmd_universal_digit_choose bcf_row_scale_scale_lmd_universal_digit_choose bcf_row_code_lmd_universal_digit_choose bcf_row_scale_lmd_universal_digit_choose. ((forall bcf_row_index_lmd_universal_digit_choose_table. (exists bcf_lt_gap_lmd_universal_digit_choose_table_row_bound. bcf_lt_gap_lmd_universal_digit_choose_table_row_bound + S (bcf_row_index_lmd_universal_digit_choose_table) = S (lmd_choose_upper_universal_digit)) -> exists bcf_row_code_lmd_universal_digit_choose_table bcf_row_scale_lmd_universal_digit_choose_table. ((((exists bcf_height_lmd_universal_digit_choose_table_decoded_row_code. bcf_height_lmd_universal_digit_choose_table_decoded_row_code + S (bcf_row_code_lmd_universal_digit_choose_table) = S ((S (bcf_row_index_lmd_universal_digit_choose_table)) * bcf_row_code_scale_lmd_universal_digit_choose)) /\ exists bcf_quotient_lmd_universal_digit_choose_table_decoded_row_code. bcf_row_code_code_lmd_universal_digit_choose = bcf_quotient_lmd_universal_digit_choose_table_decoded_row_code * S ((S (bcf_row_index_lmd_universal_digit_choose_table)) * bcf_row_code_scale_lmd_universal_digit_choose) + (bcf_row_code_lmd_universal_digit_choose_table))) /\ ((((exists bcf_height_lmd_universal_digit_choose_table_decoded_row_scale. bcf_height_lmd_universal_digit_choose_table_decoded_row_scale + S (bcf_row_scale_lmd_universal_digit_choose_table) = S ((S (bcf_row_index_lmd_universal_digit_choose_table)) * bcf_row_scale_scale_lmd_universal_digit_choose)) /\ exists bcf_quotient_lmd_universal_digit_choose_table_decoded_row_scale. bcf_row_scale_code_lmd_universal_digit_choose = bcf_quotient_lmd_universal_digit_choose_table_decoded_row_scale * S ((S (bcf_row_index_lmd_universal_digit_choose_table)) * bcf_row_scale_scale_lmd_universal_digit_choose) + (bcf_row_scale_lmd_universal_digit_choose_table))) /\ ((bcf_row_index_lmd_universal_digit_choose_table = 0 /\ (forall bcf_index_lmd_universal_digit_choose_table_zero_row. (exists bcf_lt_gap_lmd_universal_digit_choose_table_zero_row_bound. bcf_lt_gap_lmd_universal_digit_choose_table_zero_row_bound + S (bcf_index_lmd_universal_digit_choose_table_zero_row) = S (lmd_choose_upper_universal_digit)) -> exists bcf_value_lmd_universal_digit_choose_table_zero_row. ((((exists bcf_height_lmd_universal_digit_choose_table_zero_row_entry. bcf_height_lmd_universal_digit_choose_table_zero_row_entry + S (bcf_value_lmd_universal_digit_choose_table_zero_row) = S ((S (bcf_index_lmd_universal_digit_choose_table_zero_row)) * bcf_row_scale_lmd_universal_digit_choose_table)) /\ exists bcf_quotient_lmd_universal_digit_choose_table_zero_row_entry. bcf_row_code_lmd_universal_digit_choose_table = bcf_quotient_lmd_universal_digit_choose_table_zero_row_entry * S ((S (bcf_index_lmd_universal_digit_choose_table_zero_row)) * bcf_row_scale_lmd_universal_digit_choose_table) + (bcf_value_lmd_universal_digit_choose_table_zero_row))) /\ ((bcf_index_lmd_universal_digit_choose_table_zero_row = 0 /\ bcf_value_lmd_universal_digit_choose_table_zero_row = 1) \/ exists bcf_predecessor_lmd_universal_digit_choose_table_zero_row. bcf_index_lmd_universal_digit_choose_table_zero_row = S bcf_predecessor_lmd_universal_digit_choose_table_zero_row /\ bcf_value_lmd_universal_digit_choose_table_zero_row = 0)))) \/ exists bcf_predecessor_lmd_universal_digit_choose_table bcf_previous_code_lmd_universal_digit_choose_table bcf_previous_scale_lmd_universal_digit_choose_table. bcf_row_index_lmd_universal_digit_choose_table = S bcf_predecessor_lmd_universal_digit_choose_table /\ ((((exists bcf_height_lmd_universal_digit_choose_table_decoded_previous_code. bcf_height_lmd_universal_digit_choose_table_decoded_previous_code + S (bcf_previous_code_lmd_universal_digit_choose_table) = S ((S (bcf_predecessor_lmd_universal_digit_choose_table)) * bcf_row_code_scale_lmd_universal_digit_choose)) /\ exists bcf_quotient_lmd_universal_digit_choose_table_decoded_previous_code. bcf_row_code_code_lmd_universal_digit_choose = bcf_quotient_lmd_universal_digit_choose_table_decoded_previous_code * S ((S (bcf_predecessor_lmd_universal_digit_choose_table)) * bcf_row_code_scale_lmd_universal_digit_choose) + (bcf_previous_code_lmd_universal_digit_choose_table))) /\ ((((exists bcf_height_lmd_universal_digit_choose_table_decoded_previous_scale. bcf_height_lmd_universal_digit_choose_table_decoded_previous_scale + S (bcf_previous_scale_lmd_universal_digit_choose_table) = S ((S (bcf_predecessor_lmd_universal_digit_choose_table)) * bcf_row_scale_scale_lmd_universal_digit_choose)) /\ exists bcf_quotient_lmd_universal_digit_choose_table_decoded_previous_scale. bcf_row_scale_code_lmd_universal_digit_choose = bcf_quotient_lmd_universal_digit_choose_table_decoded_previous_scale * S ((S (bcf_predecessor_lmd_universal_digit_choose_table)) * bcf_row_scale_scale_lmd_universal_digit_choose) + (bcf_previous_scale_lmd_universal_digit_choose_table))) /\ (forall bcf_index_lmd_universal_digit_choose_table_row_step. (exists bcf_lt_gap_lmd_universal_digit_choose_table_row_step_bound. bcf_lt_gap_lmd_universal_digit_choose_table_row_step_bound + S (bcf_index_lmd_universal_digit_choose_table_row_step) = S (lmd_choose_upper_universal_digit)) -> exists bcf_value_lmd_universal_digit_choose_table_row_step. ((((exists bcf_height_lmd_universal_digit_choose_table_row_step_entry. bcf_height_lmd_universal_digit_choose_table_row_step_entry + S (bcf_value_lmd_universal_digit_choose_table_row_step) = S ((S (bcf_index_lmd_universal_digit_choose_table_row_step)) * bcf_row_scale_lmd_universal_digit_choose_table)) /\ exists bcf_quotient_lmd_universal_digit_choose_table_row_step_entry. bcf_row_code_lmd_universal_digit_choose_table = bcf_quotient_lmd_universal_digit_choose_table_row_step_entry * S ((S (bcf_index_lmd_universal_digit_choose_table_row_step)) * bcf_row_scale_lmd_universal_digit_choose_table) + (bcf_value_lmd_universal_digit_choose_table_row_step))) /\ ((bcf_index_lmd_universal_digit_choose_table_row_step = 0 /\ bcf_value_lmd_universal_digit_choose_table_row_step = 1) \/ exists bcf_predecessor_lmd_universal_digit_choose_table_row_step bcf_left_lmd_universal_digit_choose_table_row_step bcf_right_lmd_universal_digit_choose_table_row_step. bcf_index_lmd_universal_digit_choose_table_row_step = S bcf_predecessor_lmd_universal_digit_choose_table_row_step /\ ((((exists bcf_height_lmd_universal_digit_choose_table_row_step_previous_left. bcf_height_lmd_universal_digit_choose_table_row_step_previous_left + S (bcf_left_lmd_universal_digit_choose_table_row_step) = S ((S (bcf_predecessor_lmd_universal_digit_choose_table_row_step)) * bcf_previous_scale_lmd_universal_digit_choose_table)) /\ exists bcf_quotient_lmd_universal_digit_choose_table_row_step_previous_left. bcf_previous_code_lmd_universal_digit_choose_table = bcf_quotient_lmd_universal_digit_choose_table_row_step_previous_left * S ((S (bcf_predecessor_lmd_universal_digit_choose_table_row_step)) * bcf_previous_scale_lmd_universal_digit_choose_table) + (bcf_left_lmd_universal_digit_choose_table_row_step))) /\ ((((exists bcf_height_lmd_universal_digit_choose_table_row_step_previous_right. bcf_height_lmd_universal_digit_choose_table_row_step_previous_right + S (bcf_right_lmd_universal_digit_choose_table_row_step) = S ((S (S (bcf_predecessor_lmd_universal_digit_choose_table_row_step))) * bcf_previous_scale_lmd_universal_digit_choose_table)) /\ exists bcf_quotient_lmd_universal_digit_choose_table_row_step_previous_right. bcf_previous_code_lmd_universal_digit_choose_table = bcf_quotient_lmd_universal_digit_choose_table_row_step_previous_right * S ((S (S (bcf_predecessor_lmd_universal_digit_choose_table_row_step))) * bcf_previous_scale_lmd_universal_digit_choose_table) + (bcf_right_lmd_universal_digit_choose_table_row_step))) /\ bcf_value_lmd_universal_digit_choose_table_row_step = bcf_left_lmd_universal_digit_choose_table_row_step + bcf_right_lmd_universal_digit_choose_table_row_step))))))))))) /\ ((((exists bcf_height_lmd_universal_digit_choose_decoded_row_code. bcf_height_lmd_universal_digit_choose_decoded_row_code + S (bcf_row_code_lmd_universal_digit_choose) = S ((S (lmd_choose_upper_universal_digit)) * bcf_row_code_scale_lmd_universal_digit_choose)) /\ exists bcf_quotient_lmd_universal_digit_choose_decoded_row_code. bcf_row_code_code_lmd_universal_digit_choose = bcf_quotient_lmd_universal_digit_choose_decoded_row_code * S ((S (lmd_choose_upper_universal_digit)) * bcf_row_code_scale_lmd_universal_digit_choose) + (bcf_row_code_lmd_universal_digit_choose))) /\ ((((exists bcf_height_lmd_universal_digit_choose_decoded_row_scale. bcf_height_lmd_universal_digit_choose_decoded_row_scale + S (bcf_row_scale_lmd_universal_digit_choose) = S ((S (lmd_choose_upper_universal_digit)) * bcf_row_scale_scale_lmd_universal_digit_choose)) /\ exists bcf_quotient_lmd_universal_digit_choose_decoded_row_scale. bcf_row_scale_code_lmd_universal_digit_choose = bcf_quotient_lmd_universal_digit_choose_decoded_row_scale * S ((S (lmd_choose_upper_universal_digit)) * bcf_row_scale_scale_lmd_universal_digit_choose) + (bcf_row_scale_lmd_universal_digit_choose))) /\ (((exists bcf_height_lmd_universal_digit_choose_decoded_value. bcf_height_lmd_universal_digit_choose_decoded_value + S (lmd_choose_value_universal_digit) = S ((S (lmd_choose_lower_universal_digit)) * bcf_row_scale_lmd_universal_digit_choose)) /\ exists bcf_quotient_lmd_universal_digit_choose_decoded_value. bcf_row_code_lmd_universal_digit_choose = bcf_quotient_lmd_universal_digit_choose_decoded_value * S ((S (lmd_choose_lower_universal_digit)) * bcf_row_scale_lmd_universal_digit_choose) + (lmd_choose_value_universal_digit)))))))))))))
  44. 0044specialize lucas_choose_prefix_exists x2
  45. 0045specialize lucas_choose_prefix_exists x3
  46. 0046specialize lucas_choose_prefix_exists x6
  47. 0047specialize lucas_choose_prefix_exists x7
  48. 0048specialize lucas_choose_prefix_exists l
  49. 0049exact lucas_choose_prefix_exists
  50. 0050cases hdigit
  51. 0051cases hdigit_witness
  52. 0052have hproduct : ∃ P. Product(x10,x11,l,P)
    Exact native replay linehave hproduct : exists P. (exists ff_u_lmd_universal_construct_product ff_v_lmd_universal_construct_product. ((((exists ff_h_lmd_universal_construct_product_start. ff_h_lmd_universal_construct_product_start + S (1) = S ((S (0)) * ff_v_lmd_universal_construct_product)) /\ exists ff_q_lmd_universal_construct_product_start. ff_u_lmd_universal_construct_product = ff_q_lmd_universal_construct_product_start * S ((S (0)) * ff_v_lmd_universal_construct_product) + (1))) /\ ((((exists ff_h_lmd_universal_construct_product_terminal. ff_h_lmd_universal_construct_product_terminal + S (P) = S ((S (l)) * ff_v_lmd_universal_construct_product)) /\ exists ff_q_lmd_universal_construct_product_terminal. ff_u_lmd_universal_construct_product = ff_q_lmd_universal_construct_product_terminal * S ((S (l)) * ff_v_lmd_universal_construct_product) + (P))) /\ forall ff_i_lmd_universal_construct_product. (exists ff_lt_lmd_universal_construct_product_bound. ff_lt_lmd_universal_construct_product_bound + S ff_i_lmd_universal_construct_product = l) -> exists ff_p_lmd_universal_construct_product ff_r_lmd_universal_construct_product ff_s_lmd_universal_construct_product. ((((exists ff_h_lmd_universal_construct_product_factor. ff_h_lmd_universal_construct_product_factor + S (ff_p_lmd_universal_construct_product) = S ((S (ff_i_lmd_universal_construct_product)) * x11)) /\ exists ff_q_lmd_universal_construct_product_factor. x10 = ff_q_lmd_universal_construct_product_factor * S ((S (ff_i_lmd_universal_construct_product)) * x11) + (ff_p_lmd_universal_construct_product))) /\ ((((exists ff_h_lmd_universal_construct_product_partial. ff_h_lmd_universal_construct_product_partial + S (ff_r_lmd_universal_construct_product) = S ((S (ff_i_lmd_universal_construct_product)) * ff_v_lmd_universal_construct_product)) /\ exists ff_q_lmd_universal_construct_product_partial. ff_u_lmd_universal_construct_product = ff_q_lmd_universal_construct_product_partial * S ((S (ff_i_lmd_universal_construct_product)) * ff_v_lmd_universal_construct_product) + (ff_r_lmd_universal_construct_product))) /\ ((((exists ff_h_lmd_universal_construct_product_successor. ff_h_lmd_universal_construct_product_successor + S (ff_s_lmd_universal_construct_product) = S ((S (S ff_i_lmd_universal_construct_product)) * ff_v_lmd_universal_construct_product)) /\ exists ff_q_lmd_universal_construct_product_successor. ff_u_lmd_universal_construct_product = ff_q_lmd_universal_construct_product_successor * S ((S (S ff_i_lmd_universal_construct_product)) * ff_v_lmd_universal_construct_product) + (ff_s_lmd_universal_construct_product))) /\ ff_s_lmd_universal_construct_product = ff_r_lmd_universal_construct_product * ff_p_lmd_universal_construct_product))))))
  53. 0053specialize beta_product_exists x10
  54. 0054specialize beta_product_exists x11
  55. 0055specialize beta_product_exists l
  56. 0056exact beta_product_exists
  57. 0057cases hproduct
  58. 0058have hdecoded : ∃ A. BetaAt(x8,x9,0,A)
    Exact native replay linehave hdecoded : exists A. (((exists ff_h_lmd_universal_coefficient_zero. ff_h_lmd_universal_coefficient_zero + S (A) = S ((S (0)) * x9)) /\ exists ff_q_lmd_universal_coefficient_zero. x8 = ff_q_lmd_universal_coefficient_zero * S ((S (0)) * x9) + (A)))
  59. 0059specialize beta_at_exists x8
  60. 0060specialize beta_at_exists x9
  61. 0061specialize beta_at_exists 0
  62. 0062exact beta_at_exists
  63. 0063cases hdecoded
  64. 0064have hninitial : BetaAt(x,x1,0,n)
    Exact native replay linehave hninitial : (((exists ff_h_lmd_universal_n_initial. ff_h_lmd_universal_n_initial + S (n) = S ((S (0)) * x1)) /\ exists ff_q_lmd_universal_n_initial. x = ff_q_lmd_universal_n_initial * S ((S (0)) * x1) + (n)))
  65. 0065specialize lucas_digit_chain_initial_value p
  66. 0066specialize lucas_digit_chain_initial_value n
  67. 0067specialize lucas_digit_chain_initial_value x
  68. 0068specialize lucas_digit_chain_initial_value x1
  69. 0069specialize lucas_digit_chain_initial_value x2
  70. 0070specialize lucas_digit_chain_initial_value x3
  71. 0071specialize lucas_digit_chain_initial_value l
  72. 0072apply lucas_digit_chain_initial_value
  73. 0073exact hnchain_witness_witness_witness_witness_left
  74. 0074have hkinitial : BetaAt(x4,x5,0,k)
    Exact native replay linehave hkinitial : (((exists ff_h_lmd_universal_k_initial. ff_h_lmd_universal_k_initial + S (k) = S ((S (0)) * x5)) /\ exists ff_q_lmd_universal_k_initial. x4 = ff_q_lmd_universal_k_initial * S ((S (0)) * x5) + (k)))
  75. 0075specialize lucas_digit_chain_initial_value p
  76. 0076specialize lucas_digit_chain_initial_value k
  77. 0077specialize lucas_digit_chain_initial_value x4
  78. 0078specialize lucas_digit_chain_initial_value x5
  79. 0079specialize lucas_digit_chain_initial_value x6
  80. 0080specialize lucas_digit_chain_initial_value x7
  81. 0081specialize lucas_digit_chain_initial_value l
  82. 0082apply lucas_digit_chain_initial_value
  83. 0083exact hkchain_witness_witness_witness_witness_left
  84. 0084have hcoefficient : Choose(n,k,x13)
    Exact native replay linehave hcoefficient : (((exists bcf_lt_gap_lmd_universal_current_choose_out_of_range. bcf_lt_gap_lmd_universal_current_choose_out_of_range + S (n) = k) /\ x13 = 0) \/ ((exists bcf_le_gap_lmd_universal_current_choose_in_range. bcf_le_gap_lmd_universal_current_choose_in_range + (k) = n) /\ (exists bcf_row_code_code_lmd_universal_current_choose bcf_row_code_scale_lmd_universal_current_choose bcf_row_scale_code_lmd_universal_current_choose bcf_row_scale_scale_lmd_universal_current_choose bcf_row_code_lmd_universal_current_choose bcf_row_scale_lmd_universal_current_choose. ((forall bcf_row_index_lmd_universal_current_choose_table. (exists bcf_lt_gap_lmd_universal_current_choose_table_row_bound. bcf_lt_gap_lmd_universal_current_choose_table_row_bound + S (bcf_row_index_lmd_universal_current_choose_table) = S (n)) -> exists bcf_row_code_lmd_universal_current_choose_table bcf_row_scale_lmd_universal_current_choose_table. ((((exists bcf_height_lmd_universal_current_choose_table_decoded_row_code. bcf_height_lmd_universal_current_choose_table_decoded_row_code + S (bcf_row_code_lmd_universal_current_choose_table) = S ((S (bcf_row_index_lmd_universal_current_choose_table)) * bcf_row_code_scale_lmd_universal_current_choose)) /\ exists bcf_quotient_lmd_universal_current_choose_table_decoded_row_code. bcf_row_code_code_lmd_universal_current_choose = bcf_quotient_lmd_universal_current_choose_table_decoded_row_code * S ((S (bcf_row_index_lmd_universal_current_choose_table)) * bcf_row_code_scale_lmd_universal_current_choose) + (bcf_row_code_lmd_universal_current_choose_table))) /\ ((((exists bcf_height_lmd_universal_current_choose_table_decoded_row_scale. bcf_height_lmd_universal_current_choose_table_decoded_row_scale + S (bcf_row_scale_lmd_universal_current_choose_table) = S ((S (bcf_row_index_lmd_universal_current_choose_table)) * bcf_row_scale_scale_lmd_universal_current_choose)) /\ exists bcf_quotient_lmd_universal_current_choose_table_decoded_row_scale. bcf_row_scale_code_lmd_universal_current_choose = bcf_quotient_lmd_universal_current_choose_table_decoded_row_scale * S ((S (bcf_row_index_lmd_universal_current_choose_table)) * bcf_row_scale_scale_lmd_universal_current_choose) + (bcf_row_scale_lmd_universal_current_choose_table))) /\ ((bcf_row_index_lmd_universal_current_choose_table = 0 /\ (forall bcf_index_lmd_universal_current_choose_table_zero_row. (exists bcf_lt_gap_lmd_universal_current_choose_table_zero_row_bound. bcf_lt_gap_lmd_universal_current_choose_table_zero_row_bound + S (bcf_index_lmd_universal_current_choose_table_zero_row) = S (n)) -> exists bcf_value_lmd_universal_current_choose_table_zero_row. ((((exists bcf_height_lmd_universal_current_choose_table_zero_row_entry. bcf_height_lmd_universal_current_choose_table_zero_row_entry + S (bcf_value_lmd_universal_current_choose_table_zero_row) = S ((S (bcf_index_lmd_universal_current_choose_table_zero_row)) * bcf_row_scale_lmd_universal_current_choose_table)) /\ exists bcf_quotient_lmd_universal_current_choose_table_zero_row_entry. bcf_row_code_lmd_universal_current_choose_table = bcf_quotient_lmd_universal_current_choose_table_zero_row_entry * S ((S (bcf_index_lmd_universal_current_choose_table_zero_row)) * bcf_row_scale_lmd_universal_current_choose_table) + (bcf_value_lmd_universal_current_choose_table_zero_row))) /\ ((bcf_index_lmd_universal_current_choose_table_zero_row = 0 /\ bcf_value_lmd_universal_current_choose_table_zero_row = 1) \/ exists bcf_predecessor_lmd_universal_current_choose_table_zero_row. bcf_index_lmd_universal_current_choose_table_zero_row = S bcf_predecessor_lmd_universal_current_choose_table_zero_row /\ bcf_value_lmd_universal_current_choose_table_zero_row = 0)))) \/ exists bcf_predecessor_lmd_universal_current_choose_table bcf_previous_code_lmd_universal_current_choose_table bcf_previous_scale_lmd_universal_current_choose_table. bcf_row_index_lmd_universal_current_choose_table = S bcf_predecessor_lmd_universal_current_choose_table /\ ((((exists bcf_height_lmd_universal_current_choose_table_decoded_previous_code. bcf_height_lmd_universal_current_choose_table_decoded_previous_code + S (bcf_previous_code_lmd_universal_current_choose_table) = S ((S (bcf_predecessor_lmd_universal_current_choose_table)) * bcf_row_code_scale_lmd_universal_current_choose)) /\ exists bcf_quotient_lmd_universal_current_choose_table_decoded_previous_code. bcf_row_code_code_lmd_universal_current_choose = bcf_quotient_lmd_universal_current_choose_table_decoded_previous_code * S ((S (bcf_predecessor_lmd_universal_current_choose_table)) * bcf_row_code_scale_lmd_universal_current_choose) + (bcf_previous_code_lmd_universal_current_choose_table))) /\ ((((exists bcf_height_lmd_universal_current_choose_table_decoded_previous_scale. bcf_height_lmd_universal_current_choose_table_decoded_previous_scale + S (bcf_previous_scale_lmd_universal_current_choose_table) = S ((S (bcf_predecessor_lmd_universal_current_choose_table)) * bcf_row_scale_scale_lmd_universal_current_choose)) /\ exists bcf_quotient_lmd_universal_current_choose_table_decoded_previous_scale. bcf_row_scale_code_lmd_universal_current_choose = bcf_quotient_lmd_universal_current_choose_table_decoded_previous_scale * S ((S (bcf_predecessor_lmd_universal_current_choose_table)) * bcf_row_scale_scale_lmd_universal_current_choose) + (bcf_previous_scale_lmd_universal_current_choose_table))) /\ (forall bcf_index_lmd_universal_current_choose_table_row_step. (exists bcf_lt_gap_lmd_universal_current_choose_table_row_step_bound. bcf_lt_gap_lmd_universal_current_choose_table_row_step_bound + S (bcf_index_lmd_universal_current_choose_table_row_step) = S (n)) -> exists bcf_value_lmd_universal_current_choose_table_row_step. ((((exists bcf_height_lmd_universal_current_choose_table_row_step_entry. bcf_height_lmd_universal_current_choose_table_row_step_entry + S (bcf_value_lmd_universal_current_choose_table_row_step) = S ((S (bcf_index_lmd_universal_current_choose_table_row_step)) * bcf_row_scale_lmd_universal_current_choose_table)) /\ exists bcf_quotient_lmd_universal_current_choose_table_row_step_entry. bcf_row_code_lmd_universal_current_choose_table = bcf_quotient_lmd_universal_current_choose_table_row_step_entry * S ((S (bcf_index_lmd_universal_current_choose_table_row_step)) * bcf_row_scale_lmd_universal_current_choose_table) + (bcf_value_lmd_universal_current_choose_table_row_step))) /\ ((bcf_index_lmd_universal_current_choose_table_row_step = 0 /\ bcf_value_lmd_universal_current_choose_table_row_step = 1) \/ exists bcf_predecessor_lmd_universal_current_choose_table_row_step bcf_left_lmd_universal_current_choose_table_row_step bcf_right_lmd_universal_current_choose_table_row_step. bcf_index_lmd_universal_current_choose_table_row_step = S bcf_predecessor_lmd_universal_current_choose_table_row_step /\ ((((exists bcf_height_lmd_universal_current_choose_table_row_step_previous_left. bcf_height_lmd_universal_current_choose_table_row_step_previous_left + S (bcf_left_lmd_universal_current_choose_table_row_step) = S ((S (bcf_predecessor_lmd_universal_current_choose_table_row_step)) * bcf_previous_scale_lmd_universal_current_choose_table)) /\ exists bcf_quotient_lmd_universal_current_choose_table_row_step_previous_left. bcf_previous_code_lmd_universal_current_choose_table = bcf_quotient_lmd_universal_current_choose_table_row_step_previous_left * S ((S (bcf_predecessor_lmd_universal_current_choose_table_row_step)) * bcf_previous_scale_lmd_universal_current_choose_table) + (bcf_left_lmd_universal_current_choose_table_row_step))) /\ ((((exists bcf_height_lmd_universal_current_choose_table_row_step_previous_right. bcf_height_lmd_universal_current_choose_table_row_step_previous_right + S (bcf_right_lmd_universal_current_choose_table_row_step) = S ((S (S (bcf_predecessor_lmd_universal_current_choose_table_row_step))) * bcf_previous_scale_lmd_universal_current_choose_table)) /\ exists bcf_quotient_lmd_universal_current_choose_table_row_step_previous_right. bcf_previous_code_lmd_universal_current_choose_table = bcf_quotient_lmd_universal_current_choose_table_row_step_previous_right * S ((S (S (bcf_predecessor_lmd_universal_current_choose_table_row_step))) * bcf_previous_scale_lmd_universal_current_choose_table) + (bcf_right_lmd_universal_current_choose_table_row_step))) /\ bcf_value_lmd_universal_current_choose_table_row_step = bcf_left_lmd_universal_current_choose_table_row_step + bcf_right_lmd_universal_current_choose_table_row_step))))))))))) /\ ((((exists bcf_height_lmd_universal_current_choose_decoded_row_code. bcf_height_lmd_universal_current_choose_decoded_row_code + S (bcf_row_code_lmd_universal_current_choose) = S ((S (n)) * bcf_row_code_scale_lmd_universal_current_choose)) /\ exists bcf_quotient_lmd_universal_current_choose_decoded_row_code. bcf_row_code_code_lmd_universal_current_choose = bcf_quotient_lmd_universal_current_choose_decoded_row_code * S ((S (n)) * bcf_row_code_scale_lmd_universal_current_choose) + (bcf_row_code_lmd_universal_current_choose))) /\ ((((exists bcf_height_lmd_universal_current_choose_decoded_row_scale. bcf_height_lmd_universal_current_choose_decoded_row_scale + S (bcf_row_scale_lmd_universal_current_choose) = S ((S (n)) * bcf_row_scale_scale_lmd_universal_current_choose)) /\ exists bcf_quotient_lmd_universal_current_choose_decoded_row_scale. bcf_row_scale_code_lmd_universal_current_choose = bcf_quotient_lmd_universal_current_choose_decoded_row_scale * S ((S (n)) * bcf_row_scale_scale_lmd_universal_current_choose) + (bcf_row_scale_lmd_universal_current_choose))) /\ (((exists bcf_height_lmd_universal_current_choose_decoded_value. bcf_height_lmd_universal_current_choose_decoded_value + S (x13) = S ((S (k)) * bcf_row_scale_lmd_universal_current_choose)) /\ exists bcf_quotient_lmd_universal_current_choose_decoded_value. bcf_row_code_lmd_universal_current_choose = bcf_quotient_lmd_universal_current_choose_decoded_value * S ((S (k)) * bcf_row_scale_lmd_universal_current_choose) + (x13)))))))))
  85. 0085specialize lucas_choose_prefix_point x
  86. 0086specialize lucas_choose_prefix_point x1
  87. 0087specialize lucas_choose_prefix_point x4
  88. 0088specialize lucas_choose_prefix_point x5
  89. 0089specialize lucas_choose_prefix_point x8
  90. 0090specialize lucas_choose_prefix_point x9
  91. 0091specialize lucas_choose_prefix_point (S l)
  92. 0092specialize lucas_choose_prefix_point 0
  93. 0093specialize lucas_choose_prefix_point n
  94. 0094specialize lucas_choose_prefix_point k
  95. 0095specialize lucas_choose_prefix_point x13
  96. 0096apply lucas_choose_prefix_point
  97. 0097exact hquotient_witness_witness
  98. 0098exists l
  99. 0099simp
  100. 0100exact hninitial
  101. 0101exact hkinitial
  102. 0102exact hdecoded_witness
  103. 0103have hsame : x13 = C
  104. 0104specialize choose_functional n
  105. 0105specialize choose_functional k
  106. 0106specialize choose_functional x13
  107. 0107specialize choose_functional C
  108. 0108apply choose_functional
  109. 0109exact hcoefficient
  110. 0110exact hchoose
  111. 0111rewrite hsame at hdecoded_witness
  112. 0112rewrite hsame at hdecoded_witness
  113. 0113have hterminal : ∃ T. BetaAt(x8,x9,l,T)
    Exact native replay linehave hterminal : exists T. (((exists ff_h_lmd_universal_terminal. ff_h_lmd_universal_terminal + S (T) = S ((S (l)) * x9)) /\ exists ff_q_lmd_universal_terminal. x8 = ff_q_lmd_universal_terminal * S ((S (l)) * x9) + (T)))
  114. 0114specialize beta_at_exists x8
  115. 0115specialize beta_at_exists x9
  116. 0116specialize beta_at_exists l
  117. 0117exact beta_at_exists
  118. 0118cases hterminal
  119. 0119have hcongruence : ModEq(p,C,x12)
    Exact native replay linehave hcongruence : (exists lmd_mod_left_universal_congruence lmd_mod_right_universal_congruence. (C) + (p) * lmd_mod_left_universal_congruence = (x12) + (p) * lmd_mod_right_universal_congruence)
  120. 0120specialize lucas_terminating_multidigit_theorem p
  121. 0121specialize lucas_terminating_multidigit_theorem n
  122. 0122specialize lucas_terminating_multidigit_theorem k
  123. 0123specialize lucas_terminating_multidigit_theorem l
  124. 0124specialize lucas_terminating_multidigit_theorem x
  125. 0125specialize lucas_terminating_multidigit_theorem x1
  126. 0126specialize lucas_terminating_multidigit_theorem x2
  127. 0127specialize lucas_terminating_multidigit_theorem x3
  128. 0128specialize lucas_terminating_multidigit_theorem x4
  129. 0129specialize lucas_terminating_multidigit_theorem x5
  130. 0130specialize lucas_terminating_multidigit_theorem x6
  131. 0131specialize lucas_terminating_multidigit_theorem x7
  132. 0132specialize lucas_terminating_multidigit_theorem x8
  133. 0133specialize lucas_terminating_multidigit_theorem x9
  134. 0134specialize lucas_terminating_multidigit_theorem x10
  135. 0135specialize lucas_terminating_multidigit_theorem x11
  136. 0136specialize lucas_terminating_multidigit_theorem x12
  137. 0137specialize lucas_terminating_multidigit_theorem C
  138. 0138specialize lucas_terminating_multidigit_theorem x14
  139. 0139apply lucas_terminating_multidigit_theorem
  140. 0140exact hprime
  141. 0141exact hnchain_witness_witness_witness_witness_left
  142. 0142exact hkchain_witness_witness_witness_witness_left
  143. 0143exact hquotient_witness_witness
  144. 0144exact hdigit_witness_witness
  145. 0145exact hproduct_witness
  146. 0146exact hdecoded_witness
  147. 0147exact hterminal_witness
  148. 0148exact hnchain_witness_witness_witness_witness_right
  149. 0149exact hkchain_witness_witness_witness_witness_right
  150. 0150exists x
  151. 0151exists x1
  152. 0152exists x2
  153. 0153exists x3
  154. 0154exists x4
  155. 0155exists x5
  156. 0156exists x6
  157. 0157exists x7
  158. 0158exists x8
  159. 0159exists x9
  160. 0160exists x10
  161. 0161exists x11
  162. 0162exists x12
  163. 0163split
  164. 0164exact hnchain_witness_witness_witness_witness_left
  165. 0165split
  166. 0166exact hkchain_witness_witness_witness_witness_left
  167. 0167split
  168. 0168exact hnchain_witness_witness_witness_witness_right
  169. 0169split
  170. 0170exact hkchain_witness_witness_witness_witness_right
  171. 0171split
  172. 0172exact hquotient_witness_witness
  173. 0173split
  174. 0174exact hdigit_witness_witness
  175. 0175split
  176. 0176exact hproduct_witness
  177. 0177split
  178. 0178exact hdecoded_witness
  179. 0179exact hcongruence