Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.
Exact expanded PA statement
forall p h a b c l. (forall gsp_choice_index_exists_all. (exists gsp_lt_gap_exists_all_choice_bound. gsp_lt_gap_exists_all_choice_bound + S gsp_choice_index_exists_all = l) -> (exists gsp_value_exists_all_choice gsp_magnitude_exists_all_choice gsp_sign_exists_all_choice. (((exists ff_h_gsp_exists_all_choice_source. ff_h_gsp_exists_all_choice_source + S (gsp_value_exists_all_choice) = S ((S (gsp_choice_index_exists_all)) * c)) /\ exists ff_q_gsp_exists_all_choice_source. b = ff_q_gsp_exists_all_choice_source * S ((S (gsp_choice_index_exists_all)) * c) + (gsp_value_exists_all_choice))) /\ ((exists gsp_lt_gap_exists_all_choice_positive. gsp_lt_gap_exists_all_choice_positive + S 0 = gsp_magnitude_exists_all_choice) /\ ((exists gsp_le_gap_exists_all_choice_bounded. gsp_le_gap_exists_all_choice_bounded + gsp_magnitude_exists_all_choice = h) /\ ((gsp_sign_exists_all_choice = 0 \/ gsp_sign_exists_all_choice = 1) /\ (((gsp_sign_exists_all_choice = 0 /\ (exists gsp_mod_left_exists_all_choice_lower gsp_mod_right_exists_all_choice_lower. (a * gsp_value_exists_all_choice) + p * gsp_mod_left_exists_all_choice_lower = (gsp_magnitude_exists_all_choice) + p * gsp_mod_right_exists_all_choice_lower)) \/ (gsp_sign_exists_all_choice = 1 /\ (exists gsp_mod_left_exists_all_choice_reflected gsp_mod_right_exists_all_choice_reflected. (a * gsp_value_exists_all_choice) + p * gsp_mod_left_exists_all_choice_reflected = ((2 * h) * gsp_magnitude_exists_all_choice) + p * gsp_mod_right_exists_all_choice_reflected))))))))) -> (exists mb mc sb sc. (forall gsp_index_exists_result. (exists gsp_lt_gap_exists_result_index_bound. gsp_lt_gap_exists_result_index_bound + S gsp_index_exists_result = l) -> (exists gsp_value_exists_result_entry gsp_magnitude_exists_result_entry gsp_sign_exists_result_entry. (((exists ff_h_gsp_exists_result_entry_source. ff_h_gsp_exists_result_entry_source + S (gsp_value_exists_result_entry) = S ((S (gsp_index_exists_result)) * c)) /\ exists ff_q_gsp_exists_result_entry_source. b = ff_q_gsp_exists_result_entry_source * S ((S (gsp_index_exists_result)) * c) + (gsp_value_exists_result_entry))) /\ ((((exists ff_h_gsp_exists_result_entry_magnitude. ff_h_gsp_exists_result_entry_magnitude + S (gsp_magnitude_exists_result_entry) = S ((S (gsp_index_exists_result)) * mc)) /\ exists ff_q_gsp_exists_result_entry_magnitude. mb = ff_q_gsp_exists_result_entry_magnitude * S ((S (gsp_index_exists_result)) * mc) + (gsp_magnitude_exists_result_entry))) /\ ((((exists ff_h_gsp_exists_result_entry_sign. ff_h_gsp_exists_result_entry_sign + S (gsp_sign_exists_result_entry) = S ((S (gsp_index_exists_result)) * sc)) /\ exists ff_q_gsp_exists_result_entry_sign. sb = ff_q_gsp_exists_result_entry_sign * S ((S (gsp_index_exists_result)) * sc) + (gsp_sign_exists_result_entry))) /\ ((exists gsp_lt_gap_exists_result_entry_positive. gsp_lt_gap_exists_result_entry_positive + S 0 = gsp_magnitude_exists_result_entry) /\ ((exists gsp_le_gap_exists_result_entry_bounded. gsp_le_gap_exists_result_entry_bounded + gsp_magnitude_exists_result_entry = h) /\ ((gsp_sign_exists_result_entry = 0 \/ gsp_sign_exists_result_entry = 1) /\ (((gsp_sign_exists_result_entry = 0 /\ (exists gsp_mod_left_exists_result_entry_lower gsp_mod_right_exists_result_entry_lower. (a * gsp_value_exists_result_entry) + p * gsp_mod_left_exists_result_entry_lower = (gsp_magnitude_exists_result_entry) + p * gsp_mod_right_exists_result_entry_lower)) \/ (gsp_sign_exists_result_entry = 1 /\ (exists gsp_mod_left_exists_result_entry_reflected gsp_mod_right_exists_result_entry_reflected. (a * gsp_value_exists_result_entry) + p * gsp_mod_left_exists_result_entry_reflected = ((2 * h) * gsp_magnitude_exists_result_entry) + p * gsp_mod_right_exists_result_entry_reflected))))))))))))Structural proof guide
Generated structural guide
Every bounded family of pointwise signed choices admits aligned beta-coded magnitude and sign prefixes.
Use the direct prerequisites add_eq_zero_right, succ_ne_zero, le_succ, le_refl, gauss_signed_half_prefix_extend as previously established PA formulas.
The proof proceeds by structural induction (1), case analysis (5), intermediate claims (5).
Referenced ingredients
Proof neighborhood
Direct dependencies
PA0004 add_eq_zero_right PA0005 succ_ne_zero PA002O le_succ PA001A le_refl PA0073 gauss_signed_half_prefix_extendDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Alpha-v25 checked-use theorem is independently kernel-checked when replayed; it is not a Stable theorem.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (5)
01Fix variables and assumptionsL1–5
02Induction on lL6–7
03Construct an explicit witnessL8–11
04Fix variables and assumptionsL12–13
05Separate the logical casesL14–15
06Establish hsiL16–24
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add eq zero right.
07Establish hprevious_choicesL25–33
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hchoices.
08Establish hpreviousL34–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
09Separate the logical casesL37–40
10Establish hlastL41–45
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hchoices.
- L41
have hlast : ∃ gsp_value_exists_last_choice. ∃ gsp_magnitude_exists_last_choice. ∃ gsp_sign_exists_last_choice. BetaAt(b,c,l,gsp_value_exists_last_choice) ∧ (Lt(0,gsp_magnitude_exists_last_choice) ∧ (Le(gsp_magnitude_exists_last_choice,h) ∧ ((gsp_sign_exists_last_choice = 0 ∨ gsp_sign_exists_last_choice = 1) ∧ (gsp_sign_exists_last_choice = 0 ∧ ModEq(p,a · gsp_value_exists_last_choice,gsp_magnitude_exists_last_choice) ∨ gsp_sign_exists_last_choice = 1 ∧ ModEq(p,a · gsp_value_exists_last_choice,2 · h · gsp_magnitude_exists_last_choice)))))Definitions: LeLtModEqBetaAt - L42
specialize hchoices l - L43
apply hchoices - L44
specialize le_refl (S l) - L45
exact le_refl
11Establish hnextL46–55
Establish this local claim before using it. It is not an additional assumption.
- L46
- L47
specialize gauss_signed_half_prefix_extend p - L48
specialize gauss_signed_half_prefix_extend h - L49
specialize gauss_signed_half_prefix_extend a - L50
specialize gauss_signed_half_prefix_extend b - L51
specialize gauss_signed_half_prefix_extend c - L52
specialize gauss_signed_half_prefix_extend x - L53
specialize gauss_signed_half_prefix_extend x1 - L54
specialize gauss_signed_half_prefix_extend x2 - L55
specialize gauss_signed_half_prefix_extend x3
Original exact command ledger · 60 lines
- 0001
intro p - 0002
intro h - 0003
intro a - 0004
intro b - 0005
intro c - 0006
induction l - 0007
intro hchoices - 0008
exists 0 - 0009
exists 0 - 0010
exists 0 - 0011
exists 0 - 0012
intro i - 0013
intro hi - 0014
exfalso - 0015
cases hi - 0016
have hsi : S i = 0 - 0017
specialize add_eq_zero_right x - 0018
specialize add_eq_zero_right (S i) - 0019
apply add_eq_zero_right - 0020
exact hi_witness - 0021
specialize succ_ne_zero i - 0022
apply succ_ne_zero - 0023
exact hsi - 0024
intro hchoices - 0025
have hprevious_choices : forall gsp_choice_index_exists_previous. (exists gsp_lt_gap_exists_previous_choice_bound. gsp_lt_gap_exists_previous_choice_bound + S gsp_choice_index_exists_previous = l) -> (exists gsp_value_exists_previous_choice gsp_magnitude_exists_previous_choice gsp_sign_exists_previous_choice. (((exists ff_h_gsp_exists_previous_choice_source. ff_h_gsp_exists_previous_choice_source + S (gsp_value_exists_previous_choice) = S ((S (gsp_choice_index_exists_previous)) * c)) /\ exists ff_q_gsp_exists_previous_choice_source. b = ff_q_gsp_exists_previous_choice_source * S ((S (gsp_choice_index_exists_previous)) * c) + (gsp_value_exists_previous_choice))) /\ ((exists gsp_lt_gap_exists_previous_choice_positive. gsp_lt_gap_exists_previous_choice_positive + S 0 = gsp_magnitude_exists_previous_choice) /\ ((exists gsp_le_gap_exists_previous_choice_bounded. gsp_le_gap_exists_previous_choice_bounded + gsp_magnitude_exists_previous_choice = h) /\ ((gsp_sign_exists_previous_choice = 0 \/ gsp_sign_exists_previous_choice = 1) /\ (((gsp_sign_exists_previous_choice = 0 /\ (exists gsp_mod_left_exists_previous_choice_lower gsp_mod_right_exists_previous_choice_lower. (a * gsp_value_exists_previous_choice) + p * gsp_mod_left_exists_previous_choice_lower = (gsp_magnitude_exists_previous_choice) + p * gsp_mod_right_exists_previous_choice_lower)) \/ (gsp_sign_exists_previous_choice = 1 /\ (exists gsp_mod_left_exists_previous_choice_reflected gsp_mod_right_exists_previous_choice_reflected. (a * gsp_value_exists_previous_choice) + p * gsp_mod_left_exists_previous_choice_reflected = ((2 * h) * gsp_magnitude_exists_previous_choice) + p * gsp_mod_right_exists_previous_choice_reflected)))))))) - 0026
intro i - 0027
intro hi - 0028
specialize hchoices i - 0029
apply hchoices - 0030
specialize le_succ (S i) - 0031
specialize le_succ l - 0032
apply le_succ - 0033
exact hi - 0034
have hprevious : exists mb mc sb sc. (forall gsp_index_exists_previous_result. (exists gsp_lt_gap_exists_previous_result_index_bound. gsp_lt_gap_exists_previous_result_index_bound + S gsp_index_exists_previous_result = l) -> (exists gsp_value_exists_previous_result_entry gsp_magnitude_exists_previous_result_entry gsp_sign_exists_previous_result_entry. (((exists ff_h_gsp_exists_previous_result_entry_source. ff_h_gsp_exists_previous_result_entry_source + S (gsp_value_exists_previous_result_entry) = S ((S (gsp_index_exists_previous_result)) * c)) /\ exists ff_q_gsp_exists_previous_result_entry_source. b = ff_q_gsp_exists_previous_result_entry_source * S ((S (gsp_index_exists_previous_result)) * c) + (gsp_value_exists_previous_result_entry))) /\ ((((exists ff_h_gsp_exists_previous_result_entry_magnitude. ff_h_gsp_exists_previous_result_entry_magnitude + S (gsp_magnitude_exists_previous_result_entry) = S ((S (gsp_index_exists_previous_result)) * mc)) /\ exists ff_q_gsp_exists_previous_result_entry_magnitude. mb = ff_q_gsp_exists_previous_result_entry_magnitude * S ((S (gsp_index_exists_previous_result)) * mc) + (gsp_magnitude_exists_previous_result_entry))) /\ ((((exists ff_h_gsp_exists_previous_result_entry_sign. ff_h_gsp_exists_previous_result_entry_sign + S (gsp_sign_exists_previous_result_entry) = S ((S (gsp_index_exists_previous_result)) * sc)) /\ exists ff_q_gsp_exists_previous_result_entry_sign. sb = ff_q_gsp_exists_previous_result_entry_sign * S ((S (gsp_index_exists_previous_result)) * sc) + (gsp_sign_exists_previous_result_entry))) /\ ((exists gsp_lt_gap_exists_previous_result_entry_positive. gsp_lt_gap_exists_previous_result_entry_positive + S 0 = gsp_magnitude_exists_previous_result_entry) /\ ((exists gsp_le_gap_exists_previous_result_entry_bounded. gsp_le_gap_exists_previous_result_entry_bounded + gsp_magnitude_exists_previous_result_entry = h) /\ ((gsp_sign_exists_previous_result_entry = 0 \/ gsp_sign_exists_previous_result_entry = 1) /\ (((gsp_sign_exists_previous_result_entry = 0 /\ (exists gsp_mod_left_exists_previous_result_entry_lower gsp_mod_right_exists_previous_result_entry_lower. (a * gsp_value_exists_previous_result_entry) + p * gsp_mod_left_exists_previous_result_entry_lower = (gsp_magnitude_exists_previous_result_entry) + p * gsp_mod_right_exists_previous_result_entry_lower)) \/ (gsp_sign_exists_previous_result_entry = 1 /\ (exists gsp_mod_left_exists_previous_result_entry_reflected gsp_mod_right_exists_previous_result_entry_reflected. (a * gsp_value_exists_previous_result_entry) + p * gsp_mod_left_exists_previous_result_entry_reflected = ((2 * h) * gsp_magnitude_exists_previous_result_entry) + p * gsp_mod_right_exists_previous_result_entry_reflected))))))))))) - 0035
apply IH - 0036
exact hprevious_choices - 0037
cases hprevious - 0038
cases hprevious_witness - 0039
cases hprevious_witness_witness - 0040
cases hprevious_witness_witness_witness - 0041
have hlast : exists gsp_value_exists_last_choice gsp_magnitude_exists_last_choice gsp_sign_exists_last_choice. (((exists ff_h_gsp_exists_last_choice_source. ff_h_gsp_exists_last_choice_source + S (gsp_value_exists_last_choice) = S ((S (l)) * c)) /\ exists ff_q_gsp_exists_last_choice_source. b = ff_q_gsp_exists_last_choice_source * S ((S (l)) * c) + (gsp_value_exists_last_choice))) /\ ((exists gsp_lt_gap_exists_last_choice_positive. gsp_lt_gap_exists_last_choice_positive + S 0 = gsp_magnitude_exists_last_choice) /\ ((exists gsp_le_gap_exists_last_choice_bounded. gsp_le_gap_exists_last_choice_bounded + gsp_magnitude_exists_last_choice = h) /\ ((gsp_sign_exists_last_choice = 0 \/ gsp_sign_exists_last_choice = 1) /\ (((gsp_sign_exists_last_choice = 0 /\ (exists gsp_mod_left_exists_last_choice_lower gsp_mod_right_exists_last_choice_lower. (a * gsp_value_exists_last_choice) + p * gsp_mod_left_exists_last_choice_lower = (gsp_magnitude_exists_last_choice) + p * gsp_mod_right_exists_last_choice_lower)) \/ (gsp_sign_exists_last_choice = 1 /\ (exists gsp_mod_left_exists_last_choice_reflected gsp_mod_right_exists_last_choice_reflected. (a * gsp_value_exists_last_choice) + p * gsp_mod_left_exists_last_choice_reflected = ((2 * h) * gsp_magnitude_exists_last_choice) + p * gsp_mod_right_exists_last_choice_reflected))))))) - 0042
specialize hchoices l - 0043
apply hchoices - 0044
specialize le_refl (S l) - 0045
exact le_refl - 0046
have hnext : exists mb mc sb sc. (forall gsp_index_exists_next_result. (exists gsp_lt_gap_exists_next_result_index_bound. gsp_lt_gap_exists_next_result_index_bound + S gsp_index_exists_next_result = S l) -> (exists gsp_value_exists_next_result_entry gsp_magnitude_exists_next_result_entry gsp_sign_exists_next_result_entry. (((exists ff_h_gsp_exists_next_result_entry_source. ff_h_gsp_exists_next_result_entry_source + S (gsp_value_exists_next_result_entry) = S ((S (gsp_index_exists_next_result)) * c)) /\ exists ff_q_gsp_exists_next_result_entry_source. b = ff_q_gsp_exists_next_result_entry_source * S ((S (gsp_index_exists_next_result)) * c) + (gsp_value_exists_next_result_entry))) /\ ((((exists ff_h_gsp_exists_next_result_entry_magnitude. ff_h_gsp_exists_next_result_entry_magnitude + S (gsp_magnitude_exists_next_result_entry) = S ((S (gsp_index_exists_next_result)) * mc)) /\ exists ff_q_gsp_exists_next_result_entry_magnitude. mb = ff_q_gsp_exists_next_result_entry_magnitude * S ((S (gsp_index_exists_next_result)) * mc) + (gsp_magnitude_exists_next_result_entry))) /\ ((((exists ff_h_gsp_exists_next_result_entry_sign. ff_h_gsp_exists_next_result_entry_sign + S (gsp_sign_exists_next_result_entry) = S ((S (gsp_index_exists_next_result)) * sc)) /\ exists ff_q_gsp_exists_next_result_entry_sign. sb = ff_q_gsp_exists_next_result_entry_sign * S ((S (gsp_index_exists_next_result)) * sc) + (gsp_sign_exists_next_result_entry))) /\ ((exists gsp_lt_gap_exists_next_result_entry_positive. gsp_lt_gap_exists_next_result_entry_positive + S 0 = gsp_magnitude_exists_next_result_entry) /\ ((exists gsp_le_gap_exists_next_result_entry_bounded. gsp_le_gap_exists_next_result_entry_bounded + gsp_magnitude_exists_next_result_entry = h) /\ ((gsp_sign_exists_next_result_entry = 0 \/ gsp_sign_exists_next_result_entry = 1) /\ (((gsp_sign_exists_next_result_entry = 0 /\ (exists gsp_mod_left_exists_next_result_entry_lower gsp_mod_right_exists_next_result_entry_lower. (a * gsp_value_exists_next_result_entry) + p * gsp_mod_left_exists_next_result_entry_lower = (gsp_magnitude_exists_next_result_entry) + p * gsp_mod_right_exists_next_result_entry_lower)) \/ (gsp_sign_exists_next_result_entry = 1 /\ (exists gsp_mod_left_exists_next_result_entry_reflected gsp_mod_right_exists_next_result_entry_reflected. (a * gsp_value_exists_next_result_entry) + p * gsp_mod_left_exists_next_result_entry_reflected = ((2 * h) * gsp_magnitude_exists_next_result_entry) + p * gsp_mod_right_exists_next_result_entry_reflected))))))))))) - 0047
specialize gauss_signed_half_prefix_extend p - 0048
specialize gauss_signed_half_prefix_extend h - 0049
specialize gauss_signed_half_prefix_extend a - 0050
specialize gauss_signed_half_prefix_extend b - 0051
specialize gauss_signed_half_prefix_extend c - 0052
specialize gauss_signed_half_prefix_extend x - 0053
specialize gauss_signed_half_prefix_extend x1 - 0054
specialize gauss_signed_half_prefix_extend x2 - 0055
specialize gauss_signed_half_prefix_extend x3 - 0056
specialize gauss_signed_half_prefix_extend l - 0057
apply gauss_signed_half_prefix_extend - 0058
exact hprevious_witness_witness_witness_witness - 0059
exact hlast - 0060
exact hnext