Exact expanded PA statement
forall p h b c i x. p = 2 * h + 1 -> (forall gh_i_half. (exists gh_lt_half_bound. gh_lt_half_bound + S gh_i_half = h) -> (((exists gh_h_half. gh_h_half + S (1 + gh_i_half) = S ((S gh_i_half) * c)) /\ exists gh_q_half. b = gh_q_half * S ((S gh_i_half) * c) + (1 + gh_i_half)))) -> (exists gh_lt_half_i. gh_lt_half_i + S i = h) -> (((exists ff_h_half_i. ff_h_half_i + S (x) = S ((S (i)) * c)) /\ exists ff_q_half_i. b = ff_q_half_i * S ((S (i)) * c) + (x))) -> (~(x = 0) /\ (exists gh_lt_half_value. gh_lt_half_value + S x = p))Structural proof guide
Generated structural guide
Entries 1 through h in an odd half-range are nonzero and below p.
Use the direct prerequisites beta_range_entry_eq, zero_add, add_succ_left, mul_succ_left, mul_zero_left, add_assoc, lt_of_le_of_lt as previously established PA formulas.
The proof proceeds by intermediate claims (5), equality transport (2), certified simplification (1).
Referenced ingredients
Proof neighborhood
Direct dependencies
PA0032 beta_range_entry_eq PA0001 zero_add PA000E add_succ_left PA000G mul_succ_left PA000D mul_zero_left PA0009 add_assoc PA0033 lt_of_le_of_ltDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Stable checked-use theorem is independently kernel-checked when replayed.
- 0001
intro p - 0002
intro h - 0003
intro b - 0004
intro c - 0005
intro i - 0006
intro x - 0007
intro hp - 0008
intro hrange - 0009
intro hi - 0010
intro hxi - 0011
have hx : x = 1 + i - 0012
specialize beta_range_entry_eq b - 0013
specialize beta_range_entry_eq c - 0014
specialize beta_range_entry_eq 1 - 0015
specialize beta_range_entry_eq h - 0016
specialize beta_range_entry_eq i - 0017
specialize beta_range_entry_eq x - 0018
apply beta_range_entry_eq - 0019
exact hrange - 0020
exact hi - 0021
exact hxi - 0022
have hone : 1 + i = S i - 0023
trans S (0 + i) - 0024
specialize add_succ_left 0 - 0025
specialize add_succ_left i - 0026
exact add_succ_left - 0027
congr - 0028
specialize zero_add i - 0029
exact zero_add - 0030
have hxsi : x = S i - 0031
trans 1 + i - 0032
exact hx - 0033
exact hone - 0034
split - 0035
intro hx0 - 0036
apply PA1 - 0037
trans x - 0038
symm - 0039
exact hxsi - 0040
exact hx0 - 0041
have hxh : exists k. k + x = h - 0042
rewrite hxsi - 0043
exact hi - 0044
have hhp : exists k. k + S h = p - 0045
exists h - 0046
rewrite hp - 0047
simp [mul_succ_left, mul_zero_left, add_succ_left, zero_add, add_assoc] - 0048
specialize lt_of_le_of_lt x - 0049
specialize lt_of_le_of_lt h - 0050
specialize lt_of_le_of_lt p - 0051
apply lt_of_le_of_lt - 0052
exact hxh - 0053
exact hhp