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. ∀ z. ∀ w. Factorial(n,z) → Factorial(n,w) → z = wEvery 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
4 occurrences
Exact expanded native-PA statement
forall n z w. (exists ff_b_functional_l ff_c_functional_l. ((forall ff_i_functional_l_range. (exists ff_lt_functional_l_range_bound. ff_lt_functional_l_range_bound + S ff_i_functional_l_range = n) -> (((exists ff_h_functional_l_range_decoded. ff_h_functional_l_range_decoded + S (1 + ff_i_functional_l_range) = S ((S (ff_i_functional_l_range)) * ff_c_functional_l)) /\ exists ff_q_functional_l_range_decoded. ff_b_functional_l = ff_q_functional_l_range_decoded * S ((S (ff_i_functional_l_range)) * ff_c_functional_l) + (1 + ff_i_functional_l_range)))) /\ (exists ff_u_functional_l_product ff_v_functional_l_product. ((((exists ff_h_functional_l_product_start. ff_h_functional_l_product_start + S (1) = S ((S (0)) * ff_v_functional_l_product)) /\ exists ff_q_functional_l_product_start. ff_u_functional_l_product = ff_q_functional_l_product_start * S ((S (0)) * ff_v_functional_l_product) + (1))) /\ ((((exists ff_h_functional_l_product_terminal. ff_h_functional_l_product_terminal + S (z) = S ((S (n)) * ff_v_functional_l_product)) /\ exists ff_q_functional_l_product_terminal. ff_u_functional_l_product = ff_q_functional_l_product_terminal * S ((S (n)) * ff_v_functional_l_product) + (z))) /\ forall ff_i_functional_l_product. (exists ff_lt_functional_l_product_bound. ff_lt_functional_l_product_bound + S ff_i_functional_l_product = n) -> exists ff_p_functional_l_product ff_r_functional_l_product ff_s_functional_l_product. ((((exists ff_h_functional_l_product_factor. ff_h_functional_l_product_factor + S (ff_p_functional_l_product) = S ((S (ff_i_functional_l_product)) * ff_c_functional_l)) /\ exists ff_q_functional_l_product_factor. ff_b_functional_l = ff_q_functional_l_product_factor * S ((S (ff_i_functional_l_product)) * ff_c_functional_l) + (ff_p_functional_l_product))) /\ ((((exists ff_h_functional_l_product_partial. ff_h_functional_l_product_partial + S (ff_r_functional_l_product) = S ((S (ff_i_functional_l_product)) * ff_v_functional_l_product)) /\ exists ff_q_functional_l_product_partial. ff_u_functional_l_product = ff_q_functional_l_product_partial * S ((S (ff_i_functional_l_product)) * ff_v_functional_l_product) + (ff_r_functional_l_product))) /\ ((((exists ff_h_functional_l_product_successor. ff_h_functional_l_product_successor + S (ff_s_functional_l_product) = S ((S (S ff_i_functional_l_product)) * ff_v_functional_l_product)) /\ exists ff_q_functional_l_product_successor. ff_u_functional_l_product = ff_q_functional_l_product_successor * S ((S (S ff_i_functional_l_product)) * ff_v_functional_l_product) + (ff_s_functional_l_product))) /\ ff_s_functional_l_product = ff_r_functional_l_product * ff_p_functional_l_product)))))))) -> (exists ff_b_functional_r ff_c_functional_r. ((forall ff_i_functional_r_range. (exists ff_lt_functional_r_range_bound. ff_lt_functional_r_range_bound + S ff_i_functional_r_range = n) -> (((exists ff_h_functional_r_range_decoded. ff_h_functional_r_range_decoded + S (1 + ff_i_functional_r_range) = S ((S (ff_i_functional_r_range)) * ff_c_functional_r)) /\ exists ff_q_functional_r_range_decoded. ff_b_functional_r = ff_q_functional_r_range_decoded * S ((S (ff_i_functional_r_range)) * ff_c_functional_r) + (1 + ff_i_functional_r_range)))) /\ (exists ff_u_functional_r_product ff_v_functional_r_product. ((((exists ff_h_functional_r_product_start. ff_h_functional_r_product_start + S (1) = S ((S (0)) * ff_v_functional_r_product)) /\ exists ff_q_functional_r_product_start. ff_u_functional_r_product = ff_q_functional_r_product_start * S ((S (0)) * ff_v_functional_r_product) + (1))) /\ ((((exists ff_h_functional_r_product_terminal. ff_h_functional_r_product_terminal + S (w) = S ((S (n)) * ff_v_functional_r_product)) /\ exists ff_q_functional_r_product_terminal. ff_u_functional_r_product = ff_q_functional_r_product_terminal * S ((S (n)) * ff_v_functional_r_product) + (w))) /\ forall ff_i_functional_r_product. (exists ff_lt_functional_r_product_bound. ff_lt_functional_r_product_bound + S ff_i_functional_r_product = n) -> exists ff_p_functional_r_product ff_r_functional_r_product ff_s_functional_r_product. ((((exists ff_h_functional_r_product_factor. ff_h_functional_r_product_factor + S (ff_p_functional_r_product) = S ((S (ff_i_functional_r_product)) * ff_c_functional_r)) /\ exists ff_q_functional_r_product_factor. ff_b_functional_r = ff_q_functional_r_product_factor * S ((S (ff_i_functional_r_product)) * ff_c_functional_r) + (ff_p_functional_r_product))) /\ ((((exists ff_h_functional_r_product_partial. ff_h_functional_r_product_partial + S (ff_r_functional_r_product) = S ((S (ff_i_functional_r_product)) * ff_v_functional_r_product)) /\ exists ff_q_functional_r_product_partial. ff_u_functional_r_product = ff_q_functional_r_product_partial * S ((S (ff_i_functional_r_product)) * ff_v_functional_r_product) + (ff_r_functional_r_product))) /\ ((((exists ff_h_functional_r_product_successor. ff_h_functional_r_product_successor + S (ff_s_functional_r_product) = S ((S (S ff_i_functional_r_product)) * ff_v_functional_r_product)) /\ exists ff_q_functional_r_product_successor. ff_u_functional_r_product = ff_q_functional_r_product_successor * S ((S (S ff_i_functional_r_product)) * ff_v_functional_r_product) + (ff_s_functional_r_product))) /\ ff_s_functional_r_product = ff_r_functional_r_product * ff_p_functional_r_product)))))))) -> z = wProof neighborhood
Direct theorem prerequisites
BT0088 beta_range_transport_entry BT005L beta_product_transport_prefix BT005G beta_product_functionalDirect 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.
Named ingredients (3)
01Fix variables and assumptionsL1–5
02Separate the logical casesL6–11
03Establish htransportL12–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta product transport prefix.
- L12
have htransport : Product(x2,x3,n,z)Definitions: Product(x2,x3,n,z)Original native command in the exact edition - L13
specialize beta_product_transport_prefix x - L14
specialize beta_product_transport_prefix x1 - L15
specialize beta_product_transport_prefix x2 - L16
specialize beta_product_transport_prefix x3 - L17
specialize beta_product_transport_prefix n - L18
specialize beta_product_transport_prefix z - L19
apply beta_product_transport_prefix - L20
exact hz_witness_witness_right - L21
intro i
04Fix variables and assumptionsL22–24
05Use earlier factsL25–30
Instantiate or apply named facts and discharge the corresponding proof obligations.
06Establish hentriesL31–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta range transport entry.
- L31
have hentries : ∀ i. ∀ p. Lt(i,n) → BetaAt(x,x1,i,p) → BetaAt(x2,x3,i,p)Definitions: Lt(i,n)BetaAt(x,x1,i,p)BetaAt(x2,x3,i,p)Original native command in the exact edition - L32
apply beta_range_transport_entry - L33
exact hz_witness_witness_left - L34
exact hw_witness_witness_left - L35
specialize hentries i - L36
specialize hentries p - L37
apply hentries - L38
exact hi - L39
exact hp
07Separate the logical casesL40–43
08Use earlier factsL44–53
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L44
specialize beta_product_functional x2 - L45
specialize beta_product_functional x3 - L46
specialize beta_product_functional n - L47
specialize beta_product_functional z - L48
specialize beta_product_functional x4 - L49
specialize beta_product_functional x5 - L50
specialize beta_product_functional w - L51
specialize beta_product_functional x6 - L52
specialize beta_product_functional x7 - L53
apply beta_product_functional
Original defined command ledger · 55 lines
- 0001
intro n - 0002
intro z - 0003
intro w - 0004
intro hz - 0005
intro hw - 0006
cases hz - 0007
cases hz_witness - 0008
cases hz_witness_witness - 0009
cases hw - 0010
cases hw_witness - 0011
cases hw_witness_witness - 0012
have htransport : Product(x2,x3,n,z)Exact native replay line
have htransport : exists ff_u_factorial_transport ff_v_factorial_transport. ((((exists ff_h_factorial_transport_start. ff_h_factorial_transport_start + S (1) = S ((S (0)) * ff_v_factorial_transport)) /\ exists ff_q_factorial_transport_start. ff_u_factorial_transport = ff_q_factorial_transport_start * S ((S (0)) * ff_v_factorial_transport) + (1))) /\ ((((exists ff_h_factorial_transport_terminal. ff_h_factorial_transport_terminal + S (z) = S ((S (n)) * ff_v_factorial_transport)) /\ exists ff_q_factorial_transport_terminal. ff_u_factorial_transport = ff_q_factorial_transport_terminal * S ((S (n)) * ff_v_factorial_transport) + (z))) /\ forall ff_i_factorial_transport. (exists ff_lt_factorial_transport_bound. ff_lt_factorial_transport_bound + S ff_i_factorial_transport = n) -> exists ff_p_factorial_transport ff_r_factorial_transport ff_s_factorial_transport. ((((exists ff_h_factorial_transport_factor. ff_h_factorial_transport_factor + S (ff_p_factorial_transport) = S ((S (ff_i_factorial_transport)) * x3)) /\ exists ff_q_factorial_transport_factor. x2 = ff_q_factorial_transport_factor * S ((S (ff_i_factorial_transport)) * x3) + (ff_p_factorial_transport))) /\ ((((exists ff_h_factorial_transport_partial. ff_h_factorial_transport_partial + S (ff_r_factorial_transport) = S ((S (ff_i_factorial_transport)) * ff_v_factorial_transport)) /\ exists ff_q_factorial_transport_partial. ff_u_factorial_transport = ff_q_factorial_transport_partial * S ((S (ff_i_factorial_transport)) * ff_v_factorial_transport) + (ff_r_factorial_transport))) /\ ((((exists ff_h_factorial_transport_successor. ff_h_factorial_transport_successor + S (ff_s_factorial_transport) = S ((S (S ff_i_factorial_transport)) * ff_v_factorial_transport)) /\ exists ff_q_factorial_transport_successor. ff_u_factorial_transport = ff_q_factorial_transport_successor * S ((S (S ff_i_factorial_transport)) * ff_v_factorial_transport) + (ff_s_factorial_transport))) /\ ff_s_factorial_transport = ff_r_factorial_transport * ff_p_factorial_transport))))) - 0013
specialize beta_product_transport_prefix x - 0014
specialize beta_product_transport_prefix x1 - 0015
specialize beta_product_transport_prefix x2 - 0016
specialize beta_product_transport_prefix x3 - 0017
specialize beta_product_transport_prefix n - 0018
specialize beta_product_transport_prefix z - 0019
apply beta_product_transport_prefix - 0020
exact hz_witness_witness_right - 0021
intro i - 0022
intro p - 0023
intro hi - 0024
intro hp - 0025
specialize beta_range_transport_entry x - 0026
specialize beta_range_transport_entry x1 - 0027
specialize beta_range_transport_entry x2 - 0028
specialize beta_range_transport_entry x3 - 0029
specialize beta_range_transport_entry 1 - 0030
specialize beta_range_transport_entry n - 0031
have hentries : ∀ i. ∀ p. Lt(i,n) → BetaAt(x,x1,i,p) → BetaAt(x2,x3,i,p)Exact native replay line
have hentries : forall i p. (exists h. h + S i = n) -> (((exists ff_h_factorial_transport_l. ff_h_factorial_transport_l + S (p) = S ((S (i)) * x1)) /\ exists ff_q_factorial_transport_l. x = ff_q_factorial_transport_l * S ((S (i)) * x1) + (p))) -> (((exists ff_h_factorial_transport_r. ff_h_factorial_transport_r + S (p) = S ((S (i)) * x3)) /\ exists ff_q_factorial_transport_r. x2 = ff_q_factorial_transport_r * S ((S (i)) * x3) + (p))) - 0032
apply beta_range_transport_entry - 0033
exact hz_witness_witness_left - 0034
exact hw_witness_witness_left - 0035
specialize hentries i - 0036
specialize hentries p - 0037
apply hentries - 0038
exact hi - 0039
exact hp - 0040
cases htransport - 0041
cases htransport_witness - 0042
cases hw_witness_witness_right - 0043
cases hw_witness_witness_right_witness - 0044
specialize beta_product_functional x2 - 0045
specialize beta_product_functional x3 - 0046
specialize beta_product_functional n - 0047
specialize beta_product_functional z - 0048
specialize beta_product_functional x4 - 0049
specialize beta_product_functional x5 - 0050
specialize beta_product_functional w - 0051
specialize beta_product_functional x6 - 0052
specialize beta_product_functional x7 - 0053
apply beta_product_functional - 0054
exact htransport_witness_witness - 0055
exact hw_witness_witness_right_witness_witness