PA00DT

eisenstein_row_indicator_prefix_to_initial_segment

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

A semantic row prefix is the exact initial segment cut out by its nonzero division quotient.

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 q i d r rb rc k. (forall eri_column_row_quotient_source. (exists eri_gap_row_quotient_source_bound. eri_gap_row_quotient_source_bound + S (eri_column_row_quotient_source) = k) -> exists eri_bit_row_quotient_source. ((((exists ff_h_eri_row_quotient_source_decoded. ff_h_eri_row_quotient_source_decoded + S (eri_bit_row_quotient_source) = S ((S (eri_column_row_quotient_source)) * rc)) /\ exists ff_q_eri_row_quotient_source_decoded. rb = ff_q_eri_row_quotient_source_decoded * S ((S (eri_column_row_quotient_source)) * rc) + (eri_bit_row_quotient_source))) /\ (((eri_bit_row_quotient_source = 0 /\ ((exists eri_gap_row_quotient_source_choice_left. eri_gap_row_quotient_source_choice_left + S (q * S i) = p * S eri_column_row_quotient_source) /\ ~(exists eri_gap_row_quotient_source_choice_right. eri_gap_row_quotient_source_choice_right + S (p * S eri_column_row_quotient_source) = q * S i))) \/ (eri_bit_row_quotient_source = 1 /\ ((exists eri_gap_row_quotient_source_choice_right. eri_gap_row_quotient_source_choice_right + S (p * S eri_column_row_quotient_source) = q * S i) /\ ~(exists eri_gap_row_quotient_source_choice_left. eri_gap_row_quotient_source_choice_left + S (q * S i) = p * S eri_column_row_quotient_source))))))) -> q * S i = p * d + r -> ~(r = 0) -> (exists edt_lt_gap_row_quotient_remainder_bound. edt_lt_gap_row_quotient_remainder_bound + S (r) = p) -> (forall eis_index_row_quotient_initial. (exists eis_lt_gap_row_quotient_initial_bound. eis_lt_gap_row_quotient_initial_bound + S (eis_index_row_quotient_initial) = k) -> exists eis_bit_row_quotient_initial. ((((exists ff_h_eis_row_quotient_initial_decoded. ff_h_eis_row_quotient_initial_decoded + S (eis_bit_row_quotient_initial) = S ((S (eis_index_row_quotient_initial)) * rc)) /\ exists ff_q_eis_row_quotient_initial_decoded. rb = ff_q_eis_row_quotient_initial_decoded * S ((S (eis_index_row_quotient_initial)) * rc) + (eis_bit_row_quotient_initial))) /\ (((eis_bit_row_quotient_initial = 1 /\ (exists eis_le_gap_row_quotient_initial_choice_inside. eis_le_gap_row_quotient_initial_choice_inside + (S eis_index_row_quotient_initial) = d)) \/ (eis_bit_row_quotient_initial = 0 /\ (exists eis_lt_gap_row_quotient_initial_choice_outside. eis_lt_gap_row_quotient_initial_choice_outside + S (d) = S eis_index_row_quotient_initial))))))

Structural proof guide

Generated structural guide

A semantic row prefix is the exact initial segment cut out by its nonzero division quotient.

Use the direct prerequisites nonzero_remainder_division_positive_multiple_threshold, le_or_lt as previously established PA formulas.

The proof proceeds by case analysis (9), intermediate claims (2).

Referenced ingredients

Proof neighborhood

Direct dependencies

Direct 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

55 script commands · 14 reading checkpoints · 2 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.

Named ingredients (2)

Long local formulas use this family’s existing definitions. Each new abbreviation was expanded back to the identical native formula, including its free-variable context. The original edition is preserved below.

01Fix variables and assumptionsL1–10

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

  1. L1
    intro p
  2. L2
    intro q
  3. L3
    intro i
  4. L4
    intro d
  5. L5
    intro r
  6. L6
    intro rb
  7. L7
    intro rc
  8. L8
    intro k
  9. L9
    intro hrow
  10. L10
    intro hdivision
02Fix variables and assumptionsL11–14

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

  1. L11
    intro hr0
  2. L12
    intro hrp
  3. L13
    intro j
  4. L14
    intro hj
03Establish hstoredL15–18

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

  1. L15
    have hstored : ∃ bit. BetaAt(rb,rc,j,bit) ∧ (bit = 0 ∧ (Lt(q · S i,p · S j) ∧ ¬Lt(p · S j,q · S i)) ∨ bit = 1 ∧ (Lt(p · S j,q · S i) ∧ ¬Lt(q · S i,p · S j)))Definitions: LtBetaAt
  2. L16
    specialize hrow j
  3. L17
    apply hrow
  4. L18
    exact hj
04Separate the logical casesL19–20

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

  1. L19
    cases hstored
  2. L20
    cases hstored_witness
05Construct an explicit witnessL21–21

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

  1. L21
    exists x
06Separate the logical casesL22–22

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

  1. L22
    split
07Use earlier factsL23–23

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

  1. L23
    exact hstored_witness_left
08Establish hthresholdL24–33

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply nonzero remainder division positive multiple threshold.

  1. L24
    have hthreshold : (((exists edt_lt_gap_row_quotient_below. edt_lt_gap_row_quotient_below + S (p * S j) = q * S i) -> (exists edt_le_gap_row_quotient_bounded. edt_le_gap_row_quotient_bounded + (S j) = d)) /\ ((exists edt_le_gap_row_quotient_bounded. edt_le_gap_row_quotient_bounded + (S j) = d) -> (exists edt_lt_gap_row_quotient_below. edt_lt_gap_row_quotient_below + S (p * S j) = q * S i)))
  2. L25
    specialize nonzero_remainder_division_positive_multiple_threshold p
  3. L26
    specialize nonzero_remainder_division_positive_multiple_threshold (q * S i)
  4. L27
    specialize nonzero_remainder_division_positive_multiple_threshold d
  5. L28
    specialize nonzero_remainder_division_positive_multiple_threshold r
  6. L29
    specialize nonzero_remainder_division_positive_multiple_threshold j
  7. L30
    apply nonzero_remainder_division_positive_multiple_threshold
  8. L31
    exact hdivision
  9. L32
    exact hr0
  10. L33
    exact hrp
09Separate the logical casesL34–39

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

  1. L34
    cases hthreshold
  2. L35
    cases hstored_witness_right
  3. L36
    cases hstored_witness_right_left
  4. L37
    cases hstored_witness_right_left_right
  5. L38
    right
  6. L39
    split
10Use earlier factsL40–42

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

  1. L40
    exact hstored_witness_right_left_left
  2. L41
    specialize le_or_lt (S j)
  3. L42
    specialize le_or_lt d
11Separate the logical casesL43–44

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

  1. L43
    cases le_or_lt
  2. L44
    exfalso
12Use earlier factsL45–48

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

  1. L45
    apply hstored_witness_right_left_right_right
  2. L46
    apply hthreshold_right
  3. L47
    exact le_or_lt_left
  4. L48
    exact le_or_lt_right
13Separate the logical casesL49–52

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

  1. L49
    cases hstored_witness_right_right
  2. L50
    cases hstored_witness_right_right_right
  3. L51
    left
  4. L52
    split
14Use earlier factsL53–55

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

  1. L53
    exact hstored_witness_right_right_left
  2. L54
    apply hthreshold_left
  3. L55
    exact hstored_witness_right_right_right_left

Library-wide reading audit

Original exact command ledger · 55 lines
  1. 0001intro p
  2. 0002intro q
  3. 0003intro i
  4. 0004intro d
  5. 0005intro r
  6. 0006intro rb
  7. 0007intro rc
  8. 0008intro k
  9. 0009intro hrow
  10. 0010intro hdivision
  11. 0011intro hr0
  12. 0012intro hrp
  13. 0013intro j
  14. 0014intro hj
  15. 0015have hstored : exists bit. ((((exists ff_h_row_quotient_stored. ff_h_row_quotient_stored + S (bit) = S ((S (j)) * rc)) /\ exists ff_q_row_quotient_stored. rb = ff_q_row_quotient_stored * S ((S (j)) * rc) + (bit))) /\ (((bit = 0 /\ ((exists eri_gap_row_quotient_stored_choice_left. eri_gap_row_quotient_stored_choice_left + S (q * S i) = p * S j) /\ ~(exists eri_gap_row_quotient_stored_choice_right. eri_gap_row_quotient_stored_choice_right + S (p * S j) = q * S i))) \/ (bit = 1 /\ ((exists eri_gap_row_quotient_stored_choice_right. eri_gap_row_quotient_stored_choice_right + S (p * S j) = q * S i) /\ ~(exists eri_gap_row_quotient_stored_choice_left. eri_gap_row_quotient_stored_choice_left + S (q * S i) = p * S j))))))
  16. 0016specialize hrow j
  17. 0017apply hrow
  18. 0018exact hj
  19. 0019cases hstored
  20. 0020cases hstored_witness
  21. 0021exists x
  22. 0022split
  23. 0023exact hstored_witness_left
  24. 0024have hthreshold : (((exists edt_lt_gap_row_quotient_below. edt_lt_gap_row_quotient_below + S (p * S j) = q * S i) -> (exists edt_le_gap_row_quotient_bounded. edt_le_gap_row_quotient_bounded + (S j) = d)) /\ ((exists edt_le_gap_row_quotient_bounded. edt_le_gap_row_quotient_bounded + (S j) = d) -> (exists edt_lt_gap_row_quotient_below. edt_lt_gap_row_quotient_below + S (p * S j) = q * S i)))
  25. 0025specialize nonzero_remainder_division_positive_multiple_threshold p
  26. 0026specialize nonzero_remainder_division_positive_multiple_threshold (q * S i)
  27. 0027specialize nonzero_remainder_division_positive_multiple_threshold d
  28. 0028specialize nonzero_remainder_division_positive_multiple_threshold r
  29. 0029specialize nonzero_remainder_division_positive_multiple_threshold j
  30. 0030apply nonzero_remainder_division_positive_multiple_threshold
  31. 0031exact hdivision
  32. 0032exact hr0
  33. 0033exact hrp
  34. 0034cases hthreshold
  35. 0035cases hstored_witness_right
  36. 0036cases hstored_witness_right_left
  37. 0037cases hstored_witness_right_left_right
  38. 0038right
  39. 0039split
  40. 0040exact hstored_witness_right_left_left
  41. 0041specialize le_or_lt (S j)
  42. 0042specialize le_or_lt d
  43. 0043cases le_or_lt
  44. 0044exfalso
  45. 0045apply hstored_witness_right_left_right_right
  46. 0046apply hthreshold_right
  47. 0047exact le_or_lt_left
  48. 0048exact le_or_lt_right
  49. 0049cases hstored_witness_right_right
  50. 0050cases hstored_witness_right_right_right
  51. 0051left
  52. 0052split
  53. 0053exact hstored_witness_right_right_left
  54. 0054apply hthreshold_left
  55. 0055exact hstored_witness_right_right_right_left