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. ∀ k. ∀ j. ∀ C. Prime(p) → k + j = p → Lt(k,p) → Lt(j,p) → Choose(p,k,C) → Dvd(p,C)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 k j C. ((~(p = 1) /\ forall frm_prime_left_lucas_row_prime frm_prime_right_lucas_row_prime. p = frm_prime_left_lucas_row_prime * frm_prime_right_lucas_row_prime -> frm_prime_left_lucas_row_prime = 1 \/ frm_prime_right_lucas_row_prime = 1)) -> k + j = p -> (exists ldc_lt_row_left. ldc_lt_row_left + S (k) = p) -> (exists ldc_lt_row_right. ldc_lt_row_right + S (j) = p) -> (((exists bcf_lt_gap_lucas_row_choose_out_of_range. bcf_lt_gap_lucas_row_choose_out_of_range + S (p) = k) /\ C = 0) \/ ((exists bcf_le_gap_lucas_row_choose_in_range. bcf_le_gap_lucas_row_choose_in_range + (k) = p) /\ (exists bcf_row_code_code_lucas_row_choose bcf_row_code_scale_lucas_row_choose bcf_row_scale_code_lucas_row_choose bcf_row_scale_scale_lucas_row_choose bcf_row_code_lucas_row_choose bcf_row_scale_lucas_row_choose. ((forall bcf_row_index_lucas_row_choose_table. (exists bcf_lt_gap_lucas_row_choose_table_row_bound. bcf_lt_gap_lucas_row_choose_table_row_bound + S (bcf_row_index_lucas_row_choose_table) = S (p)) -> exists bcf_row_code_lucas_row_choose_table bcf_row_scale_lucas_row_choose_table. ((((exists bcf_height_lucas_row_choose_table_decoded_row_code. bcf_height_lucas_row_choose_table_decoded_row_code + S (bcf_row_code_lucas_row_choose_table) = S ((S (bcf_row_index_lucas_row_choose_table)) * bcf_row_code_scale_lucas_row_choose)) /\ exists bcf_quotient_lucas_row_choose_table_decoded_row_code. bcf_row_code_code_lucas_row_choose = bcf_quotient_lucas_row_choose_table_decoded_row_code * S ((S (bcf_row_index_lucas_row_choose_table)) * bcf_row_code_scale_lucas_row_choose) + (bcf_row_code_lucas_row_choose_table))) /\ ((((exists bcf_height_lucas_row_choose_table_decoded_row_scale. bcf_height_lucas_row_choose_table_decoded_row_scale + S (bcf_row_scale_lucas_row_choose_table) = S ((S (bcf_row_index_lucas_row_choose_table)) * bcf_row_scale_scale_lucas_row_choose)) /\ exists bcf_quotient_lucas_row_choose_table_decoded_row_scale. bcf_row_scale_code_lucas_row_choose = bcf_quotient_lucas_row_choose_table_decoded_row_scale * S ((S (bcf_row_index_lucas_row_choose_table)) * bcf_row_scale_scale_lucas_row_choose) + (bcf_row_scale_lucas_row_choose_table))) /\ ((bcf_row_index_lucas_row_choose_table = 0 /\ (forall bcf_index_lucas_row_choose_table_zero_row. (exists bcf_lt_gap_lucas_row_choose_table_zero_row_bound. bcf_lt_gap_lucas_row_choose_table_zero_row_bound + S (bcf_index_lucas_row_choose_table_zero_row) = S (p)) -> exists bcf_value_lucas_row_choose_table_zero_row. ((((exists bcf_height_lucas_row_choose_table_zero_row_entry. bcf_height_lucas_row_choose_table_zero_row_entry + S (bcf_value_lucas_row_choose_table_zero_row) = S ((S (bcf_index_lucas_row_choose_table_zero_row)) * bcf_row_scale_lucas_row_choose_table)) /\ exists bcf_quotient_lucas_row_choose_table_zero_row_entry. bcf_row_code_lucas_row_choose_table = bcf_quotient_lucas_row_choose_table_zero_row_entry * S ((S (bcf_index_lucas_row_choose_table_zero_row)) * bcf_row_scale_lucas_row_choose_table) + (bcf_value_lucas_row_choose_table_zero_row))) /\ ((bcf_index_lucas_row_choose_table_zero_row = 0 /\ bcf_value_lucas_row_choose_table_zero_row = 1) \/ exists bcf_predecessor_lucas_row_choose_table_zero_row. bcf_index_lucas_row_choose_table_zero_row = S bcf_predecessor_lucas_row_choose_table_zero_row /\ bcf_value_lucas_row_choose_table_zero_row = 0)))) \/ exists bcf_predecessor_lucas_row_choose_table bcf_previous_code_lucas_row_choose_table bcf_previous_scale_lucas_row_choose_table. bcf_row_index_lucas_row_choose_table = S bcf_predecessor_lucas_row_choose_table /\ ((((exists bcf_height_lucas_row_choose_table_decoded_previous_code. bcf_height_lucas_row_choose_table_decoded_previous_code + S (bcf_previous_code_lucas_row_choose_table) = S ((S (bcf_predecessor_lucas_row_choose_table)) * bcf_row_code_scale_lucas_row_choose)) /\ exists bcf_quotient_lucas_row_choose_table_decoded_previous_code. bcf_row_code_code_lucas_row_choose = bcf_quotient_lucas_row_choose_table_decoded_previous_code * S ((S (bcf_predecessor_lucas_row_choose_table)) * bcf_row_code_scale_lucas_row_choose) + (bcf_previous_code_lucas_row_choose_table))) /\ ((((exists bcf_height_lucas_row_choose_table_decoded_previous_scale. bcf_height_lucas_row_choose_table_decoded_previous_scale + S (bcf_previous_scale_lucas_row_choose_table) = S ((S (bcf_predecessor_lucas_row_choose_table)) * bcf_row_scale_scale_lucas_row_choose)) /\ exists bcf_quotient_lucas_row_choose_table_decoded_previous_scale. bcf_row_scale_code_lucas_row_choose = bcf_quotient_lucas_row_choose_table_decoded_previous_scale * S ((S (bcf_predecessor_lucas_row_choose_table)) * bcf_row_scale_scale_lucas_row_choose) + (bcf_previous_scale_lucas_row_choose_table))) /\ (forall bcf_index_lucas_row_choose_table_row_step. (exists bcf_lt_gap_lucas_row_choose_table_row_step_bound. bcf_lt_gap_lucas_row_choose_table_row_step_bound + S (bcf_index_lucas_row_choose_table_row_step) = S (p)) -> exists bcf_value_lucas_row_choose_table_row_step. ((((exists bcf_height_lucas_row_choose_table_row_step_entry. bcf_height_lucas_row_choose_table_row_step_entry + S (bcf_value_lucas_row_choose_table_row_step) = S ((S (bcf_index_lucas_row_choose_table_row_step)) * bcf_row_scale_lucas_row_choose_table)) /\ exists bcf_quotient_lucas_row_choose_table_row_step_entry. bcf_row_code_lucas_row_choose_table = bcf_quotient_lucas_row_choose_table_row_step_entry * S ((S (bcf_index_lucas_row_choose_table_row_step)) * bcf_row_scale_lucas_row_choose_table) + (bcf_value_lucas_row_choose_table_row_step))) /\ ((bcf_index_lucas_row_choose_table_row_step = 0 /\ bcf_value_lucas_row_choose_table_row_step = 1) \/ exists bcf_predecessor_lucas_row_choose_table_row_step bcf_left_lucas_row_choose_table_row_step bcf_right_lucas_row_choose_table_row_step. bcf_index_lucas_row_choose_table_row_step = S bcf_predecessor_lucas_row_choose_table_row_step /\ ((((exists bcf_height_lucas_row_choose_table_row_step_previous_left. bcf_height_lucas_row_choose_table_row_step_previous_left + S (bcf_left_lucas_row_choose_table_row_step) = S ((S (bcf_predecessor_lucas_row_choose_table_row_step)) * bcf_previous_scale_lucas_row_choose_table)) /\ exists bcf_quotient_lucas_row_choose_table_row_step_previous_left. bcf_previous_code_lucas_row_choose_table = bcf_quotient_lucas_row_choose_table_row_step_previous_left * S ((S (bcf_predecessor_lucas_row_choose_table_row_step)) * bcf_previous_scale_lucas_row_choose_table) + (bcf_left_lucas_row_choose_table_row_step))) /\ ((((exists bcf_height_lucas_row_choose_table_row_step_previous_right. bcf_height_lucas_row_choose_table_row_step_previous_right + S (bcf_right_lucas_row_choose_table_row_step) = S ((S (S (bcf_predecessor_lucas_row_choose_table_row_step))) * bcf_previous_scale_lucas_row_choose_table)) /\ exists bcf_quotient_lucas_row_choose_table_row_step_previous_right. bcf_previous_code_lucas_row_choose_table = bcf_quotient_lucas_row_choose_table_row_step_previous_right * S ((S (S (bcf_predecessor_lucas_row_choose_table_row_step))) * bcf_previous_scale_lucas_row_choose_table) + (bcf_right_lucas_row_choose_table_row_step))) /\ bcf_value_lucas_row_choose_table_row_step = bcf_left_lucas_row_choose_table_row_step + bcf_right_lucas_row_choose_table_row_step))))))))))) /\ ((((exists bcf_height_lucas_row_choose_decoded_row_code. bcf_height_lucas_row_choose_decoded_row_code + S (bcf_row_code_lucas_row_choose) = S ((S (p)) * bcf_row_code_scale_lucas_row_choose)) /\ exists bcf_quotient_lucas_row_choose_decoded_row_code. bcf_row_code_code_lucas_row_choose = bcf_quotient_lucas_row_choose_decoded_row_code * S ((S (p)) * bcf_row_code_scale_lucas_row_choose) + (bcf_row_code_lucas_row_choose))) /\ ((((exists bcf_height_lucas_row_choose_decoded_row_scale. bcf_height_lucas_row_choose_decoded_row_scale + S (bcf_row_scale_lucas_row_choose) = S ((S (p)) * bcf_row_scale_scale_lucas_row_choose)) /\ exists bcf_quotient_lucas_row_choose_decoded_row_scale. bcf_row_scale_code_lucas_row_choose = bcf_quotient_lucas_row_choose_decoded_row_scale * S ((S (p)) * bcf_row_scale_scale_lucas_row_choose) + (bcf_row_scale_lucas_row_choose))) /\ (((exists bcf_height_lucas_row_choose_decoded_value. bcf_height_lucas_row_choose_decoded_value + S (C) = S ((S (k)) * bcf_row_scale_lucas_row_choose)) /\ exists bcf_quotient_lucas_row_choose_decoded_value. bcf_row_code_lucas_row_choose = bcf_quotient_lucas_row_choose_decoded_value * S ((S (k)) * bcf_row_scale_lucas_row_choose) + (C))))))))) -> (exists ldc_quotient_row. C = p * ldc_quotient_row)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
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.
01Fix variables and assumptionsL1–9
02Use earlier factsL10–19
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L10
specialize choose_prime_divides_between p - L11
specialize choose_prime_divides_between k - L12
specialize choose_prime_divides_between j - L13
specialize choose_prime_divides_between p - L14
specialize choose_prime_divides_between C - L15
apply choose_prime_divides_between - L16
exact hsum - L17
exact hp - L18
exact hk - L19
exact hj
Original defined command ledger · 22 lines
- 0001
intro p - 0002
intro k - 0003
intro j - 0004
intro C - 0005
intro hp - 0006
intro hsum - 0007
intro hk - 0008
intro hj - 0009
intro hchoose - 0010
specialize choose_prime_divides_between p - 0011
specialize choose_prime_divides_between k - 0012
specialize choose_prime_divides_between j - 0013
specialize choose_prime_divides_between p - 0014
specialize choose_prime_divides_between C - 0015
apply choose_prime_divides_between - 0016
exact hsum - 0017
exact hp - 0018
exact hk - 0019
exact hj - 0020
specialize le_refl p - 0021
exact le_refl - 0022
exact hchoose