Exact expanded PA statement
forall p q i rb rc l. (forall eri_column_row_indicator_extend_before. (exists eri_gap_row_indicator_extend_before_bound. eri_gap_row_indicator_extend_before_bound + S (eri_column_row_indicator_extend_before) = l) -> exists eri_bit_row_indicator_extend_before. ((((exists ff_h_eri_row_indicator_extend_before_decoded. ff_h_eri_row_indicator_extend_before_decoded + S (eri_bit_row_indicator_extend_before) = S ((S (eri_column_row_indicator_extend_before)) * rc)) /\ exists ff_q_eri_row_indicator_extend_before_decoded. rb = ff_q_eri_row_indicator_extend_before_decoded * S ((S (eri_column_row_indicator_extend_before)) * rc) + (eri_bit_row_indicator_extend_before))) /\ (((eri_bit_row_indicator_extend_before = 0 /\ ((exists eri_gap_row_indicator_extend_before_choice_left. eri_gap_row_indicator_extend_before_choice_left + S (q * S i) = p * S eri_column_row_indicator_extend_before) /\ ~(exists eri_gap_row_indicator_extend_before_choice_right. eri_gap_row_indicator_extend_before_choice_right + S (p * S eri_column_row_indicator_extend_before) = q * S i))) \/ (eri_bit_row_indicator_extend_before = 1 /\ ((exists eri_gap_row_indicator_extend_before_choice_right. eri_gap_row_indicator_extend_before_choice_right + S (p * S eri_column_row_indicator_extend_before) = q * S i) /\ ~(exists eri_gap_row_indicator_extend_before_choice_left. eri_gap_row_indicator_extend_before_choice_left + S (q * S i) = p * S eri_column_row_indicator_extend_before))))))) -> (exists bit. (((bit = 0 /\ ((exists eri_gap_row_indicator_extend_last_left. eri_gap_row_indicator_extend_last_left + S (q * S i) = p * S l) /\ ~(exists eri_gap_row_indicator_extend_last_right. eri_gap_row_indicator_extend_last_right + S (p * S l) = q * S i))) \/ (bit = 1 /\ ((exists eri_gap_row_indicator_extend_last_right. eri_gap_row_indicator_extend_last_right + S (p * S l) = q * S i) /\ ~(exists eri_gap_row_indicator_extend_last_left. eri_gap_row_indicator_extend_last_left + S (q * S i) = p * S l)))))) -> exists z d. (forall eri_column_row_indicator_extend_after. (exists eri_gap_row_indicator_extend_after_bound. eri_gap_row_indicator_extend_after_bound + S (eri_column_row_indicator_extend_after) = S l) -> exists eri_bit_row_indicator_extend_after. ((((exists ff_h_eri_row_indicator_extend_after_decoded. ff_h_eri_row_indicator_extend_after_decoded + S (eri_bit_row_indicator_extend_after) = S ((S (eri_column_row_indicator_extend_after)) * d)) /\ exists ff_q_eri_row_indicator_extend_after_decoded. z = ff_q_eri_row_indicator_extend_after_decoded * S ((S (eri_column_row_indicator_extend_after)) * d) + (eri_bit_row_indicator_extend_after))) /\ (((eri_bit_row_indicator_extend_after = 0 /\ ((exists eri_gap_row_indicator_extend_after_choice_left. eri_gap_row_indicator_extend_after_choice_left + S (q * S i) = p * S eri_column_row_indicator_extend_after) /\ ~(exists eri_gap_row_indicator_extend_after_choice_right. eri_gap_row_indicator_extend_after_choice_right + S (p * S eri_column_row_indicator_extend_after) = q * S i))) \/ (eri_bit_row_indicator_extend_after = 1 /\ ((exists eri_gap_row_indicator_extend_after_choice_right. eri_gap_row_indicator_extend_after_choice_right + S (p * S eri_column_row_indicator_extend_after) = q * S i) /\ ~(exists eri_gap_row_indicator_extend_after_choice_left. eri_gap_row_indicator_extend_after_choice_left + S (q * S i) = p * S eri_column_row_indicator_extend_after)))))))Structural proof guide
Generated structural guide
Append one exact orientation bit while preserving the previous row 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 (7), intermediate claims (2), equality transport (6).
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 p - 0002
intro q - 0003
intro i - 0004
intro rb - 0005
intro rc - 0006
intro l - 0007
intro hprefix - 0008
intro hchoice - 0009
cases hchoice - 0010
specialize beta_prefix_extend l - 0011
specialize beta_prefix_extend rb - 0012
specialize beta_prefix_extend rc - 0013
specialize beta_prefix_extend x - 0014
cases beta_prefix_extend - 0015
cases beta_prefix_extend_witness - 0016
cases beta_prefix_extend_witness_witness - 0017
exists x1 - 0018
exists x2 - 0019
intro j - 0020
intro hj - 0021
have hsplit : j = l \/ exists gap. gap + S j = l - 0022
specialize finite_lt_succ_eq_or_lt l - 0023
specialize finite_lt_succ_eq_or_lt j - 0024
apply finite_lt_succ_eq_or_lt - 0025
exact hj - 0026
cases hsplit - 0027
exists x - 0028
split - 0029
rewrite hsplit_left - 0030
rewrite hsplit_left - 0031
exact beta_prefix_extend_witness_witness_left - 0032
rewrite hsplit_left - 0033
rewrite hsplit_left - 0034
rewrite hsplit_left - 0035
rewrite hsplit_left - 0036
exact hchoice_witness - 0037
have hold : exists oldbit. ((((exists ff_h_row_indicator_extend_old_entry. ff_h_row_indicator_extend_old_entry + S (oldbit) = S ((S (j)) * rc)) /\ exists ff_q_row_indicator_extend_old_entry. rb = ff_q_row_indicator_extend_old_entry * S ((S (j)) * rc) + (oldbit))) /\ (((oldbit = 0 /\ ((exists eri_gap_row_indicator_extend_old_choice_left. eri_gap_row_indicator_extend_old_choice_left + S (q * S i) = p * S j) /\ ~(exists eri_gap_row_indicator_extend_old_choice_right. eri_gap_row_indicator_extend_old_choice_right + S (p * S j) = q * S i))) \/ (oldbit = 1 /\ ((exists eri_gap_row_indicator_extend_old_choice_right. eri_gap_row_indicator_extend_old_choice_right + S (p * S j) = q * S i) /\ ~(exists eri_gap_row_indicator_extend_old_choice_left. eri_gap_row_indicator_extend_old_choice_left + S (q * S i) = p * S j)))))) - 0038
specialize hprefix j - 0039
apply hprefix - 0040
exact hsplit_right - 0041
cases hold - 0042
cases hold_witness - 0043
exists x3 - 0044
split - 0045
specialize beta_prefix_extend_witness_witness_right j - 0046
specialize beta_prefix_extend_witness_witness_right x3 - 0047
apply beta_prefix_extend_witness_witness_right - 0048
exact hsplit_right - 0049
exact hold_witness_left - 0050
exact hold_witness_right