BT00RP · Bertrand theorem

prime_factorial_valuation_succ

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

A successor factorial valuation is the sum of the predecessor and successor-factor valuations.

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. ∀ sn. ∀ e. ∀ f. ∀ g. sn = S n → Prime(p)FactorialValuation(p,n,e)PowerValuation(p,sn,f)FactorialValuation(p,sn,g) → g = e + f

Every purple notation token opens its conservative definition. Expanding the displayed statement recovers the exact first-order Peano-arithmetic formula checked by the unchanged kernel.

Definitions used by this theorem

In the theorem statement

4 occurrences

In local proof propositions

1 occurrences

Exact expanded native-PA statement
forall p n sn e f g. sn = S n -> ((~(p = 1) /\ forall frm_prime_left_bfv_prime frm_prime_right_bfv_prime. p = frm_prime_left_bfv_prime * frm_prime_right_bfv_prime -> frm_prime_left_bfv_prime = 1 \/ frm_prime_right_bfv_prime = 1)) -> (exists bfv_factorial_bfv_successor_predecessor. ((exists ff_b_bfv_successor_predecessor_factorial ff_c_bfv_successor_predecessor_factorial. ((forall ff_i_bfv_successor_predecessor_factorial_range. (exists ff_lt_bfv_successor_predecessor_factorial_range_bound. ff_lt_bfv_successor_predecessor_factorial_range_bound + S ff_i_bfv_successor_predecessor_factorial_range = n) -> (((exists ff_h_bfv_successor_predecessor_factorial_range_decoded. ff_h_bfv_successor_predecessor_factorial_range_decoded + S (1 + ff_i_bfv_successor_predecessor_factorial_range) = S ((S (ff_i_bfv_successor_predecessor_factorial_range)) * ff_c_bfv_successor_predecessor_factorial)) /\ exists ff_q_bfv_successor_predecessor_factorial_range_decoded. ff_b_bfv_successor_predecessor_factorial = ff_q_bfv_successor_predecessor_factorial_range_decoded * S ((S (ff_i_bfv_successor_predecessor_factorial_range)) * ff_c_bfv_successor_predecessor_factorial) + (1 + ff_i_bfv_successor_predecessor_factorial_range)))) /\ (exists ff_u_bfv_successor_predecessor_factorial_product ff_v_bfv_successor_predecessor_factorial_product. ((((exists ff_h_bfv_successor_predecessor_factorial_product_start. ff_h_bfv_successor_predecessor_factorial_product_start + S (1) = S ((S (0)) * ff_v_bfv_successor_predecessor_factorial_product)) /\ exists ff_q_bfv_successor_predecessor_factorial_product_start. ff_u_bfv_successor_predecessor_factorial_product = ff_q_bfv_successor_predecessor_factorial_product_start * S ((S (0)) * ff_v_bfv_successor_predecessor_factorial_product) + (1))) /\ ((((exists ff_h_bfv_successor_predecessor_factorial_product_terminal. ff_h_bfv_successor_predecessor_factorial_product_terminal + S (bfv_factorial_bfv_successor_predecessor) = S ((S (n)) * ff_v_bfv_successor_predecessor_factorial_product)) /\ exists ff_q_bfv_successor_predecessor_factorial_product_terminal. ff_u_bfv_successor_predecessor_factorial_product = ff_q_bfv_successor_predecessor_factorial_product_terminal * S ((S (n)) * ff_v_bfv_successor_predecessor_factorial_product) + (bfv_factorial_bfv_successor_predecessor))) /\ forall ff_i_bfv_successor_predecessor_factorial_product. (exists ff_lt_bfv_successor_predecessor_factorial_product_bound. ff_lt_bfv_successor_predecessor_factorial_product_bound + S ff_i_bfv_successor_predecessor_factorial_product = n) -> exists ff_p_bfv_successor_predecessor_factorial_product ff_r_bfv_successor_predecessor_factorial_product ff_s_bfv_successor_predecessor_factorial_product. ((((exists ff_h_bfv_successor_predecessor_factorial_product_factor. ff_h_bfv_successor_predecessor_factorial_product_factor + S (ff_p_bfv_successor_predecessor_factorial_product) = S ((S (ff_i_bfv_successor_predecessor_factorial_product)) * ff_c_bfv_successor_predecessor_factorial)) /\ exists ff_q_bfv_successor_predecessor_factorial_product_factor. ff_b_bfv_successor_predecessor_factorial = ff_q_bfv_successor_predecessor_factorial_product_factor * S ((S (ff_i_bfv_successor_predecessor_factorial_product)) * ff_c_bfv_successor_predecessor_factorial) + (ff_p_bfv_successor_predecessor_factorial_product))) /\ ((((exists ff_h_bfv_successor_predecessor_factorial_product_partial. ff_h_bfv_successor_predecessor_factorial_product_partial + S (ff_r_bfv_successor_predecessor_factorial_product) = S ((S (ff_i_bfv_successor_predecessor_factorial_product)) * ff_v_bfv_successor_predecessor_factorial_product)) /\ exists ff_q_bfv_successor_predecessor_factorial_product_partial. ff_u_bfv_successor_predecessor_factorial_product = ff_q_bfv_successor_predecessor_factorial_product_partial * S ((S (ff_i_bfv_successor_predecessor_factorial_product)) * ff_v_bfv_successor_predecessor_factorial_product) + (ff_r_bfv_successor_predecessor_factorial_product))) /\ ((((exists ff_h_bfv_successor_predecessor_factorial_product_successor. ff_h_bfv_successor_predecessor_factorial_product_successor + S (ff_s_bfv_successor_predecessor_factorial_product) = S ((S (S ff_i_bfv_successor_predecessor_factorial_product)) * ff_v_bfv_successor_predecessor_factorial_product)) /\ exists ff_q_bfv_successor_predecessor_factorial_product_successor. ff_u_bfv_successor_predecessor_factorial_product = ff_q_bfv_successor_predecessor_factorial_product_successor * S ((S (S ff_i_bfv_successor_predecessor_factorial_product)) * ff_v_bfv_successor_predecessor_factorial_product) + (ff_s_bfv_successor_predecessor_factorial_product))) /\ ff_s_bfv_successor_predecessor_factorial_product = ff_r_bfv_successor_predecessor_factorial_product * ff_p_bfv_successor_predecessor_factorial_product)))))))) /\ (((exists bpv_gap_bfv_successor_predecessor_valuation_exponent_bound. bpv_gap_bfv_successor_predecessor_valuation_exponent_bound + e = bfv_factorial_bfv_successor_predecessor) /\ (exists bpv_result_bfv_successor_predecessor_valuation_selected. ((exists ff_b_bfv_successor_predecessor_valuation_selected_power ff_c_bfv_successor_predecessor_valuation_selected_power. ((forall ff_i_bfv_successor_predecessor_valuation_selected_power_repeat. (exists ff_lt_bfv_successor_predecessor_valuation_selected_power_repeat_bound. ff_lt_bfv_successor_predecessor_valuation_selected_power_repeat_bound + S ff_i_bfv_successor_predecessor_valuation_selected_power_repeat = e) -> (((exists ff_h_bfv_successor_predecessor_valuation_selected_power_repeat_decoded. ff_h_bfv_successor_predecessor_valuation_selected_power_repeat_decoded + S (p) = S ((S (ff_i_bfv_successor_predecessor_valuation_selected_power_repeat)) * ff_c_bfv_successor_predecessor_valuation_selected_power)) /\ exists ff_q_bfv_successor_predecessor_valuation_selected_power_repeat_decoded. ff_b_bfv_successor_predecessor_valuation_selected_power = ff_q_bfv_successor_predecessor_valuation_selected_power_repeat_decoded * S ((S (ff_i_bfv_successor_predecessor_valuation_selected_power_repeat)) * ff_c_bfv_successor_predecessor_valuation_selected_power) + (p)))) /\ (exists ff_u_bfv_successor_predecessor_valuation_selected_power_product ff_v_bfv_successor_predecessor_valuation_selected_power_product. ((((exists ff_h_bfv_successor_predecessor_valuation_selected_power_product_start. ff_h_bfv_successor_predecessor_valuation_selected_power_product_start + S (1) = S ((S (0)) * ff_v_bfv_successor_predecessor_valuation_selected_power_product)) /\ exists ff_q_bfv_successor_predecessor_valuation_selected_power_product_start. ff_u_bfv_successor_predecessor_valuation_selected_power_product = ff_q_bfv_successor_predecessor_valuation_selected_power_product_start * S ((S (0)) * ff_v_bfv_successor_predecessor_valuation_selected_power_product) + (1))) /\ ((((exists ff_h_bfv_successor_predecessor_valuation_selected_power_product_terminal. ff_h_bfv_successor_predecessor_valuation_selected_power_product_terminal + S (bpv_result_bfv_successor_predecessor_valuation_selected) = S ((S (e)) * ff_v_bfv_successor_predecessor_valuation_selected_power_product)) /\ exists ff_q_bfv_successor_predecessor_valuation_selected_power_product_terminal. ff_u_bfv_successor_predecessor_valuation_selected_power_product = ff_q_bfv_successor_predecessor_valuation_selected_power_product_terminal * S ((S (e)) * ff_v_bfv_successor_predecessor_valuation_selected_power_product) + (bpv_result_bfv_successor_predecessor_valuation_selected))) /\ forall ff_i_bfv_successor_predecessor_valuation_selected_power_product. (exists ff_lt_bfv_successor_predecessor_valuation_selected_power_product_bound. ff_lt_bfv_successor_predecessor_valuation_selected_power_product_bound + S ff_i_bfv_successor_predecessor_valuation_selected_power_product = e) -> exists ff_p_bfv_successor_predecessor_valuation_selected_power_product ff_r_bfv_successor_predecessor_valuation_selected_power_product ff_s_bfv_successor_predecessor_valuation_selected_power_product. ((((exists ff_h_bfv_successor_predecessor_valuation_selected_power_product_factor. ff_h_bfv_successor_predecessor_valuation_selected_power_product_factor + S (ff_p_bfv_successor_predecessor_valuation_selected_power_product) = S ((S (ff_i_bfv_successor_predecessor_valuation_selected_power_product)) * ff_c_bfv_successor_predecessor_valuation_selected_power)) /\ exists ff_q_bfv_successor_predecessor_valuation_selected_power_product_factor. ff_b_bfv_successor_predecessor_valuation_selected_power = ff_q_bfv_successor_predecessor_valuation_selected_power_product_factor * S ((S (ff_i_bfv_successor_predecessor_valuation_selected_power_product)) * ff_c_bfv_successor_predecessor_valuation_selected_power) + (ff_p_bfv_successor_predecessor_valuation_selected_power_product))) /\ ((((exists ff_h_bfv_successor_predecessor_valuation_selected_power_product_partial. ff_h_bfv_successor_predecessor_valuation_selected_power_product_partial + S (ff_r_bfv_successor_predecessor_valuation_selected_power_product) = S ((S (ff_i_bfv_successor_predecessor_valuation_selected_power_product)) * ff_v_bfv_successor_predecessor_valuation_selected_power_product)) /\ exists ff_q_bfv_successor_predecessor_valuation_selected_power_product_partial. ff_u_bfv_successor_predecessor_valuation_selected_power_product = ff_q_bfv_successor_predecessor_valuation_selected_power_product_partial * S ((S (ff_i_bfv_successor_predecessor_valuation_selected_power_product)) * ff_v_bfv_successor_predecessor_valuation_selected_power_product) + (ff_r_bfv_successor_predecessor_valuation_selected_power_product))) /\ ((((exists ff_h_bfv_successor_predecessor_valuation_selected_power_product_successor. ff_h_bfv_successor_predecessor_valuation_selected_power_product_successor + S (ff_s_bfv_successor_predecessor_valuation_selected_power_product) = S ((S (S ff_i_bfv_successor_predecessor_valuation_selected_power_product)) * ff_v_bfv_successor_predecessor_valuation_selected_power_product)) /\ exists ff_q_bfv_successor_predecessor_valuation_selected_power_product_successor. ff_u_bfv_successor_predecessor_valuation_selected_power_product = ff_q_bfv_successor_predecessor_valuation_selected_power_product_successor * S ((S (S ff_i_bfv_successor_predecessor_valuation_selected_power_product)) * ff_v_bfv_successor_predecessor_valuation_selected_power_product) + (ff_s_bfv_successor_predecessor_valuation_selected_power_product))) /\ ff_s_bfv_successor_predecessor_valuation_selected_power_product = ff_r_bfv_successor_predecessor_valuation_selected_power_product * ff_p_bfv_successor_predecessor_valuation_selected_power_product)))))))) /\ (exists bpv_factor_bfv_successor_predecessor_valuation_selected_divides. bfv_factorial_bfv_successor_predecessor = bpv_result_bfv_successor_predecessor_valuation_selected * bpv_factor_bfv_successor_predecessor_valuation_selected_divides)))) /\ forall bpv_candidate_bfv_successor_predecessor_valuation. (exists bpv_gap_bfv_successor_predecessor_valuation_candidate_bound. bpv_gap_bfv_successor_predecessor_valuation_candidate_bound + bpv_candidate_bfv_successor_predecessor_valuation = bfv_factorial_bfv_successor_predecessor) -> (exists bpv_result_bfv_successor_predecessor_valuation_candidate. ((exists ff_b_bfv_successor_predecessor_valuation_candidate_power ff_c_bfv_successor_predecessor_valuation_candidate_power. ((forall ff_i_bfv_successor_predecessor_valuation_candidate_power_repeat. (exists ff_lt_bfv_successor_predecessor_valuation_candidate_power_repeat_bound. ff_lt_bfv_successor_predecessor_valuation_candidate_power_repeat_bound + S ff_i_bfv_successor_predecessor_valuation_candidate_power_repeat = bpv_candidate_bfv_successor_predecessor_valuation) -> (((exists ff_h_bfv_successor_predecessor_valuation_candidate_power_repeat_decoded. ff_h_bfv_successor_predecessor_valuation_candidate_power_repeat_decoded + S (p) = S ((S (ff_i_bfv_successor_predecessor_valuation_candidate_power_repeat)) * ff_c_bfv_successor_predecessor_valuation_candidate_power)) /\ exists ff_q_bfv_successor_predecessor_valuation_candidate_power_repeat_decoded. ff_b_bfv_successor_predecessor_valuation_candidate_power = ff_q_bfv_successor_predecessor_valuation_candidate_power_repeat_decoded * S ((S (ff_i_bfv_successor_predecessor_valuation_candidate_power_repeat)) * ff_c_bfv_successor_predecessor_valuation_candidate_power) + (p)))) /\ (exists ff_u_bfv_successor_predecessor_valuation_candidate_power_product ff_v_bfv_successor_predecessor_valuation_candidate_power_product. ((((exists ff_h_bfv_successor_predecessor_valuation_candidate_power_product_start. ff_h_bfv_successor_predecessor_valuation_candidate_power_product_start + S (1) = S ((S (0)) * ff_v_bfv_successor_predecessor_valuation_candidate_power_product)) /\ exists ff_q_bfv_successor_predecessor_valuation_candidate_power_product_start. ff_u_bfv_successor_predecessor_valuation_candidate_power_product = ff_q_bfv_successor_predecessor_valuation_candidate_power_product_start * S ((S (0)) * ff_v_bfv_successor_predecessor_valuation_candidate_power_product) + (1))) /\ ((((exists ff_h_bfv_successor_predecessor_valuation_candidate_power_product_terminal. ff_h_bfv_successor_predecessor_valuation_candidate_power_product_terminal + S (bpv_result_bfv_successor_predecessor_valuation_candidate) = S ((S (bpv_candidate_bfv_successor_predecessor_valuation)) * ff_v_bfv_successor_predecessor_valuation_candidate_power_product)) /\ exists ff_q_bfv_successor_predecessor_valuation_candidate_power_product_terminal. ff_u_bfv_successor_predecessor_valuation_candidate_power_product = ff_q_bfv_successor_predecessor_valuation_candidate_power_product_terminal * S ((S (bpv_candidate_bfv_successor_predecessor_valuation)) * ff_v_bfv_successor_predecessor_valuation_candidate_power_product) + (bpv_result_bfv_successor_predecessor_valuation_candidate))) /\ forall ff_i_bfv_successor_predecessor_valuation_candidate_power_product. (exists ff_lt_bfv_successor_predecessor_valuation_candidate_power_product_bound. ff_lt_bfv_successor_predecessor_valuation_candidate_power_product_bound + S ff_i_bfv_successor_predecessor_valuation_candidate_power_product = bpv_candidate_bfv_successor_predecessor_valuation) -> exists ff_p_bfv_successor_predecessor_valuation_candidate_power_product ff_r_bfv_successor_predecessor_valuation_candidate_power_product ff_s_bfv_successor_predecessor_valuation_candidate_power_product. ((((exists ff_h_bfv_successor_predecessor_valuation_candidate_power_product_factor. ff_h_bfv_successor_predecessor_valuation_candidate_power_product_factor + S (ff_p_bfv_successor_predecessor_valuation_candidate_power_product) = S ((S (ff_i_bfv_successor_predecessor_valuation_candidate_power_product)) * ff_c_bfv_successor_predecessor_valuation_candidate_power)) /\ exists ff_q_bfv_successor_predecessor_valuation_candidate_power_product_factor. ff_b_bfv_successor_predecessor_valuation_candidate_power = ff_q_bfv_successor_predecessor_valuation_candidate_power_product_factor * S ((S (ff_i_bfv_successor_predecessor_valuation_candidate_power_product)) * ff_c_bfv_successor_predecessor_valuation_candidate_power) + (ff_p_bfv_successor_predecessor_valuation_candidate_power_product))) /\ ((((exists ff_h_bfv_successor_predecessor_valuation_candidate_power_product_partial. ff_h_bfv_successor_predecessor_valuation_candidate_power_product_partial + S (ff_r_bfv_successor_predecessor_valuation_candidate_power_product) = S ((S (ff_i_bfv_successor_predecessor_valuation_candidate_power_product)) * ff_v_bfv_successor_predecessor_valuation_candidate_power_product)) /\ exists ff_q_bfv_successor_predecessor_valuation_candidate_power_product_partial. ff_u_bfv_successor_predecessor_valuation_candidate_power_product = ff_q_bfv_successor_predecessor_valuation_candidate_power_product_partial * S ((S (ff_i_bfv_successor_predecessor_valuation_candidate_power_product)) * ff_v_bfv_successor_predecessor_valuation_candidate_power_product) + (ff_r_bfv_successor_predecessor_valuation_candidate_power_product))) /\ ((((exists ff_h_bfv_successor_predecessor_valuation_candidate_power_product_successor. ff_h_bfv_successor_predecessor_valuation_candidate_power_product_successor + S (ff_s_bfv_successor_predecessor_valuation_candidate_power_product) = S ((S (S ff_i_bfv_successor_predecessor_valuation_candidate_power_product)) * ff_v_bfv_successor_predecessor_valuation_candidate_power_product)) /\ exists ff_q_bfv_successor_predecessor_valuation_candidate_power_product_successor. ff_u_bfv_successor_predecessor_valuation_candidate_power_product = ff_q_bfv_successor_predecessor_valuation_candidate_power_product_successor * S ((S (S ff_i_bfv_successor_predecessor_valuation_candidate_power_product)) * ff_v_bfv_successor_predecessor_valuation_candidate_power_product) + (ff_s_bfv_successor_predecessor_valuation_candidate_power_product))) /\ ff_s_bfv_successor_predecessor_valuation_candidate_power_product = ff_r_bfv_successor_predecessor_valuation_candidate_power_product * ff_p_bfv_successor_predecessor_valuation_candidate_power_product)))))))) /\ (exists bpv_factor_bfv_successor_predecessor_valuation_candidate_divides. bfv_factorial_bfv_successor_predecessor = bpv_result_bfv_successor_predecessor_valuation_candidate * bpv_factor_bfv_successor_predecessor_valuation_candidate_divides))) -> (exists bpv_gap_bfv_successor_predecessor_valuation_maximal. bpv_gap_bfv_successor_predecessor_valuation_maximal + bpv_candidate_bfv_successor_predecessor_valuation = e)))) -> (((exists bpv_gap_bfv_successor_factor_exponent_bound. bpv_gap_bfv_successor_factor_exponent_bound + f = sn) /\ (exists bpv_result_bfv_successor_factor_selected. ((exists ff_b_bfv_successor_factor_selected_power ff_c_bfv_successor_factor_selected_power. ((forall ff_i_bfv_successor_factor_selected_power_repeat. (exists ff_lt_bfv_successor_factor_selected_power_repeat_bound. ff_lt_bfv_successor_factor_selected_power_repeat_bound + S ff_i_bfv_successor_factor_selected_power_repeat = f) -> (((exists ff_h_bfv_successor_factor_selected_power_repeat_decoded. ff_h_bfv_successor_factor_selected_power_repeat_decoded + S (p) = S ((S (ff_i_bfv_successor_factor_selected_power_repeat)) * ff_c_bfv_successor_factor_selected_power)) /\ exists ff_q_bfv_successor_factor_selected_power_repeat_decoded. ff_b_bfv_successor_factor_selected_power = ff_q_bfv_successor_factor_selected_power_repeat_decoded * S ((S (ff_i_bfv_successor_factor_selected_power_repeat)) * ff_c_bfv_successor_factor_selected_power) + (p)))) /\ (exists ff_u_bfv_successor_factor_selected_power_product ff_v_bfv_successor_factor_selected_power_product. ((((exists ff_h_bfv_successor_factor_selected_power_product_start. ff_h_bfv_successor_factor_selected_power_product_start + S (1) = S ((S (0)) * ff_v_bfv_successor_factor_selected_power_product)) /\ exists ff_q_bfv_successor_factor_selected_power_product_start. ff_u_bfv_successor_factor_selected_power_product = ff_q_bfv_successor_factor_selected_power_product_start * S ((S (0)) * ff_v_bfv_successor_factor_selected_power_product) + (1))) /\ ((((exists ff_h_bfv_successor_factor_selected_power_product_terminal. ff_h_bfv_successor_factor_selected_power_product_terminal + S (bpv_result_bfv_successor_factor_selected) = S ((S (f)) * ff_v_bfv_successor_factor_selected_power_product)) /\ exists ff_q_bfv_successor_factor_selected_power_product_terminal. ff_u_bfv_successor_factor_selected_power_product = ff_q_bfv_successor_factor_selected_power_product_terminal * S ((S (f)) * ff_v_bfv_successor_factor_selected_power_product) + (bpv_result_bfv_successor_factor_selected))) /\ forall ff_i_bfv_successor_factor_selected_power_product. (exists ff_lt_bfv_successor_factor_selected_power_product_bound. ff_lt_bfv_successor_factor_selected_power_product_bound + S ff_i_bfv_successor_factor_selected_power_product = f) -> exists ff_p_bfv_successor_factor_selected_power_product ff_r_bfv_successor_factor_selected_power_product ff_s_bfv_successor_factor_selected_power_product. ((((exists ff_h_bfv_successor_factor_selected_power_product_factor. ff_h_bfv_successor_factor_selected_power_product_factor + S (ff_p_bfv_successor_factor_selected_power_product) = S ((S (ff_i_bfv_successor_factor_selected_power_product)) * ff_c_bfv_successor_factor_selected_power)) /\ exists ff_q_bfv_successor_factor_selected_power_product_factor. ff_b_bfv_successor_factor_selected_power = ff_q_bfv_successor_factor_selected_power_product_factor * S ((S (ff_i_bfv_successor_factor_selected_power_product)) * ff_c_bfv_successor_factor_selected_power) + (ff_p_bfv_successor_factor_selected_power_product))) /\ ((((exists ff_h_bfv_successor_factor_selected_power_product_partial. ff_h_bfv_successor_factor_selected_power_product_partial + S (ff_r_bfv_successor_factor_selected_power_product) = S ((S (ff_i_bfv_successor_factor_selected_power_product)) * ff_v_bfv_successor_factor_selected_power_product)) /\ exists ff_q_bfv_successor_factor_selected_power_product_partial. ff_u_bfv_successor_factor_selected_power_product = ff_q_bfv_successor_factor_selected_power_product_partial * S ((S (ff_i_bfv_successor_factor_selected_power_product)) * ff_v_bfv_successor_factor_selected_power_product) + (ff_r_bfv_successor_factor_selected_power_product))) /\ ((((exists ff_h_bfv_successor_factor_selected_power_product_successor. ff_h_bfv_successor_factor_selected_power_product_successor + S (ff_s_bfv_successor_factor_selected_power_product) = S ((S (S ff_i_bfv_successor_factor_selected_power_product)) * ff_v_bfv_successor_factor_selected_power_product)) /\ exists ff_q_bfv_successor_factor_selected_power_product_successor. ff_u_bfv_successor_factor_selected_power_product = ff_q_bfv_successor_factor_selected_power_product_successor * S ((S (S ff_i_bfv_successor_factor_selected_power_product)) * ff_v_bfv_successor_factor_selected_power_product) + (ff_s_bfv_successor_factor_selected_power_product))) /\ ff_s_bfv_successor_factor_selected_power_product = ff_r_bfv_successor_factor_selected_power_product * ff_p_bfv_successor_factor_selected_power_product)))))))) /\ (exists bpv_factor_bfv_successor_factor_selected_divides. sn = bpv_result_bfv_successor_factor_selected * bpv_factor_bfv_successor_factor_selected_divides)))) /\ forall bpv_candidate_bfv_successor_factor. (exists bpv_gap_bfv_successor_factor_candidate_bound. bpv_gap_bfv_successor_factor_candidate_bound + bpv_candidate_bfv_successor_factor = sn) -> (exists bpv_result_bfv_successor_factor_candidate. ((exists ff_b_bfv_successor_factor_candidate_power ff_c_bfv_successor_factor_candidate_power. ((forall ff_i_bfv_successor_factor_candidate_power_repeat. (exists ff_lt_bfv_successor_factor_candidate_power_repeat_bound. ff_lt_bfv_successor_factor_candidate_power_repeat_bound + S ff_i_bfv_successor_factor_candidate_power_repeat = bpv_candidate_bfv_successor_factor) -> (((exists ff_h_bfv_successor_factor_candidate_power_repeat_decoded. ff_h_bfv_successor_factor_candidate_power_repeat_decoded + S (p) = S ((S (ff_i_bfv_successor_factor_candidate_power_repeat)) * ff_c_bfv_successor_factor_candidate_power)) /\ exists ff_q_bfv_successor_factor_candidate_power_repeat_decoded. ff_b_bfv_successor_factor_candidate_power = ff_q_bfv_successor_factor_candidate_power_repeat_decoded * S ((S (ff_i_bfv_successor_factor_candidate_power_repeat)) * ff_c_bfv_successor_factor_candidate_power) + (p)))) /\ (exists ff_u_bfv_successor_factor_candidate_power_product ff_v_bfv_successor_factor_candidate_power_product. ((((exists ff_h_bfv_successor_factor_candidate_power_product_start. ff_h_bfv_successor_factor_candidate_power_product_start + S (1) = S ((S (0)) * ff_v_bfv_successor_factor_candidate_power_product)) /\ exists ff_q_bfv_successor_factor_candidate_power_product_start. ff_u_bfv_successor_factor_candidate_power_product = ff_q_bfv_successor_factor_candidate_power_product_start * S ((S (0)) * ff_v_bfv_successor_factor_candidate_power_product) + (1))) /\ ((((exists ff_h_bfv_successor_factor_candidate_power_product_terminal. ff_h_bfv_successor_factor_candidate_power_product_terminal + S (bpv_result_bfv_successor_factor_candidate) = S ((S (bpv_candidate_bfv_successor_factor)) * ff_v_bfv_successor_factor_candidate_power_product)) /\ exists ff_q_bfv_successor_factor_candidate_power_product_terminal. ff_u_bfv_successor_factor_candidate_power_product = ff_q_bfv_successor_factor_candidate_power_product_terminal * S ((S (bpv_candidate_bfv_successor_factor)) * ff_v_bfv_successor_factor_candidate_power_product) + (bpv_result_bfv_successor_factor_candidate))) /\ forall ff_i_bfv_successor_factor_candidate_power_product. (exists ff_lt_bfv_successor_factor_candidate_power_product_bound. ff_lt_bfv_successor_factor_candidate_power_product_bound + S ff_i_bfv_successor_factor_candidate_power_product = bpv_candidate_bfv_successor_factor) -> exists ff_p_bfv_successor_factor_candidate_power_product ff_r_bfv_successor_factor_candidate_power_product ff_s_bfv_successor_factor_candidate_power_product. ((((exists ff_h_bfv_successor_factor_candidate_power_product_factor. ff_h_bfv_successor_factor_candidate_power_product_factor + S (ff_p_bfv_successor_factor_candidate_power_product) = S ((S (ff_i_bfv_successor_factor_candidate_power_product)) * ff_c_bfv_successor_factor_candidate_power)) /\ exists ff_q_bfv_successor_factor_candidate_power_product_factor. ff_b_bfv_successor_factor_candidate_power = ff_q_bfv_successor_factor_candidate_power_product_factor * S ((S (ff_i_bfv_successor_factor_candidate_power_product)) * ff_c_bfv_successor_factor_candidate_power) + (ff_p_bfv_successor_factor_candidate_power_product))) /\ ((((exists ff_h_bfv_successor_factor_candidate_power_product_partial. ff_h_bfv_successor_factor_candidate_power_product_partial + S (ff_r_bfv_successor_factor_candidate_power_product) = S ((S (ff_i_bfv_successor_factor_candidate_power_product)) * ff_v_bfv_successor_factor_candidate_power_product)) /\ exists ff_q_bfv_successor_factor_candidate_power_product_partial. ff_u_bfv_successor_factor_candidate_power_product = ff_q_bfv_successor_factor_candidate_power_product_partial * S ((S (ff_i_bfv_successor_factor_candidate_power_product)) * ff_v_bfv_successor_factor_candidate_power_product) + (ff_r_bfv_successor_factor_candidate_power_product))) /\ ((((exists ff_h_bfv_successor_factor_candidate_power_product_successor. ff_h_bfv_successor_factor_candidate_power_product_successor + S (ff_s_bfv_successor_factor_candidate_power_product) = S ((S (S ff_i_bfv_successor_factor_candidate_power_product)) * ff_v_bfv_successor_factor_candidate_power_product)) /\ exists ff_q_bfv_successor_factor_candidate_power_product_successor. ff_u_bfv_successor_factor_candidate_power_product = ff_q_bfv_successor_factor_candidate_power_product_successor * S ((S (S ff_i_bfv_successor_factor_candidate_power_product)) * ff_v_bfv_successor_factor_candidate_power_product) + (ff_s_bfv_successor_factor_candidate_power_product))) /\ ff_s_bfv_successor_factor_candidate_power_product = ff_r_bfv_successor_factor_candidate_power_product * ff_p_bfv_successor_factor_candidate_power_product)))))))) /\ (exists bpv_factor_bfv_successor_factor_candidate_divides. sn = bpv_result_bfv_successor_factor_candidate * bpv_factor_bfv_successor_factor_candidate_divides))) -> (exists bpv_gap_bfv_successor_factor_maximal. bpv_gap_bfv_successor_factor_maximal + bpv_candidate_bfv_successor_factor = f)) -> (exists bfv_factorial_bfv_successor_value. ((exists ff_b_bfv_successor_value_factorial ff_c_bfv_successor_value_factorial. ((forall ff_i_bfv_successor_value_factorial_range. (exists ff_lt_bfv_successor_value_factorial_range_bound. ff_lt_bfv_successor_value_factorial_range_bound + S ff_i_bfv_successor_value_factorial_range = sn) -> (((exists ff_h_bfv_successor_value_factorial_range_decoded. ff_h_bfv_successor_value_factorial_range_decoded + S (1 + ff_i_bfv_successor_value_factorial_range) = S ((S (ff_i_bfv_successor_value_factorial_range)) * ff_c_bfv_successor_value_factorial)) /\ exists ff_q_bfv_successor_value_factorial_range_decoded. ff_b_bfv_successor_value_factorial = ff_q_bfv_successor_value_factorial_range_decoded * S ((S (ff_i_bfv_successor_value_factorial_range)) * ff_c_bfv_successor_value_factorial) + (1 + ff_i_bfv_successor_value_factorial_range)))) /\ (exists ff_u_bfv_successor_value_factorial_product ff_v_bfv_successor_value_factorial_product. ((((exists ff_h_bfv_successor_value_factorial_product_start. ff_h_bfv_successor_value_factorial_product_start + S (1) = S ((S (0)) * ff_v_bfv_successor_value_factorial_product)) /\ exists ff_q_bfv_successor_value_factorial_product_start. ff_u_bfv_successor_value_factorial_product = ff_q_bfv_successor_value_factorial_product_start * S ((S (0)) * ff_v_bfv_successor_value_factorial_product) + (1))) /\ ((((exists ff_h_bfv_successor_value_factorial_product_terminal. ff_h_bfv_successor_value_factorial_product_terminal + S (bfv_factorial_bfv_successor_value) = S ((S (sn)) * ff_v_bfv_successor_value_factorial_product)) /\ exists ff_q_bfv_successor_value_factorial_product_terminal. ff_u_bfv_successor_value_factorial_product = ff_q_bfv_successor_value_factorial_product_terminal * S ((S (sn)) * ff_v_bfv_successor_value_factorial_product) + (bfv_factorial_bfv_successor_value))) /\ forall ff_i_bfv_successor_value_factorial_product. (exists ff_lt_bfv_successor_value_factorial_product_bound. ff_lt_bfv_successor_value_factorial_product_bound + S ff_i_bfv_successor_value_factorial_product = sn) -> exists ff_p_bfv_successor_value_factorial_product ff_r_bfv_successor_value_factorial_product ff_s_bfv_successor_value_factorial_product. ((((exists ff_h_bfv_successor_value_factorial_product_factor. ff_h_bfv_successor_value_factorial_product_factor + S (ff_p_bfv_successor_value_factorial_product) = S ((S (ff_i_bfv_successor_value_factorial_product)) * ff_c_bfv_successor_value_factorial)) /\ exists ff_q_bfv_successor_value_factorial_product_factor. ff_b_bfv_successor_value_factorial = ff_q_bfv_successor_value_factorial_product_factor * S ((S (ff_i_bfv_successor_value_factorial_product)) * ff_c_bfv_successor_value_factorial) + (ff_p_bfv_successor_value_factorial_product))) /\ ((((exists ff_h_bfv_successor_value_factorial_product_partial. ff_h_bfv_successor_value_factorial_product_partial + S (ff_r_bfv_successor_value_factorial_product) = S ((S (ff_i_bfv_successor_value_factorial_product)) * ff_v_bfv_successor_value_factorial_product)) /\ exists ff_q_bfv_successor_value_factorial_product_partial. ff_u_bfv_successor_value_factorial_product = ff_q_bfv_successor_value_factorial_product_partial * S ((S (ff_i_bfv_successor_value_factorial_product)) * ff_v_bfv_successor_value_factorial_product) + (ff_r_bfv_successor_value_factorial_product))) /\ ((((exists ff_h_bfv_successor_value_factorial_product_successor. ff_h_bfv_successor_value_factorial_product_successor + S (ff_s_bfv_successor_value_factorial_product) = S ((S (S ff_i_bfv_successor_value_factorial_product)) * ff_v_bfv_successor_value_factorial_product)) /\ exists ff_q_bfv_successor_value_factorial_product_successor. ff_u_bfv_successor_value_factorial_product = ff_q_bfv_successor_value_factorial_product_successor * S ((S (S ff_i_bfv_successor_value_factorial_product)) * ff_v_bfv_successor_value_factorial_product) + (ff_s_bfv_successor_value_factorial_product))) /\ ff_s_bfv_successor_value_factorial_product = ff_r_bfv_successor_value_factorial_product * ff_p_bfv_successor_value_factorial_product)))))))) /\ (((exists bpv_gap_bfv_successor_value_valuation_exponent_bound. bpv_gap_bfv_successor_value_valuation_exponent_bound + g = bfv_factorial_bfv_successor_value) /\ (exists bpv_result_bfv_successor_value_valuation_selected. ((exists ff_b_bfv_successor_value_valuation_selected_power ff_c_bfv_successor_value_valuation_selected_power. ((forall ff_i_bfv_successor_value_valuation_selected_power_repeat. (exists ff_lt_bfv_successor_value_valuation_selected_power_repeat_bound. ff_lt_bfv_successor_value_valuation_selected_power_repeat_bound + S ff_i_bfv_successor_value_valuation_selected_power_repeat = g) -> (((exists ff_h_bfv_successor_value_valuation_selected_power_repeat_decoded. ff_h_bfv_successor_value_valuation_selected_power_repeat_decoded + S (p) = S ((S (ff_i_bfv_successor_value_valuation_selected_power_repeat)) * ff_c_bfv_successor_value_valuation_selected_power)) /\ exists ff_q_bfv_successor_value_valuation_selected_power_repeat_decoded. ff_b_bfv_successor_value_valuation_selected_power = ff_q_bfv_successor_value_valuation_selected_power_repeat_decoded * S ((S (ff_i_bfv_successor_value_valuation_selected_power_repeat)) * ff_c_bfv_successor_value_valuation_selected_power) + (p)))) /\ (exists ff_u_bfv_successor_value_valuation_selected_power_product ff_v_bfv_successor_value_valuation_selected_power_product. ((((exists ff_h_bfv_successor_value_valuation_selected_power_product_start. ff_h_bfv_successor_value_valuation_selected_power_product_start + S (1) = S ((S (0)) * ff_v_bfv_successor_value_valuation_selected_power_product)) /\ exists ff_q_bfv_successor_value_valuation_selected_power_product_start. ff_u_bfv_successor_value_valuation_selected_power_product = ff_q_bfv_successor_value_valuation_selected_power_product_start * S ((S (0)) * ff_v_bfv_successor_value_valuation_selected_power_product) + (1))) /\ ((((exists ff_h_bfv_successor_value_valuation_selected_power_product_terminal. ff_h_bfv_successor_value_valuation_selected_power_product_terminal + S (bpv_result_bfv_successor_value_valuation_selected) = S ((S (g)) * ff_v_bfv_successor_value_valuation_selected_power_product)) /\ exists ff_q_bfv_successor_value_valuation_selected_power_product_terminal. ff_u_bfv_successor_value_valuation_selected_power_product = ff_q_bfv_successor_value_valuation_selected_power_product_terminal * S ((S (g)) * ff_v_bfv_successor_value_valuation_selected_power_product) + (bpv_result_bfv_successor_value_valuation_selected))) /\ forall ff_i_bfv_successor_value_valuation_selected_power_product. (exists ff_lt_bfv_successor_value_valuation_selected_power_product_bound. ff_lt_bfv_successor_value_valuation_selected_power_product_bound + S ff_i_bfv_successor_value_valuation_selected_power_product = g) -> exists ff_p_bfv_successor_value_valuation_selected_power_product ff_r_bfv_successor_value_valuation_selected_power_product ff_s_bfv_successor_value_valuation_selected_power_product. ((((exists ff_h_bfv_successor_value_valuation_selected_power_product_factor. ff_h_bfv_successor_value_valuation_selected_power_product_factor + S (ff_p_bfv_successor_value_valuation_selected_power_product) = S ((S (ff_i_bfv_successor_value_valuation_selected_power_product)) * ff_c_bfv_successor_value_valuation_selected_power)) /\ exists ff_q_bfv_successor_value_valuation_selected_power_product_factor. ff_b_bfv_successor_value_valuation_selected_power = ff_q_bfv_successor_value_valuation_selected_power_product_factor * S ((S (ff_i_bfv_successor_value_valuation_selected_power_product)) * ff_c_bfv_successor_value_valuation_selected_power) + (ff_p_bfv_successor_value_valuation_selected_power_product))) /\ ((((exists ff_h_bfv_successor_value_valuation_selected_power_product_partial. ff_h_bfv_successor_value_valuation_selected_power_product_partial + S (ff_r_bfv_successor_value_valuation_selected_power_product) = S ((S (ff_i_bfv_successor_value_valuation_selected_power_product)) * ff_v_bfv_successor_value_valuation_selected_power_product)) /\ exists ff_q_bfv_successor_value_valuation_selected_power_product_partial. ff_u_bfv_successor_value_valuation_selected_power_product = ff_q_bfv_successor_value_valuation_selected_power_product_partial * S ((S (ff_i_bfv_successor_value_valuation_selected_power_product)) * ff_v_bfv_successor_value_valuation_selected_power_product) + (ff_r_bfv_successor_value_valuation_selected_power_product))) /\ ((((exists ff_h_bfv_successor_value_valuation_selected_power_product_successor. ff_h_bfv_successor_value_valuation_selected_power_product_successor + S (ff_s_bfv_successor_value_valuation_selected_power_product) = S ((S (S ff_i_bfv_successor_value_valuation_selected_power_product)) * ff_v_bfv_successor_value_valuation_selected_power_product)) /\ exists ff_q_bfv_successor_value_valuation_selected_power_product_successor. ff_u_bfv_successor_value_valuation_selected_power_product = ff_q_bfv_successor_value_valuation_selected_power_product_successor * S ((S (S ff_i_bfv_successor_value_valuation_selected_power_product)) * ff_v_bfv_successor_value_valuation_selected_power_product) + (ff_s_bfv_successor_value_valuation_selected_power_product))) /\ ff_s_bfv_successor_value_valuation_selected_power_product = ff_r_bfv_successor_value_valuation_selected_power_product * ff_p_bfv_successor_value_valuation_selected_power_product)))))))) /\ (exists bpv_factor_bfv_successor_value_valuation_selected_divides. bfv_factorial_bfv_successor_value = bpv_result_bfv_successor_value_valuation_selected * bpv_factor_bfv_successor_value_valuation_selected_divides)))) /\ forall bpv_candidate_bfv_successor_value_valuation. (exists bpv_gap_bfv_successor_value_valuation_candidate_bound. bpv_gap_bfv_successor_value_valuation_candidate_bound + bpv_candidate_bfv_successor_value_valuation = bfv_factorial_bfv_successor_value) -> (exists bpv_result_bfv_successor_value_valuation_candidate. ((exists ff_b_bfv_successor_value_valuation_candidate_power ff_c_bfv_successor_value_valuation_candidate_power. ((forall ff_i_bfv_successor_value_valuation_candidate_power_repeat. (exists ff_lt_bfv_successor_value_valuation_candidate_power_repeat_bound. ff_lt_bfv_successor_value_valuation_candidate_power_repeat_bound + S ff_i_bfv_successor_value_valuation_candidate_power_repeat = bpv_candidate_bfv_successor_value_valuation) -> (((exists ff_h_bfv_successor_value_valuation_candidate_power_repeat_decoded. ff_h_bfv_successor_value_valuation_candidate_power_repeat_decoded + S (p) = S ((S (ff_i_bfv_successor_value_valuation_candidate_power_repeat)) * ff_c_bfv_successor_value_valuation_candidate_power)) /\ exists ff_q_bfv_successor_value_valuation_candidate_power_repeat_decoded. ff_b_bfv_successor_value_valuation_candidate_power = ff_q_bfv_successor_value_valuation_candidate_power_repeat_decoded * S ((S (ff_i_bfv_successor_value_valuation_candidate_power_repeat)) * ff_c_bfv_successor_value_valuation_candidate_power) + (p)))) /\ (exists ff_u_bfv_successor_value_valuation_candidate_power_product ff_v_bfv_successor_value_valuation_candidate_power_product. ((((exists ff_h_bfv_successor_value_valuation_candidate_power_product_start. ff_h_bfv_successor_value_valuation_candidate_power_product_start + S (1) = S ((S (0)) * ff_v_bfv_successor_value_valuation_candidate_power_product)) /\ exists ff_q_bfv_successor_value_valuation_candidate_power_product_start. ff_u_bfv_successor_value_valuation_candidate_power_product = ff_q_bfv_successor_value_valuation_candidate_power_product_start * S ((S (0)) * ff_v_bfv_successor_value_valuation_candidate_power_product) + (1))) /\ ((((exists ff_h_bfv_successor_value_valuation_candidate_power_product_terminal. ff_h_bfv_successor_value_valuation_candidate_power_product_terminal + S (bpv_result_bfv_successor_value_valuation_candidate) = S ((S (bpv_candidate_bfv_successor_value_valuation)) * ff_v_bfv_successor_value_valuation_candidate_power_product)) /\ exists ff_q_bfv_successor_value_valuation_candidate_power_product_terminal. ff_u_bfv_successor_value_valuation_candidate_power_product = ff_q_bfv_successor_value_valuation_candidate_power_product_terminal * S ((S (bpv_candidate_bfv_successor_value_valuation)) * ff_v_bfv_successor_value_valuation_candidate_power_product) + (bpv_result_bfv_successor_value_valuation_candidate))) /\ forall ff_i_bfv_successor_value_valuation_candidate_power_product. (exists ff_lt_bfv_successor_value_valuation_candidate_power_product_bound. ff_lt_bfv_successor_value_valuation_candidate_power_product_bound + S ff_i_bfv_successor_value_valuation_candidate_power_product = bpv_candidate_bfv_successor_value_valuation) -> exists ff_p_bfv_successor_value_valuation_candidate_power_product ff_r_bfv_successor_value_valuation_candidate_power_product ff_s_bfv_successor_value_valuation_candidate_power_product. ((((exists ff_h_bfv_successor_value_valuation_candidate_power_product_factor. ff_h_bfv_successor_value_valuation_candidate_power_product_factor + S (ff_p_bfv_successor_value_valuation_candidate_power_product) = S ((S (ff_i_bfv_successor_value_valuation_candidate_power_product)) * ff_c_bfv_successor_value_valuation_candidate_power)) /\ exists ff_q_bfv_successor_value_valuation_candidate_power_product_factor. ff_b_bfv_successor_value_valuation_candidate_power = ff_q_bfv_successor_value_valuation_candidate_power_product_factor * S ((S (ff_i_bfv_successor_value_valuation_candidate_power_product)) * ff_c_bfv_successor_value_valuation_candidate_power) + (ff_p_bfv_successor_value_valuation_candidate_power_product))) /\ ((((exists ff_h_bfv_successor_value_valuation_candidate_power_product_partial. ff_h_bfv_successor_value_valuation_candidate_power_product_partial + S (ff_r_bfv_successor_value_valuation_candidate_power_product) = S ((S (ff_i_bfv_successor_value_valuation_candidate_power_product)) * ff_v_bfv_successor_value_valuation_candidate_power_product)) /\ exists ff_q_bfv_successor_value_valuation_candidate_power_product_partial. ff_u_bfv_successor_value_valuation_candidate_power_product = ff_q_bfv_successor_value_valuation_candidate_power_product_partial * S ((S (ff_i_bfv_successor_value_valuation_candidate_power_product)) * ff_v_bfv_successor_value_valuation_candidate_power_product) + (ff_r_bfv_successor_value_valuation_candidate_power_product))) /\ ((((exists ff_h_bfv_successor_value_valuation_candidate_power_product_successor. ff_h_bfv_successor_value_valuation_candidate_power_product_successor + S (ff_s_bfv_successor_value_valuation_candidate_power_product) = S ((S (S ff_i_bfv_successor_value_valuation_candidate_power_product)) * ff_v_bfv_successor_value_valuation_candidate_power_product)) /\ exists ff_q_bfv_successor_value_valuation_candidate_power_product_successor. ff_u_bfv_successor_value_valuation_candidate_power_product = ff_q_bfv_successor_value_valuation_candidate_power_product_successor * S ((S (S ff_i_bfv_successor_value_valuation_candidate_power_product)) * ff_v_bfv_successor_value_valuation_candidate_power_product) + (ff_s_bfv_successor_value_valuation_candidate_power_product))) /\ ff_s_bfv_successor_value_valuation_candidate_power_product = ff_r_bfv_successor_value_valuation_candidate_power_product * ff_p_bfv_successor_value_valuation_candidate_power_product)))))))) /\ (exists bpv_factor_bfv_successor_value_valuation_candidate_divides. bfv_factorial_bfv_successor_value = bpv_result_bfv_successor_value_valuation_candidate * bpv_factor_bfv_successor_value_valuation_candidate_divides))) -> (exists bpv_gap_bfv_successor_value_valuation_maximal. bpv_gap_bfv_successor_value_valuation_maximal + bpv_candidate_bfv_successor_value_valuation = g)))) -> g = e + f

Proof neighborhood

Direct theorem prerequisites

Direct theorem dependents

Definition-aware tactic body

Only local propositions introduced by have or suffices are compacted. Every changed line has an exact-AST conservative-expansion receipt; the kernel still receives the immutable original tactic script.

Read the argument

Proof checkpoints

70 script commands · 12 reading checkpoints · 5 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–10

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

  1. L1
    intro p
  2. L2
    intro n
  3. L3
    intro sn
  4. L4
    intro e
  5. L5
    intro f
  6. L6
    intro g
  7. L7
    intro hsn
  8. L8
    intro hp
  9. L9
    intro hpredecessor
  10. L10
    intro hfactor
02Fix variables and assumptionsL11–11

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

  1. L11
    intro hsuccessor
03Separate the logical casesL12–15

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

  1. L12
    cases hpredecessor
  2. L13
    cases hpredecessor_witness
  3. L14
    cases hsuccessor
  4. L15
    cases hsuccessor_witness
04Establish hdecompositionL16–22

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

  1. L16
    have hdecomposition : ∃ R. Factorial(n,R) ∧ x1 = R · S nDefinitions: Factorial(n,R)Original native command in the exact edition
  2. L17
    specialize factorial_succ_decompose n
  3. L18
    specialize factorial_succ_decompose sn
  4. L19
    specialize factorial_succ_decompose x1
  5. L20
    apply factorial_succ_decompose
  6. L21
    exact hsn
  7. L22
    exact hsuccessor_witness_left
05Separate the logical casesL23–24

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

  1. L23
    cases hdecomposition
  2. L24
    cases hdecomposition_witness
06Establish hpredecessor_valueL25–31

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

  1. L25
    have hpredecessor_value : x2 = x
  2. L26
    specialize factorial_functional n
  3. L27
    specialize factorial_functional x2
  4. L28
    specialize factorial_functional x
  5. L29
    apply factorial_functional
  6. L30
    exact hdecomposition_witness_left
  7. L31
    exact hpredecessor_witness_left
07Establish hproductL32–38

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

  1. L32
    have hproduct : x1 = x * sn
  2. L33
    trans x2 * S n
  3. L34
    exact hdecomposition_witness_right
  4. L35
    congr
  5. L36
    exact hpredecessor_value
  6. L37
    symm
  7. L38
    exact hsn
08Establish hpredecessor_nonzeroL39–45

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

  1. L39
    have hpredecessor_nonzero : ~(x = 0)
  2. L40
    intro hpredecessor_zero
  3. L41
    specialize factorial_nonzero n
  4. L42
    specialize factorial_nonzero x
  5. L43
    apply factorial_nonzero
  6. L44
    exact hpredecessor_witness_left
  7. L45
    exact hpredecessor_zero
09Establish hfactor_nonzeroL46–55

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

  1. L46
    have hfactor_nonzero : ~(sn = 0)
  2. L47
    intro hzero
  3. L48
    specialize succ_ne_zero n
  4. L49
    apply succ_ne_zero
  5. L50
    trans sn
  6. L51
    symm
  7. L52
    exact hsn
  8. L53
    exact hzero
  9. L54
    rewrite hproduct at hsuccessor_witness_right
  10. L55
    rewrite hproduct at hsuccessor_witness_right
10Calculate and transport equalitiesL56–57

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

  1. L56
    rewrite hproduct at hsuccessor_witness_right
  2. L57
    rewrite hproduct at hsuccessor_witness_right
11Use earlier factsL58–67

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

  1. L58
    specialize prime_power_valuation_mul p
  2. L59
    specialize prime_power_valuation_mul x
  3. L60
    specialize prime_power_valuation_mul sn
  4. L61
    specialize prime_power_valuation_mul e
  5. L62
    specialize prime_power_valuation_mul f
  6. L63
    specialize prime_power_valuation_mul g
  7. L64
    apply prime_power_valuation_mul
  8. L65
    exact hp
  9. L66
    exact hpredecessor_nonzero
  10. L67
    exact hfactor_nonzero
12Use earlier factsL68–70

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

  1. L68
    exact hpredecessor_witness_right
  2. L69
    exact hfactor
  3. L70
    exact hsuccessor_witness_right

Library-wide reading audit

Original defined command ledger · 70 lines
  1. 0001intro p
  2. 0002intro n
  3. 0003intro sn
  4. 0004intro e
  5. 0005intro f
  6. 0006intro g
  7. 0007intro hsn
  8. 0008intro hp
  9. 0009intro hpredecessor
  10. 0010intro hfactor
  11. 0011intro hsuccessor
  12. 0012cases hpredecessor
  13. 0013cases hpredecessor_witness
  14. 0014cases hsuccessor
  15. 0015cases hsuccessor_witness
  16. 0016have hdecomposition : ∃ R. Factorial(n,R) ∧ x1 = R · S n
    Exact native replay linehave hdecomposition : exists R. (exists ff_b_bfv_successor_decomposition ff_c_bfv_successor_decomposition. ((forall ff_i_bfv_successor_decomposition_range. (exists ff_lt_bfv_successor_decomposition_range_bound. ff_lt_bfv_successor_decomposition_range_bound + S ff_i_bfv_successor_decomposition_range = n) -> (((exists ff_h_bfv_successor_decomposition_range_decoded. ff_h_bfv_successor_decomposition_range_decoded + S (1 + ff_i_bfv_successor_decomposition_range) = S ((S (ff_i_bfv_successor_decomposition_range)) * ff_c_bfv_successor_decomposition)) /\ exists ff_q_bfv_successor_decomposition_range_decoded. ff_b_bfv_successor_decomposition = ff_q_bfv_successor_decomposition_range_decoded * S ((S (ff_i_bfv_successor_decomposition_range)) * ff_c_bfv_successor_decomposition) + (1 + ff_i_bfv_successor_decomposition_range)))) /\ (exists ff_u_bfv_successor_decomposition_product ff_v_bfv_successor_decomposition_product. ((((exists ff_h_bfv_successor_decomposition_product_start. ff_h_bfv_successor_decomposition_product_start + S (1) = S ((S (0)) * ff_v_bfv_successor_decomposition_product)) /\ exists ff_q_bfv_successor_decomposition_product_start. ff_u_bfv_successor_decomposition_product = ff_q_bfv_successor_decomposition_product_start * S ((S (0)) * ff_v_bfv_successor_decomposition_product) + (1))) /\ ((((exists ff_h_bfv_successor_decomposition_product_terminal. ff_h_bfv_successor_decomposition_product_terminal + S (R) = S ((S (n)) * ff_v_bfv_successor_decomposition_product)) /\ exists ff_q_bfv_successor_decomposition_product_terminal. ff_u_bfv_successor_decomposition_product = ff_q_bfv_successor_decomposition_product_terminal * S ((S (n)) * ff_v_bfv_successor_decomposition_product) + (R))) /\ forall ff_i_bfv_successor_decomposition_product. (exists ff_lt_bfv_successor_decomposition_product_bound. ff_lt_bfv_successor_decomposition_product_bound + S ff_i_bfv_successor_decomposition_product = n) -> exists ff_p_bfv_successor_decomposition_product ff_r_bfv_successor_decomposition_product ff_s_bfv_successor_decomposition_product. ((((exists ff_h_bfv_successor_decomposition_product_factor. ff_h_bfv_successor_decomposition_product_factor + S (ff_p_bfv_successor_decomposition_product) = S ((S (ff_i_bfv_successor_decomposition_product)) * ff_c_bfv_successor_decomposition)) /\ exists ff_q_bfv_successor_decomposition_product_factor. ff_b_bfv_successor_decomposition = ff_q_bfv_successor_decomposition_product_factor * S ((S (ff_i_bfv_successor_decomposition_product)) * ff_c_bfv_successor_decomposition) + (ff_p_bfv_successor_decomposition_product))) /\ ((((exists ff_h_bfv_successor_decomposition_product_partial. ff_h_bfv_successor_decomposition_product_partial + S (ff_r_bfv_successor_decomposition_product) = S ((S (ff_i_bfv_successor_decomposition_product)) * ff_v_bfv_successor_decomposition_product)) /\ exists ff_q_bfv_successor_decomposition_product_partial. ff_u_bfv_successor_decomposition_product = ff_q_bfv_successor_decomposition_product_partial * S ((S (ff_i_bfv_successor_decomposition_product)) * ff_v_bfv_successor_decomposition_product) + (ff_r_bfv_successor_decomposition_product))) /\ ((((exists ff_h_bfv_successor_decomposition_product_successor. ff_h_bfv_successor_decomposition_product_successor + S (ff_s_bfv_successor_decomposition_product) = S ((S (S ff_i_bfv_successor_decomposition_product)) * ff_v_bfv_successor_decomposition_product)) /\ exists ff_q_bfv_successor_decomposition_product_successor. ff_u_bfv_successor_decomposition_product = ff_q_bfv_successor_decomposition_product_successor * S ((S (S ff_i_bfv_successor_decomposition_product)) * ff_v_bfv_successor_decomposition_product) + (ff_s_bfv_successor_decomposition_product))) /\ ff_s_bfv_successor_decomposition_product = ff_r_bfv_successor_decomposition_product * ff_p_bfv_successor_decomposition_product)))))))) /\ x1 = R * S n
  17. 0017specialize factorial_succ_decompose n
  18. 0018specialize factorial_succ_decompose sn
  19. 0019specialize factorial_succ_decompose x1
  20. 0020apply factorial_succ_decompose
  21. 0021exact hsn
  22. 0022exact hsuccessor_witness_left
  23. 0023cases hdecomposition
  24. 0024cases hdecomposition_witness
  25. 0025have hpredecessor_value : x2 = x
  26. 0026specialize factorial_functional n
  27. 0027specialize factorial_functional x2
  28. 0028specialize factorial_functional x
  29. 0029apply factorial_functional
  30. 0030exact hdecomposition_witness_left
  31. 0031exact hpredecessor_witness_left
  32. 0032have hproduct : x1 = x * sn
  33. 0033trans x2 * S n
  34. 0034exact hdecomposition_witness_right
  35. 0035congr
  36. 0036exact hpredecessor_value
  37. 0037symm
  38. 0038exact hsn
  39. 0039have hpredecessor_nonzero : ~(x = 0)
  40. 0040intro hpredecessor_zero
  41. 0041specialize factorial_nonzero n
  42. 0042specialize factorial_nonzero x
  43. 0043apply factorial_nonzero
  44. 0044exact hpredecessor_witness_left
  45. 0045exact hpredecessor_zero
  46. 0046have hfactor_nonzero : ~(sn = 0)
  47. 0047intro hzero
  48. 0048specialize succ_ne_zero n
  49. 0049apply succ_ne_zero
  50. 0050trans sn
  51. 0051symm
  52. 0052exact hsn
  53. 0053exact hzero
  54. 0054rewrite hproduct at hsuccessor_witness_right
  55. 0055rewrite hproduct at hsuccessor_witness_right
  56. 0056rewrite hproduct at hsuccessor_witness_right
  57. 0057rewrite hproduct at hsuccessor_witness_right
  58. 0058specialize prime_power_valuation_mul p
  59. 0059specialize prime_power_valuation_mul x
  60. 0060specialize prime_power_valuation_mul sn
  61. 0061specialize prime_power_valuation_mul e
  62. 0062specialize prime_power_valuation_mul f
  63. 0063specialize prime_power_valuation_mul g
  64. 0064apply prime_power_valuation_mul
  65. 0065exact hp
  66. 0066exact hpredecessor_nonzero
  67. 0067exact hfactor_nonzero
  68. 0068exact hpredecessor_witness_right
  69. 0069exact hfactor
  70. 0070exact hsuccessor_witness_right