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. ∀ b. ∀ e. ∀ x. ∀ y. Le(a,b) → Pow(a,e,x) → Pow(b,e,y) → Le(x,y)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
4 occurrences
In local proof propositions
3 occurrences
Exact expanded native-PA statement
forall a b e x y. (exists bpo_gap_pow_base. bpo_gap_pow_base + (a) = (b)) -> (exists ff_b_bpo_left ff_c_bpo_left. ((forall ff_i_bpo_left_repeat. (exists ff_lt_bpo_left_repeat_bound. ff_lt_bpo_left_repeat_bound + S ff_i_bpo_left_repeat = e) -> (((exists ff_h_bpo_left_repeat_decoded. ff_h_bpo_left_repeat_decoded + S (a) = S ((S (ff_i_bpo_left_repeat)) * ff_c_bpo_left)) /\ exists ff_q_bpo_left_repeat_decoded. ff_b_bpo_left = ff_q_bpo_left_repeat_decoded * S ((S (ff_i_bpo_left_repeat)) * ff_c_bpo_left) + (a)))) /\ (exists ff_u_bpo_left_product ff_v_bpo_left_product. ((((exists ff_h_bpo_left_product_start. ff_h_bpo_left_product_start + S (1) = S ((S (0)) * ff_v_bpo_left_product)) /\ exists ff_q_bpo_left_product_start. ff_u_bpo_left_product = ff_q_bpo_left_product_start * S ((S (0)) * ff_v_bpo_left_product) + (1))) /\ ((((exists ff_h_bpo_left_product_terminal. ff_h_bpo_left_product_terminal + S (x) = S ((S (e)) * ff_v_bpo_left_product)) /\ exists ff_q_bpo_left_product_terminal. ff_u_bpo_left_product = ff_q_bpo_left_product_terminal * S ((S (e)) * ff_v_bpo_left_product) + (x))) /\ forall ff_i_bpo_left_product. (exists ff_lt_bpo_left_product_bound. ff_lt_bpo_left_product_bound + S ff_i_bpo_left_product = e) -> exists ff_p_bpo_left_product ff_r_bpo_left_product ff_s_bpo_left_product. ((((exists ff_h_bpo_left_product_factor. ff_h_bpo_left_product_factor + S (ff_p_bpo_left_product) = S ((S (ff_i_bpo_left_product)) * ff_c_bpo_left)) /\ exists ff_q_bpo_left_product_factor. ff_b_bpo_left = ff_q_bpo_left_product_factor * S ((S (ff_i_bpo_left_product)) * ff_c_bpo_left) + (ff_p_bpo_left_product))) /\ ((((exists ff_h_bpo_left_product_partial. ff_h_bpo_left_product_partial + S (ff_r_bpo_left_product) = S ((S (ff_i_bpo_left_product)) * ff_v_bpo_left_product)) /\ exists ff_q_bpo_left_product_partial. ff_u_bpo_left_product = ff_q_bpo_left_product_partial * S ((S (ff_i_bpo_left_product)) * ff_v_bpo_left_product) + (ff_r_bpo_left_product))) /\ ((((exists ff_h_bpo_left_product_successor. ff_h_bpo_left_product_successor + S (ff_s_bpo_left_product) = S ((S (S ff_i_bpo_left_product)) * ff_v_bpo_left_product)) /\ exists ff_q_bpo_left_product_successor. ff_u_bpo_left_product = ff_q_bpo_left_product_successor * S ((S (S ff_i_bpo_left_product)) * ff_v_bpo_left_product) + (ff_s_bpo_left_product))) /\ ff_s_bpo_left_product = ff_r_bpo_left_product * ff_p_bpo_left_product)))))))) -> (exists ff_b_bpo_right ff_c_bpo_right. ((forall ff_i_bpo_right_repeat. (exists ff_lt_bpo_right_repeat_bound. ff_lt_bpo_right_repeat_bound + S ff_i_bpo_right_repeat = e) -> (((exists ff_h_bpo_right_repeat_decoded. ff_h_bpo_right_repeat_decoded + S (b) = S ((S (ff_i_bpo_right_repeat)) * ff_c_bpo_right)) /\ exists ff_q_bpo_right_repeat_decoded. ff_b_bpo_right = ff_q_bpo_right_repeat_decoded * S ((S (ff_i_bpo_right_repeat)) * ff_c_bpo_right) + (b)))) /\ (exists ff_u_bpo_right_product ff_v_bpo_right_product. ((((exists ff_h_bpo_right_product_start. ff_h_bpo_right_product_start + S (1) = S ((S (0)) * ff_v_bpo_right_product)) /\ exists ff_q_bpo_right_product_start. ff_u_bpo_right_product = ff_q_bpo_right_product_start * S ((S (0)) * ff_v_bpo_right_product) + (1))) /\ ((((exists ff_h_bpo_right_product_terminal. ff_h_bpo_right_product_terminal + S (y) = S ((S (e)) * ff_v_bpo_right_product)) /\ exists ff_q_bpo_right_product_terminal. ff_u_bpo_right_product = ff_q_bpo_right_product_terminal * S ((S (e)) * ff_v_bpo_right_product) + (y))) /\ forall ff_i_bpo_right_product. (exists ff_lt_bpo_right_product_bound. ff_lt_bpo_right_product_bound + S ff_i_bpo_right_product = e) -> exists ff_p_bpo_right_product ff_r_bpo_right_product ff_s_bpo_right_product. ((((exists ff_h_bpo_right_product_factor. ff_h_bpo_right_product_factor + S (ff_p_bpo_right_product) = S ((S (ff_i_bpo_right_product)) * ff_c_bpo_right)) /\ exists ff_q_bpo_right_product_factor. ff_b_bpo_right = ff_q_bpo_right_product_factor * S ((S (ff_i_bpo_right_product)) * ff_c_bpo_right) + (ff_p_bpo_right_product))) /\ ((((exists ff_h_bpo_right_product_partial. ff_h_bpo_right_product_partial + S (ff_r_bpo_right_product) = S ((S (ff_i_bpo_right_product)) * ff_v_bpo_right_product)) /\ exists ff_q_bpo_right_product_partial. ff_u_bpo_right_product = ff_q_bpo_right_product_partial * S ((S (ff_i_bpo_right_product)) * ff_v_bpo_right_product) + (ff_r_bpo_right_product))) /\ ((((exists ff_h_bpo_right_product_successor. ff_h_bpo_right_product_successor + S (ff_s_bpo_right_product) = S ((S (S ff_i_bpo_right_product)) * ff_v_bpo_right_product)) /\ exists ff_q_bpo_right_product_successor. ff_u_bpo_right_product = ff_q_bpo_right_product_successor * S ((S (S ff_i_bpo_right_product)) * ff_v_bpo_right_product) + (ff_s_bpo_right_product))) /\ ff_s_bpo_right_product = ff_r_bpo_right_product * ff_p_bpo_right_product)))))))) -> (exists bpo_gap_pow_result. bpo_gap_pow_result + (x) = (y))Proof neighborhood
Direct theorem prerequisites
Direct theorem dependents
BT00SW bertrand_h_six_step_transport_from_total BT00SX bertrand_j_six_step_transport_from_total BT00W3 pow_block_bound_from_total BT00WF pow_six_six_le_pow_four_eight_from_total BT00WG pow_six_four_le_pow_four_six_from_total BT00WH pow_three_five_block_plus_one_le_pow_four_four_block_plus_one_from_total BT00WJ pow_two_successor_double_le_pow_four_successor_from_total BT00WQ bertrand_h_root_33_from_total BT00WR bertrand_h_root_34_from_total BT00WS bertrand_h_root_35_from_total BT00WT bertrand_h_root_36_from_total BT00WU bertrand_h_root_37_from_total BT00WV bertrand_j_base_thirty_two_window_from_total BT00X4 bertrand_floor_power_product_le_h_from_totalDefinition-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 (4)
01Fix variables and assumptionsL1–3
02Induction on eL4–9
03Establish hx1L10–16
04Establish hy1L17–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow zero.
05Use earlier factsL27–27
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L27
exact le_refl
06Fix variables and assumptionsL28–32
07Establish hxstepL33–40
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow successor decompose.
- L33
have hxstep : ∃ r. Pow(a,e,r) ∧ x = r · aDefinitions: Pow(a,e,r)Original native command in the exact edition - L34
specialize pow_successor_decompose a - L35
specialize pow_successor_decompose e - L36
specialize pow_successor_decompose (S e) - L37
specialize pow_successor_decompose x - L38
apply pow_successor_decompose - L39
refl - L40
exact hx
08Separate the logical casesL41–42
09Establish hystepL43–50
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow successor decompose.
- L43
have hystep : ∃ s. Pow(b,e,s) ∧ y = s · bDefinitions: Pow(b,e,s)Original native command in the exact edition - L44
specialize pow_successor_decompose b - L45
specialize pow_successor_decompose e - L46
specialize pow_successor_decompose (S e) - L47
specialize pow_successor_decompose y - L48
apply pow_successor_decompose - L49
refl - L50
exact hy
10Separate the logical casesL51–52
11Establish hprefL53–62
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
Original defined command ledger · 68 lines
- 0001
intro a - 0002
intro b - 0003
intro e - 0004
induction e - 0005
intro x - 0006
intro y - 0007
intro hab - 0008
intro hx - 0009
intro hy - 0010
have hx1 : x = 1 - 0011
specialize pow_zero a - 0012
specialize pow_zero 0 - 0013
specialize pow_zero x - 0014
apply pow_zero - 0015
refl - 0016
exact hx - 0017
have hy1 : y = 1 - 0018
specialize pow_zero b - 0019
specialize pow_zero 0 - 0020
specialize pow_zero y - 0021
apply pow_zero - 0022
refl - 0023
exact hy - 0024
rewrite hx1 - 0025
rewrite hy1 - 0026
specialize le_refl 1 - 0027
exact le_refl - 0028
intro x - 0029
intro y - 0030
intro hab - 0031
intro hx - 0032
intro hy - 0033
have hxstep : ∃ r. Pow(a,e,r) ∧ x = r · aExact native replay line
have hxstep : exists r. (exists ff_b_bpo_left_prefix ff_c_bpo_left_prefix. ((forall ff_i_bpo_left_prefix_repeat. (exists ff_lt_bpo_left_prefix_repeat_bound. ff_lt_bpo_left_prefix_repeat_bound + S ff_i_bpo_left_prefix_repeat = e) -> (((exists ff_h_bpo_left_prefix_repeat_decoded. ff_h_bpo_left_prefix_repeat_decoded + S (a) = S ((S (ff_i_bpo_left_prefix_repeat)) * ff_c_bpo_left_prefix)) /\ exists ff_q_bpo_left_prefix_repeat_decoded. ff_b_bpo_left_prefix = ff_q_bpo_left_prefix_repeat_decoded * S ((S (ff_i_bpo_left_prefix_repeat)) * ff_c_bpo_left_prefix) + (a)))) /\ (exists ff_u_bpo_left_prefix_product ff_v_bpo_left_prefix_product. ((((exists ff_h_bpo_left_prefix_product_start. ff_h_bpo_left_prefix_product_start + S (1) = S ((S (0)) * ff_v_bpo_left_prefix_product)) /\ exists ff_q_bpo_left_prefix_product_start. ff_u_bpo_left_prefix_product = ff_q_bpo_left_prefix_product_start * S ((S (0)) * ff_v_bpo_left_prefix_product) + (1))) /\ ((((exists ff_h_bpo_left_prefix_product_terminal. ff_h_bpo_left_prefix_product_terminal + S (r) = S ((S (e)) * ff_v_bpo_left_prefix_product)) /\ exists ff_q_bpo_left_prefix_product_terminal. ff_u_bpo_left_prefix_product = ff_q_bpo_left_prefix_product_terminal * S ((S (e)) * ff_v_bpo_left_prefix_product) + (r))) /\ forall ff_i_bpo_left_prefix_product. (exists ff_lt_bpo_left_prefix_product_bound. ff_lt_bpo_left_prefix_product_bound + S ff_i_bpo_left_prefix_product = e) -> exists ff_p_bpo_left_prefix_product ff_r_bpo_left_prefix_product ff_s_bpo_left_prefix_product. ((((exists ff_h_bpo_left_prefix_product_factor. ff_h_bpo_left_prefix_product_factor + S (ff_p_bpo_left_prefix_product) = S ((S (ff_i_bpo_left_prefix_product)) * ff_c_bpo_left_prefix)) /\ exists ff_q_bpo_left_prefix_product_factor. ff_b_bpo_left_prefix = ff_q_bpo_left_prefix_product_factor * S ((S (ff_i_bpo_left_prefix_product)) * ff_c_bpo_left_prefix) + (ff_p_bpo_left_prefix_product))) /\ ((((exists ff_h_bpo_left_prefix_product_partial. ff_h_bpo_left_prefix_product_partial + S (ff_r_bpo_left_prefix_product) = S ((S (ff_i_bpo_left_prefix_product)) * ff_v_bpo_left_prefix_product)) /\ exists ff_q_bpo_left_prefix_product_partial. ff_u_bpo_left_prefix_product = ff_q_bpo_left_prefix_product_partial * S ((S (ff_i_bpo_left_prefix_product)) * ff_v_bpo_left_prefix_product) + (ff_r_bpo_left_prefix_product))) /\ ((((exists ff_h_bpo_left_prefix_product_successor. ff_h_bpo_left_prefix_product_successor + S (ff_s_bpo_left_prefix_product) = S ((S (S ff_i_bpo_left_prefix_product)) * ff_v_bpo_left_prefix_product)) /\ exists ff_q_bpo_left_prefix_product_successor. ff_u_bpo_left_prefix_product = ff_q_bpo_left_prefix_product_successor * S ((S (S ff_i_bpo_left_prefix_product)) * ff_v_bpo_left_prefix_product) + (ff_s_bpo_left_prefix_product))) /\ ff_s_bpo_left_prefix_product = ff_r_bpo_left_prefix_product * ff_p_bpo_left_prefix_product)))))))) /\ x = r * a - 0034
specialize pow_successor_decompose a - 0035
specialize pow_successor_decompose e - 0036
specialize pow_successor_decompose (S e) - 0037
specialize pow_successor_decompose x - 0038
apply pow_successor_decompose - 0039
refl - 0040
exact hx - 0041
cases hxstep - 0042
cases hxstep_witness - 0043
have hystep : ∃ s. Pow(b,e,s) ∧ y = s · bExact native replay line
have hystep : exists s. (exists ff_b_bpo_right_prefix ff_c_bpo_right_prefix. ((forall ff_i_bpo_right_prefix_repeat. (exists ff_lt_bpo_right_prefix_repeat_bound. ff_lt_bpo_right_prefix_repeat_bound + S ff_i_bpo_right_prefix_repeat = e) -> (((exists ff_h_bpo_right_prefix_repeat_decoded. ff_h_bpo_right_prefix_repeat_decoded + S (b) = S ((S (ff_i_bpo_right_prefix_repeat)) * ff_c_bpo_right_prefix)) /\ exists ff_q_bpo_right_prefix_repeat_decoded. ff_b_bpo_right_prefix = ff_q_bpo_right_prefix_repeat_decoded * S ((S (ff_i_bpo_right_prefix_repeat)) * ff_c_bpo_right_prefix) + (b)))) /\ (exists ff_u_bpo_right_prefix_product ff_v_bpo_right_prefix_product. ((((exists ff_h_bpo_right_prefix_product_start. ff_h_bpo_right_prefix_product_start + S (1) = S ((S (0)) * ff_v_bpo_right_prefix_product)) /\ exists ff_q_bpo_right_prefix_product_start. ff_u_bpo_right_prefix_product = ff_q_bpo_right_prefix_product_start * S ((S (0)) * ff_v_bpo_right_prefix_product) + (1))) /\ ((((exists ff_h_bpo_right_prefix_product_terminal. ff_h_bpo_right_prefix_product_terminal + S (s) = S ((S (e)) * ff_v_bpo_right_prefix_product)) /\ exists ff_q_bpo_right_prefix_product_terminal. ff_u_bpo_right_prefix_product = ff_q_bpo_right_prefix_product_terminal * S ((S (e)) * ff_v_bpo_right_prefix_product) + (s))) /\ forall ff_i_bpo_right_prefix_product. (exists ff_lt_bpo_right_prefix_product_bound. ff_lt_bpo_right_prefix_product_bound + S ff_i_bpo_right_prefix_product = e) -> exists ff_p_bpo_right_prefix_product ff_r_bpo_right_prefix_product ff_s_bpo_right_prefix_product. ((((exists ff_h_bpo_right_prefix_product_factor. ff_h_bpo_right_prefix_product_factor + S (ff_p_bpo_right_prefix_product) = S ((S (ff_i_bpo_right_prefix_product)) * ff_c_bpo_right_prefix)) /\ exists ff_q_bpo_right_prefix_product_factor. ff_b_bpo_right_prefix = ff_q_bpo_right_prefix_product_factor * S ((S (ff_i_bpo_right_prefix_product)) * ff_c_bpo_right_prefix) + (ff_p_bpo_right_prefix_product))) /\ ((((exists ff_h_bpo_right_prefix_product_partial. ff_h_bpo_right_prefix_product_partial + S (ff_r_bpo_right_prefix_product) = S ((S (ff_i_bpo_right_prefix_product)) * ff_v_bpo_right_prefix_product)) /\ exists ff_q_bpo_right_prefix_product_partial. ff_u_bpo_right_prefix_product = ff_q_bpo_right_prefix_product_partial * S ((S (ff_i_bpo_right_prefix_product)) * ff_v_bpo_right_prefix_product) + (ff_r_bpo_right_prefix_product))) /\ ((((exists ff_h_bpo_right_prefix_product_successor. ff_h_bpo_right_prefix_product_successor + S (ff_s_bpo_right_prefix_product) = S ((S (S ff_i_bpo_right_prefix_product)) * ff_v_bpo_right_prefix_product)) /\ exists ff_q_bpo_right_prefix_product_successor. ff_u_bpo_right_prefix_product = ff_q_bpo_right_prefix_product_successor * S ((S (S ff_i_bpo_right_prefix_product)) * ff_v_bpo_right_prefix_product) + (ff_s_bpo_right_prefix_product))) /\ ff_s_bpo_right_prefix_product = ff_r_bpo_right_prefix_product * ff_p_bpo_right_prefix_product)))))))) /\ y = s * b - 0044
specialize pow_successor_decompose b - 0045
specialize pow_successor_decompose e - 0046
specialize pow_successor_decompose (S e) - 0047
specialize pow_successor_decompose y - 0048
apply pow_successor_decompose - 0049
refl - 0050
exact hy - 0051
cases hystep - 0052
cases hystep_witness - 0053
have hpref : Le(x1,x2)Exact native replay line
have hpref : exists k. k + x1 = x2 - 0054
specialize IH x1 - 0055
specialize IH x2 - 0056
apply IH - 0057
exact hab - 0058
exact hxstep_witness_left - 0059
exact hystep_witness_left - 0060
rewrite hxstep_witness_right - 0061
rewrite hystep_witness_right - 0062
specialize mul_le_mul x1 - 0063
specialize mul_le_mul x2 - 0064
specialize mul_le_mul a - 0065
specialize mul_le_mul b - 0066
apply mul_le_mul - 0067
exact hpref - 0068
exact hab