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.
Statement with defined notation
∀ p. ∀ h. ∀ r. ∀ a. ∀ b. ∀ c. ∀ mb. ∀ mc. ∀ sb. ∀ sc. ∀ fb. ∀ fc. ∀ tb. ∀ tc. p = S r → r = 2 · h → (∀ x. Lt(x,h) → ∃ y. ∃ z. ∃ n. BetaAt(b,c,x,y) ∧ (BetaAt(mb,mc,x,z) ∧ (BetaAt(sb,sc,x,n) ∧ (Lt(0,z) ∧ (Le(z,h) ∧ ((n = 0 ∨ n = 1) ∧ (n = 0 ∧ ModEq(p,a · y,z) ∨ n = 1 ∧ ModEq(p,a · y,2 · h · z)))))))) → (∀ x. ∀ y. Lt(x,h) → BetaAt(sb,sc,x,y) → y = 0 ∧ BetaAt(fb,fc,x,1) ∨ y = 1 ∧ BetaAt(fb,fc,x,r)) → (∀ x. ∀ y. ∀ z. ∀ n. Lt(x,h) → BetaAt(mb,mc,x,y) → BetaAt(fb,fc,x,z) → BetaAt(tb,tc,x,n) → n = y · z) → ∀ x. ∀ y. ∀ z. Lt(x,h) → BetaAt(b,c,x,y) → BetaAt(tb,tc,x,z) → ModEq(p,a · y,z)Every purple notation token opens its conservative definition. This is a reading surface; the compiler expands the statement before the unchanged kernel checks it.
Definitions used by this theorem
In the theorem statement
20 occurrences
In local proof propositions
9 occurrences
Exact expanded native-PA statement
forall p h r a b c mb mc sb sc fb fc tb tc. p = S r -> r = 2 * h -> (forall gsp_index_pointwise_signed_prefix. (exists gsp_lt_gap_pointwise_signed_prefix_index_bound. gsp_lt_gap_pointwise_signed_prefix_index_bound + S gsp_index_pointwise_signed_prefix = h) -> (exists gsp_value_pointwise_signed_prefix_entry gsp_magnitude_pointwise_signed_prefix_entry gsp_sign_pointwise_signed_prefix_entry. (((exists ff_h_gsp_pointwise_signed_prefix_entry_source. ff_h_gsp_pointwise_signed_prefix_entry_source + S (gsp_value_pointwise_signed_prefix_entry) = S ((S (gsp_index_pointwise_signed_prefix)) * c)) /\ exists ff_q_gsp_pointwise_signed_prefix_entry_source. b = ff_q_gsp_pointwise_signed_prefix_entry_source * S ((S (gsp_index_pointwise_signed_prefix)) * c) + (gsp_value_pointwise_signed_prefix_entry))) /\ ((((exists ff_h_gsp_pointwise_signed_prefix_entry_magnitude. ff_h_gsp_pointwise_signed_prefix_entry_magnitude + S (gsp_magnitude_pointwise_signed_prefix_entry) = S ((S (gsp_index_pointwise_signed_prefix)) * mc)) /\ exists ff_q_gsp_pointwise_signed_prefix_entry_magnitude. mb = ff_q_gsp_pointwise_signed_prefix_entry_magnitude * S ((S (gsp_index_pointwise_signed_prefix)) * mc) + (gsp_magnitude_pointwise_signed_prefix_entry))) /\ ((((exists ff_h_gsp_pointwise_signed_prefix_entry_sign. ff_h_gsp_pointwise_signed_prefix_entry_sign + S (gsp_sign_pointwise_signed_prefix_entry) = S ((S (gsp_index_pointwise_signed_prefix)) * sc)) /\ exists ff_q_gsp_pointwise_signed_prefix_entry_sign. sb = ff_q_gsp_pointwise_signed_prefix_entry_sign * S ((S (gsp_index_pointwise_signed_prefix)) * sc) + (gsp_sign_pointwise_signed_prefix_entry))) /\ ((exists gsp_lt_gap_pointwise_signed_prefix_entry_positive. gsp_lt_gap_pointwise_signed_prefix_entry_positive + S 0 = gsp_magnitude_pointwise_signed_prefix_entry) /\ ((exists gsp_le_gap_pointwise_signed_prefix_entry_bounded. gsp_le_gap_pointwise_signed_prefix_entry_bounded + gsp_magnitude_pointwise_signed_prefix_entry = h) /\ ((gsp_sign_pointwise_signed_prefix_entry = 0 \/ gsp_sign_pointwise_signed_prefix_entry = 1) /\ (((gsp_sign_pointwise_signed_prefix_entry = 0 /\ (exists gsp_mod_left_pointwise_signed_prefix_entry_lower gsp_mod_right_pointwise_signed_prefix_entry_lower. (a * gsp_value_pointwise_signed_prefix_entry) + p * gsp_mod_left_pointwise_signed_prefix_entry_lower = (gsp_magnitude_pointwise_signed_prefix_entry) + p * gsp_mod_right_pointwise_signed_prefix_entry_lower)) \/ (gsp_sign_pointwise_signed_prefix_entry = 1 /\ (exists gsp_mod_left_pointwise_signed_prefix_entry_reflected gsp_mod_right_pointwise_signed_prefix_entry_reflected. (a * gsp_value_pointwise_signed_prefix_entry) + p * gsp_mod_left_pointwise_signed_prefix_entry_reflected = ((2 * h) * gsp_magnitude_pointwise_signed_prefix_entry) + p * gsp_mod_right_pointwise_signed_prefix_entry_reflected))))))))))) -> (forall gspf_index_pointwise_sign_factors gspf_bit_pointwise_sign_factors. (exists gsp_lt_gap_pointwise_sign_factors_bound. gsp_lt_gap_pointwise_sign_factors_bound + S gspf_index_pointwise_sign_factors = h) -> (((exists ff_h_gspf_pointwise_sign_factors_bit. ff_h_gspf_pointwise_sign_factors_bit + S (gspf_bit_pointwise_sign_factors) = S ((S (gspf_index_pointwise_sign_factors)) * sc)) /\ exists ff_q_gspf_pointwise_sign_factors_bit. sb = ff_q_gspf_pointwise_sign_factors_bit * S ((S (gspf_index_pointwise_sign_factors)) * sc) + (gspf_bit_pointwise_sign_factors))) -> (((gspf_bit_pointwise_sign_factors = 0) /\ (((exists gsp_beta_height_gspf_pointwise_sign_factors_one. gsp_beta_height_gspf_pointwise_sign_factors_one + S (1) = S ((S (gspf_index_pointwise_sign_factors)) * fc)) /\ exists gsp_beta_quotient_gspf_pointwise_sign_factors_one. fb = gsp_beta_quotient_gspf_pointwise_sign_factors_one * S ((S (gspf_index_pointwise_sign_factors)) * fc) + (1)))) \/ ((gspf_bit_pointwise_sign_factors = 1) /\ (((exists ff_h_gspf_pointwise_sign_factors_predecessor. ff_h_gspf_pointwise_sign_factors_predecessor + S (r) = S ((S (gspf_index_pointwise_sign_factors)) * fc)) /\ exists ff_q_gspf_pointwise_sign_factors_predecessor. fb = ff_q_gspf_pointwise_sign_factors_predecessor * S ((S (gspf_index_pointwise_sign_factors)) * fc) + (r)))))) -> (forall fpmp_index_pointwise_products fpmp_left_pointwise_products fpmp_right_pointwise_products fpmp_target_pointwise_products. (exists fpmp_gap_pointwise_products. fpmp_gap_pointwise_products + S fpmp_index_pointwise_products = h) -> (((exists ff_h_fpmp_pointwise_products_left. ff_h_fpmp_pointwise_products_left + S (fpmp_left_pointwise_products) = S ((S (fpmp_index_pointwise_products)) * mc)) /\ exists ff_q_fpmp_pointwise_products_left. mb = ff_q_fpmp_pointwise_products_left * S ((S (fpmp_index_pointwise_products)) * mc) + (fpmp_left_pointwise_products))) -> (((exists ff_h_fpmp_pointwise_products_right. ff_h_fpmp_pointwise_products_right + S (fpmp_right_pointwise_products) = S ((S (fpmp_index_pointwise_products)) * fc)) /\ exists ff_q_fpmp_pointwise_products_right. fb = ff_q_fpmp_pointwise_products_right * S ((S (fpmp_index_pointwise_products)) * fc) + (fpmp_right_pointwise_products))) -> (((exists ff_h_fpmp_pointwise_products_target. ff_h_fpmp_pointwise_products_target + S (fpmp_target_pointwise_products) = S ((S (fpmp_index_pointwise_products)) * tc)) /\ exists ff_q_fpmp_pointwise_products_target. tb = ff_q_fpmp_pointwise_products_target * S ((S (fpmp_index_pointwise_products)) * tc) + (fpmp_target_pointwise_products))) -> fpmp_target_pointwise_products = fpmp_left_pointwise_products * fpmp_right_pointwise_products) -> (forall fsp_index_pointwise_scale_result fsp_source_pointwise_scale_result fsp_target_pointwise_scale_result. (exists fsp_gap_pointwise_scale_result. fsp_gap_pointwise_scale_result + S fsp_index_pointwise_scale_result = h) -> (((exists fsp_source_height_pointwise_scale_result. fsp_source_height_pointwise_scale_result + S (fsp_source_pointwise_scale_result) = S ((S (fsp_index_pointwise_scale_result)) * c)) /\ exists fsp_source_quotient_pointwise_scale_result. b = fsp_source_quotient_pointwise_scale_result * S ((S (fsp_index_pointwise_scale_result)) * c) + (fsp_source_pointwise_scale_result))) -> (((exists fsp_target_height_pointwise_scale_result. fsp_target_height_pointwise_scale_result + S (fsp_target_pointwise_scale_result) = S ((S (fsp_index_pointwise_scale_result)) * tc)) /\ exists fsp_target_quotient_pointwise_scale_result. tb = fsp_target_quotient_pointwise_scale_result * S ((S (fsp_index_pointwise_scale_result)) * tc) + (fsp_target_pointwise_scale_result))) -> (exists fsp_mod_left_pointwise_scale_result fsp_mod_right_pointwise_scale_result. a * fsp_source_pointwise_scale_result + p * fsp_mod_left_pointwise_scale_result = fsp_target_pointwise_scale_result + p * fsp_mod_right_pointwise_scale_result))Proof neighborhood
Direct theorem prerequisites
Direct theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. The untrusted compiler re-expands each one before the original tactic script is replayed; defined notation is never accepted by the kernel. Open the exact replay line beneath every changed command.
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 (3)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–20
03Fix variables and assumptionsL21–25
04Establish hentryL26–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hsigned.
- L26Definitions: BetaAt(b,c,i,gsp_value_pointwise_signed_entry)BetaAt(mb,mc,i,gsp_magnitude_pointwise_signed_entry)BetaAt(sb,sc,i,gsp_sign_pointwise_signed_entry)Lt(0,gsp_magnitude_pointwise_signed_entry)Le(gsp_magnitude_pointwise_signed_entry,h)ModEq(p,a · gsp_value_pointwise_signed_entry,gsp_magnitude_pointwise_signed_entry)ModEq(p,a · gsp_value_pointwise_signed_entry,2 · h · gsp_magnitude_pointwise_signed_entry)Original native command in the exact edition
have hentry · expand full local formula (710 characters)
have hentry : ∃ gsp_value_pointwise_signed_entry. ∃ gsp_magnitude_pointwise_signed_entry. ∃ gsp_sign_pointwise_signed_entry. BetaAt(b,c,i,gsp_value_pointwise_signed_entry) ∧ (BetaAt(mb,mc,i,gsp_magnitude_pointwise_signed_entry) ∧ (BetaAt(sb,sc,i,gsp_sign_pointwise_signed_entry) ∧ (Lt(0,gsp_magnitude_pointwise_signed_entry) ∧ (Le(gsp_magnitude_pointwise_signed_entry,h) ∧ ((gsp_sign_pointwise_signed_entry = 0 ∨ gsp_sign_pointwise_signed_entry = 1) ∧ (gsp_sign_pointwise_signed_entry = 0 ∧ ModEq(p,a · gsp_value_pointwise_signed_entry,gsp_magnitude_pointwise_signed_entry) ∨ gsp_sign_pointwise_signed_entry = 1 ∧ ModEq(p,a · gsp_value_pointwise_signed_entry,2 · h · gsp_magnitude_pointwise_signed_entry))))))) - L27
specialize hsigned i - L28
apply hsigned - L29
exact hi
05Separate the logical casesL30–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L30
cases hentry - L31
cases hentry_witness - L32
cases hentry_witness_witness - L33
cases hentry_witness_witness_witness - L34
cases hentry_witness_witness_witness_right - L35
cases hentry_witness_witness_witness_right_right - L36
cases hentry_witness_witness_witness_right_right_right - L37
cases hentry_witness_witness_witness_right_right_right_right - L38
cases hentry_witness_witness_witness_right_right_right_right_right
06Establish hvxL39–47
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
07Establish hfactor_caseL48–53
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hfactor.
- L48
have hfactor_case : x2 = 0 ∧ BetaAt(fb,fc,i,1) ∨ x2 = 1 ∧ BetaAt(fb,fc,i,r)Definitions: BetaAt(fb,fc,i,1)BetaAt(fb,fc,i,r)Original native command in the exact edition - L49
specialize hfactor i - L50
specialize hfactor x2 - L51
apply hfactor - L52
exact hi - L53
exact hentry_witness_witness_witness_right_right_left
08Separate the logical casesL54–57
09Establish ht_oneL58–67
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hmul.
10Calculate and transport equalitiesL68–69
11Use earlier factsL70–70
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L70
specialize mul_one x1
12Calculate and transport equalitiesL71–71
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L71
rewrite mul_one
13Use earlier factsL72–72
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L72
exact hentry_witness_witness_witness_right_right_right_right_right_right_left_right
14Separate the logical casesL73–74
15Use earlier factsL75–75
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L75
apply PA1
16Calculate and transport equalitiesL76–77
17Use earlier factsL78–79
18Separate the logical casesL80–83
19Use earlier factsL84–84
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L84
apply PA1
20Calculate and transport equalitiesL85–86
21Use earlier factsL87–88
22Separate the logical casesL89–89
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L89
cases hfactor_case_right
23Establish ht_rL90–99
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hmul.
24Establish ht_reflectedL100–109
25Use earlier factsL110–110
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L110
exact hentry_witness_witness_witness_right_right_right_right_right_right_right_right
Original defined command ledger · 110 lines
- 0001
intro p - 0002
intro h - 0003
intro r - 0004
intro a - 0005
intro b - 0006
intro c - 0007
intro mb - 0008
intro mc - 0009
intro sb - 0010
intro sc - 0011
intro fb - 0012
intro fc - 0013
intro tb - 0014
intro tc - 0015
intro hp - 0016
intro hr - 0017
intro hsigned - 0018
intro hfactor - 0019
intro hmul - 0020
intro i - 0021
intro v - 0022
intro t - 0023
intro hi - 0024
intro hv - 0025
intro ht - 0026
have hentry : ∃ gsp_value_pointwise_signed_entry. ∃ gsp_magnitude_pointwise_signed_entry. ∃ gsp_sign_pointwise_signed_entry. BetaAt(b,c,i,gsp_value_pointwise_signed_entry) ∧ (BetaAt(mb,mc,i,gsp_magnitude_pointwise_signed_entry) ∧ (BetaAt(sb,sc,i,gsp_sign_pointwise_signed_entry) ∧ (Lt(0,gsp_magnitude_pointwise_signed_entry) ∧ (Le(gsp_magnitude_pointwise_signed_entry,h) ∧ ((gsp_sign_pointwise_signed_entry = 0 ∨ gsp_sign_pointwise_signed_entry = 1) ∧ (gsp_sign_pointwise_signed_entry = 0 ∧ ModEq(p,a · gsp_value_pointwise_signed_entry,gsp_magnitude_pointwise_signed_entry) ∨ gsp_sign_pointwise_signed_entry = 1 ∧ ModEq(p,a · gsp_value_pointwise_signed_entry,2 · h · gsp_magnitude_pointwise_signed_entry)))))))Exact native replay line
have hentry : exists gsp_value_pointwise_signed_entry gsp_magnitude_pointwise_signed_entry gsp_sign_pointwise_signed_entry. (((exists ff_h_gsp_pointwise_signed_entry_source. ff_h_gsp_pointwise_signed_entry_source + S (gsp_value_pointwise_signed_entry) = S ((S (i)) * c)) /\ exists ff_q_gsp_pointwise_signed_entry_source. b = ff_q_gsp_pointwise_signed_entry_source * S ((S (i)) * c) + (gsp_value_pointwise_signed_entry))) /\ ((((exists ff_h_gsp_pointwise_signed_entry_magnitude. ff_h_gsp_pointwise_signed_entry_magnitude + S (gsp_magnitude_pointwise_signed_entry) = S ((S (i)) * mc)) /\ exists ff_q_gsp_pointwise_signed_entry_magnitude. mb = ff_q_gsp_pointwise_signed_entry_magnitude * S ((S (i)) * mc) + (gsp_magnitude_pointwise_signed_entry))) /\ ((((exists ff_h_gsp_pointwise_signed_entry_sign. ff_h_gsp_pointwise_signed_entry_sign + S (gsp_sign_pointwise_signed_entry) = S ((S (i)) * sc)) /\ exists ff_q_gsp_pointwise_signed_entry_sign. sb = ff_q_gsp_pointwise_signed_entry_sign * S ((S (i)) * sc) + (gsp_sign_pointwise_signed_entry))) /\ ((exists gsp_lt_gap_pointwise_signed_entry_positive. gsp_lt_gap_pointwise_signed_entry_positive + S 0 = gsp_magnitude_pointwise_signed_entry) /\ ((exists gsp_le_gap_pointwise_signed_entry_bounded. gsp_le_gap_pointwise_signed_entry_bounded + gsp_magnitude_pointwise_signed_entry = h) /\ ((gsp_sign_pointwise_signed_entry = 0 \/ gsp_sign_pointwise_signed_entry = 1) /\ (((gsp_sign_pointwise_signed_entry = 0 /\ (exists gsp_mod_left_pointwise_signed_entry_lower gsp_mod_right_pointwise_signed_entry_lower. (a * gsp_value_pointwise_signed_entry) + p * gsp_mod_left_pointwise_signed_entry_lower = (gsp_magnitude_pointwise_signed_entry) + p * gsp_mod_right_pointwise_signed_entry_lower)) \/ (gsp_sign_pointwise_signed_entry = 1 /\ (exists gsp_mod_left_pointwise_signed_entry_reflected gsp_mod_right_pointwise_signed_entry_reflected. (a * gsp_value_pointwise_signed_entry) + p * gsp_mod_left_pointwise_signed_entry_reflected = ((2 * h) * gsp_magnitude_pointwise_signed_entry) + p * gsp_mod_right_pointwise_signed_entry_reflected))))))))) - 0027
specialize hsigned i - 0028
apply hsigned - 0029
exact hi - 0030
cases hentry - 0031
cases hentry_witness - 0032
cases hentry_witness_witness - 0033
cases hentry_witness_witness_witness - 0034
cases hentry_witness_witness_witness_right - 0035
cases hentry_witness_witness_witness_right_right - 0036
cases hentry_witness_witness_witness_right_right_right - 0037
cases hentry_witness_witness_witness_right_right_right_right - 0038
cases hentry_witness_witness_witness_right_right_right_right_right - 0039
have hvx : v = x - 0040
specialize beta_at_unique b - 0041
specialize beta_at_unique c - 0042
specialize beta_at_unique i - 0043
specialize beta_at_unique v - 0044
specialize beta_at_unique x - 0045
apply beta_at_unique - 0046
exact hv - 0047
exact hentry_witness_witness_witness_left - 0048
have hfactor_case : x2 = 0 ∧ BetaAt(fb,fc,i,1) ∨ x2 = 1 ∧ BetaAt(fb,fc,i,r)Exact native replay line
have hfactor_case : (((x2 = 0) /\ (((exists gsp_beta_height_pointwise_factor_one. gsp_beta_height_pointwise_factor_one + S (1) = S ((S (i)) * fc)) /\ exists gsp_beta_quotient_pointwise_factor_one. fb = gsp_beta_quotient_pointwise_factor_one * S ((S (i)) * fc) + (1)))) \/ ((x2 = 1) /\ (((exists ff_h_pointwise_factor_r. ff_h_pointwise_factor_r + S (r) = S ((S (i)) * fc)) /\ exists ff_q_pointwise_factor_r. fb = ff_q_pointwise_factor_r * S ((S (i)) * fc) + (r))))) - 0049
specialize hfactor i - 0050
specialize hfactor x2 - 0051
apply hfactor - 0052
exact hi - 0053
exact hentry_witness_witness_witness_right_right_left - 0054
cases hentry_witness_witness_witness_right_right_right_right_right_right - 0055
cases hentry_witness_witness_witness_right_right_right_right_right_right_left - 0056
cases hfactor_case - 0057
cases hfactor_case_left - 0058
have ht_one : t = x1 * 1 - 0059
specialize hmul i - 0060
specialize hmul x1 - 0061
specialize hmul 1 - 0062
specialize hmul t - 0063
apply hmul - 0064
exact hi - 0065
exact hentry_witness_witness_witness_right_left - 0066
exact hfactor_case_left_right - 0067
exact ht - 0068
rewrite hvx - 0069
rewrite ht_one - 0070
specialize mul_one x1 - 0071
rewrite mul_one - 0072
exact hentry_witness_witness_witness_right_right_right_right_right_right_left_right - 0073
cases hfactor_case_right - 0074
exfalso - 0075
apply PA1 - 0076
trans x2 - 0077
symm - 0078
exact hfactor_case_right_left - 0079
exact hentry_witness_witness_witness_right_right_right_right_right_right_left_left - 0080
cases hentry_witness_witness_witness_right_right_right_right_right_right_right - 0081
cases hfactor_case - 0082
cases hfactor_case_left - 0083
exfalso - 0084
apply PA1 - 0085
trans x2 - 0086
symm - 0087
exact hentry_witness_witness_witness_right_right_right_right_right_right_right_left - 0088
exact hfactor_case_left_left - 0089
cases hfactor_case_right - 0090
have ht_r : t = x1 * r - 0091
specialize hmul i - 0092
specialize hmul x1 - 0093
specialize hmul r - 0094
specialize hmul t - 0095
apply hmul - 0096
exact hi - 0097
exact hentry_witness_witness_witness_right_left - 0098
exact hfactor_case_right_right - 0099
exact ht - 0100
have ht_reflected : t = (2 * h) * x1 - 0101
trans x1 * r - 0102
exact ht_r - 0103
trans r * x1 - 0104
apply mul_comm - 0105
congr - 0106
exact hr - 0107
refl - 0108
rewrite hvx - 0109
rewrite ht_reflected - 0110
exact hentry_witness_witness_witness_right_right_right_right_right_right_right_right