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
∀ b. ∀ c. ∀ l. ∀ z. (∀ x. ∀ y. Lt(x,l) → BetaAt(b,c,x,y) → y = 1) → Product(b,c,l,z) → z = 1Every 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
3 occurrences
In local proof propositions
4 occurrences
Exact expanded native-PA statement
forall b c l z. (forall i a. (exists bcf_lt_gap_b5bpao_bound. bcf_lt_gap_b5bpao_bound + S (i) = l) -> (((exists bpr_height_b5bpao_entry. bpr_height_b5bpao_entry + S (a) = S ((S (i)) * c)) /\ exists bpr_quotient_b5bpao_entry. b = bpr_quotient_b5bpao_entry * S ((S (i)) * c) + (a))) -> a = 1) -> (exists ff_u_b5bpao_product ff_v_b5bpao_product. ((((exists ff_h_b5bpao_product_start. ff_h_b5bpao_product_start + S (1) = S ((S (0)) * ff_v_b5bpao_product)) /\ exists ff_q_b5bpao_product_start. ff_u_b5bpao_product = ff_q_b5bpao_product_start * S ((S (0)) * ff_v_b5bpao_product) + (1))) /\ ((((exists ff_h_b5bpao_product_terminal. ff_h_b5bpao_product_terminal + S (z) = S ((S (l)) * ff_v_b5bpao_product)) /\ exists ff_q_b5bpao_product_terminal. ff_u_b5bpao_product = ff_q_b5bpao_product_terminal * S ((S (l)) * ff_v_b5bpao_product) + (z))) /\ forall ff_i_b5bpao_product. (exists ff_lt_b5bpao_product_bound. ff_lt_b5bpao_product_bound + S ff_i_b5bpao_product = l) -> exists ff_p_b5bpao_product ff_r_b5bpao_product ff_s_b5bpao_product. ((((exists ff_h_b5bpao_product_factor. ff_h_b5bpao_product_factor + S (ff_p_b5bpao_product) = S ((S (ff_i_b5bpao_product)) * c)) /\ exists ff_q_b5bpao_product_factor. b = ff_q_b5bpao_product_factor * S ((S (ff_i_b5bpao_product)) * c) + (ff_p_b5bpao_product))) /\ ((((exists ff_h_b5bpao_product_partial. ff_h_b5bpao_product_partial + S (ff_r_b5bpao_product) = S ((S (ff_i_b5bpao_product)) * ff_v_b5bpao_product)) /\ exists ff_q_b5bpao_product_partial. ff_u_b5bpao_product = ff_q_b5bpao_product_partial * S ((S (ff_i_b5bpao_product)) * ff_v_b5bpao_product) + (ff_r_b5bpao_product))) /\ ((((exists ff_h_b5bpao_product_successor. ff_h_b5bpao_product_successor + S (ff_s_b5bpao_product) = S ((S (S ff_i_b5bpao_product)) * ff_v_b5bpao_product)) /\ exists ff_q_b5bpao_product_successor. ff_u_b5bpao_product = ff_q_b5bpao_product_successor * S ((S (S ff_i_b5bpao_product)) * ff_v_b5bpao_product) + (ff_s_b5bpao_product))) /\ ff_s_b5bpao_product = ff_r_b5bpao_product * ff_p_b5bpao_product)))))) -> z = 1Proof neighborhood
Direct theorem prerequisites
BT005I beta_product_zero BT005J beta_product_succ_decompose BT0018 le_succ BT000E le_refl BT000A mul_oneDirect 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 (5)
01Fix variables and assumptionsL1–2
02Induction on lL3–12
Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.
03Fix variables and assumptionsL13–14
04Establish hdecompositionL15–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta product succ decompose.
- L15
have hdecomposition : ∃ a. ∃ r. BetaAt(b,c,l,a) ∧ (Product(b,c,l,r) ∧ z = r · a)Definitions: BetaAt(b,c,l,a)Product(b,c,l,r)Original native command in the exact edition - L16
specialize beta_product_succ_decompose b - L17
specialize beta_product_succ_decompose c - L18
specialize beta_product_succ_decompose l - L19
specialize beta_product_succ_decompose z - L20
apply beta_product_succ_decompose - L21
exact hproduct
05Separate the logical casesL22–25
06Establish hpreviousL26–35
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hall.
07Use earlier factsL36–38
08Establish hprefix_oneL39–43
09Establish hfactor_oneL44–53
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hall.
Original defined command ledger · 55 lines
- 0001
intro b - 0002
intro c - 0003
induction l - 0004
intro z - 0005
intro hall - 0006
intro hproduct - 0007
specialize beta_product_zero b - 0008
specialize beta_product_zero c - 0009
specialize beta_product_zero z - 0010
apply beta_product_zero - 0011
exact hproduct - 0012
intro z - 0013
intro hall - 0014
intro hproduct - 0015
have hdecomposition : ∃ a. ∃ r. BetaAt(b,c,l,a) ∧ (Product(b,c,l,r) ∧ z = r · a)Exact native replay line
have hdecomposition : exists a r. (((exists bpr_height_b5bpao_decomposition_entry. bpr_height_b5bpao_decomposition_entry + S (a) = S ((S (l)) * c)) /\ exists bpr_quotient_b5bpao_decomposition_entry. b = bpr_quotient_b5bpao_decomposition_entry * S ((S (l)) * c) + (a))) /\ ((exists ff_u_b5bpao_decomposition_product ff_v_b5bpao_decomposition_product. ((((exists ff_h_b5bpao_decomposition_product_start. ff_h_b5bpao_decomposition_product_start + S (1) = S ((S (0)) * ff_v_b5bpao_decomposition_product)) /\ exists ff_q_b5bpao_decomposition_product_start. ff_u_b5bpao_decomposition_product = ff_q_b5bpao_decomposition_product_start * S ((S (0)) * ff_v_b5bpao_decomposition_product) + (1))) /\ ((((exists ff_h_b5bpao_decomposition_product_terminal. ff_h_b5bpao_decomposition_product_terminal + S (r) = S ((S (l)) * ff_v_b5bpao_decomposition_product)) /\ exists ff_q_b5bpao_decomposition_product_terminal. ff_u_b5bpao_decomposition_product = ff_q_b5bpao_decomposition_product_terminal * S ((S (l)) * ff_v_b5bpao_decomposition_product) + (r))) /\ forall ff_i_b5bpao_decomposition_product. (exists ff_lt_b5bpao_decomposition_product_bound. ff_lt_b5bpao_decomposition_product_bound + S ff_i_b5bpao_decomposition_product = l) -> exists ff_p_b5bpao_decomposition_product ff_r_b5bpao_decomposition_product ff_s_b5bpao_decomposition_product. ((((exists ff_h_b5bpao_decomposition_product_factor. ff_h_b5bpao_decomposition_product_factor + S (ff_p_b5bpao_decomposition_product) = S ((S (ff_i_b5bpao_decomposition_product)) * c)) /\ exists ff_q_b5bpao_decomposition_product_factor. b = ff_q_b5bpao_decomposition_product_factor * S ((S (ff_i_b5bpao_decomposition_product)) * c) + (ff_p_b5bpao_decomposition_product))) /\ ((((exists ff_h_b5bpao_decomposition_product_partial. ff_h_b5bpao_decomposition_product_partial + S (ff_r_b5bpao_decomposition_product) = S ((S (ff_i_b5bpao_decomposition_product)) * ff_v_b5bpao_decomposition_product)) /\ exists ff_q_b5bpao_decomposition_product_partial. ff_u_b5bpao_decomposition_product = ff_q_b5bpao_decomposition_product_partial * S ((S (ff_i_b5bpao_decomposition_product)) * ff_v_b5bpao_decomposition_product) + (ff_r_b5bpao_decomposition_product))) /\ ((((exists ff_h_b5bpao_decomposition_product_successor. ff_h_b5bpao_decomposition_product_successor + S (ff_s_b5bpao_decomposition_product) = S ((S (S ff_i_b5bpao_decomposition_product)) * ff_v_b5bpao_decomposition_product)) /\ exists ff_q_b5bpao_decomposition_product_successor. ff_u_b5bpao_decomposition_product = ff_q_b5bpao_decomposition_product_successor * S ((S (S ff_i_b5bpao_decomposition_product)) * ff_v_b5bpao_decomposition_product) + (ff_s_b5bpao_decomposition_product))) /\ ff_s_b5bpao_decomposition_product = ff_r_b5bpao_decomposition_product * ff_p_b5bpao_decomposition_product)))))) /\ z = r * a) - 0016
specialize beta_product_succ_decompose b - 0017
specialize beta_product_succ_decompose c - 0018
specialize beta_product_succ_decompose l - 0019
specialize beta_product_succ_decompose z - 0020
apply beta_product_succ_decompose - 0021
exact hproduct - 0022
cases hdecomposition - 0023
cases hdecomposition_witness - 0024
cases hdecomposition_witness_witness - 0025
cases hdecomposition_witness_witness_right - 0026
have hprevious : ∀ i. ∀ a. Lt(i,l) → BetaAt(b,c,i,a) → a = 1Exact native replay line
have hprevious : forall i a. (exists bcf_lt_gap_b5bpao_previous_bound. bcf_lt_gap_b5bpao_previous_bound + S (i) = l) -> (((exists bpr_height_b5bpao_previous_entry. bpr_height_b5bpao_previous_entry + S (a) = S ((S (i)) * c)) /\ exists bpr_quotient_b5bpao_previous_entry. b = bpr_quotient_b5bpao_previous_entry * S ((S (i)) * c) + (a))) -> a = 1 - 0027
intro i - 0028
intro a - 0029
intro hi - 0030
intro ha - 0031
specialize hall i - 0032
specialize hall a - 0033
apply hall - 0034
specialize le_succ (S i) - 0035
specialize le_succ l - 0036
apply le_succ - 0037
exact hi - 0038
exact ha - 0039
have hprefix_one : x1 = 1 - 0040
specialize IH x1 - 0041
apply IH - 0042
exact hprevious - 0043
exact hdecomposition_witness_witness_right_left - 0044
have hfactor_one : x = 1 - 0045
specialize hall l - 0046
specialize hall x - 0047
apply hall - 0048
specialize le_refl (S l) - 0049
exact le_refl - 0050
exact hdecomposition_witness_witness_left - 0051
rewrite hdecomposition_witness_witness_right_right - 0052
rewrite hprefix_one - 0053
rewrite hfactor_one - 0054
specialize mul_one 1 - 0055
exact mul_one