BT0093

pow_one_from_zero_successor

Stable ยท empty-context checked

A successor of a zero exponent gives the relational first power.

Exact expanded PA statement

forall a z e n. z = 0 -> e = S z -> (exists ff_b_one_carrier ff_c_one_carrier. ((forall ff_i_one_carrier_repeat. (exists ff_lt_one_carrier_repeat_bound. ff_lt_one_carrier_repeat_bound + S ff_i_one_carrier_repeat = e) -> (((exists ff_h_one_carrier_repeat_decoded. ff_h_one_carrier_repeat_decoded + S (a) = S ((S (ff_i_one_carrier_repeat)) * ff_c_one_carrier)) /\ exists ff_q_one_carrier_repeat_decoded. ff_b_one_carrier = ff_q_one_carrier_repeat_decoded * S ((S (ff_i_one_carrier_repeat)) * ff_c_one_carrier) + (a)))) /\ (exists ff_u_one_carrier_product ff_v_one_carrier_product. ((((exists ff_h_one_carrier_product_start. ff_h_one_carrier_product_start + S (1) = S ((S (0)) * ff_v_one_carrier_product)) /\ exists ff_q_one_carrier_product_start. ff_u_one_carrier_product = ff_q_one_carrier_product_start * S ((S (0)) * ff_v_one_carrier_product) + (1))) /\ ((((exists ff_h_one_carrier_product_terminal. ff_h_one_carrier_product_terminal + S (n) = S ((S (e)) * ff_v_one_carrier_product)) /\ exists ff_q_one_carrier_product_terminal. ff_u_one_carrier_product = ff_q_one_carrier_product_terminal * S ((S (e)) * ff_v_one_carrier_product) + (n))) /\ forall ff_i_one_carrier_product. (exists ff_lt_one_carrier_product_bound. ff_lt_one_carrier_product_bound + S ff_i_one_carrier_product = e) -> exists ff_p_one_carrier_product ff_r_one_carrier_product ff_s_one_carrier_product. ((((exists ff_h_one_carrier_product_factor. ff_h_one_carrier_product_factor + S (ff_p_one_carrier_product) = S ((S (ff_i_one_carrier_product)) * ff_c_one_carrier)) /\ exists ff_q_one_carrier_product_factor. ff_b_one_carrier = ff_q_one_carrier_product_factor * S ((S (ff_i_one_carrier_product)) * ff_c_one_carrier) + (ff_p_one_carrier_product))) /\ ((((exists ff_h_one_carrier_product_partial. ff_h_one_carrier_product_partial + S (ff_r_one_carrier_product) = S ((S (ff_i_one_carrier_product)) * ff_v_one_carrier_product)) /\ exists ff_q_one_carrier_product_partial. ff_u_one_carrier_product = ff_q_one_carrier_product_partial * S ((S (ff_i_one_carrier_product)) * ff_v_one_carrier_product) + (ff_r_one_carrier_product))) /\ ((((exists ff_h_one_carrier_product_successor. ff_h_one_carrier_product_successor + S (ff_s_one_carrier_product) = S ((S (S ff_i_one_carrier_product)) * ff_v_one_carrier_product)) /\ exists ff_q_one_carrier_product_successor. ff_u_one_carrier_product = ff_q_one_carrier_product_successor * S ((S (S ff_i_one_carrier_product)) * ff_v_one_carrier_product) + (ff_s_one_carrier_product))) /\ ff_s_one_carrier_product = ff_r_one_carrier_product * ff_p_one_carrier_product)))))))) -> n = a

Structural proof guide

A successor of a zero exponent gives the relational first power.

Direct prerequisites: pow_successor_decompose, pow_zero, one_mul. The authored body proceeds by case analysis (2), intermediate claims (2), equality transport (1).

Proof neighborhood

Direct dependencies

Direct dependents

Formal native tactic body

Dependencies are hypotheses of this body receipt. The focused endpoint audits separately check the complete empty-context certificates.

  1. 0001intro a
  2. 0002intro z
  3. 0003intro e
  4. 0004intro n
  5. 0005intro hz
  6. 0006intro he
  7. 0007intro hpow
  8. 0008have hstep : exists r. (exists ff_b_one_predecessor ff_c_one_predecessor. ((forall ff_i_one_predecessor_repeat. (exists ff_lt_one_predecessor_repeat_bound. ff_lt_one_predecessor_repeat_bound + S ff_i_one_predecessor_repeat = z) -> (((exists ff_h_one_predecessor_repeat_decoded. ff_h_one_predecessor_repeat_decoded + S (a) = S ((S (ff_i_one_predecessor_repeat)) * ff_c_one_predecessor)) /\ exists ff_q_one_predecessor_repeat_decoded. ff_b_one_predecessor = ff_q_one_predecessor_repeat_decoded * S ((S (ff_i_one_predecessor_repeat)) * ff_c_one_predecessor) + (a)))) /\ (exists ff_u_one_predecessor_product ff_v_one_predecessor_product. ((((exists ff_h_one_predecessor_product_start. ff_h_one_predecessor_product_start + S (1) = S ((S (0)) * ff_v_one_predecessor_product)) /\ exists ff_q_one_predecessor_product_start. ff_u_one_predecessor_product = ff_q_one_predecessor_product_start * S ((S (0)) * ff_v_one_predecessor_product) + (1))) /\ ((((exists ff_h_one_predecessor_product_terminal. ff_h_one_predecessor_product_terminal + S (r) = S ((S (z)) * ff_v_one_predecessor_product)) /\ exists ff_q_one_predecessor_product_terminal. ff_u_one_predecessor_product = ff_q_one_predecessor_product_terminal * S ((S (z)) * ff_v_one_predecessor_product) + (r))) /\ forall ff_i_one_predecessor_product. (exists ff_lt_one_predecessor_product_bound. ff_lt_one_predecessor_product_bound + S ff_i_one_predecessor_product = z) -> exists ff_p_one_predecessor_product ff_r_one_predecessor_product ff_s_one_predecessor_product. ((((exists ff_h_one_predecessor_product_factor. ff_h_one_predecessor_product_factor + S (ff_p_one_predecessor_product) = S ((S (ff_i_one_predecessor_product)) * ff_c_one_predecessor)) /\ exists ff_q_one_predecessor_product_factor. ff_b_one_predecessor = ff_q_one_predecessor_product_factor * S ((S (ff_i_one_predecessor_product)) * ff_c_one_predecessor) + (ff_p_one_predecessor_product))) /\ ((((exists ff_h_one_predecessor_product_partial. ff_h_one_predecessor_product_partial + S (ff_r_one_predecessor_product) = S ((S (ff_i_one_predecessor_product)) * ff_v_one_predecessor_product)) /\ exists ff_q_one_predecessor_product_partial. ff_u_one_predecessor_product = ff_q_one_predecessor_product_partial * S ((S (ff_i_one_predecessor_product)) * ff_v_one_predecessor_product) + (ff_r_one_predecessor_product))) /\ ((((exists ff_h_one_predecessor_product_successor. ff_h_one_predecessor_product_successor + S (ff_s_one_predecessor_product) = S ((S (S ff_i_one_predecessor_product)) * ff_v_one_predecessor_product)) /\ exists ff_q_one_predecessor_product_successor. ff_u_one_predecessor_product = ff_q_one_predecessor_product_successor * S ((S (S ff_i_one_predecessor_product)) * ff_v_one_predecessor_product) + (ff_s_one_predecessor_product))) /\ ff_s_one_predecessor_product = ff_r_one_predecessor_product * ff_p_one_predecessor_product)))))))) /\ n = r * a
  9. 0009specialize pow_successor_decompose a
  10. 0010specialize pow_successor_decompose z
  11. 0011specialize pow_successor_decompose e
  12. 0012specialize pow_successor_decompose n
  13. 0013apply pow_successor_decompose
  14. 0014exact he
  15. 0015exact hpow
  16. 0016cases hstep
  17. 0017cases hstep_witness
  18. 0018have hr : x = 1
  19. 0019specialize pow_zero a
  20. 0020specialize pow_zero z
  21. 0021specialize pow_zero x
  22. 0022apply pow_zero
  23. 0023exact hz
  24. 0024exact hstep_witness_left
  25. 0025trans x * a
  26. 0026exact hstep_witness_right
  27. 0027rewrite hr
  28. 0028specialize one_mul a
  29. 0029exact one_mul