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
∀ n. ∀ m. ∀ z. n = m → Factorial(n,z) → Factorial(m,z)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
2 occurrences
In local proof propositions
0 occurrences
Exact expanded native-PA statement
forall n m z. n = m -> (exists ff_b_bcflet_source ff_c_bcflet_source. ((forall ff_i_bcflet_source_range. (exists ff_lt_bcflet_source_range_bound. ff_lt_bcflet_source_range_bound + S ff_i_bcflet_source_range = n) -> (((exists ff_h_bcflet_source_range_decoded. ff_h_bcflet_source_range_decoded + S (1 + ff_i_bcflet_source_range) = S ((S (ff_i_bcflet_source_range)) * ff_c_bcflet_source)) /\ exists ff_q_bcflet_source_range_decoded. ff_b_bcflet_source = ff_q_bcflet_source_range_decoded * S ((S (ff_i_bcflet_source_range)) * ff_c_bcflet_source) + (1 + ff_i_bcflet_source_range)))) /\ (exists ff_u_bcflet_source_product ff_v_bcflet_source_product. ((((exists ff_h_bcflet_source_product_start. ff_h_bcflet_source_product_start + S (1) = S ((S (0)) * ff_v_bcflet_source_product)) /\ exists ff_q_bcflet_source_product_start. ff_u_bcflet_source_product = ff_q_bcflet_source_product_start * S ((S (0)) * ff_v_bcflet_source_product) + (1))) /\ ((((exists ff_h_bcflet_source_product_terminal. ff_h_bcflet_source_product_terminal + S (z) = S ((S (n)) * ff_v_bcflet_source_product)) /\ exists ff_q_bcflet_source_product_terminal. ff_u_bcflet_source_product = ff_q_bcflet_source_product_terminal * S ((S (n)) * ff_v_bcflet_source_product) + (z))) /\ forall ff_i_bcflet_source_product. (exists ff_lt_bcflet_source_product_bound. ff_lt_bcflet_source_product_bound + S ff_i_bcflet_source_product = n) -> exists ff_p_bcflet_source_product ff_r_bcflet_source_product ff_s_bcflet_source_product. ((((exists ff_h_bcflet_source_product_factor. ff_h_bcflet_source_product_factor + S (ff_p_bcflet_source_product) = S ((S (ff_i_bcflet_source_product)) * ff_c_bcflet_source)) /\ exists ff_q_bcflet_source_product_factor. ff_b_bcflet_source = ff_q_bcflet_source_product_factor * S ((S (ff_i_bcflet_source_product)) * ff_c_bcflet_source) + (ff_p_bcflet_source_product))) /\ ((((exists ff_h_bcflet_source_product_partial. ff_h_bcflet_source_product_partial + S (ff_r_bcflet_source_product) = S ((S (ff_i_bcflet_source_product)) * ff_v_bcflet_source_product)) /\ exists ff_q_bcflet_source_product_partial. ff_u_bcflet_source_product = ff_q_bcflet_source_product_partial * S ((S (ff_i_bcflet_source_product)) * ff_v_bcflet_source_product) + (ff_r_bcflet_source_product))) /\ ((((exists ff_h_bcflet_source_product_successor. ff_h_bcflet_source_product_successor + S (ff_s_bcflet_source_product) = S ((S (S ff_i_bcflet_source_product)) * ff_v_bcflet_source_product)) /\ exists ff_q_bcflet_source_product_successor. ff_u_bcflet_source_product = ff_q_bcflet_source_product_successor * S ((S (S ff_i_bcflet_source_product)) * ff_v_bcflet_source_product) + (ff_s_bcflet_source_product))) /\ ff_s_bcflet_source_product = ff_r_bcflet_source_product * ff_p_bcflet_source_product)))))))) -> (exists ff_b_bcflet_target ff_c_bcflet_target. ((forall ff_i_bcflet_target_range. (exists ff_lt_bcflet_target_range_bound. ff_lt_bcflet_target_range_bound + S ff_i_bcflet_target_range = m) -> (((exists ff_h_bcflet_target_range_decoded. ff_h_bcflet_target_range_decoded + S (1 + ff_i_bcflet_target_range) = S ((S (ff_i_bcflet_target_range)) * ff_c_bcflet_target)) /\ exists ff_q_bcflet_target_range_decoded. ff_b_bcflet_target = ff_q_bcflet_target_range_decoded * S ((S (ff_i_bcflet_target_range)) * ff_c_bcflet_target) + (1 + ff_i_bcflet_target_range)))) /\ (exists ff_u_bcflet_target_product ff_v_bcflet_target_product. ((((exists ff_h_bcflet_target_product_start. ff_h_bcflet_target_product_start + S (1) = S ((S (0)) * ff_v_bcflet_target_product)) /\ exists ff_q_bcflet_target_product_start. ff_u_bcflet_target_product = ff_q_bcflet_target_product_start * S ((S (0)) * ff_v_bcflet_target_product) + (1))) /\ ((((exists ff_h_bcflet_target_product_terminal. ff_h_bcflet_target_product_terminal + S (z) = S ((S (m)) * ff_v_bcflet_target_product)) /\ exists ff_q_bcflet_target_product_terminal. ff_u_bcflet_target_product = ff_q_bcflet_target_product_terminal * S ((S (m)) * ff_v_bcflet_target_product) + (z))) /\ forall ff_i_bcflet_target_product. (exists ff_lt_bcflet_target_product_bound. ff_lt_bcflet_target_product_bound + S ff_i_bcflet_target_product = m) -> exists ff_p_bcflet_target_product ff_r_bcflet_target_product ff_s_bcflet_target_product. ((((exists ff_h_bcflet_target_product_factor. ff_h_bcflet_target_product_factor + S (ff_p_bcflet_target_product) = S ((S (ff_i_bcflet_target_product)) * ff_c_bcflet_target)) /\ exists ff_q_bcflet_target_product_factor. ff_b_bcflet_target = ff_q_bcflet_target_product_factor * S ((S (ff_i_bcflet_target_product)) * ff_c_bcflet_target) + (ff_p_bcflet_target_product))) /\ ((((exists ff_h_bcflet_target_product_partial. ff_h_bcflet_target_product_partial + S (ff_r_bcflet_target_product) = S ((S (ff_i_bcflet_target_product)) * ff_v_bcflet_target_product)) /\ exists ff_q_bcflet_target_product_partial. ff_u_bcflet_target_product = ff_q_bcflet_target_product_partial * S ((S (ff_i_bcflet_target_product)) * ff_v_bcflet_target_product) + (ff_r_bcflet_target_product))) /\ ((((exists ff_h_bcflet_target_product_successor. ff_h_bcflet_target_product_successor + S (ff_s_bcflet_target_product) = S ((S (S ff_i_bcflet_target_product)) * ff_v_bcflet_target_product)) /\ exists ff_q_bcflet_target_product_successor. ff_u_bcflet_target_product = ff_q_bcflet_target_product_successor * S ((S (S ff_i_bcflet_target_product)) * ff_v_bcflet_target_product) + (ff_s_bcflet_target_product))) /\ ff_s_bcflet_target_product = ff_r_bcflet_target_product * ff_p_bcflet_target_product))))))))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
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–5
02Calculate and transport equalitiesL6–9
03Use earlier factsL10–10
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L10
exact hfactorial