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. ∀ f. ∀ p. ∀ x. ∀ y. ∀ z. (∀ n. ∀ m. ∃ k. Pow(n,m,k)) → p = e · f → Pow(a,e,x) → Pow(x,f,y) → Pow(a,p,z) → y = zEvery 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
2 occurrences
Exact expanded native-PA statement
forall a e f p x y z. (forall bpt_a_mul_exp bpt_e_mul_exp. exists bpt_x_mul_exp. (exists ff_b_bpt_value_mul_exp ff_c_bpt_value_mul_exp. ((forall ff_i_bpt_value_mul_exp_repeat. (exists ff_lt_bpt_value_mul_exp_repeat_bound. ff_lt_bpt_value_mul_exp_repeat_bound + S ff_i_bpt_value_mul_exp_repeat = bpt_e_mul_exp) -> (((exists ff_h_bpt_value_mul_exp_repeat_decoded. ff_h_bpt_value_mul_exp_repeat_decoded + S (bpt_a_mul_exp) = S ((S (ff_i_bpt_value_mul_exp_repeat)) * ff_c_bpt_value_mul_exp)) /\ exists ff_q_bpt_value_mul_exp_repeat_decoded. ff_b_bpt_value_mul_exp = ff_q_bpt_value_mul_exp_repeat_decoded * S ((S (ff_i_bpt_value_mul_exp_repeat)) * ff_c_bpt_value_mul_exp) + (bpt_a_mul_exp)))) /\ (exists ff_u_bpt_value_mul_exp_product ff_v_bpt_value_mul_exp_product. ((((exists ff_h_bpt_value_mul_exp_product_start. ff_h_bpt_value_mul_exp_product_start + S (1) = S ((S (0)) * ff_v_bpt_value_mul_exp_product)) /\ exists ff_q_bpt_value_mul_exp_product_start. ff_u_bpt_value_mul_exp_product = ff_q_bpt_value_mul_exp_product_start * S ((S (0)) * ff_v_bpt_value_mul_exp_product) + (1))) /\ ((((exists ff_h_bpt_value_mul_exp_product_terminal. ff_h_bpt_value_mul_exp_product_terminal + S (bpt_x_mul_exp) = S ((S (bpt_e_mul_exp)) * ff_v_bpt_value_mul_exp_product)) /\ exists ff_q_bpt_value_mul_exp_product_terminal. ff_u_bpt_value_mul_exp_product = ff_q_bpt_value_mul_exp_product_terminal * S ((S (bpt_e_mul_exp)) * ff_v_bpt_value_mul_exp_product) + (bpt_x_mul_exp))) /\ forall ff_i_bpt_value_mul_exp_product. (exists ff_lt_bpt_value_mul_exp_product_bound. ff_lt_bpt_value_mul_exp_product_bound + S ff_i_bpt_value_mul_exp_product = bpt_e_mul_exp) -> exists ff_p_bpt_value_mul_exp_product ff_r_bpt_value_mul_exp_product ff_s_bpt_value_mul_exp_product. ((((exists ff_h_bpt_value_mul_exp_product_factor. ff_h_bpt_value_mul_exp_product_factor + S (ff_p_bpt_value_mul_exp_product) = S ((S (ff_i_bpt_value_mul_exp_product)) * ff_c_bpt_value_mul_exp)) /\ exists ff_q_bpt_value_mul_exp_product_factor. ff_b_bpt_value_mul_exp = ff_q_bpt_value_mul_exp_product_factor * S ((S (ff_i_bpt_value_mul_exp_product)) * ff_c_bpt_value_mul_exp) + (ff_p_bpt_value_mul_exp_product))) /\ ((((exists ff_h_bpt_value_mul_exp_product_partial. ff_h_bpt_value_mul_exp_product_partial + S (ff_r_bpt_value_mul_exp_product) = S ((S (ff_i_bpt_value_mul_exp_product)) * ff_v_bpt_value_mul_exp_product)) /\ exists ff_q_bpt_value_mul_exp_product_partial. ff_u_bpt_value_mul_exp_product = ff_q_bpt_value_mul_exp_product_partial * S ((S (ff_i_bpt_value_mul_exp_product)) * ff_v_bpt_value_mul_exp_product) + (ff_r_bpt_value_mul_exp_product))) /\ ((((exists ff_h_bpt_value_mul_exp_product_successor. ff_h_bpt_value_mul_exp_product_successor + S (ff_s_bpt_value_mul_exp_product) = S ((S (S ff_i_bpt_value_mul_exp_product)) * ff_v_bpt_value_mul_exp_product)) /\ exists ff_q_bpt_value_mul_exp_product_successor. ff_u_bpt_value_mul_exp_product = ff_q_bpt_value_mul_exp_product_successor * S ((S (S ff_i_bpt_value_mul_exp_product)) * ff_v_bpt_value_mul_exp_product) + (ff_s_bpt_value_mul_exp_product))) /\ ff_s_bpt_value_mul_exp_product = ff_r_bpt_value_mul_exp_product * ff_p_bpt_value_mul_exp_product))))))))) -> p = e * f -> (exists ff_b_bpt_mul_base ff_c_bpt_mul_base. ((forall ff_i_bpt_mul_base_repeat. (exists ff_lt_bpt_mul_base_repeat_bound. ff_lt_bpt_mul_base_repeat_bound + S ff_i_bpt_mul_base_repeat = e) -> (((exists ff_h_bpt_mul_base_repeat_decoded. ff_h_bpt_mul_base_repeat_decoded + S (a) = S ((S (ff_i_bpt_mul_base_repeat)) * ff_c_bpt_mul_base)) /\ exists ff_q_bpt_mul_base_repeat_decoded. ff_b_bpt_mul_base = ff_q_bpt_mul_base_repeat_decoded * S ((S (ff_i_bpt_mul_base_repeat)) * ff_c_bpt_mul_base) + (a)))) /\ (exists ff_u_bpt_mul_base_product ff_v_bpt_mul_base_product. ((((exists ff_h_bpt_mul_base_product_start. ff_h_bpt_mul_base_product_start + S (1) = S ((S (0)) * ff_v_bpt_mul_base_product)) /\ exists ff_q_bpt_mul_base_product_start. ff_u_bpt_mul_base_product = ff_q_bpt_mul_base_product_start * S ((S (0)) * ff_v_bpt_mul_base_product) + (1))) /\ ((((exists ff_h_bpt_mul_base_product_terminal. ff_h_bpt_mul_base_product_terminal + S (x) = S ((S (e)) * ff_v_bpt_mul_base_product)) /\ exists ff_q_bpt_mul_base_product_terminal. ff_u_bpt_mul_base_product = ff_q_bpt_mul_base_product_terminal * S ((S (e)) * ff_v_bpt_mul_base_product) + (x))) /\ forall ff_i_bpt_mul_base_product. (exists ff_lt_bpt_mul_base_product_bound. ff_lt_bpt_mul_base_product_bound + S ff_i_bpt_mul_base_product = e) -> exists ff_p_bpt_mul_base_product ff_r_bpt_mul_base_product ff_s_bpt_mul_base_product. ((((exists ff_h_bpt_mul_base_product_factor. ff_h_bpt_mul_base_product_factor + S (ff_p_bpt_mul_base_product) = S ((S (ff_i_bpt_mul_base_product)) * ff_c_bpt_mul_base)) /\ exists ff_q_bpt_mul_base_product_factor. ff_b_bpt_mul_base = ff_q_bpt_mul_base_product_factor * S ((S (ff_i_bpt_mul_base_product)) * ff_c_bpt_mul_base) + (ff_p_bpt_mul_base_product))) /\ ((((exists ff_h_bpt_mul_base_product_partial. ff_h_bpt_mul_base_product_partial + S (ff_r_bpt_mul_base_product) = S ((S (ff_i_bpt_mul_base_product)) * ff_v_bpt_mul_base_product)) /\ exists ff_q_bpt_mul_base_product_partial. ff_u_bpt_mul_base_product = ff_q_bpt_mul_base_product_partial * S ((S (ff_i_bpt_mul_base_product)) * ff_v_bpt_mul_base_product) + (ff_r_bpt_mul_base_product))) /\ ((((exists ff_h_bpt_mul_base_product_successor. ff_h_bpt_mul_base_product_successor + S (ff_s_bpt_mul_base_product) = S ((S (S ff_i_bpt_mul_base_product)) * ff_v_bpt_mul_base_product)) /\ exists ff_q_bpt_mul_base_product_successor. ff_u_bpt_mul_base_product = ff_q_bpt_mul_base_product_successor * S ((S (S ff_i_bpt_mul_base_product)) * ff_v_bpt_mul_base_product) + (ff_s_bpt_mul_base_product))) /\ ff_s_bpt_mul_base_product = ff_r_bpt_mul_base_product * ff_p_bpt_mul_base_product)))))))) -> (exists ff_b_bpt_mul_outer ff_c_bpt_mul_outer. ((forall ff_i_bpt_mul_outer_repeat. (exists ff_lt_bpt_mul_outer_repeat_bound. ff_lt_bpt_mul_outer_repeat_bound + S ff_i_bpt_mul_outer_repeat = f) -> (((exists ff_h_bpt_mul_outer_repeat_decoded. ff_h_bpt_mul_outer_repeat_decoded + S (x) = S ((S (ff_i_bpt_mul_outer_repeat)) * ff_c_bpt_mul_outer)) /\ exists ff_q_bpt_mul_outer_repeat_decoded. ff_b_bpt_mul_outer = ff_q_bpt_mul_outer_repeat_decoded * S ((S (ff_i_bpt_mul_outer_repeat)) * ff_c_bpt_mul_outer) + (x)))) /\ (exists ff_u_bpt_mul_outer_product ff_v_bpt_mul_outer_product. ((((exists ff_h_bpt_mul_outer_product_start. ff_h_bpt_mul_outer_product_start + S (1) = S ((S (0)) * ff_v_bpt_mul_outer_product)) /\ exists ff_q_bpt_mul_outer_product_start. ff_u_bpt_mul_outer_product = ff_q_bpt_mul_outer_product_start * S ((S (0)) * ff_v_bpt_mul_outer_product) + (1))) /\ ((((exists ff_h_bpt_mul_outer_product_terminal. ff_h_bpt_mul_outer_product_terminal + S (y) = S ((S (f)) * ff_v_bpt_mul_outer_product)) /\ exists ff_q_bpt_mul_outer_product_terminal. ff_u_bpt_mul_outer_product = ff_q_bpt_mul_outer_product_terminal * S ((S (f)) * ff_v_bpt_mul_outer_product) + (y))) /\ forall ff_i_bpt_mul_outer_product. (exists ff_lt_bpt_mul_outer_product_bound. ff_lt_bpt_mul_outer_product_bound + S ff_i_bpt_mul_outer_product = f) -> exists ff_p_bpt_mul_outer_product ff_r_bpt_mul_outer_product ff_s_bpt_mul_outer_product. ((((exists ff_h_bpt_mul_outer_product_factor. ff_h_bpt_mul_outer_product_factor + S (ff_p_bpt_mul_outer_product) = S ((S (ff_i_bpt_mul_outer_product)) * ff_c_bpt_mul_outer)) /\ exists ff_q_bpt_mul_outer_product_factor. ff_b_bpt_mul_outer = ff_q_bpt_mul_outer_product_factor * S ((S (ff_i_bpt_mul_outer_product)) * ff_c_bpt_mul_outer) + (ff_p_bpt_mul_outer_product))) /\ ((((exists ff_h_bpt_mul_outer_product_partial. ff_h_bpt_mul_outer_product_partial + S (ff_r_bpt_mul_outer_product) = S ((S (ff_i_bpt_mul_outer_product)) * ff_v_bpt_mul_outer_product)) /\ exists ff_q_bpt_mul_outer_product_partial. ff_u_bpt_mul_outer_product = ff_q_bpt_mul_outer_product_partial * S ((S (ff_i_bpt_mul_outer_product)) * ff_v_bpt_mul_outer_product) + (ff_r_bpt_mul_outer_product))) /\ ((((exists ff_h_bpt_mul_outer_product_successor. ff_h_bpt_mul_outer_product_successor + S (ff_s_bpt_mul_outer_product) = S ((S (S ff_i_bpt_mul_outer_product)) * ff_v_bpt_mul_outer_product)) /\ exists ff_q_bpt_mul_outer_product_successor. ff_u_bpt_mul_outer_product = ff_q_bpt_mul_outer_product_successor * S ((S (S ff_i_bpt_mul_outer_product)) * ff_v_bpt_mul_outer_product) + (ff_s_bpt_mul_outer_product))) /\ ff_s_bpt_mul_outer_product = ff_r_bpt_mul_outer_product * ff_p_bpt_mul_outer_product)))))))) -> (exists ff_b_bpt_mul_total ff_c_bpt_mul_total. ((forall ff_i_bpt_mul_total_repeat. (exists ff_lt_bpt_mul_total_repeat_bound. ff_lt_bpt_mul_total_repeat_bound + S ff_i_bpt_mul_total_repeat = p) -> (((exists ff_h_bpt_mul_total_repeat_decoded. ff_h_bpt_mul_total_repeat_decoded + S (a) = S ((S (ff_i_bpt_mul_total_repeat)) * ff_c_bpt_mul_total)) /\ exists ff_q_bpt_mul_total_repeat_decoded. ff_b_bpt_mul_total = ff_q_bpt_mul_total_repeat_decoded * S ((S (ff_i_bpt_mul_total_repeat)) * ff_c_bpt_mul_total) + (a)))) /\ (exists ff_u_bpt_mul_total_product ff_v_bpt_mul_total_product. ((((exists ff_h_bpt_mul_total_product_start. ff_h_bpt_mul_total_product_start + S (1) = S ((S (0)) * ff_v_bpt_mul_total_product)) /\ exists ff_q_bpt_mul_total_product_start. ff_u_bpt_mul_total_product = ff_q_bpt_mul_total_product_start * S ((S (0)) * ff_v_bpt_mul_total_product) + (1))) /\ ((((exists ff_h_bpt_mul_total_product_terminal. ff_h_bpt_mul_total_product_terminal + S (z) = S ((S (p)) * ff_v_bpt_mul_total_product)) /\ exists ff_q_bpt_mul_total_product_terminal. ff_u_bpt_mul_total_product = ff_q_bpt_mul_total_product_terminal * S ((S (p)) * ff_v_bpt_mul_total_product) + (z))) /\ forall ff_i_bpt_mul_total_product. (exists ff_lt_bpt_mul_total_product_bound. ff_lt_bpt_mul_total_product_bound + S ff_i_bpt_mul_total_product = p) -> exists ff_p_bpt_mul_total_product ff_r_bpt_mul_total_product ff_s_bpt_mul_total_product. ((((exists ff_h_bpt_mul_total_product_factor. ff_h_bpt_mul_total_product_factor + S (ff_p_bpt_mul_total_product) = S ((S (ff_i_bpt_mul_total_product)) * ff_c_bpt_mul_total)) /\ exists ff_q_bpt_mul_total_product_factor. ff_b_bpt_mul_total = ff_q_bpt_mul_total_product_factor * S ((S (ff_i_bpt_mul_total_product)) * ff_c_bpt_mul_total) + (ff_p_bpt_mul_total_product))) /\ ((((exists ff_h_bpt_mul_total_product_partial. ff_h_bpt_mul_total_product_partial + S (ff_r_bpt_mul_total_product) = S ((S (ff_i_bpt_mul_total_product)) * ff_v_bpt_mul_total_product)) /\ exists ff_q_bpt_mul_total_product_partial. ff_u_bpt_mul_total_product = ff_q_bpt_mul_total_product_partial * S ((S (ff_i_bpt_mul_total_product)) * ff_v_bpt_mul_total_product) + (ff_r_bpt_mul_total_product))) /\ ((((exists ff_h_bpt_mul_total_product_successor. ff_h_bpt_mul_total_product_successor + S (ff_s_bpt_mul_total_product) = S ((S (S ff_i_bpt_mul_total_product)) * ff_v_bpt_mul_total_product)) /\ exists ff_q_bpt_mul_total_product_successor. ff_u_bpt_mul_total_product = ff_q_bpt_mul_total_product_successor * S ((S (S ff_i_bpt_mul_total_product)) * ff_v_bpt_mul_total_product) + (ff_s_bpt_mul_total_product))) /\ ff_s_bpt_mul_total_product = ff_r_bpt_mul_total_product * ff_p_bpt_mul_total_product)))))))) -> y = zProof 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 BT00W6 pow_six_ten_le_pow_four_thirteen_from_total BT00WF pow_six_six_le_pow_four_eight_from_total BT00WG pow_six_four_le_pow_four_six_from_total BT00WI pow_two_double_eq_pow_four_from_total BT00WO pow_thirty_six_double_block_eq_pow_six_four_block_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 (3)
01Fix variables and assumptionsL1–2
02Induction on fL3–12
03Calculate and transport equalitiesL13–17
04Establish hy1L18–24
05Establish hz1L25–34
06Use earlier factsL35–35
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L35
exact hz1
07Fix variables and assumptionsL36–44
08Establish hy_stepL45–52
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow successor decompose.
- L45
have hy_step : ∃ r. Pow(x,f,r) ∧ y = r · xDefinitions: Pow(x,f,r)Original native command in the exact edition - L46
specialize pow_successor_decompose x - L47
specialize pow_successor_decompose f - L48
specialize pow_successor_decompose (S f) - L49
specialize pow_successor_decompose y - L50
apply pow_successor_decompose - L51
refl - L52
exact hy
09Separate the logical casesL53–54
10Establish hqpowL55–58
Establish this local claim before using it. It is not an additional assumption.
- L55
have hqpow : ∃ r. Pow(a,e · f,r)Definitions: Pow(a,e · f,r)Original native command in the exact edition - L56
specialize htotal a - L57
specialize htotal (e * f) - L58
exact htotal
11Separate the logical casesL59–59
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L59
cases hqpow
12Establish hprefixL60–69
13Use earlier factsL70–70
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L70
exact hqpow_witness
14Establish hpsumL71–74
15Establish hproductL75–84
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow add.
16Use earlier factsL85–87
17Calculate and transport equalitiesL88–88
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L88
trans x1 * x
18Use earlier factsL89–89
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L89
exact hy_step_witness_right
19Calculate and transport equalitiesL90–91
20Use earlier factsL92–92
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L92
exact hprefix
21Calculate and transport equalitiesL93–94
22Use earlier factsL95–95
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L95
exact hproduct
Original defined command ledger · 95 lines
- 0001
intro a - 0002
intro e - 0003
induction f - 0004
intro p - 0005
intro x - 0006
intro y - 0007
intro z - 0008
intro htotal - 0009
intro hp - 0010
intro hx - 0011
intro hy - 0012
intro hz - 0013
rewrite PA5 at hp - 0014
rewrite hp at hz - 0015
rewrite hp at hz - 0016
rewrite hp at hz - 0017
rewrite hp at hz - 0018
have hy1 : y = 1 - 0019
specialize pow_zero x - 0020
specialize pow_zero 0 - 0021
specialize pow_zero y - 0022
apply pow_zero - 0023
refl - 0024
exact hy - 0025
have hz1 : z = 1 - 0026
specialize pow_zero a - 0027
specialize pow_zero 0 - 0028
specialize pow_zero z - 0029
apply pow_zero - 0030
refl - 0031
exact hz - 0032
trans 1 - 0033
exact hy1 - 0034
symm - 0035
exact hz1 - 0036
intro p - 0037
intro x - 0038
intro y - 0039
intro z - 0040
intro htotal - 0041
intro hp - 0042
intro hx - 0043
intro hy - 0044
intro hz - 0045
have hy_step : ∃ r. Pow(x,f,r) ∧ y = r · xExact native replay line
have hy_step : exists r. (exists ff_b_bpt_mul_y_prefix ff_c_bpt_mul_y_prefix. ((forall ff_i_bpt_mul_y_prefix_repeat. (exists ff_lt_bpt_mul_y_prefix_repeat_bound. ff_lt_bpt_mul_y_prefix_repeat_bound + S ff_i_bpt_mul_y_prefix_repeat = f) -> (((exists ff_h_bpt_mul_y_prefix_repeat_decoded. ff_h_bpt_mul_y_prefix_repeat_decoded + S (x) = S ((S (ff_i_bpt_mul_y_prefix_repeat)) * ff_c_bpt_mul_y_prefix)) /\ exists ff_q_bpt_mul_y_prefix_repeat_decoded. ff_b_bpt_mul_y_prefix = ff_q_bpt_mul_y_prefix_repeat_decoded * S ((S (ff_i_bpt_mul_y_prefix_repeat)) * ff_c_bpt_mul_y_prefix) + (x)))) /\ (exists ff_u_bpt_mul_y_prefix_product ff_v_bpt_mul_y_prefix_product. ((((exists ff_h_bpt_mul_y_prefix_product_start. ff_h_bpt_mul_y_prefix_product_start + S (1) = S ((S (0)) * ff_v_bpt_mul_y_prefix_product)) /\ exists ff_q_bpt_mul_y_prefix_product_start. ff_u_bpt_mul_y_prefix_product = ff_q_bpt_mul_y_prefix_product_start * S ((S (0)) * ff_v_bpt_mul_y_prefix_product) + (1))) /\ ((((exists ff_h_bpt_mul_y_prefix_product_terminal. ff_h_bpt_mul_y_prefix_product_terminal + S (r) = S ((S (f)) * ff_v_bpt_mul_y_prefix_product)) /\ exists ff_q_bpt_mul_y_prefix_product_terminal. ff_u_bpt_mul_y_prefix_product = ff_q_bpt_mul_y_prefix_product_terminal * S ((S (f)) * ff_v_bpt_mul_y_prefix_product) + (r))) /\ forall ff_i_bpt_mul_y_prefix_product. (exists ff_lt_bpt_mul_y_prefix_product_bound. ff_lt_bpt_mul_y_prefix_product_bound + S ff_i_bpt_mul_y_prefix_product = f) -> exists ff_p_bpt_mul_y_prefix_product ff_r_bpt_mul_y_prefix_product ff_s_bpt_mul_y_prefix_product. ((((exists ff_h_bpt_mul_y_prefix_product_factor. ff_h_bpt_mul_y_prefix_product_factor + S (ff_p_bpt_mul_y_prefix_product) = S ((S (ff_i_bpt_mul_y_prefix_product)) * ff_c_bpt_mul_y_prefix)) /\ exists ff_q_bpt_mul_y_prefix_product_factor. ff_b_bpt_mul_y_prefix = ff_q_bpt_mul_y_prefix_product_factor * S ((S (ff_i_bpt_mul_y_prefix_product)) * ff_c_bpt_mul_y_prefix) + (ff_p_bpt_mul_y_prefix_product))) /\ ((((exists ff_h_bpt_mul_y_prefix_product_partial. ff_h_bpt_mul_y_prefix_product_partial + S (ff_r_bpt_mul_y_prefix_product) = S ((S (ff_i_bpt_mul_y_prefix_product)) * ff_v_bpt_mul_y_prefix_product)) /\ exists ff_q_bpt_mul_y_prefix_product_partial. ff_u_bpt_mul_y_prefix_product = ff_q_bpt_mul_y_prefix_product_partial * S ((S (ff_i_bpt_mul_y_prefix_product)) * ff_v_bpt_mul_y_prefix_product) + (ff_r_bpt_mul_y_prefix_product))) /\ ((((exists ff_h_bpt_mul_y_prefix_product_successor. ff_h_bpt_mul_y_prefix_product_successor + S (ff_s_bpt_mul_y_prefix_product) = S ((S (S ff_i_bpt_mul_y_prefix_product)) * ff_v_bpt_mul_y_prefix_product)) /\ exists ff_q_bpt_mul_y_prefix_product_successor. ff_u_bpt_mul_y_prefix_product = ff_q_bpt_mul_y_prefix_product_successor * S ((S (S ff_i_bpt_mul_y_prefix_product)) * ff_v_bpt_mul_y_prefix_product) + (ff_s_bpt_mul_y_prefix_product))) /\ ff_s_bpt_mul_y_prefix_product = ff_r_bpt_mul_y_prefix_product * ff_p_bpt_mul_y_prefix_product)))))))) /\ y = r * x - 0046
specialize pow_successor_decompose x - 0047
specialize pow_successor_decompose f - 0048
specialize pow_successor_decompose (S f) - 0049
specialize pow_successor_decompose y - 0050
apply pow_successor_decompose - 0051
refl - 0052
exact hy - 0053
cases hy_step - 0054
cases hy_step_witness - 0055
have hqpow : ∃ r. Pow(a,e · f,r)Exact native replay line
have hqpow : exists r. (exists pa_b_bpt_mul_total_prefix pa_c_bpt_mul_total_prefix. ((forall pa_i_bpt_mul_total_prefix_repeat. (exists pa_lt_bpt_mul_total_prefix_repeat_bound. pa_lt_bpt_mul_total_prefix_repeat_bound + S pa_i_bpt_mul_total_prefix_repeat = e * f) -> (((exists pa_h_bpt_mul_total_prefix_repeat_decoded. pa_h_bpt_mul_total_prefix_repeat_decoded + S (a) = S ((S (pa_i_bpt_mul_total_prefix_repeat)) * pa_c_bpt_mul_total_prefix)) /\ exists pa_q_bpt_mul_total_prefix_repeat_decoded. pa_b_bpt_mul_total_prefix = pa_q_bpt_mul_total_prefix_repeat_decoded * S ((S (pa_i_bpt_mul_total_prefix_repeat)) * pa_c_bpt_mul_total_prefix) + (a)))) /\ (exists pa_u_bpt_mul_total_prefix_product pa_v_bpt_mul_total_prefix_product. ((((exists pa_h_bpt_mul_total_prefix_product_start. pa_h_bpt_mul_total_prefix_product_start + S (1) = S ((S (0)) * pa_v_bpt_mul_total_prefix_product)) /\ exists pa_q_bpt_mul_total_prefix_product_start. pa_u_bpt_mul_total_prefix_product = pa_q_bpt_mul_total_prefix_product_start * S ((S (0)) * pa_v_bpt_mul_total_prefix_product) + (1))) /\ ((((exists pa_h_bpt_mul_total_prefix_product_terminal. pa_h_bpt_mul_total_prefix_product_terminal + S (r) = S ((S (e * f)) * pa_v_bpt_mul_total_prefix_product)) /\ exists pa_q_bpt_mul_total_prefix_product_terminal. pa_u_bpt_mul_total_prefix_product = pa_q_bpt_mul_total_prefix_product_terminal * S ((S (e * f)) * pa_v_bpt_mul_total_prefix_product) + (r))) /\ forall pa_i_bpt_mul_total_prefix_product. (exists pa_lt_bpt_mul_total_prefix_product_bound. pa_lt_bpt_mul_total_prefix_product_bound + S pa_i_bpt_mul_total_prefix_product = e * f) -> exists pa_p_bpt_mul_total_prefix_product pa_r_bpt_mul_total_prefix_product pa_s_bpt_mul_total_prefix_product. ((((exists pa_h_bpt_mul_total_prefix_product_factor. pa_h_bpt_mul_total_prefix_product_factor + S (pa_p_bpt_mul_total_prefix_product) = S ((S (pa_i_bpt_mul_total_prefix_product)) * pa_c_bpt_mul_total_prefix)) /\ exists pa_q_bpt_mul_total_prefix_product_factor. pa_b_bpt_mul_total_prefix = pa_q_bpt_mul_total_prefix_product_factor * S ((S (pa_i_bpt_mul_total_prefix_product)) * pa_c_bpt_mul_total_prefix) + (pa_p_bpt_mul_total_prefix_product))) /\ ((((exists pa_h_bpt_mul_total_prefix_product_partial. pa_h_bpt_mul_total_prefix_product_partial + S (pa_r_bpt_mul_total_prefix_product) = S ((S (pa_i_bpt_mul_total_prefix_product)) * pa_v_bpt_mul_total_prefix_product)) /\ exists pa_q_bpt_mul_total_prefix_product_partial. pa_u_bpt_mul_total_prefix_product = pa_q_bpt_mul_total_prefix_product_partial * S ((S (pa_i_bpt_mul_total_prefix_product)) * pa_v_bpt_mul_total_prefix_product) + (pa_r_bpt_mul_total_prefix_product))) /\ ((((exists pa_h_bpt_mul_total_prefix_product_successor. pa_h_bpt_mul_total_prefix_product_successor + S (pa_s_bpt_mul_total_prefix_product) = S ((S (S pa_i_bpt_mul_total_prefix_product)) * pa_v_bpt_mul_total_prefix_product)) /\ exists pa_q_bpt_mul_total_prefix_product_successor. pa_u_bpt_mul_total_prefix_product = pa_q_bpt_mul_total_prefix_product_successor * S ((S (S pa_i_bpt_mul_total_prefix_product)) * pa_v_bpt_mul_total_prefix_product) + (pa_s_bpt_mul_total_prefix_product))) /\ pa_s_bpt_mul_total_prefix_product = pa_r_bpt_mul_total_prefix_product * pa_p_bpt_mul_total_prefix_product)))))))) - 0056
specialize htotal a - 0057
specialize htotal (e * f) - 0058
exact htotal - 0059
cases hqpow - 0060
have hprefix : x1 = x2 - 0061
specialize IH (e * f) - 0062
specialize IH x - 0063
specialize IH x1 - 0064
specialize IH x2 - 0065
apply IH - 0066
exact htotal - 0067
refl - 0068
exact hx - 0069
exact hy_step_witness_left - 0070
exact hqpow_witness - 0071
have hpsum : p = (e * f) + e - 0072
trans e * S f - 0073
exact hp - 0074
apply PA6 - 0075
have hproduct : z = x2 * x - 0076
specialize pow_add a - 0077
specialize pow_add (e * f) - 0078
specialize pow_add e - 0079
specialize pow_add p - 0080
specialize pow_add x2 - 0081
specialize pow_add x - 0082
specialize pow_add z - 0083
apply pow_add - 0084
exact hpsum - 0085
exact hqpow_witness - 0086
exact hx - 0087
exact hz - 0088
trans x1 * x - 0089
exact hy_step_witness_right - 0090
trans x2 * x - 0091
congr - 0092
exact hprefix - 0093
refl - 0094
symm - 0095
exact hproduct