Exact expanded PA statement
forall p h a b c mb mc sb sc l. (forall gsp_index_magnitude_range_source. (exists gsp_lt_gap_magnitude_range_source_index_bound. gsp_lt_gap_magnitude_range_source_index_bound + S gsp_index_magnitude_range_source = l) -> (exists gsp_value_magnitude_range_source_entry gsp_magnitude_magnitude_range_source_entry gsp_sign_magnitude_range_source_entry. (((exists ff_h_gsp_magnitude_range_source_entry_source. ff_h_gsp_magnitude_range_source_entry_source + S (gsp_value_magnitude_range_source_entry) = S ((S (gsp_index_magnitude_range_source)) * c)) /\ exists ff_q_gsp_magnitude_range_source_entry_source. b = ff_q_gsp_magnitude_range_source_entry_source * S ((S (gsp_index_magnitude_range_source)) * c) + (gsp_value_magnitude_range_source_entry))) /\ ((((exists ff_h_gsp_magnitude_range_source_entry_magnitude. ff_h_gsp_magnitude_range_source_entry_magnitude + S (gsp_magnitude_magnitude_range_source_entry) = S ((S (gsp_index_magnitude_range_source)) * mc)) /\ exists ff_q_gsp_magnitude_range_source_entry_magnitude. mb = ff_q_gsp_magnitude_range_source_entry_magnitude * S ((S (gsp_index_magnitude_range_source)) * mc) + (gsp_magnitude_magnitude_range_source_entry))) /\ ((((exists ff_h_gsp_magnitude_range_source_entry_sign. ff_h_gsp_magnitude_range_source_entry_sign + S (gsp_sign_magnitude_range_source_entry) = S ((S (gsp_index_magnitude_range_source)) * sc)) /\ exists ff_q_gsp_magnitude_range_source_entry_sign. sb = ff_q_gsp_magnitude_range_source_entry_sign * S ((S (gsp_index_magnitude_range_source)) * sc) + (gsp_sign_magnitude_range_source_entry))) /\ ((exists gsp_lt_gap_magnitude_range_source_entry_positive. gsp_lt_gap_magnitude_range_source_entry_positive + S 0 = gsp_magnitude_magnitude_range_source_entry) /\ ((exists gsp_le_gap_magnitude_range_source_entry_bounded. gsp_le_gap_magnitude_range_source_entry_bounded + gsp_magnitude_magnitude_range_source_entry = h) /\ ((gsp_sign_magnitude_range_source_entry = 0 \/ gsp_sign_magnitude_range_source_entry = 1) /\ (((gsp_sign_magnitude_range_source_entry = 0 /\ (exists gsp_mod_left_magnitude_range_source_entry_lower gsp_mod_right_magnitude_range_source_entry_lower. (a * gsp_value_magnitude_range_source_entry) + p * gsp_mod_left_magnitude_range_source_entry_lower = (gsp_magnitude_magnitude_range_source_entry) + p * gsp_mod_right_magnitude_range_source_entry_lower)) \/ (gsp_sign_magnitude_range_source_entry = 1 /\ (exists gsp_mod_left_magnitude_range_source_entry_reflected gsp_mod_right_magnitude_range_source_entry_reflected. (a * gsp_value_magnitude_range_source_entry) + p * gsp_mod_left_magnitude_range_source_entry_reflected = ((2 * h) * gsp_magnitude_magnitude_range_source_entry) + p * gsp_mod_right_magnitude_range_source_entry_reflected))))))))))) -> (forall gmp_index_magnitude_range_result. (exists gsp_lt_gap_magnitude_range_result_index_bound. gsp_lt_gap_magnitude_range_result_index_bound + S gmp_index_magnitude_range_result = l) -> exists gmp_magnitude_magnitude_range_result. ((((exists ff_h_gmp_magnitude_range_result_decoded. ff_h_gmp_magnitude_range_result_decoded + S (gmp_magnitude_magnitude_range_result) = S ((S (gmp_index_magnitude_range_result)) * mc)) /\ exists ff_q_gmp_magnitude_range_result_decoded. mb = ff_q_gmp_magnitude_range_result_decoded * S ((S (gmp_index_magnitude_range_result)) * mc) + (gmp_magnitude_magnitude_range_result))) /\ ((exists gsp_lt_gap_magnitude_range_result_positive. gsp_lt_gap_magnitude_range_result_positive + S 0 = gmp_magnitude_magnitude_range_result) /\ (exists gsp_le_gap_magnitude_range_result_bounded. gsp_le_gap_magnitude_range_result_bounded + gmp_magnitude_magnitude_range_result = h))))Structural proof guide
Generated structural guide
Every decoded signed-prefix magnitude lies constructively in 1,...,h.
This root lemma is proved directly from the PA rules and the hypotheses introduced by its statement.
The proof proceeds by case analysis (8), intermediate claims (1).
Referenced ingredients
none
Proof neighborhood
Direct dependencies
none
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 mb - 0007
intro mc - 0008
intro sb - 0009
intro sc - 0010
intro l - 0011
intro hprefix - 0012
intro i - 0013
intro hi - 0014
have hentry : exists gsp_value_magnitude_range_entry gsp_magnitude_magnitude_range_entry gsp_sign_magnitude_range_entry. (((exists ff_h_gsp_magnitude_range_entry_source. ff_h_gsp_magnitude_range_entry_source + S (gsp_value_magnitude_range_entry) = S ((S (i)) * c)) /\ exists ff_q_gsp_magnitude_range_entry_source. b = ff_q_gsp_magnitude_range_entry_source * S ((S (i)) * c) + (gsp_value_magnitude_range_entry))) /\ ((((exists ff_h_gsp_magnitude_range_entry_magnitude. ff_h_gsp_magnitude_range_entry_magnitude + S (gsp_magnitude_magnitude_range_entry) = S ((S (i)) * mc)) /\ exists ff_q_gsp_magnitude_range_entry_magnitude. mb = ff_q_gsp_magnitude_range_entry_magnitude * S ((S (i)) * mc) + (gsp_magnitude_magnitude_range_entry))) /\ ((((exists ff_h_gsp_magnitude_range_entry_sign. ff_h_gsp_magnitude_range_entry_sign + S (gsp_sign_magnitude_range_entry) = S ((S (i)) * sc)) /\ exists ff_q_gsp_magnitude_range_entry_sign. sb = ff_q_gsp_magnitude_range_entry_sign * S ((S (i)) * sc) + (gsp_sign_magnitude_range_entry))) /\ ((exists gsp_lt_gap_magnitude_range_entry_positive. gsp_lt_gap_magnitude_range_entry_positive + S 0 = gsp_magnitude_magnitude_range_entry) /\ ((exists gsp_le_gap_magnitude_range_entry_bounded. gsp_le_gap_magnitude_range_entry_bounded + gsp_magnitude_magnitude_range_entry = h) /\ ((gsp_sign_magnitude_range_entry = 0 \/ gsp_sign_magnitude_range_entry = 1) /\ (((gsp_sign_magnitude_range_entry = 0 /\ (exists gsp_mod_left_magnitude_range_entry_lower gsp_mod_right_magnitude_range_entry_lower. (a * gsp_value_magnitude_range_entry) + p * gsp_mod_left_magnitude_range_entry_lower = (gsp_magnitude_magnitude_range_entry) + p * gsp_mod_right_magnitude_range_entry_lower)) \/ (gsp_sign_magnitude_range_entry = 1 /\ (exists gsp_mod_left_magnitude_range_entry_reflected gsp_mod_right_magnitude_range_entry_reflected. (a * gsp_value_magnitude_range_entry) + p * gsp_mod_left_magnitude_range_entry_reflected = ((2 * h) * gsp_magnitude_magnitude_range_entry) + p * gsp_mod_right_magnitude_range_entry_reflected))))))))) - 0015
specialize hprefix i - 0016
apply hprefix - 0017
exact hi - 0018
cases hentry - 0019
cases hentry_witness - 0020
cases hentry_witness_witness - 0021
cases hentry_witness_witness_witness - 0022
cases hentry_witness_witness_witness_right - 0023
cases hentry_witness_witness_witness_right_right - 0024
cases hentry_witness_witness_witness_right_right_right - 0025
cases hentry_witness_witness_witness_right_right_right_right - 0026
exists x1 - 0027
split - 0028
exact hentry_witness_witness_witness_right_left - 0029
split - 0030
exact hentry_witness_witness_witness_right_right_right_left - 0031
exact hentry_witness_witness_witness_right_right_right_right_left