Exact expanded PA statement
forall p q h k i j rb rc cb cc a d. (forall eri_column_transpose_row. (exists eri_gap_transpose_row_bound. eri_gap_transpose_row_bound + S (eri_column_transpose_row) = k) -> exists eri_bit_transpose_row. ((((exists ff_h_eri_transpose_row_decoded. ff_h_eri_transpose_row_decoded + S (eri_bit_transpose_row) = S ((S (eri_column_transpose_row)) * rc)) /\ exists ff_q_eri_transpose_row_decoded. rb = ff_q_eri_transpose_row_decoded * S ((S (eri_column_transpose_row)) * rc) + (eri_bit_transpose_row))) /\ (((eri_bit_transpose_row = 0 /\ ((exists eri_gap_transpose_row_choice_left. eri_gap_transpose_row_choice_left + S (q * S i) = p * S eri_column_transpose_row) /\ ~(exists eri_gap_transpose_row_choice_right. eri_gap_transpose_row_choice_right + S (p * S eri_column_transpose_row) = q * S i))) \/ (eri_bit_transpose_row = 1 /\ ((exists eri_gap_transpose_row_choice_right. eri_gap_transpose_row_choice_right + S (p * S eri_column_transpose_row) = q * S i) /\ ~(exists eri_gap_transpose_row_choice_left. eri_gap_transpose_row_choice_left + S (q * S i) = p * S eri_column_transpose_row))))))) -> (forall eri_column_transpose_column. (exists eri_gap_transpose_column_bound. eri_gap_transpose_column_bound + S (eri_column_transpose_column) = h) -> exists eri_bit_transpose_column. ((((exists ff_h_eri_transpose_column_decoded. ff_h_eri_transpose_column_decoded + S (eri_bit_transpose_column) = S ((S (eri_column_transpose_column)) * cc)) /\ exists ff_q_eri_transpose_column_decoded. cb = ff_q_eri_transpose_column_decoded * S ((S (eri_column_transpose_column)) * cc) + (eri_bit_transpose_column))) /\ (((eri_bit_transpose_column = 0 /\ ((exists eri_gap_transpose_column_choice_left. eri_gap_transpose_column_choice_left + S (p * S j) = q * S eri_column_transpose_column) /\ ~(exists eri_gap_transpose_column_choice_right. eri_gap_transpose_column_choice_right + S (q * S eri_column_transpose_column) = p * S j))) \/ (eri_bit_transpose_column = 1 /\ ((exists eri_gap_transpose_column_choice_right. eri_gap_transpose_column_choice_right + S (q * S eri_column_transpose_column) = p * S j) /\ ~(exists eri_gap_transpose_column_choice_left. eri_gap_transpose_column_choice_left + S (p * S j) = q * S eri_column_transpose_column))))))) -> (exists gap. gap + S j = k) -> (exists gap. gap + S i = h) -> (((exists ff_h_transpose_row_entry. ff_h_transpose_row_entry + S (a) = S ((S (j)) * rc)) /\ exists ff_q_transpose_row_entry. rb = ff_q_transpose_row_entry * S ((S (j)) * rc) + (a))) -> (((exists ff_h_transpose_column_entry. ff_h_transpose_column_entry + S (d) = S ((S (i)) * cc)) /\ exists ff_q_transpose_column_entry. cb = ff_q_transpose_column_entry * S ((S (i)) * cc) + (d))) -> ((a = 0 /\ d = 1) \/ (a = 1 /\ d = 0))Structural proof guide
Generated structural guide
A decoded cell bit and its swapped-row transpose are exact complements.
Use the direct prerequisites eisenstein_row_indicator_decoded_choice as previously established PA formulas.
The proof proceeds by case analysis (13), intermediate claims (2).
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 h - 0004
intro k - 0005
intro i - 0006
intro j - 0007
intro rb - 0008
intro rc - 0009
intro cb - 0010
intro cc - 0011
intro a - 0012
intro d - 0013
intro hrow - 0014
intro htransposed_row - 0015
intro hj - 0016
intro hi - 0017
intro ha - 0018
intro hd - 0019
have horiginal : ((a = 0 /\ ((exists eri_gap_transpose_row_choice_left. eri_gap_transpose_row_choice_left + S (q * S i) = p * S j) /\ ~(exists eri_gap_transpose_row_choice_right. eri_gap_transpose_row_choice_right + S (p * S j) = q * S i))) \/ (a = 1 /\ ((exists eri_gap_transpose_row_choice_right. eri_gap_transpose_row_choice_right + S (p * S j) = q * S i) /\ ~(exists eri_gap_transpose_row_choice_left. eri_gap_transpose_row_choice_left + S (q * S i) = p * S j)))) - 0020
specialize eisenstein_row_indicator_decoded_choice p - 0021
specialize eisenstein_row_indicator_decoded_choice q - 0022
specialize eisenstein_row_indicator_decoded_choice i - 0023
specialize eisenstein_row_indicator_decoded_choice rb - 0024
specialize eisenstein_row_indicator_decoded_choice rc - 0025
specialize eisenstein_row_indicator_decoded_choice k - 0026
specialize eisenstein_row_indicator_decoded_choice j - 0027
specialize eisenstein_row_indicator_decoded_choice a - 0028
apply eisenstein_row_indicator_decoded_choice - 0029
exact hrow - 0030
exact hj - 0031
exact ha - 0032
have htransposed : ((d = 0 /\ ((exists eri_gap_transpose_column_choice_left. eri_gap_transpose_column_choice_left + S (p * S j) = q * S i) /\ ~(exists eri_gap_transpose_column_choice_right. eri_gap_transpose_column_choice_right + S (q * S i) = p * S j))) \/ (d = 1 /\ ((exists eri_gap_transpose_column_choice_right. eri_gap_transpose_column_choice_right + S (q * S i) = p * S j) /\ ~(exists eri_gap_transpose_column_choice_left. eri_gap_transpose_column_choice_left + S (p * S j) = q * S i)))) - 0033
specialize eisenstein_row_indicator_decoded_choice q - 0034
specialize eisenstein_row_indicator_decoded_choice p - 0035
specialize eisenstein_row_indicator_decoded_choice j - 0036
specialize eisenstein_row_indicator_decoded_choice cb - 0037
specialize eisenstein_row_indicator_decoded_choice cc - 0038
specialize eisenstein_row_indicator_decoded_choice h - 0039
specialize eisenstein_row_indicator_decoded_choice i - 0040
specialize eisenstein_row_indicator_decoded_choice d - 0041
apply eisenstein_row_indicator_decoded_choice - 0042
exact htransposed_row - 0043
exact hi - 0044
exact hd - 0045
cases horiginal - 0046
cases horiginal_left - 0047
cases horiginal_left_right - 0048
cases htransposed - 0049
cases htransposed_left - 0050
cases htransposed_left_right - 0051
exfalso - 0052
apply horiginal_left_right_right - 0053
exact htransposed_left_right_left - 0054
cases htransposed_right - 0055
left - 0056
split - 0057
exact horiginal_left_left - 0058
exact htransposed_right_left - 0059
cases horiginal_right - 0060
cases horiginal_right_right - 0061
cases htransposed - 0062
cases htransposed_left - 0063
right - 0064
split - 0065
exact horiginal_right_left - 0066
exact htransposed_left_left - 0067
cases htransposed_right - 0068
cases htransposed_right_right - 0069
exfalso - 0070
apply horiginal_right_right_right - 0071
exact htransposed_right_right_left