PD0023 · conservative definition

Factorial

z is the relational factorial of n.

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.

Readable signature

Factorial(n,z)

Exact expansion

exists ff_b_defined_factorial ff_c_defined_factorial. ((forall ff_i_defined_factorial_range. (exists ff_lt_defined_factorial_range_bound. ff_lt_defined_factorial_range_bound + S ff_i_defined_factorial_range = n) -> (((exists ff_h_defined_factorial_range_decoded. ff_h_defined_factorial_range_decoded + S (1 + ff_i_defined_factorial_range) = S ((S (ff_i_defined_factorial_range)) * ff_c_defined_factorial)) /\ exists ff_q_defined_factorial_range_decoded. ff_b_defined_factorial = ff_q_defined_factorial_range_decoded * S ((S (ff_i_defined_factorial_range)) * ff_c_defined_factorial) + (1 + ff_i_defined_factorial_range)))) /\ (exists ff_u_defined_factorial_product ff_v_defined_factorial_product. ((((exists ff_h_defined_factorial_product_start. ff_h_defined_factorial_product_start + S (1) = S ((S (0)) * ff_v_defined_factorial_product)) /\ exists ff_q_defined_factorial_product_start. ff_u_defined_factorial_product = ff_q_defined_factorial_product_start * S ((S (0)) * ff_v_defined_factorial_product) + (1))) /\ ((((exists ff_h_defined_factorial_product_terminal. ff_h_defined_factorial_product_terminal + S (z) = S ((S (n)) * ff_v_defined_factorial_product)) /\ exists ff_q_defined_factorial_product_terminal. ff_u_defined_factorial_product = ff_q_defined_factorial_product_terminal * S ((S (n)) * ff_v_defined_factorial_product) + (z))) /\ forall ff_i_defined_factorial_product. (exists ff_lt_defined_factorial_product_bound. ff_lt_defined_factorial_product_bound + S ff_i_defined_factorial_product = n) -> exists ff_p_defined_factorial_product ff_r_defined_factorial_product ff_s_defined_factorial_product. ((((exists ff_h_defined_factorial_product_factor. ff_h_defined_factorial_product_factor + S (ff_p_defined_factorial_product) = S ((S (ff_i_defined_factorial_product)) * ff_c_defined_factorial)) /\ exists ff_q_defined_factorial_product_factor. ff_b_defined_factorial = ff_q_defined_factorial_product_factor * S ((S (ff_i_defined_factorial_product)) * ff_c_defined_factorial) + (ff_p_defined_factorial_product))) /\ ((((exists ff_h_defined_factorial_product_partial. ff_h_defined_factorial_product_partial + S (ff_r_defined_factorial_product) = S ((S (ff_i_defined_factorial_product)) * ff_v_defined_factorial_product)) /\ exists ff_q_defined_factorial_product_partial. ff_u_defined_factorial_product = ff_q_defined_factorial_product_partial * S ((S (ff_i_defined_factorial_product)) * ff_v_defined_factorial_product) + (ff_r_defined_factorial_product))) /\ ((((exists ff_h_defined_factorial_product_successor. ff_h_defined_factorial_product_successor + S (ff_s_defined_factorial_product) = S ((S (S ff_i_defined_factorial_product)) * ff_v_defined_factorial_product)) /\ exists ff_q_defined_factorial_product_successor. ff_u_defined_factorial_product = ff_q_defined_factorial_product_successor * S ((S (S ff_i_defined_factorial_product)) * ff_v_defined_factorial_product) + (ff_s_defined_factorial_product))) /\ ff_s_defined_factorial_product = ff_r_defined_factorial_product * ff_p_defined_factorial_product)))))))

This node is notation, not a theorem, axiom, predicate constant, or kernel rule. The elaboration layer must expand it before proof checking.

Definition neighborhood

Expands using

Used by definitions

none

Used by theorem statements or local proof propositions