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
∀ a. ∀ e. ∀ x. Lt(0,a) → Pow(a,e,x) → Lt(0,x)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
3 occurrences
In local proof propositions
3 occurrences
Exact expanded native-PA statement
forall a e x. (exists bpg_gap_base. bpg_gap_base + (1) = (a)) -> (exists ff_b_bpg_value ff_c_bpg_value. ((forall ff_i_bpg_value_repeat. (exists ff_lt_bpg_value_repeat_bound. ff_lt_bpg_value_repeat_bound + S ff_i_bpg_value_repeat = e) -> (((exists ff_h_bpg_value_repeat_decoded. ff_h_bpg_value_repeat_decoded + S (a) = S ((S (ff_i_bpg_value_repeat)) * ff_c_bpg_value)) /\ exists ff_q_bpg_value_repeat_decoded. ff_b_bpg_value = ff_q_bpg_value_repeat_decoded * S ((S (ff_i_bpg_value_repeat)) * ff_c_bpg_value) + (a)))) /\ (exists ff_u_bpg_value_product ff_v_bpg_value_product. ((((exists ff_h_bpg_value_product_start. ff_h_bpg_value_product_start + S (1) = S ((S (0)) * ff_v_bpg_value_product)) /\ exists ff_q_bpg_value_product_start. ff_u_bpg_value_product = ff_q_bpg_value_product_start * S ((S (0)) * ff_v_bpg_value_product) + (1))) /\ ((((exists ff_h_bpg_value_product_terminal. ff_h_bpg_value_product_terminal + S (x) = S ((S (e)) * ff_v_bpg_value_product)) /\ exists ff_q_bpg_value_product_terminal. ff_u_bpg_value_product = ff_q_bpg_value_product_terminal * S ((S (e)) * ff_v_bpg_value_product) + (x))) /\ forall ff_i_bpg_value_product. (exists ff_lt_bpg_value_product_bound. ff_lt_bpg_value_product_bound + S ff_i_bpg_value_product = e) -> exists ff_p_bpg_value_product ff_r_bpg_value_product ff_s_bpg_value_product. ((((exists ff_h_bpg_value_product_factor. ff_h_bpg_value_product_factor + S (ff_p_bpg_value_product) = S ((S (ff_i_bpg_value_product)) * ff_c_bpg_value)) /\ exists ff_q_bpg_value_product_factor. ff_b_bpg_value = ff_q_bpg_value_product_factor * S ((S (ff_i_bpg_value_product)) * ff_c_bpg_value) + (ff_p_bpg_value_product))) /\ ((((exists ff_h_bpg_value_product_partial. ff_h_bpg_value_product_partial + S (ff_r_bpg_value_product) = S ((S (ff_i_bpg_value_product)) * ff_v_bpg_value_product)) /\ exists ff_q_bpg_value_product_partial. ff_u_bpg_value_product = ff_q_bpg_value_product_partial * S ((S (ff_i_bpg_value_product)) * ff_v_bpg_value_product) + (ff_r_bpg_value_product))) /\ ((((exists ff_h_bpg_value_product_successor. ff_h_bpg_value_product_successor + S (ff_s_bpg_value_product) = S ((S (S ff_i_bpg_value_product)) * ff_v_bpg_value_product)) /\ exists ff_q_bpg_value_product_successor. ff_u_bpg_value_product = ff_q_bpg_value_product_successor * S ((S (S ff_i_bpg_value_product)) * ff_v_bpg_value_product) + (ff_s_bpg_value_product))) /\ ff_s_bpg_value_product = ff_r_bpg_value_product * ff_p_bpg_value_product)))))))) -> (exists bpg_gap_value. bpg_gap_value + (1) = (x))Proof neighborhood
Direct theorem prerequisites
BT0081 pow_zero BT0083 pow_successor_decompose BT000E le_refl BT00PW le_mul_of_one_le_right BT000F le_transDirect 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 eL3–6
03Establish hx1L7–16
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow zero.
04Fix variables and assumptionsL17–19
05Establish hstepL20–27
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow successor decompose.
- L20
have hstep : ∃ r. Pow(a,e,r) ∧ x = r · aDefinitions: Pow(a,e,r)Original native command in the exact edition - L21
specialize pow_successor_decompose a - L22
specialize pow_successor_decompose e - L23
specialize pow_successor_decompose (S e) - L24
specialize pow_successor_decompose x - L25
apply pow_successor_decompose - L26
refl - L27
exact hx
06Separate the logical casesL28–29
07Establish hrL30–34
08Establish hrproductL35–44
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le mul of one le right.
- L35
have hrproduct : Le(x1,x1 · a)Definitions: Le(x1,x1 · a)Original native command in the exact edition - L36
specialize le_mul_of_one_le_right x1 - L37
specialize le_mul_of_one_le_right a - L38
apply le_mul_of_one_le_right - L39
exact ha - L40
rewrite hstep_witness_right - L41
specialize le_trans 1 - L42
specialize le_trans x1 - L43
specialize le_trans (x1 * a) - L44
apply le_trans
Original defined command ledger · 46 lines
- 0001
intro a - 0002
intro e - 0003
induction e - 0004
intro x - 0005
intro ha - 0006
intro hx - 0007
have hx1 : x = 1 - 0008
specialize pow_zero a - 0009
specialize pow_zero 0 - 0010
specialize pow_zero x - 0011
apply pow_zero - 0012
refl - 0013
exact hx - 0014
rewrite hx1 - 0015
specialize le_refl 1 - 0016
exact le_refl - 0017
intro x - 0018
intro ha - 0019
intro hx - 0020
have hstep : ∃ r. Pow(a,e,r) ∧ x = r · aExact native replay line
have hstep : exists r. (exists ff_b_bpg_prefix ff_c_bpg_prefix. ((forall ff_i_bpg_prefix_repeat. (exists ff_lt_bpg_prefix_repeat_bound. ff_lt_bpg_prefix_repeat_bound + S ff_i_bpg_prefix_repeat = e) -> (((exists ff_h_bpg_prefix_repeat_decoded. ff_h_bpg_prefix_repeat_decoded + S (a) = S ((S (ff_i_bpg_prefix_repeat)) * ff_c_bpg_prefix)) /\ exists ff_q_bpg_prefix_repeat_decoded. ff_b_bpg_prefix = ff_q_bpg_prefix_repeat_decoded * S ((S (ff_i_bpg_prefix_repeat)) * ff_c_bpg_prefix) + (a)))) /\ (exists ff_u_bpg_prefix_product ff_v_bpg_prefix_product. ((((exists ff_h_bpg_prefix_product_start. ff_h_bpg_prefix_product_start + S (1) = S ((S (0)) * ff_v_bpg_prefix_product)) /\ exists ff_q_bpg_prefix_product_start. ff_u_bpg_prefix_product = ff_q_bpg_prefix_product_start * S ((S (0)) * ff_v_bpg_prefix_product) + (1))) /\ ((((exists ff_h_bpg_prefix_product_terminal. ff_h_bpg_prefix_product_terminal + S (r) = S ((S (e)) * ff_v_bpg_prefix_product)) /\ exists ff_q_bpg_prefix_product_terminal. ff_u_bpg_prefix_product = ff_q_bpg_prefix_product_terminal * S ((S (e)) * ff_v_bpg_prefix_product) + (r))) /\ forall ff_i_bpg_prefix_product. (exists ff_lt_bpg_prefix_product_bound. ff_lt_bpg_prefix_product_bound + S ff_i_bpg_prefix_product = e) -> exists ff_p_bpg_prefix_product ff_r_bpg_prefix_product ff_s_bpg_prefix_product. ((((exists ff_h_bpg_prefix_product_factor. ff_h_bpg_prefix_product_factor + S (ff_p_bpg_prefix_product) = S ((S (ff_i_bpg_prefix_product)) * ff_c_bpg_prefix)) /\ exists ff_q_bpg_prefix_product_factor. ff_b_bpg_prefix = ff_q_bpg_prefix_product_factor * S ((S (ff_i_bpg_prefix_product)) * ff_c_bpg_prefix) + (ff_p_bpg_prefix_product))) /\ ((((exists ff_h_bpg_prefix_product_partial. ff_h_bpg_prefix_product_partial + S (ff_r_bpg_prefix_product) = S ((S (ff_i_bpg_prefix_product)) * ff_v_bpg_prefix_product)) /\ exists ff_q_bpg_prefix_product_partial. ff_u_bpg_prefix_product = ff_q_bpg_prefix_product_partial * S ((S (ff_i_bpg_prefix_product)) * ff_v_bpg_prefix_product) + (ff_r_bpg_prefix_product))) /\ ((((exists ff_h_bpg_prefix_product_successor. ff_h_bpg_prefix_product_successor + S (ff_s_bpg_prefix_product) = S ((S (S ff_i_bpg_prefix_product)) * ff_v_bpg_prefix_product)) /\ exists ff_q_bpg_prefix_product_successor. ff_u_bpg_prefix_product = ff_q_bpg_prefix_product_successor * S ((S (S ff_i_bpg_prefix_product)) * ff_v_bpg_prefix_product) + (ff_s_bpg_prefix_product))) /\ ff_s_bpg_prefix_product = ff_r_bpg_prefix_product * ff_p_bpg_prefix_product)))))))) /\ x = r * a - 0021
specialize pow_successor_decompose a - 0022
specialize pow_successor_decompose e - 0023
specialize pow_successor_decompose (S e) - 0024
specialize pow_successor_decompose x - 0025
apply pow_successor_decompose - 0026
refl - 0027
exact hx - 0028
cases hstep - 0029
cases hstep_witness - 0030
have hr : Lt(0,x1)Exact native replay line
have hr : exists k. k + 1 = x1 - 0031
specialize IH x1 - 0032
apply IH - 0033
exact ha - 0034
exact hstep_witness_left - 0035
have hrproduct : Le(x1,x1 · a)Exact native replay line
have hrproduct : exists k. k + x1 = x1 * a - 0036
specialize le_mul_of_one_le_right x1 - 0037
specialize le_mul_of_one_le_right a - 0038
apply le_mul_of_one_le_right - 0039
exact ha - 0040
rewrite hstep_witness_right - 0041
specialize le_trans 1 - 0042
specialize le_trans x1 - 0043
specialize le_trans (x1 * a) - 0044
apply le_trans - 0045
exact hr - 0046
exact hrproduct