LU001R · theorem body

lucas_theorem

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

Full constructive Lucas theorem: for every prime p and every relational Choose(n,k,C), explicit terminating beta-coded base-p digit streams and their complete digit-binomial product exist and satisfy C congruent to that product modulo p.

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

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

none
Exact expanded first-order statement
forall p n k C. ((~(p = 1) /\ forall frm_prime_left_lmd_universal_prime frm_prime_right_lmd_universal_prime. p = frm_prime_left_lmd_universal_prime * frm_prime_right_lmd_universal_prime -> frm_prime_left_lmd_universal_prime = 1 \/ frm_prime_right_lmd_universal_prime = 1)) -> (((exists bcf_lt_gap_lmd_universal_input_out_of_range. bcf_lt_gap_lmd_universal_input_out_of_range + S (n) = k) /\ C = 0) \/ ((exists bcf_le_gap_lmd_universal_input_in_range. bcf_le_gap_lmd_universal_input_in_range + (k) = n) /\ (exists bcf_row_code_code_lmd_universal_input bcf_row_code_scale_lmd_universal_input bcf_row_scale_code_lmd_universal_input bcf_row_scale_scale_lmd_universal_input bcf_row_code_lmd_universal_input bcf_row_scale_lmd_universal_input. ((forall bcf_row_index_lmd_universal_input_table. (exists bcf_lt_gap_lmd_universal_input_table_row_bound. bcf_lt_gap_lmd_universal_input_table_row_bound + S (bcf_row_index_lmd_universal_input_table) = S (n)) -> exists bcf_row_code_lmd_universal_input_table bcf_row_scale_lmd_universal_input_table. ((((exists bcf_height_lmd_universal_input_table_decoded_row_code. bcf_height_lmd_universal_input_table_decoded_row_code + S (bcf_row_code_lmd_universal_input_table) = S ((S (bcf_row_index_lmd_universal_input_table)) * bcf_row_code_scale_lmd_universal_input)) /\ exists bcf_quotient_lmd_universal_input_table_decoded_row_code. bcf_row_code_code_lmd_universal_input = bcf_quotient_lmd_universal_input_table_decoded_row_code * S ((S (bcf_row_index_lmd_universal_input_table)) * bcf_row_code_scale_lmd_universal_input) + (bcf_row_code_lmd_universal_input_table))) /\ ((((exists bcf_height_lmd_universal_input_table_decoded_row_scale. bcf_height_lmd_universal_input_table_decoded_row_scale + S (bcf_row_scale_lmd_universal_input_table) = S ((S (bcf_row_index_lmd_universal_input_table)) * bcf_row_scale_scale_lmd_universal_input)) /\ exists bcf_quotient_lmd_universal_input_table_decoded_row_scale. bcf_row_scale_code_lmd_universal_input = bcf_quotient_lmd_universal_input_table_decoded_row_scale * S ((S (bcf_row_index_lmd_universal_input_table)) * bcf_row_scale_scale_lmd_universal_input) + (bcf_row_scale_lmd_universal_input_table))) /\ ((bcf_row_index_lmd_universal_input_table = 0 /\ (forall bcf_index_lmd_universal_input_table_zero_row. (exists bcf_lt_gap_lmd_universal_input_table_zero_row_bound. bcf_lt_gap_lmd_universal_input_table_zero_row_bound + S (bcf_index_lmd_universal_input_table_zero_row) = S (n)) -> exists bcf_value_lmd_universal_input_table_zero_row. ((((exists bcf_height_lmd_universal_input_table_zero_row_entry. bcf_height_lmd_universal_input_table_zero_row_entry + S (bcf_value_lmd_universal_input_table_zero_row) = S ((S (bcf_index_lmd_universal_input_table_zero_row)) * bcf_row_scale_lmd_universal_input_table)) /\ exists bcf_quotient_lmd_universal_input_table_zero_row_entry. bcf_row_code_lmd_universal_input_table = bcf_quotient_lmd_universal_input_table_zero_row_entry * S ((S (bcf_index_lmd_universal_input_table_zero_row)) * bcf_row_scale_lmd_universal_input_table) + (bcf_value_lmd_universal_input_table_zero_row))) /\ ((bcf_index_lmd_universal_input_table_zero_row = 0 /\ bcf_value_lmd_universal_input_table_zero_row = 1) \/ exists bcf_predecessor_lmd_universal_input_table_zero_row. bcf_index_lmd_universal_input_table_zero_row = S bcf_predecessor_lmd_universal_input_table_zero_row /\ bcf_value_lmd_universal_input_table_zero_row = 0)))) \/ exists bcf_predecessor_lmd_universal_input_table bcf_previous_code_lmd_universal_input_table bcf_previous_scale_lmd_universal_input_table. bcf_row_index_lmd_universal_input_table = S bcf_predecessor_lmd_universal_input_table /\ ((((exists bcf_height_lmd_universal_input_table_decoded_previous_code. bcf_height_lmd_universal_input_table_decoded_previous_code + S (bcf_previous_code_lmd_universal_input_table) = S ((S (bcf_predecessor_lmd_universal_input_table)) * bcf_row_code_scale_lmd_universal_input)) /\ exists bcf_quotient_lmd_universal_input_table_decoded_previous_code. bcf_row_code_code_lmd_universal_input = bcf_quotient_lmd_universal_input_table_decoded_previous_code * S ((S (bcf_predecessor_lmd_universal_input_table)) * bcf_row_code_scale_lmd_universal_input) + (bcf_previous_code_lmd_universal_input_table))) /\ ((((exists bcf_height_lmd_universal_input_table_decoded_previous_scale. bcf_height_lmd_universal_input_table_decoded_previous_scale + S (bcf_previous_scale_lmd_universal_input_table) = S ((S (bcf_predecessor_lmd_universal_input_table)) * bcf_row_scale_scale_lmd_universal_input)) /\ exists bcf_quotient_lmd_universal_input_table_decoded_previous_scale. bcf_row_scale_code_lmd_universal_input = bcf_quotient_lmd_universal_input_table_decoded_previous_scale * S ((S (bcf_predecessor_lmd_universal_input_table)) * bcf_row_scale_scale_lmd_universal_input) + (bcf_previous_scale_lmd_universal_input_table))) /\ (forall bcf_index_lmd_universal_input_table_row_step. (exists bcf_lt_gap_lmd_universal_input_table_row_step_bound. bcf_lt_gap_lmd_universal_input_table_row_step_bound + S (bcf_index_lmd_universal_input_table_row_step) = S (n)) -> exists bcf_value_lmd_universal_input_table_row_step. ((((exists bcf_height_lmd_universal_input_table_row_step_entry. bcf_height_lmd_universal_input_table_row_step_entry + S (bcf_value_lmd_universal_input_table_row_step) = S ((S (bcf_index_lmd_universal_input_table_row_step)) * bcf_row_scale_lmd_universal_input_table)) /\ exists bcf_quotient_lmd_universal_input_table_row_step_entry. bcf_row_code_lmd_universal_input_table = bcf_quotient_lmd_universal_input_table_row_step_entry * S ((S (bcf_index_lmd_universal_input_table_row_step)) * bcf_row_scale_lmd_universal_input_table) + (bcf_value_lmd_universal_input_table_row_step))) /\ ((bcf_index_lmd_universal_input_table_row_step = 0 /\ bcf_value_lmd_universal_input_table_row_step = 1) \/ exists bcf_predecessor_lmd_universal_input_table_row_step bcf_left_lmd_universal_input_table_row_step bcf_right_lmd_universal_input_table_row_step. bcf_index_lmd_universal_input_table_row_step = S bcf_predecessor_lmd_universal_input_table_row_step /\ ((((exists bcf_height_lmd_universal_input_table_row_step_previous_left. bcf_height_lmd_universal_input_table_row_step_previous_left + S (bcf_left_lmd_universal_input_table_row_step) = S ((S (bcf_predecessor_lmd_universal_input_table_row_step)) * bcf_previous_scale_lmd_universal_input_table)) /\ exists bcf_quotient_lmd_universal_input_table_row_step_previous_left. bcf_previous_code_lmd_universal_input_table = bcf_quotient_lmd_universal_input_table_row_step_previous_left * S ((S (bcf_predecessor_lmd_universal_input_table_row_step)) * bcf_previous_scale_lmd_universal_input_table) + (bcf_left_lmd_universal_input_table_row_step))) /\ ((((exists bcf_height_lmd_universal_input_table_row_step_previous_right. bcf_height_lmd_universal_input_table_row_step_previous_right + S (bcf_right_lmd_universal_input_table_row_step) = S ((S (S (bcf_predecessor_lmd_universal_input_table_row_step))) * bcf_previous_scale_lmd_universal_input_table)) /\ exists bcf_quotient_lmd_universal_input_table_row_step_previous_right. bcf_previous_code_lmd_universal_input_table = bcf_quotient_lmd_universal_input_table_row_step_previous_right * S ((S (S (bcf_predecessor_lmd_universal_input_table_row_step))) * bcf_previous_scale_lmd_universal_input_table) + (bcf_right_lmd_universal_input_table_row_step))) /\ bcf_value_lmd_universal_input_table_row_step = bcf_left_lmd_universal_input_table_row_step + bcf_right_lmd_universal_input_table_row_step))))))))))) /\ ((((exists bcf_height_lmd_universal_input_decoded_row_code. bcf_height_lmd_universal_input_decoded_row_code + S (bcf_row_code_lmd_universal_input) = S ((S (n)) * bcf_row_code_scale_lmd_universal_input)) /\ exists bcf_quotient_lmd_universal_input_decoded_row_code. bcf_row_code_code_lmd_universal_input = bcf_quotient_lmd_universal_input_decoded_row_code * S ((S (n)) * bcf_row_code_scale_lmd_universal_input) + (bcf_row_code_lmd_universal_input))) /\ ((((exists bcf_height_lmd_universal_input_decoded_row_scale. bcf_height_lmd_universal_input_decoded_row_scale + S (bcf_row_scale_lmd_universal_input) = S ((S (n)) * bcf_row_scale_scale_lmd_universal_input)) /\ exists bcf_quotient_lmd_universal_input_decoded_row_scale. bcf_row_scale_code_lmd_universal_input = bcf_quotient_lmd_universal_input_decoded_row_scale * S ((S (n)) * bcf_row_scale_scale_lmd_universal_input) + (bcf_row_scale_lmd_universal_input))) /\ (((exists bcf_height_lmd_universal_input_decoded_value. bcf_height_lmd_universal_input_decoded_value + S (C) = S ((S (k)) * bcf_row_scale_lmd_universal_input)) /\ exists bcf_quotient_lmd_universal_input_decoded_value. bcf_row_code_lmd_universal_input = bcf_quotient_lmd_universal_input_decoded_value * S ((S (k)) * bcf_row_scale_lmd_universal_input) + (C))))))))) -> exists l. ((exists lmd_gap_universal_n_length. lmd_gap_universal_n_length + S (n) = (l)) /\ ((exists lmd_gap_universal_k_length. lmd_gap_universal_k_length + S (k) = (l)) /\ (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

lt_of_le_of_lt · Stable closed le_add_right · Stable closed le_add_left · Stable closed zero_add · Stable closed LU001Q lucas_theorem_for_length

Direct theorem dependents

none

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

53 script commands · 15 reading checkpoints · 0 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 (1)
01Fix variables and assumptionsL1–6

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 hprime
  6. L6
    intro hchoose
02Construct an explicit witnessL7–7

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

  1. L7
    exists S (n + k)
03Separate the logical casesL8–8

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

  1. L8
    split
04Use earlier factsL9–15

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

  1. L9
    specialize lt_of_le_of_lt n
  2. L10
    specialize lt_of_le_of_lt (n + k)
  3. L11
    specialize lt_of_le_of_lt (S (n + k))
  4. L12
    apply lt_of_le_of_lt
  5. L13
    specialize le_add_right n
  6. L14
    specialize le_add_right k
  7. L15
    exact le_add_right
05Construct an explicit witnessL16–16

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

  1. L16
    exists 0
06Use earlier factsL17–17

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

  1. L17
    apply zero_add
07Separate the logical casesL18–18

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

  1. L18
    split
08Use earlier factsL19–25

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

  1. L19
    specialize lt_of_le_of_lt k
  2. L20
    specialize lt_of_le_of_lt (n + k)
  3. L21
    specialize lt_of_le_of_lt (S (n + k))
  4. L22
    apply lt_of_le_of_lt
  5. L23
    specialize le_add_left k
  6. L24
    specialize le_add_left n
  7. L25
    exact le_add_left
09Construct an explicit witnessL26–26

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

  1. L26
    exists 0
10Use earlier factsL27–36

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

  1. L27
    apply zero_add
  2. L28
    specialize lucas_theorem_for_length p
  3. L29
    specialize lucas_theorem_for_length n
  4. L30
    specialize lucas_theorem_for_length k
  5. L31
    specialize lucas_theorem_for_length C
  6. L32
    specialize lucas_theorem_for_length (S (n + k))
  7. L33
    apply lucas_theorem_for_length
  8. L34
    exact hprime
  9. L35
    specialize lt_of_le_of_lt n
  10. L36
    specialize lt_of_le_of_lt (n + k)
11Use earlier factsL37–41

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

  1. L37
    specialize lt_of_le_of_lt (S (n + k))
  2. L38
    apply lt_of_le_of_lt
  3. L39
    specialize le_add_right n
  4. L40
    specialize le_add_right k
  5. L41
    exact le_add_right
12Construct an explicit witnessL42–42

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

  1. L42
    exists 0
13Use earlier factsL43–50

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

  1. L43
    apply zero_add
  2. L44
    specialize lt_of_le_of_lt k
  3. L45
    specialize lt_of_le_of_lt (n + k)
  4. L46
    specialize lt_of_le_of_lt (S (n + k))
  5. L47
    apply lt_of_le_of_lt
  6. L48
    specialize le_add_left k
  7. L49
    specialize le_add_left n
  8. L50
    exact le_add_left
14Construct an explicit witnessL51–51

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

  1. L51
    exists 0
15Use earlier factsL52–53

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

  1. L52
    apply zero_add
  2. L53
    exact hchoose

Library-wide reading audit

Original defined command ledger · 53 lines
  1. 0001intro p
  2. 0002intro n
  3. 0003intro k
  4. 0004intro C
  5. 0005intro hprime
  6. 0006intro hchoose
  7. 0007exists S (n + k)
  8. 0008split
  9. 0009specialize lt_of_le_of_lt n
  10. 0010specialize lt_of_le_of_lt (n + k)
  11. 0011specialize lt_of_le_of_lt (S (n + k))
  12. 0012apply lt_of_le_of_lt
  13. 0013specialize le_add_right n
  14. 0014specialize le_add_right k
  15. 0015exact le_add_right
  16. 0016exists 0
  17. 0017apply zero_add
  18. 0018split
  19. 0019specialize lt_of_le_of_lt k
  20. 0020specialize lt_of_le_of_lt (n + k)
  21. 0021specialize lt_of_le_of_lt (S (n + k))
  22. 0022apply lt_of_le_of_lt
  23. 0023specialize le_add_left k
  24. 0024specialize le_add_left n
  25. 0025exact le_add_left
  26. 0026exists 0
  27. 0027apply zero_add
  28. 0028specialize lucas_theorem_for_length p
  29. 0029specialize lucas_theorem_for_length n
  30. 0030specialize lucas_theorem_for_length k
  31. 0031specialize lucas_theorem_for_length C
  32. 0032specialize lucas_theorem_for_length (S (n + k))
  33. 0033apply lucas_theorem_for_length
  34. 0034exact hprime
  35. 0035specialize lt_of_le_of_lt n
  36. 0036specialize lt_of_le_of_lt (n + k)
  37. 0037specialize lt_of_le_of_lt (S (n + k))
  38. 0038apply lt_of_le_of_lt
  39. 0039specialize le_add_right n
  40. 0040specialize le_add_right k
  41. 0041exact le_add_right
  42. 0042exists 0
  43. 0043apply zero_add
  44. 0044specialize lt_of_le_of_lt k
  45. 0045specialize lt_of_le_of_lt (n + k)
  46. 0046specialize lt_of_le_of_lt (S (n + k))
  47. 0047apply lt_of_le_of_lt
  48. 0048specialize le_add_left k
  49. 0049specialize le_add_left n
  50. 0050exact le_add_left
  51. 0051exists 0
  52. 0052apply zero_add
  53. 0053exact hchoose