Exact expanded PA statement
forall p h a b c tb tc qb qc rb rc mb mc sb sc. p = 2 * h + 1 -> (exists sdp_odd_gep_scale. a = 2 * sdp_odd_gep_scale + 1) -> (forall gsp_range_index_gep_half. (exists gsp_lt_gap_gep_half_range_bound. gsp_lt_gap_gep_half_range_bound + S gsp_range_index_gep_half = h) -> (((exists gsp_beta_height_gep_half_range_entry. gsp_beta_height_gep_half_range_entry + S (1 + gsp_range_index_gep_half) = S ((S (gsp_range_index_gep_half)) * c)) /\ exists gsp_beta_quotient_gep_half_range_entry. b = gsp_beta_quotient_gep_half_range_entry * S ((S (gsp_range_index_gep_half)) * c) + (1 + gsp_range_index_gep_half)))) -> (forall esd_index_gep_scaled esd_value_gep_scaled. (exists esd_gap_gep_scaled. esd_gap_gep_scaled + S esd_index_gep_scaled = h) -> (((exists ff_h_esd_gep_scaled_decoded. ff_h_esd_gep_scaled_decoded + S (esd_value_gep_scaled) = S ((S (esd_index_gep_scaled)) * tc)) /\ exists ff_q_esd_gep_scaled_decoded. tb = ff_q_esd_gep_scaled_decoded * S ((S (esd_index_gep_scaled)) * tc) + (esd_value_gep_scaled))) -> esd_value_gep_scaled = a * (1 + esd_index_gep_scaled)) -> (forall fdp_index_gep_division. (exists gsp_lt_gap_gep_division_index_bound. gsp_lt_gap_gep_division_index_bound + S fdp_index_gep_division = h) -> exists fdp_value_gep_division fdp_quotient_gep_division fdp_remainder_gep_division. (((exists ff_h_fdp_gep_division_source. ff_h_fdp_gep_division_source + S (fdp_value_gep_division) = S ((S (fdp_index_gep_division)) * tc)) /\ exists ff_q_fdp_gep_division_source. tb = ff_q_fdp_gep_division_source * S ((S (fdp_index_gep_division)) * tc) + (fdp_value_gep_division))) /\ ((((exists ff_h_fdp_gep_division_quotient_entry. ff_h_fdp_gep_division_quotient_entry + S (fdp_quotient_gep_division) = S ((S (fdp_index_gep_division)) * qc)) /\ exists ff_q_fdp_gep_division_quotient_entry. qb = ff_q_fdp_gep_division_quotient_entry * S ((S (fdp_index_gep_division)) * qc) + (fdp_quotient_gep_division))) /\ ((((exists ff_h_fdp_gep_division_remainder_entry. ff_h_fdp_gep_division_remainder_entry + S (fdp_remainder_gep_division) = S ((S (fdp_index_gep_division)) * rc)) /\ exists ff_q_fdp_gep_division_remainder_entry. rb = ff_q_fdp_gep_division_remainder_entry * S ((S (fdp_index_gep_division)) * rc) + (fdp_remainder_gep_division))) /\ (fdp_value_gep_division = p * fdp_quotient_gep_division + fdp_remainder_gep_division /\ (exists gsp_lt_gap_gep_division_remainder_bound. gsp_lt_gap_gep_division_remainder_bound + S fdp_remainder_gep_division = p))))) -> (forall gsp_index_gep_signed. (exists gsp_lt_gap_gep_signed_index_bound. gsp_lt_gap_gep_signed_index_bound + S gsp_index_gep_signed = h) -> (exists gsp_value_gep_signed_entry gsp_magnitude_gep_signed_entry gsp_sign_gep_signed_entry. (((exists ff_h_gsp_gep_signed_entry_source. ff_h_gsp_gep_signed_entry_source + S (gsp_value_gep_signed_entry) = S ((S (gsp_index_gep_signed)) * c)) /\ exists ff_q_gsp_gep_signed_entry_source. b = ff_q_gsp_gep_signed_entry_source * S ((S (gsp_index_gep_signed)) * c) + (gsp_value_gep_signed_entry))) /\ ((((exists ff_h_gsp_gep_signed_entry_magnitude. ff_h_gsp_gep_signed_entry_magnitude + S (gsp_magnitude_gep_signed_entry) = S ((S (gsp_index_gep_signed)) * mc)) /\ exists ff_q_gsp_gep_signed_entry_magnitude. mb = ff_q_gsp_gep_signed_entry_magnitude * S ((S (gsp_index_gep_signed)) * mc) + (gsp_magnitude_gep_signed_entry))) /\ ((((exists ff_h_gsp_gep_signed_entry_sign. ff_h_gsp_gep_signed_entry_sign + S (gsp_sign_gep_signed_entry) = S ((S (gsp_index_gep_signed)) * sc)) /\ exists ff_q_gsp_gep_signed_entry_sign. sb = ff_q_gsp_gep_signed_entry_sign * S ((S (gsp_index_gep_signed)) * sc) + (gsp_sign_gep_signed_entry))) /\ ((exists gsp_lt_gap_gep_signed_entry_positive. gsp_lt_gap_gep_signed_entry_positive + S 0 = gsp_magnitude_gep_signed_entry) /\ ((exists gsp_le_gap_gep_signed_entry_bounded. gsp_le_gap_gep_signed_entry_bounded + gsp_magnitude_gep_signed_entry = h) /\ ((gsp_sign_gep_signed_entry = 0 \/ gsp_sign_gep_signed_entry = 1) /\ (((gsp_sign_gep_signed_entry = 0 /\ (exists gsp_mod_left_gep_signed_entry_lower gsp_mod_right_gep_signed_entry_lower. (a * gsp_value_gep_signed_entry) + p * gsp_mod_left_gep_signed_entry_lower = (gsp_magnitude_gep_signed_entry) + p * gsp_mod_right_gep_signed_entry_lower)) \/ (gsp_sign_gep_signed_entry = 1 /\ (exists gsp_mod_left_gep_signed_entry_reflected gsp_mod_right_gep_signed_entry_reflected. (a * gsp_value_gep_signed_entry) + p * gsp_mod_left_gep_signed_entry_reflected = ((2 * h) * gsp_magnitude_gep_signed_entry) + p * gsp_mod_right_gep_signed_entry_reflected))))))))))) -> (forall i x q m s. (exists gsp_lt_gap_gep_index. gsp_lt_gap_gep_index + S i = h) -> (((exists ff_h_gep_source_entry. ff_h_gep_source_entry + S (x) = S ((S (i)) * c)) /\ exists ff_q_gep_source_entry. b = ff_q_gep_source_entry * S ((S (i)) * c) + (x))) -> (((exists ff_h_gep_quotient_entry. ff_h_gep_quotient_entry + S (q) = S ((S (i)) * qc)) /\ exists ff_q_gep_quotient_entry. qb = ff_q_gep_quotient_entry * S ((S (i)) * qc) + (q))) -> (((exists ff_h_gep_magnitude_entry. ff_h_gep_magnitude_entry + S (m) = S ((S (i)) * mc)) /\ exists ff_q_gep_magnitude_entry. mb = ff_q_gep_magnitude_entry * S ((S (i)) * mc) + (m))) -> (((exists ff_h_gep_sign_entry. ff_h_gep_sign_entry + S (s) = S ((S (i)) * sc)) /\ exists ff_q_gep_sign_entry. sb = ff_q_gep_sign_entry * S ((S (i)) * sc) + (s))) -> (exists sdp_u_gep_prefix_result sdp_v_gep_prefix_result. (x) + 2 * sdp_u_gep_prefix_result = (q + m + s) + 2 * sdp_v_gep_prefix_result))Structural proof guide
Generated structural guide
Aligned Gauss and Eisenstein prefixes satisfy x == q+m+s modulo two pointwise.
Use the direct prerequisites beta_at_unique, odd_signed_division_congruence_mod_two as previously established PA formulas.
The proof proceeds by case analysis (19), intermediate claims (12), 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 h - 0003
intro a - 0004
intro b - 0005
intro c - 0006
intro tb - 0007
intro tc - 0008
intro qb - 0009
intro qc - 0010
intro rb - 0011
intro rc - 0012
intro mb - 0013
intro mc - 0014
intro sb - 0015
intro sc - 0016
intro hp - 0017
intro ha - 0018
intro hhalf - 0019
intro hscaled - 0020
intro hdivision - 0021
intro hsigned - 0022
intro i - 0023
intro x - 0024
intro q - 0025
intro m - 0026
intro s - 0027
intro hi - 0028
intro hx - 0029
intro hq - 0030
intro hm - 0031
intro hs - 0032
have hcanonical : ((exists gsp_beta_height_gep_proof_canonical. gsp_beta_height_gep_proof_canonical + S (1 + i) = S ((S (i)) * c)) /\ exists gsp_beta_quotient_gep_proof_canonical. b = gsp_beta_quotient_gep_proof_canonical * S ((S (i)) * c) + (1 + i)) - 0033
specialize hhalf i - 0034
apply hhalf - 0035
exact hi - 0036
have hdivdata : exists x1 x2 x3. (((exists ff_h_gep_proof_div_source. ff_h_gep_proof_div_source + S (x1) = S ((S (i)) * tc)) /\ exists ff_q_gep_proof_div_source. tb = ff_q_gep_proof_div_source * S ((S (i)) * tc) + (x1))) /\ ((((exists ff_h_gep_proof_div_q. ff_h_gep_proof_div_q + S (x2) = S ((S (i)) * qc)) /\ exists ff_q_gep_proof_div_q. qb = ff_q_gep_proof_div_q * S ((S (i)) * qc) + (x2))) /\ ((((exists ff_h_gep_proof_div_r. ff_h_gep_proof_div_r + S (x3) = S ((S (i)) * rc)) /\ exists ff_q_gep_proof_div_r. rb = ff_q_gep_proof_div_r * S ((S (i)) * rc) + (x3))) /\ (x1 = p * x2 + x3 /\ (exists gsp_lt_gap_gep_proof_div_r_below. gsp_lt_gap_gep_proof_div_r_below + S x3 = p)))) - 0037
specialize hdivision i - 0038
apply hdivision - 0039
exact hi - 0040
cases hdivdata - 0041
cases hdivdata_witness - 0042
cases hdivdata_witness_witness - 0043
cases hdivdata_witness_witness_witness - 0044
cases hdivdata_witness_witness_witness_right - 0045
cases hdivdata_witness_witness_witness_right_right - 0046
cases hdivdata_witness_witness_witness_right_right_right - 0047
have hsigneddata : exists x4 x5 x6. (((exists ff_h_gep_proof_signed_source. ff_h_gep_proof_signed_source + S (x4) = S ((S (i)) * c)) /\ exists ff_q_gep_proof_signed_source. b = ff_q_gep_proof_signed_source * S ((S (i)) * c) + (x4))) /\ ((((exists ff_h_gep_proof_signed_magnitude. ff_h_gep_proof_signed_magnitude + S (x5) = S ((S (i)) * mc)) /\ exists ff_q_gep_proof_signed_magnitude. mb = ff_q_gep_proof_signed_magnitude * S ((S (i)) * mc) + (x5))) /\ ((((exists ff_h_gep_proof_signed_sign. ff_h_gep_proof_signed_sign + S (x6) = S ((S (i)) * sc)) /\ exists ff_q_gep_proof_signed_sign. sb = ff_q_gep_proof_signed_sign * S ((S (i)) * sc) + (x6))) /\ ((exists gsp_lt_gap_gep_proof_signed_positive. gsp_lt_gap_gep_proof_signed_positive + S 0 = x5) /\ ((exists gsp_le_gap_gep_proof_signed_bounded. gsp_le_gap_gep_proof_signed_bounded + x5 = h) /\ ((x6 = 0 \/ x6 = 1) /\ (((x6 = 0 /\ (exists wpp_mod_left_gep_proof_signed_lower wpp_mod_right_gep_proof_signed_lower. (a * x4) + p * wpp_mod_left_gep_proof_signed_lower = (x5) + p * wpp_mod_right_gep_proof_signed_lower)) \/ (x6 = 1 /\ (exists wpp_mod_left_gep_proof_signed_upper wpp_mod_right_gep_proof_signed_upper. (a * x4) + p * wpp_mod_left_gep_proof_signed_upper = ((2 * h) * x5) + p * wpp_mod_right_gep_proof_signed_upper))))))))) - 0048
specialize hsigned i - 0049
apply hsigned - 0050
exact hi - 0051
cases hsigneddata - 0052
cases hsigneddata_witness - 0053
cases hsigneddata_witness_witness - 0054
cases hsigneddata_witness_witness_witness - 0055
cases hsigneddata_witness_witness_witness_right - 0056
cases hsigneddata_witness_witness_witness_right_right - 0057
cases hsigneddata_witness_witness_witness_right_right_right - 0058
cases hsigneddata_witness_witness_witness_right_right_right_right - 0059
cases hsigneddata_witness_witness_witness_right_right_right_right_right - 0060
have hxcanonical : x4 = 1 + i - 0061
specialize beta_at_unique b - 0062
specialize beta_at_unique c - 0063
specialize beta_at_unique i - 0064
specialize beta_at_unique x4 - 0065
specialize beta_at_unique (1 + i) - 0066
apply beta_at_unique - 0067
exact hsigneddata_witness_witness_witness_left - 0068
exact hcanonical - 0069
have hnscale : x1 = a * x4 - 0070
have hscale_exact : forall esd_index_gep_proof_scaled esd_value_gep_proof_scaled. (exists esd_gap_gep_proof_scaled. esd_gap_gep_proof_scaled + S esd_index_gep_proof_scaled = h) -> (((exists ff_h_esd_gep_proof_scaled_decoded. ff_h_esd_gep_proof_scaled_decoded + S (esd_value_gep_proof_scaled) = S ((S (esd_index_gep_proof_scaled)) * tc)) /\ exists ff_q_esd_gep_proof_scaled_decoded. tb = ff_q_esd_gep_proof_scaled_decoded * S ((S (esd_index_gep_proof_scaled)) * tc) + (esd_value_gep_proof_scaled))) -> esd_value_gep_proof_scaled = a * (1 + esd_index_gep_proof_scaled) - 0071
exact hscaled - 0072
trans a * (1 + i) - 0073
specialize hscale_exact i - 0074
specialize hscale_exact x1 - 0075
apply hscale_exact - 0076
exact hi - 0077
exact hdivdata_witness_witness_witness_left - 0078
congr - 0079
refl - 0080
symm - 0081
exact hxcanonical - 0082
have hsignedn : ((x6 = 0 /\ (exists wpp_mod_left_gep_proof_n_mod_m wpp_mod_right_gep_proof_n_mod_m. (x1) + p * wpp_mod_left_gep_proof_n_mod_m = (x5) + p * wpp_mod_right_gep_proof_n_mod_m)) \/ (x6 = 1 /\ (exists wpp_mod_left_gep_proof_n_mod_upper wpp_mod_right_gep_proof_n_mod_upper. (x1) + p * wpp_mod_left_gep_proof_n_mod_upper = ((2 * h) * x5) + p * wpp_mod_right_gep_proof_n_mod_upper))) - 0083
cases hsigneddata_witness_witness_witness_right_right_right_right_right_right - 0084
left - 0085
cases hsigneddata_witness_witness_witness_right_right_right_right_right_right_left - 0086
split - 0087
exact hsigneddata_witness_witness_witness_right_right_right_right_right_right_left_left - 0088
rewrite hnscale - 0089
exact hsigneddata_witness_witness_witness_right_right_right_right_right_right_left_right - 0090
right - 0091
cases hsigneddata_witness_witness_witness_right_right_right_right_right_right_right - 0092
split - 0093
exact hsigneddata_witness_witness_witness_right_right_right_right_right_right_right_left - 0094
rewrite hnscale - 0095
exact hsigneddata_witness_witness_witness_right_right_right_right_right_right_right_right - 0096
have hlocal : exists sdp_u_gep_proof_final sdp_v_gep_proof_final. (x4) + 2 * sdp_u_gep_proof_final = (x2 + x5 + x6) + 2 * sdp_v_gep_proof_final - 0097
specialize odd_signed_division_congruence_mod_two p - 0098
specialize odd_signed_division_congruence_mod_two h - 0099
specialize odd_signed_division_congruence_mod_two a - 0100
specialize odd_signed_division_congruence_mod_two x4 - 0101
specialize odd_signed_division_congruence_mod_two x1 - 0102
specialize odd_signed_division_congruence_mod_two x2 - 0103
specialize odd_signed_division_congruence_mod_two x3 - 0104
specialize odd_signed_division_congruence_mod_two x5 - 0105
specialize odd_signed_division_congruence_mod_two x6 - 0106
apply odd_signed_division_congruence_mod_two - 0107
exact hp - 0108
exact ha - 0109
exact hnscale - 0110
exact hdivdata_witness_witness_witness_right_right_right_left - 0111
exact hdivdata_witness_witness_witness_right_right_right_right - 0112
exact hsigneddata_witness_witness_witness_right_right_right_left - 0113
exact hsigneddata_witness_witness_witness_right_right_right_right_left - 0114
exact hsignedn - 0115
have hxeq : x = x4 - 0116
specialize beta_at_unique b - 0117
specialize beta_at_unique c - 0118
specialize beta_at_unique i - 0119
specialize beta_at_unique x - 0120
specialize beta_at_unique x4 - 0121
apply beta_at_unique - 0122
exact hx - 0123
exact hsigneddata_witness_witness_witness_left - 0124
have hqeq : q = x2 - 0125
specialize beta_at_unique qb - 0126
specialize beta_at_unique qc - 0127
specialize beta_at_unique i - 0128
specialize beta_at_unique q - 0129
specialize beta_at_unique x2 - 0130
apply beta_at_unique - 0131
exact hq - 0132
exact hdivdata_witness_witness_witness_right_left - 0133
have hmeq : m = x5 - 0134
specialize beta_at_unique mb - 0135
specialize beta_at_unique mc - 0136
specialize beta_at_unique i - 0137
specialize beta_at_unique m - 0138
specialize beta_at_unique x5 - 0139
apply beta_at_unique - 0140
exact hm - 0141
exact hsigneddata_witness_witness_witness_right_left - 0142
have hseq : s = x6 - 0143
specialize beta_at_unique sb - 0144
specialize beta_at_unique sc - 0145
specialize beta_at_unique i - 0146
specialize beta_at_unique s - 0147
specialize beta_at_unique x6 - 0148
apply beta_at_unique - 0149
exact hs - 0150
exact hsigneddata_witness_witness_witness_right_right_left - 0151
rewrite hxeq - 0152
rewrite hqeq - 0153
rewrite hmeq - 0154
rewrite hseq - 0155
exact hlocal