PA007G · theorem

beta_sign_factor_prefix_exists

Alpha v34 checked-use theorem · independently closed; not Stable

Every finite beta bit prefix admits a beta-coded 1/r sign-factor prefix.

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

∀ sb. ∀ sc. ∀ r. ∀ l. ∀ e. BitCount(sb,sc,l,e) → ∃ x. ∃ y. ∀ z. ∀ n. Lt(z,l)BetaAt(sb,sc,z,n) → n = 0 ∧ BetaAt(x,y,z,1) ∨ n = 1 ∧ BetaAt(x,y,z,r)

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

5 occurrences

In local proof propositions

6 occurrences

Exact expanded native-PA statement
forall sb sc r l e. (((exists ff_u_recode_count_sum ff_v_recode_count_sum. ((((exists ff_h_recode_count_sum_start. ff_h_recode_count_sum_start + S (0) = S ((S (0)) * ff_v_recode_count_sum)) /\ exists ff_q_recode_count_sum_start. ff_u_recode_count_sum = ff_q_recode_count_sum_start * S ((S (0)) * ff_v_recode_count_sum) + (0))) /\ ((((exists ff_h_recode_count_sum_terminal. ff_h_recode_count_sum_terminal + S (e) = S ((S (l)) * ff_v_recode_count_sum)) /\ exists ff_q_recode_count_sum_terminal. ff_u_recode_count_sum = ff_q_recode_count_sum_terminal * S ((S (l)) * ff_v_recode_count_sum) + (e))) /\ forall ff_i_recode_count_sum. (exists ff_lt_recode_count_sum_bound. ff_lt_recode_count_sum_bound + S ff_i_recode_count_sum = l) -> exists ff_a_recode_count_sum ff_r_recode_count_sum ff_s_recode_count_sum. ((((exists ff_h_recode_count_sum_summand. ff_h_recode_count_sum_summand + S (ff_a_recode_count_sum) = S ((S (ff_i_recode_count_sum)) * sc)) /\ exists ff_q_recode_count_sum_summand. sb = ff_q_recode_count_sum_summand * S ((S (ff_i_recode_count_sum)) * sc) + (ff_a_recode_count_sum))) /\ ((((exists ff_h_recode_count_sum_partial. ff_h_recode_count_sum_partial + S (ff_r_recode_count_sum) = S ((S (ff_i_recode_count_sum)) * ff_v_recode_count_sum)) /\ exists ff_q_recode_count_sum_partial. ff_u_recode_count_sum = ff_q_recode_count_sum_partial * S ((S (ff_i_recode_count_sum)) * ff_v_recode_count_sum) + (ff_r_recode_count_sum))) /\ ((((exists ff_h_recode_count_sum_successor. ff_h_recode_count_sum_successor + S (ff_s_recode_count_sum) = S ((S (S ff_i_recode_count_sum)) * ff_v_recode_count_sum)) /\ exists ff_q_recode_count_sum_successor. ff_u_recode_count_sum = ff_q_recode_count_sum_successor * S ((S (S ff_i_recode_count_sum)) * ff_v_recode_count_sum) + (ff_s_recode_count_sum))) /\ ff_s_recode_count_sum = ff_r_recode_count_sum + ff_a_recode_count_sum)))))) /\ (forall ff_i_recode_count_bits. (exists ff_lt_recode_count_bits_bound. ff_lt_recode_count_bits_bound + S ff_i_recode_count_bits = l) -> exists ff_bit_recode_count_bits. ((((exists ff_h_recode_count_bits_decoded. ff_h_recode_count_bits_decoded + S (ff_bit_recode_count_bits) = S ((S (ff_i_recode_count_bits)) * sc)) /\ exists ff_q_recode_count_bits_decoded. sb = ff_q_recode_count_bits_decoded * S ((S (ff_i_recode_count_bits)) * sc) + (ff_bit_recode_count_bits))) /\ (ff_bit_recode_count_bits = 0 \/ ff_bit_recode_count_bits = 1))))) -> exists fb fc. (forall gspf_index_recode_result gspf_bit_recode_result. (exists gsp_lt_gap_recode_result_bound. gsp_lt_gap_recode_result_bound + S gspf_index_recode_result = l) -> (((exists ff_h_gspf_recode_result_bit. ff_h_gspf_recode_result_bit + S (gspf_bit_recode_result) = S ((S (gspf_index_recode_result)) * sc)) /\ exists ff_q_gspf_recode_result_bit. sb = ff_q_gspf_recode_result_bit * S ((S (gspf_index_recode_result)) * sc) + (gspf_bit_recode_result))) -> (((gspf_bit_recode_result = 0) /\ (((exists gsp_beta_height_gspf_recode_result_one. gsp_beta_height_gspf_recode_result_one + S (1) = S ((S (gspf_index_recode_result)) * fc)) /\ exists gsp_beta_quotient_gspf_recode_result_one. fb = gsp_beta_quotient_gspf_recode_result_one * S ((S (gspf_index_recode_result)) * fc) + (1)))) \/ ((gspf_bit_recode_result = 1) /\ (((exists ff_h_gspf_recode_result_predecessor. ff_h_gspf_recode_result_predecessor + S (r) = S ((S (gspf_index_recode_result)) * fc)) /\ exists ff_q_gspf_recode_result_predecessor. fb = ff_q_gspf_recode_result_predecessor * S ((S (gspf_index_recode_result)) * fc) + (r))))))

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

75 script commands · 20 reading checkpoints · 3 local claims

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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

Named ingredients (4)
01Fix variables and assumptionsL1–3

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro sb
  2. L2
    intro sc
  3. L3
    intro r
02Induction on lL4–6

Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.

  1. L4
    induction l
  2. L5
    intro e
  3. L6
    intro hcount
03Construct an explicit witnessL7–8

Supply the displayed value, then prove that it has the required property.

  1. L7
    exists 0
  2. L8
    exists 0
04Fix variables and assumptionsL9–12

Work with arbitrary variables or the premises of the current implication.

  1. L9
    intro i
  2. L10
    intro v
  3. L11
    intro hi
  4. L12
    intro hv
05Separate the logical casesL13–14

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L13
    exfalso
  2. L14
    cases hi
06Establish hsiL15–24

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add eq zero right.

  1. L15
    have hsi : S i = 0
  2. L16
    specialize add_eq_zero_right x
  3. L17
    specialize add_eq_zero_right (S i)
  4. L18
    apply add_eq_zero_right
  5. L19
    exact hi_witness
  6. L20
    specialize succ_ne_zero i
  7. L21
    apply succ_ne_zero
  8. L22
    exact hsi
  9. L23
    intro e
  10. L24
    intro hcount
07Establish hdecompL25–33

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply bit count succ decompose.

  1. L25
    have hdecomp : ∃ a. ∃ k. BetaAt(sb,sc,l,a) ∧ (BitCount(sb,sc,l,k) ∧ ((a = 0 ∨ a = 1) ∧ e = k + a))Definitions: BetaAt(sb,sc,l,a)BitCount(sb,sc,l,k)Original native command in the exact edition
  2. L26
    specialize bit_count_succ_decompose sb
  3. L27
    specialize bit_count_succ_decompose sc
  4. L28
    specialize bit_count_succ_decompose l
  5. L29
    specialize bit_count_succ_decompose (S l)
  6. L30
    specialize bit_count_succ_decompose e
  7. L31
    apply bit_count_succ_decompose
  8. L32
    refl
  9. L33
    exact hcount
08Separate the logical casesL34–38

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L34
    cases hdecomp
  2. L35
    cases hdecomp_witness
  3. L36
    cases hdecomp_witness_witness
  4. L37
    cases hdecomp_witness_witness_right
  5. L38
    cases hdecomp_witness_witness_right_right
09Establish hpreviousL39–42

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.

  1. L39
    have hprevious : ∃ fb. ∃ fc. ∀ x. ∀ y. Lt(x,l) → BetaAt(sb,sc,x,y) → y = 0 ∧ BetaAt(fb,fc,x,1) ∨ y = 1 ∧ BetaAt(fb,fc,x,r)Definitions: Lt(x,l)BetaAt(sb,sc,x,y)BetaAt(fb,fc,x,1)BetaAt(fb,fc,x,r)Original native command in the exact edition
  2. L40
    specialize IH x1
  3. L41
    apply IH
  4. L42
    exact hdecomp_witness_witness_right_left
10Separate the logical casesL43–45

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L43
    cases hprevious
  2. L44
    cases hprevious_witness
  3. L45
    cases hdecomp_witness_witness_right_right_left
11Use earlier factsL46–55

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L46
    specialize beta_sign_factor_prefix_extend sb
  2. L47
    specialize beta_sign_factor_prefix_extend sc
  3. L48
    specialize beta_sign_factor_prefix_extend x2
  4. L49
    specialize beta_sign_factor_prefix_extend x3
  5. L50
    specialize beta_sign_factor_prefix_extend r
  6. L51
    specialize beta_sign_factor_prefix_extend l
  7. L52
    specialize beta_sign_factor_prefix_extend x
  8. L53
    specialize beta_sign_factor_prefix_extend 1
  9. L54
    apply beta_sign_factor_prefix_extend
  10. L55
    exact hprevious_witness_witness
12Use earlier factsL56–56

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L56
    exact hdecomp_witness_witness_left
13Separate the logical casesL57–58

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L57
    left
  2. L58
    split
14Use earlier factsL59–59

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L59
    exact hdecomp_witness_witness_right_right_left_left
15Calculate and transport equalitiesL60–60

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L60
    refl
16Use earlier factsL61–70

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L61
    specialize beta_sign_factor_prefix_extend sb
  2. L62
    specialize beta_sign_factor_prefix_extend sc
  3. L63
    specialize beta_sign_factor_prefix_extend x2
  4. L64
    specialize beta_sign_factor_prefix_extend x3
  5. L65
    specialize beta_sign_factor_prefix_extend r
  6. L66
    specialize beta_sign_factor_prefix_extend l
  7. L67
    specialize beta_sign_factor_prefix_extend x
  8. L68
    specialize beta_sign_factor_prefix_extend r
  9. L69
    apply beta_sign_factor_prefix_extend
  10. L70
    exact hprevious_witness_witness
17Use earlier factsL71–71

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L71
    exact hdecomp_witness_witness_left
18Separate the logical casesL72–73

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L72
    right
  2. L73
    split
19Use earlier factsL74–74

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L74
    exact hdecomp_witness_witness_right_right_left_right
20Calculate and transport equalitiesL75–75

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L75
    refl

Library-wide reading audit

Original defined command ledger · 75 lines
  1. 0001intro sb
  2. 0002intro sc
  3. 0003intro r
  4. 0004induction l
  5. 0005intro e
  6. 0006intro hcount
  7. 0007exists 0
  8. 0008exists 0
  9. 0009intro i
  10. 0010intro v
  11. 0011intro hi
  12. 0012intro hv
  13. 0013exfalso
  14. 0014cases hi
  15. 0015have hsi : S i = 0
  16. 0016specialize add_eq_zero_right x
  17. 0017specialize add_eq_zero_right (S i)
  18. 0018apply add_eq_zero_right
  19. 0019exact hi_witness
  20. 0020specialize succ_ne_zero i
  21. 0021apply succ_ne_zero
  22. 0022exact hsi
  23. 0023intro e
  24. 0024intro hcount
  25. 0025have hdecomp : ∃ a. ∃ k. BetaAt(sb,sc,l,a) ∧ (BitCount(sb,sc,l,k) ∧ ((a = 0 ∨ a = 1) ∧ e = k + a))
    Exact native replay linehave hdecomp : exists a k. (((exists ff_h_recode_count_last. ff_h_recode_count_last + S (a) = S ((S (l)) * sc)) /\ exists ff_q_recode_count_last. sb = ff_q_recode_count_last * S ((S (l)) * sc) + (a))) /\ ((((exists ff_u_recode_count_prefix_sum ff_v_recode_count_prefix_sum. ((((exists ff_h_recode_count_prefix_sum_start. ff_h_recode_count_prefix_sum_start + S (0) = S ((S (0)) * ff_v_recode_count_prefix_sum)) /\ exists ff_q_recode_count_prefix_sum_start. ff_u_recode_count_prefix_sum = ff_q_recode_count_prefix_sum_start * S ((S (0)) * ff_v_recode_count_prefix_sum) + (0))) /\ ((((exists ff_h_recode_count_prefix_sum_terminal. ff_h_recode_count_prefix_sum_terminal + S (k) = S ((S (l)) * ff_v_recode_count_prefix_sum)) /\ exists ff_q_recode_count_prefix_sum_terminal. ff_u_recode_count_prefix_sum = ff_q_recode_count_prefix_sum_terminal * S ((S (l)) * ff_v_recode_count_prefix_sum) + (k))) /\ forall ff_i_recode_count_prefix_sum. (exists ff_lt_recode_count_prefix_sum_bound. ff_lt_recode_count_prefix_sum_bound + S ff_i_recode_count_prefix_sum = l) -> exists ff_a_recode_count_prefix_sum ff_r_recode_count_prefix_sum ff_s_recode_count_prefix_sum. ((((exists ff_h_recode_count_prefix_sum_summand. ff_h_recode_count_prefix_sum_summand + S (ff_a_recode_count_prefix_sum) = S ((S (ff_i_recode_count_prefix_sum)) * sc)) /\ exists ff_q_recode_count_prefix_sum_summand. sb = ff_q_recode_count_prefix_sum_summand * S ((S (ff_i_recode_count_prefix_sum)) * sc) + (ff_a_recode_count_prefix_sum))) /\ ((((exists ff_h_recode_count_prefix_sum_partial. ff_h_recode_count_prefix_sum_partial + S (ff_r_recode_count_prefix_sum) = S ((S (ff_i_recode_count_prefix_sum)) * ff_v_recode_count_prefix_sum)) /\ exists ff_q_recode_count_prefix_sum_partial. ff_u_recode_count_prefix_sum = ff_q_recode_count_prefix_sum_partial * S ((S (ff_i_recode_count_prefix_sum)) * ff_v_recode_count_prefix_sum) + (ff_r_recode_count_prefix_sum))) /\ ((((exists ff_h_recode_count_prefix_sum_successor. ff_h_recode_count_prefix_sum_successor + S (ff_s_recode_count_prefix_sum) = S ((S (S ff_i_recode_count_prefix_sum)) * ff_v_recode_count_prefix_sum)) /\ exists ff_q_recode_count_prefix_sum_successor. ff_u_recode_count_prefix_sum = ff_q_recode_count_prefix_sum_successor * S ((S (S ff_i_recode_count_prefix_sum)) * ff_v_recode_count_prefix_sum) + (ff_s_recode_count_prefix_sum))) /\ ff_s_recode_count_prefix_sum = ff_r_recode_count_prefix_sum + ff_a_recode_count_prefix_sum)))))) /\ (forall ff_i_recode_count_prefix_bits. (exists ff_lt_recode_count_prefix_bits_bound. ff_lt_recode_count_prefix_bits_bound + S ff_i_recode_count_prefix_bits = l) -> exists ff_bit_recode_count_prefix_bits. ((((exists ff_h_recode_count_prefix_bits_decoded. ff_h_recode_count_prefix_bits_decoded + S (ff_bit_recode_count_prefix_bits) = S ((S (ff_i_recode_count_prefix_bits)) * sc)) /\ exists ff_q_recode_count_prefix_bits_decoded. sb = ff_q_recode_count_prefix_bits_decoded * S ((S (ff_i_recode_count_prefix_bits)) * sc) + (ff_bit_recode_count_prefix_bits))) /\ (ff_bit_recode_count_prefix_bits = 0 \/ ff_bit_recode_count_prefix_bits = 1))))) /\ ((a = 0 \/ a = 1) /\ e = k + a))
  26. 0026specialize bit_count_succ_decompose sb
  27. 0027specialize bit_count_succ_decompose sc
  28. 0028specialize bit_count_succ_decompose l
  29. 0029specialize bit_count_succ_decompose (S l)
  30. 0030specialize bit_count_succ_decompose e
  31. 0031apply bit_count_succ_decompose
  32. 0032refl
  33. 0033exact hcount
  34. 0034cases hdecomp
  35. 0035cases hdecomp_witness
  36. 0036cases hdecomp_witness_witness
  37. 0037cases hdecomp_witness_witness_right
  38. 0038cases hdecomp_witness_witness_right_right
  39. 0039have hprevious : ∃ fb. ∃ fc. ∀ x. ∀ y. Lt(x,l)BetaAt(sb,sc,x,y) → y = 0 ∧ BetaAt(fb,fc,x,1) ∨ y = 1 ∧ BetaAt(fb,fc,x,r)
    Exact native replay linehave hprevious : exists fb fc. (forall gspf_index_recode_previous gspf_bit_recode_previous. (exists gsp_lt_gap_recode_previous_bound. gsp_lt_gap_recode_previous_bound + S gspf_index_recode_previous = l) -> (((exists ff_h_gspf_recode_previous_bit. ff_h_gspf_recode_previous_bit + S (gspf_bit_recode_previous) = S ((S (gspf_index_recode_previous)) * sc)) /\ exists ff_q_gspf_recode_previous_bit. sb = ff_q_gspf_recode_previous_bit * S ((S (gspf_index_recode_previous)) * sc) + (gspf_bit_recode_previous))) -> (((gspf_bit_recode_previous = 0) /\ (((exists gsp_beta_height_gspf_recode_previous_one. gsp_beta_height_gspf_recode_previous_one + S (1) = S ((S (gspf_index_recode_previous)) * fc)) /\ exists gsp_beta_quotient_gspf_recode_previous_one. fb = gsp_beta_quotient_gspf_recode_previous_one * S ((S (gspf_index_recode_previous)) * fc) + (1)))) \/ ((gspf_bit_recode_previous = 1) /\ (((exists ff_h_gspf_recode_previous_predecessor. ff_h_gspf_recode_previous_predecessor + S (r) = S ((S (gspf_index_recode_previous)) * fc)) /\ exists ff_q_gspf_recode_previous_predecessor. fb = ff_q_gspf_recode_previous_predecessor * S ((S (gspf_index_recode_previous)) * fc) + (r))))))
  40. 0040specialize IH x1
  41. 0041apply IH
  42. 0042exact hdecomp_witness_witness_right_left
  43. 0043cases hprevious
  44. 0044cases hprevious_witness
  45. 0045cases hdecomp_witness_witness_right_right_left
  46. 0046specialize beta_sign_factor_prefix_extend sb
  47. 0047specialize beta_sign_factor_prefix_extend sc
  48. 0048specialize beta_sign_factor_prefix_extend x2
  49. 0049specialize beta_sign_factor_prefix_extend x3
  50. 0050specialize beta_sign_factor_prefix_extend r
  51. 0051specialize beta_sign_factor_prefix_extend l
  52. 0052specialize beta_sign_factor_prefix_extend x
  53. 0053specialize beta_sign_factor_prefix_extend 1
  54. 0054apply beta_sign_factor_prefix_extend
  55. 0055exact hprevious_witness_witness
  56. 0056exact hdecomp_witness_witness_left
  57. 0057left
  58. 0058split
  59. 0059exact hdecomp_witness_witness_right_right_left_left
  60. 0060refl
  61. 0061specialize beta_sign_factor_prefix_extend sb
  62. 0062specialize beta_sign_factor_prefix_extend sc
  63. 0063specialize beta_sign_factor_prefix_extend x2
  64. 0064specialize beta_sign_factor_prefix_extend x3
  65. 0065specialize beta_sign_factor_prefix_extend r
  66. 0066specialize beta_sign_factor_prefix_extend l
  67. 0067specialize beta_sign_factor_prefix_extend x
  68. 0068specialize beta_sign_factor_prefix_extend r
  69. 0069apply beta_sign_factor_prefix_extend
  70. 0070exact hprevious_witness_witness
  71. 0071exact hdecomp_witness_witness_left
  72. 0072right
  73. 0073split
  74. 0074exact hdecomp_witness_witness_right_right_left_right
  75. 0075refl