BT00SR

beta_sum_succ_last_zero

Alpha body-checked ยท checked-use disabled

A successor beta sum with final entry zero is its predecessor sum.

Exact expanded PA statement

forall b c l n. (exists fs_u_blrr_drop_successor fs_v_blrr_drop_successor. ((((exists fs_h_blrr_drop_successor_body_start. fs_h_blrr_drop_successor_body_start + S (0) = S ((S (0)) * fs_v_blrr_drop_successor)) /\ exists fs_q_blrr_drop_successor_body_start. fs_u_blrr_drop_successor = fs_q_blrr_drop_successor_body_start * S ((S (0)) * fs_v_blrr_drop_successor) + (0))) /\ ((((exists fs_h_blrr_drop_successor_body_terminal. fs_h_blrr_drop_successor_body_terminal + S (n) = S ((S (S l)) * fs_v_blrr_drop_successor)) /\ exists fs_q_blrr_drop_successor_body_terminal. fs_u_blrr_drop_successor = fs_q_blrr_drop_successor_body_terminal * S ((S (S l)) * fs_v_blrr_drop_successor) + (n))) /\ forall fs_i_blrr_drop_successor_body_steps. (exists fs_lt_blrr_drop_successor_body_steps_bound. fs_lt_blrr_drop_successor_body_steps_bound + S fs_i_blrr_drop_successor_body_steps = S l) -> exists fs_a_blrr_drop_successor_body_steps fs_r_blrr_drop_successor_body_steps fs_s_blrr_drop_successor_body_steps. ((((exists fs_h_blrr_drop_successor_body_steps_summand. fs_h_blrr_drop_successor_body_steps_summand + S (fs_a_blrr_drop_successor_body_steps) = S ((S (fs_i_blrr_drop_successor_body_steps)) * c)) /\ exists fs_q_blrr_drop_successor_body_steps_summand. b = fs_q_blrr_drop_successor_body_steps_summand * S ((S (fs_i_blrr_drop_successor_body_steps)) * c) + (fs_a_blrr_drop_successor_body_steps))) /\ ((((exists fs_h_blrr_drop_successor_body_steps_partial. fs_h_blrr_drop_successor_body_steps_partial + S (fs_r_blrr_drop_successor_body_steps) = S ((S (fs_i_blrr_drop_successor_body_steps)) * fs_v_blrr_drop_successor)) /\ exists fs_q_blrr_drop_successor_body_steps_partial. fs_u_blrr_drop_successor = fs_q_blrr_drop_successor_body_steps_partial * S ((S (fs_i_blrr_drop_successor_body_steps)) * fs_v_blrr_drop_successor) + (fs_r_blrr_drop_successor_body_steps))) /\ ((((exists fs_h_blrr_drop_successor_body_steps_successor. fs_h_blrr_drop_successor_body_steps_successor + S (fs_s_blrr_drop_successor_body_steps) = S ((S (S fs_i_blrr_drop_successor_body_steps)) * fs_v_blrr_drop_successor)) /\ exists fs_q_blrr_drop_successor_body_steps_successor. fs_u_blrr_drop_successor = fs_q_blrr_drop_successor_body_steps_successor * S ((S (S fs_i_blrr_drop_successor_body_steps)) * fs_v_blrr_drop_successor) + (fs_s_blrr_drop_successor_body_steps))) /\ fs_s_blrr_drop_successor_body_steps = fs_r_blrr_drop_successor_body_steps + fs_a_blrr_drop_successor_body_steps)))))) -> (((exists fs_h_blrr_drop_zero. fs_h_blrr_drop_zero + S (0) = S ((S (l)) * c)) /\ exists fs_q_blrr_drop_zero. b = fs_q_blrr_drop_zero * S ((S (l)) * c) + (0))) -> (exists ff_u_blrr_drop_predecessor ff_v_blrr_drop_predecessor. ((((exists ff_h_blrr_drop_predecessor_start. ff_h_blrr_drop_predecessor_start + S (0) = S ((S (0)) * ff_v_blrr_drop_predecessor)) /\ exists ff_q_blrr_drop_predecessor_start. ff_u_blrr_drop_predecessor = ff_q_blrr_drop_predecessor_start * S ((S (0)) * ff_v_blrr_drop_predecessor) + (0))) /\ ((((exists ff_h_blrr_drop_predecessor_terminal. ff_h_blrr_drop_predecessor_terminal + S (n) = S ((S (l)) * ff_v_blrr_drop_predecessor)) /\ exists ff_q_blrr_drop_predecessor_terminal. ff_u_blrr_drop_predecessor = ff_q_blrr_drop_predecessor_terminal * S ((S (l)) * ff_v_blrr_drop_predecessor) + (n))) /\ forall ff_i_blrr_drop_predecessor. (exists ff_lt_blrr_drop_predecessor_bound. ff_lt_blrr_drop_predecessor_bound + S ff_i_blrr_drop_predecessor = l) -> exists ff_a_blrr_drop_predecessor ff_r_blrr_drop_predecessor ff_s_blrr_drop_predecessor. ((((exists ff_h_blrr_drop_predecessor_summand. ff_h_blrr_drop_predecessor_summand + S (ff_a_blrr_drop_predecessor) = S ((S (ff_i_blrr_drop_predecessor)) * c)) /\ exists ff_q_blrr_drop_predecessor_summand. b = ff_q_blrr_drop_predecessor_summand * S ((S (ff_i_blrr_drop_predecessor)) * c) + (ff_a_blrr_drop_predecessor))) /\ ((((exists ff_h_blrr_drop_predecessor_partial. ff_h_blrr_drop_predecessor_partial + S (ff_r_blrr_drop_predecessor) = S ((S (ff_i_blrr_drop_predecessor)) * ff_v_blrr_drop_predecessor)) /\ exists ff_q_blrr_drop_predecessor_partial. ff_u_blrr_drop_predecessor = ff_q_blrr_drop_predecessor_partial * S ((S (ff_i_blrr_drop_predecessor)) * ff_v_blrr_drop_predecessor) + (ff_r_blrr_drop_predecessor))) /\ ((((exists ff_h_blrr_drop_predecessor_successor. ff_h_blrr_drop_predecessor_successor + S (ff_s_blrr_drop_predecessor) = S ((S (S ff_i_blrr_drop_predecessor)) * ff_v_blrr_drop_predecessor)) /\ exists ff_q_blrr_drop_predecessor_successor. ff_u_blrr_drop_predecessor = ff_q_blrr_drop_predecessor_successor * S ((S (S ff_i_blrr_drop_predecessor)) * ff_v_blrr_drop_predecessor) + (ff_s_blrr_drop_predecessor))) /\ ff_s_blrr_drop_predecessor = ff_r_blrr_drop_predecessor + ff_a_blrr_drop_predecessor))))))

Structural proof guide

A successor beta sum with final entry zero is its predecessor sum.

Direct prerequisites: beta_sum_succ_decompose, beta_at_unique. The authored body proceeds by case analysis (4), intermediate claims (3), equality transport (3).

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 b
  2. 0002intro c
  3. 0003intro l
  4. 0004intro n
  5. 0005intro hsum
  6. 0006intro hzero
  7. 0007have hdecomposition : exists a r. (((exists ff_h_blrr_drop_decomposition_entry. ff_h_blrr_drop_decomposition_entry + S (a) = S ((S (l)) * c)) /\ exists ff_q_blrr_drop_decomposition_entry. b = ff_q_blrr_drop_decomposition_entry * S ((S (l)) * c) + (a))) /\ ((exists ff_u_blrr_drop_decomposition_prefix ff_v_blrr_drop_decomposition_prefix. ((((exists ff_h_blrr_drop_decomposition_prefix_start. ff_h_blrr_drop_decomposition_prefix_start + S (0) = S ((S (0)) * ff_v_blrr_drop_decomposition_prefix)) /\ exists ff_q_blrr_drop_decomposition_prefix_start. ff_u_blrr_drop_decomposition_prefix = ff_q_blrr_drop_decomposition_prefix_start * S ((S (0)) * ff_v_blrr_drop_decomposition_prefix) + (0))) /\ ((((exists ff_h_blrr_drop_decomposition_prefix_terminal. ff_h_blrr_drop_decomposition_prefix_terminal + S (r) = S ((S (l)) * ff_v_blrr_drop_decomposition_prefix)) /\ exists ff_q_blrr_drop_decomposition_prefix_terminal. ff_u_blrr_drop_decomposition_prefix = ff_q_blrr_drop_decomposition_prefix_terminal * S ((S (l)) * ff_v_blrr_drop_decomposition_prefix) + (r))) /\ forall ff_i_blrr_drop_decomposition_prefix. (exists ff_lt_blrr_drop_decomposition_prefix_bound. ff_lt_blrr_drop_decomposition_prefix_bound + S ff_i_blrr_drop_decomposition_prefix = l) -> exists ff_a_blrr_drop_decomposition_prefix ff_r_blrr_drop_decomposition_prefix ff_s_blrr_drop_decomposition_prefix. ((((exists ff_h_blrr_drop_decomposition_prefix_summand. ff_h_blrr_drop_decomposition_prefix_summand + S (ff_a_blrr_drop_decomposition_prefix) = S ((S (ff_i_blrr_drop_decomposition_prefix)) * c)) /\ exists ff_q_blrr_drop_decomposition_prefix_summand. b = ff_q_blrr_drop_decomposition_prefix_summand * S ((S (ff_i_blrr_drop_decomposition_prefix)) * c) + (ff_a_blrr_drop_decomposition_prefix))) /\ ((((exists ff_h_blrr_drop_decomposition_prefix_partial. ff_h_blrr_drop_decomposition_prefix_partial + S (ff_r_blrr_drop_decomposition_prefix) = S ((S (ff_i_blrr_drop_decomposition_prefix)) * ff_v_blrr_drop_decomposition_prefix)) /\ exists ff_q_blrr_drop_decomposition_prefix_partial. ff_u_blrr_drop_decomposition_prefix = ff_q_blrr_drop_decomposition_prefix_partial * S ((S (ff_i_blrr_drop_decomposition_prefix)) * ff_v_blrr_drop_decomposition_prefix) + (ff_r_blrr_drop_decomposition_prefix))) /\ ((((exists ff_h_blrr_drop_decomposition_prefix_successor. ff_h_blrr_drop_decomposition_prefix_successor + S (ff_s_blrr_drop_decomposition_prefix) = S ((S (S ff_i_blrr_drop_decomposition_prefix)) * ff_v_blrr_drop_decomposition_prefix)) /\ exists ff_q_blrr_drop_decomposition_prefix_successor. ff_u_blrr_drop_decomposition_prefix = ff_q_blrr_drop_decomposition_prefix_successor * S ((S (S ff_i_blrr_drop_decomposition_prefix)) * ff_v_blrr_drop_decomposition_prefix) + (ff_s_blrr_drop_decomposition_prefix))) /\ ff_s_blrr_drop_decomposition_prefix = ff_r_blrr_drop_decomposition_prefix + ff_a_blrr_drop_decomposition_prefix)))))) /\ n = r + a)
  8. 0008specialize beta_sum_succ_decompose b
  9. 0009specialize beta_sum_succ_decompose c
  10. 0010specialize beta_sum_succ_decompose l
  11. 0011specialize beta_sum_succ_decompose n
  12. 0012apply beta_sum_succ_decompose
  13. 0013exact hsum
  14. 0014cases hdecomposition
  15. 0015cases hdecomposition_witness
  16. 0016cases hdecomposition_witness_witness
  17. 0017cases hdecomposition_witness_witness_right
  18. 0018have ha : x = 0
  19. 0019specialize beta_at_unique b
  20. 0020specialize beta_at_unique c
  21. 0021specialize beta_at_unique l
  22. 0022specialize beta_at_unique x
  23. 0023specialize beta_at_unique 0
  24. 0024apply beta_at_unique
  25. 0025exact hdecomposition_witness_witness_left
  26. 0026exact hzero
  27. 0027have hn : n = x1
  28. 0028trans x1 + x
  29. 0029exact hdecomposition_witness_witness_right_right
  30. 0030rewrite ha
  31. 0031apply PA3
  32. 0032rewrite hn
  33. 0033rewrite hn
  34. 0034exact hdecomposition_witness_witness_right_left