Exact expanded PA statement
forall b c z d l n a e. (((((exists wpo_beta_height_wpoi_append_bounded_trace_first. wpo_beta_height_wpoi_append_bounded_trace_first + S (a) = S ((S (l)) * d)) /\ exists wpo_beta_quotient_wpoi_append_bounded_trace_first. z = wpo_beta_quotient_wpoi_append_bounded_trace_first * S ((S (l)) * d) + (a))) /\ ((((exists wpo_beta_height_wpoi_append_bounded_trace_second. wpo_beta_height_wpoi_append_bounded_trace_second + S (e) = S ((S (S (l))) * d)) /\ exists wpo_beta_quotient_wpoi_append_bounded_trace_second. z = wpo_beta_quotient_wpoi_append_bounded_trace_second * S ((S (S (l))) * d) + (e))) /\ (forall wpo_old_index_wpoi_append_bounded_trace wpo_old_value_wpoi_append_bounded_trace. (exists wpo_gap_wpoi_append_bounded_trace_old_bound. wpo_gap_wpoi_append_bounded_trace_old_bound + S (wpo_old_index_wpoi_append_bounded_trace) = l) -> (((exists wpo_beta_height_wpoi_append_bounded_trace_old_entry. wpo_beta_height_wpoi_append_bounded_trace_old_entry + S (wpo_old_value_wpoi_append_bounded_trace) = S ((S (wpo_old_index_wpoi_append_bounded_trace)) * c)) /\ exists wpo_beta_quotient_wpoi_append_bounded_trace_old_entry. b = wpo_beta_quotient_wpoi_append_bounded_trace_old_entry * S ((S (wpo_old_index_wpoi_append_bounded_trace)) * c) + (wpo_old_value_wpoi_append_bounded_trace))) -> (((exists wpo_beta_height_wpoi_append_bounded_trace_new_entry. wpo_beta_height_wpoi_append_bounded_trace_new_entry + S (wpo_old_value_wpoi_append_bounded_trace) = S ((S (wpo_old_index_wpoi_append_bounded_trace)) * d)) /\ exists wpo_beta_quotient_wpoi_append_bounded_trace_new_entry. z = wpo_beta_quotient_wpoi_append_bounded_trace_new_entry * S ((S (wpo_old_index_wpoi_append_bounded_trace)) * d) + (wpo_old_value_wpoi_append_bounded_trace))))))) -> (forall fom_index_wpoi_append_bounded_before. (exists fom_gap_wpoi_append_bounded_before_index_bound. fom_gap_wpoi_append_bounded_before_index_bound + S (fom_index_wpoi_append_bounded_before) = l) -> exists fom_value_wpoi_append_bounded_before. ((((exists fom_beta_height_wpoi_append_bounded_before_entry. fom_beta_height_wpoi_append_bounded_before_entry + S (fom_value_wpoi_append_bounded_before) = S ((S (fom_index_wpoi_append_bounded_before)) * c)) /\ exists fom_beta_quotient_wpoi_append_bounded_before_entry. b = fom_beta_quotient_wpoi_append_bounded_before_entry * S ((S (fom_index_wpoi_append_bounded_before)) * c) + (fom_value_wpoi_append_bounded_before))) /\ (exists fom_gap_wpoi_append_bounded_before_value_bound. fom_gap_wpoi_append_bounded_before_value_bound + S (fom_value_wpoi_append_bounded_before) = n))) -> (exists wpo_gap_wpoi_append_first_bound. wpo_gap_wpoi_append_first_bound + S (a) = n) -> (exists wpo_gap_wpoi_append_second_bound. wpo_gap_wpoi_append_second_bound + S (e) = n) -> (forall fom_index_wpoi_append_bounded_after. (exists fom_gap_wpoi_append_bounded_after_index_bound. fom_gap_wpoi_append_bounded_after_index_bound + S (fom_index_wpoi_append_bounded_after) = S (S l)) -> exists fom_value_wpoi_append_bounded_after. ((((exists fom_beta_height_wpoi_append_bounded_after_entry. fom_beta_height_wpoi_append_bounded_after_entry + S (fom_value_wpoi_append_bounded_after) = S ((S (fom_index_wpoi_append_bounded_after)) * d)) /\ exists fom_beta_quotient_wpoi_append_bounded_after_entry. z = fom_beta_quotient_wpoi_append_bounded_after_entry * S ((S (fom_index_wpoi_append_bounded_after)) * d) + (fom_value_wpoi_append_bounded_after))) /\ (exists fom_gap_wpoi_append_bounded_after_value_bound. fom_gap_wpoi_append_bounded_after_value_bound + S (fom_value_wpoi_append_bounded_after) = n)))Structural proof guide
Generated structural guide
A two-entry append remains bounded when the old prefix and both appended values are bounded.
Use the direct prerequisites finite_lt_succ_eq_or_lt as previously established PA formulas.
The proof proceeds by case analysis (6), intermediate claims (3), equality transport (4).
Referenced ingredients
Proof neighborhood
Direct dependencies
Direct dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Alpha-v16 checked-use theorem is independently kernel-checked when replayed; it is not a Stable theorem.
- 0001
intro b - 0002
intro c - 0003
intro z - 0004
intro d - 0005
intro l - 0006
intro n - 0007
intro a - 0008
intro e - 0009
intro htrace - 0010
intro hold_bounded - 0011
intro hfirst_bounded - 0012
intro hsecond_bounded - 0013
cases htrace - 0014
cases htrace_right - 0015
intro q - 0016
intro hq - 0017
have htop : q = S l \/ exists h. h + S q = S l - 0018
specialize finite_lt_succ_eq_or_lt (S l) - 0019
specialize finite_lt_succ_eq_or_lt q - 0020
apply finite_lt_succ_eq_or_lt - 0021
exact hq - 0022
cases htop - 0023
exists e - 0024
split - 0025
rewrite htop_left - 0026
rewrite htop_left - 0027
exact htrace_right_left - 0028
exact hsecond_bounded - 0029
have hmiddle : q = l \/ exists h. h + S q = l - 0030
specialize finite_lt_succ_eq_or_lt l - 0031
specialize finite_lt_succ_eq_or_lt q - 0032
apply finite_lt_succ_eq_or_lt - 0033
exact htop_right - 0034
cases hmiddle - 0035
exists a - 0036
split - 0037
rewrite hmiddle_left - 0038
rewrite hmiddle_left - 0039
exact htrace_left - 0040
exact hfirst_bounded - 0041
have hold_entry : exists w. ((((exists wpo_beta_height_wpoi_append_bounded_old_entry. wpo_beta_height_wpoi_append_bounded_old_entry + S (w) = S ((S (q)) * c)) /\ exists wpo_beta_quotient_wpoi_append_bounded_old_entry. b = wpo_beta_quotient_wpoi_append_bounded_old_entry * S ((S (q)) * c) + (w))) /\ (exists wpo_gap_wpoi_append_bounded_old_value_bound. wpo_gap_wpoi_append_bounded_old_value_bound + S (w) = n)) - 0042
specialize hold_bounded q - 0043
apply hold_bounded - 0044
exact hmiddle_right - 0045
cases hold_entry - 0046
cases hold_entry_witness - 0047
exists x - 0048
split - 0049
specialize htrace_right_right q - 0050
specialize htrace_right_right x - 0051
apply htrace_right_right - 0052
exact hmiddle_right - 0053
exact hold_entry_witness_left - 0054
exact hold_entry_witness_right