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.
- 0001
intro b - 0002
intro c - 0003
intro l - 0004
intro n - 0005
intro hsum - 0006
intro hzero - 0007
have 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) - 0008
specialize beta_sum_succ_decompose b - 0009
specialize beta_sum_succ_decompose c - 0010
specialize beta_sum_succ_decompose l - 0011
specialize beta_sum_succ_decompose n - 0012
apply beta_sum_succ_decompose - 0013
exact hsum - 0014
cases hdecomposition - 0015
cases hdecomposition_witness - 0016
cases hdecomposition_witness_witness - 0017
cases hdecomposition_witness_witness_right - 0018
have ha : x = 0 - 0019
specialize beta_at_unique b - 0020
specialize beta_at_unique c - 0021
specialize beta_at_unique l - 0022
specialize beta_at_unique x - 0023
specialize beta_at_unique 0 - 0024
apply beta_at_unique - 0025
exact hdecomposition_witness_witness_left - 0026
exact hzero - 0027
have hn : n = x1 - 0028
trans x1 + x - 0029
exact hdecomposition_witness_witness_right_right - 0030
rewrite ha - 0031
apply PA3 - 0032
rewrite hn - 0033
rewrite hn - 0034
exact hdecomposition_witness_witness_right_left