Exact expanded 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))Structural proof guide
Relational powers are monotone in the base at every exponent.
Direct prerequisites: pow_zero, pow_successor_decompose, le_refl, mul_le_mul. The authored body proceeds by structural induction (1), case analysis (4), intermediate claims (5), equality transport (4).
Proof neighborhood
Direct dependencies
Direct 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_totalFormal native tactic body
Dependencies are hypotheses of this body receipt. The focused endpoint audits separately check the complete empty-context certificates.
- 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 : 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 : 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 : 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