Exact expanded PA statement
forall b c l z d k. (exists fp_i_extend_contains. ((exists fp_gap_extend_contains_index. fp_gap_extend_contains_index + S fp_i_extend_contains = l) /\ (((exists ff_h_extend_contains_entry. ff_h_extend_contains_entry + S (k) = S ((S (fp_i_extend_contains)) * c)) /\ exists ff_q_extend_contains_entry. b = ff_q_extend_contains_entry * S ((S (fp_i_extend_contains)) * c) + (k))))) -> (forall fom_value_extend_before. (exists fom_gap_extend_before_value_bound. fom_gap_extend_before_value_bound + S (fom_value_extend_before) = k) -> exists fom_index_extend_before. ((((exists fom_beta_height_extend_before_choice_entry. fom_beta_height_extend_before_choice_entry + S (fom_index_extend_before) = S ((S (fom_value_extend_before)) * d)) /\ exists fom_beta_quotient_extend_before_choice_entry. z = fom_beta_quotient_extend_before_choice_entry * S ((S (fom_value_extend_before)) * d) + (fom_index_extend_before))) /\ ((exists fom_gap_extend_before_index_bound. fom_gap_extend_before_index_bound + S (fom_index_extend_before) = l) /\ (((exists fom_beta_height_extend_before_source_entry. fom_beta_height_extend_before_source_entry + S (fom_value_extend_before) = S ((S (fom_index_extend_before)) * c)) /\ exists fom_beta_quotient_extend_before_source_entry. b = fom_beta_quotient_extend_before_source_entry * S ((S (fom_index_extend_before)) * c) + (fom_value_extend_before)))))) -> exists r s. (forall fom_value_extend_after. (exists fom_gap_extend_after_value_bound. fom_gap_extend_after_value_bound + S (fom_value_extend_after) = S k) -> exists fom_index_extend_after. ((((exists fom_beta_height_extend_after_choice_entry. fom_beta_height_extend_after_choice_entry + S (fom_index_extend_after) = S ((S (fom_value_extend_after)) * s)) /\ exists fom_beta_quotient_extend_after_choice_entry. r = fom_beta_quotient_extend_after_choice_entry * S ((S (fom_value_extend_after)) * s) + (fom_index_extend_after))) /\ ((exists fom_gap_extend_after_index_bound. fom_gap_extend_after_index_bound + S (fom_index_extend_after) = l) /\ (((exists fom_beta_height_extend_after_source_entry. fom_beta_height_extend_after_source_entry + S (fom_value_extend_after) = S ((S (fom_index_extend_after)) * c)) /\ exists fom_beta_quotient_extend_after_source_entry. b = fom_beta_quotient_extend_after_source_entry * S ((S (fom_index_extend_after)) * c) + (fom_value_extend_after))))))Structural proof guide
Generated structural guide
Append one chosen source preimage to a beta-coded inverse-choice prefix.
Use the direct prerequisites beta_prefix_extend, finite_lt_succ_eq_or_lt as previously established PA formulas.
The proof proceeds by case analysis (8), intermediate claims (4), 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 l - 0004
intro z - 0005
intro d - 0006
intro k - 0007
intro hcontains - 0008
intro hchoice - 0009
cases hcontains - 0010
cases hcontains_witness - 0011
specialize beta_prefix_extend k - 0012
specialize beta_prefix_extend z - 0013
specialize beta_prefix_extend d - 0014
specialize beta_prefix_extend x - 0015
cases beta_prefix_extend - 0016
cases beta_prefix_extend_witness - 0017
cases beta_prefix_extend_witness_witness - 0018
exists x1 - 0019
exists x2 - 0020
intro y - 0021
intro hy - 0022
have hsplit : y = k \/ exists h. h + S y = k - 0023
specialize finite_lt_succ_eq_or_lt k - 0024
specialize finite_lt_succ_eq_or_lt y - 0025
apply finite_lt_succ_eq_or_lt - 0026
exact hy - 0027
cases hsplit - 0028
exists x - 0029
split - 0030
rewrite hsplit_left - 0031
rewrite hsplit_left - 0032
have hnew_entry : ((exists fom_beta_height_extend_new_entry. fom_beta_height_extend_new_entry + S (x) = S ((S (k)) * x2)) /\ exists fom_beta_quotient_extend_new_entry. x1 = fom_beta_quotient_extend_new_entry * S ((S (k)) * x2) + (x)) - 0033
exact beta_prefix_extend_witness_witness_left - 0034
exact hnew_entry - 0035
split - 0036
exact hcontains_witness_left - 0037
rewrite hsplit_left - 0038
rewrite hsplit_left - 0039
exact hcontains_witness_right - 0040
have hold : forall fom_value_extend_old_result. (exists fom_gap_extend_old_result_value_bound. fom_gap_extend_old_result_value_bound + S (fom_value_extend_old_result) = k) -> exists fom_index_extend_old_result. ((((exists fom_beta_height_extend_old_result_choice_entry. fom_beta_height_extend_old_result_choice_entry + S (fom_index_extend_old_result) = S ((S (fom_value_extend_old_result)) * d)) /\ exists fom_beta_quotient_extend_old_result_choice_entry. z = fom_beta_quotient_extend_old_result_choice_entry * S ((S (fom_value_extend_old_result)) * d) + (fom_index_extend_old_result))) /\ ((exists fom_gap_extend_old_result_index_bound. fom_gap_extend_old_result_index_bound + S (fom_index_extend_old_result) = l) /\ (((exists fom_beta_height_extend_old_result_source_entry. fom_beta_height_extend_old_result_source_entry + S (fom_value_extend_old_result) = S ((S (fom_index_extend_old_result)) * c)) /\ exists fom_beta_quotient_extend_old_result_source_entry. b = fom_beta_quotient_extend_old_result_source_entry * S ((S (fom_index_extend_old_result)) * c) + (fom_value_extend_old_result))))) - 0041
exact hchoice - 0042
specialize hold y - 0043
have hold_y : exists i. (((exists h. h + S i = S ((S y) * d)) /\ exists q. z = q * S ((S y) * d) + i) /\ ((exists h. h + S i = l) /\ ((exists h. h + S y = S ((S i) * c)) /\ exists q. b = q * S ((S i) * c) + y))) - 0044
apply hold - 0045
exact hsplit_right - 0046
cases hold_y - 0047
cases hold_y_witness - 0048
exists x3 - 0049
split - 0050
specialize beta_prefix_extend_witness_witness_right y - 0051
specialize beta_prefix_extend_witness_witness_right x3 - 0052
apply beta_prefix_extend_witness_witness_right - 0053
exact hsplit_right - 0054
exact hold_y_witness_left - 0055
exact hold_y_witness_right