CD002D

finite_partial_sumset_succ_absent

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

Skipping an actually absent second-coordinate bit preserves the exact partial sumset.

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 first-order arithmetic statement

forall b c d e u v p l. (forall fms_z_partial. (exists fms_gap_partial_bound. fms_gap_partial_bound + S (fms_z_partial) = (p)) -> ((((((exists fs_h_fms_partial_result. fs_h_fms_partial_result + S (1) = S ((S (fms_z_partial)) * v)) /\ exists fs_q_fms_partial_result. u = fs_q_fms_partial_result * S ((S (fms_z_partial)) * v) + (1))) -> (exists fms_first_partial fms_second_partial. (((exists fms_gap_partial_left. fms_gap_partial_left + S (fms_first_partial) = (p)) /\ (((exists fs_h_fms_partial_left. fs_h_fms_partial_left + S (1) = S ((S (fms_first_partial)) * c)) /\ exists fs_q_fms_partial_left. b = fs_q_fms_partial_left * S ((S (fms_first_partial)) * c) + (1))))) /\ ((((exists fms_gap_partial_right. fms_gap_partial_right + S (fms_second_partial) = (p)) /\ (((exists fs_h_fms_partial_right. fs_h_fms_partial_right + S (1) = S ((S (fms_second_partial)) * e)) /\ exists fs_q_fms_partial_right. d = fs_q_fms_partial_right * S ((S (fms_second_partial)) * e) + (1))))) /\ ((exists fms_gap_partial_cutoff. fms_gap_partial_cutoff + S (fms_second_partial) = (l)) /\ (exists fms_u_partial_congruence fms_v_partial_congruence. (fms_first_partial+fms_second_partial) + (p) * fms_u_partial_congruence = (fms_z_partial) + (p) * fms_v_partial_congruence))))) /\ ((exists fms_first_partial fms_second_partial. (((exists fms_gap_partial_left. fms_gap_partial_left + S (fms_first_partial) = (p)) /\ (((exists fs_h_fms_partial_left. fs_h_fms_partial_left + S (1) = S ((S (fms_first_partial)) * c)) /\ exists fs_q_fms_partial_left. b = fs_q_fms_partial_left * S ((S (fms_first_partial)) * c) + (1))))) /\ ((((exists fms_gap_partial_right. fms_gap_partial_right + S (fms_second_partial) = (p)) /\ (((exists fs_h_fms_partial_right. fs_h_fms_partial_right + S (1) = S ((S (fms_second_partial)) * e)) /\ exists fs_q_fms_partial_right. d = fs_q_fms_partial_right * S ((S (fms_second_partial)) * e) + (1))))) /\ ((exists fms_gap_partial_cutoff. fms_gap_partial_cutoff + S (fms_second_partial) = (l)) /\ (exists fms_u_partial_congruence fms_v_partial_congruence. (fms_first_partial+fms_second_partial) + (p) * fms_u_partial_congruence = (fms_z_partial) + (p) * fms_v_partial_congruence)))) -> (((exists fs_h_fms_partial_result. fs_h_fms_partial_result + S (1) = S ((S (fms_z_partial)) * v)) /\ exists fs_q_fms_partial_result. u = fs_q_fms_partial_result * S ((S (fms_z_partial)) * v) + (1))))))) -> ~(((exists fs_h_fms_absent. fs_h_fms_absent + S (1) = S ((S (l)) * e)) /\ exists fs_q_fms_absent. d = fs_q_fms_absent * S ((S (l)) * e) + (1))) -> (forall fms_z_partial. (exists fms_gap_partial_bound. fms_gap_partial_bound + S (fms_z_partial) = (p)) -> ((((((exists fs_h_fms_partial_result. fs_h_fms_partial_result + S (1) = S ((S (fms_z_partial)) * v)) /\ exists fs_q_fms_partial_result. u = fs_q_fms_partial_result * S ((S (fms_z_partial)) * v) + (1))) -> (exists fms_first_partial fms_second_partial. (((exists fms_gap_partial_left. fms_gap_partial_left + S (fms_first_partial) = (p)) /\ (((exists fs_h_fms_partial_left. fs_h_fms_partial_left + S (1) = S ((S (fms_first_partial)) * c)) /\ exists fs_q_fms_partial_left. b = fs_q_fms_partial_left * S ((S (fms_first_partial)) * c) + (1))))) /\ ((((exists fms_gap_partial_right. fms_gap_partial_right + S (fms_second_partial) = (p)) /\ (((exists fs_h_fms_partial_right. fs_h_fms_partial_right + S (1) = S ((S (fms_second_partial)) * e)) /\ exists fs_q_fms_partial_right. d = fs_q_fms_partial_right * S ((S (fms_second_partial)) * e) + (1))))) /\ ((exists fms_gap_partial_cutoff. fms_gap_partial_cutoff + S (fms_second_partial) = (S l)) /\ (exists fms_u_partial_congruence fms_v_partial_congruence. (fms_first_partial+fms_second_partial) + (p) * fms_u_partial_congruence = (fms_z_partial) + (p) * fms_v_partial_congruence))))) /\ ((exists fms_first_partial fms_second_partial. (((exists fms_gap_partial_left. fms_gap_partial_left + S (fms_first_partial) = (p)) /\ (((exists fs_h_fms_partial_left. fs_h_fms_partial_left + S (1) = S ((S (fms_first_partial)) * c)) /\ exists fs_q_fms_partial_left. b = fs_q_fms_partial_left * S ((S (fms_first_partial)) * c) + (1))))) /\ ((((exists fms_gap_partial_right. fms_gap_partial_right + S (fms_second_partial) = (p)) /\ (((exists fs_h_fms_partial_right. fs_h_fms_partial_right + S (1) = S ((S (fms_second_partial)) * e)) /\ exists fs_q_fms_partial_right. d = fs_q_fms_partial_right * S ((S (fms_second_partial)) * e) + (1))))) /\ ((exists fms_gap_partial_cutoff. fms_gap_partial_cutoff + S (fms_second_partial) = (S l)) /\ (exists fms_u_partial_congruence fms_v_partial_congruence. (fms_first_partial+fms_second_partial) + (p) * fms_u_partial_congruence = (fms_z_partial) + (p) * fms_v_partial_congruence)))) -> (((exists fs_h_fms_partial_result. fs_h_fms_partial_result + S (1) = S ((S (fms_z_partial)) * v)) /\ exists fs_q_fms_partial_result. u = fs_q_fms_partial_result * S ((S (fms_z_partial)) * v) + (1)))))))

Constructive proof overview

Generated structural guide

Skipping an actually absent second-coordinate bit preserves the exact partial sumset.

The unchanged tactic script uses 2 declared prerequisites and contains 67 exact native proof lines.

Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable

Proof neighborhood

Direct dependencies

finite_lt_succ_eq_or_lt Stable theorem; checked-use authorized le_succ Stable theorem; checked-use authorized

Direct dependents

Formal native tactic body

Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.

Read the argument

Proof checkpoints

67 script commands · 28 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.

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 b
  2. L2
    intro c
  3. L3
    intro d
  4. L4
    intro e
  5. L5
    intro u
  6. L6
    intro v
  7. L7
    intro p
  8. L8
    intro l
  9. L9
    intro hprefix
  10. L10
    intro habsent
02Fix variables and assumptionsL11–12

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

  1. L11
    intro z
  2. L12
    intro hz
03Establish heL13–16

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

  1. L13
    have he : (BetaAt(u,v,z,1) → ∃ x. ∃ y. ModularSetMember(b,c,p,x) ∧ (ModularSetMember(d,e,p,y) ∧ (Lt(y,l) ∧ ModEq(p,x + y,z)))) ∧ ((∃ x. ∃ y. ModularSetMember(b,c,p,x) ∧ (ModularSetMember(d,e,p,y) ∧ (Lt(y,l) ∧ ModEq(p,x + y,z)))) → BetaAt(u,v,z,1))Definitions: ModularSetMemberLtModEqBetaAt
  2. L14
    specialize hprefix z
  3. L15
    apply hprefix
  4. L16
    exact hz
04Separate the logical casesL17–18

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

  1. L17
    cases he
  2. L18
    split
05Fix variables and assumptionsL19–19

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

  1. L19
    intro hs
06Establish hwL20–22

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

  1. L20
    have hw : ∃ fms_first_partial. ∃ fms_second_partial. ModularSetMember(b,c,p,fms_first_partial) ∧ (ModularSetMember(d,e,p,fms_second_partial) ∧ (Lt(fms_second_partial,l) ∧ ModEq(p,fms_first_partial + fms_second_partial,z)))Definitions: ModularSetMemberLtModEq
  2. L21
    apply he_left
  3. L22
    exact hs
07Separate the logical casesL23–27

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

  1. L23
    cases hw
  2. L24
    cases hw_witness
  3. L25
    cases hw_witness_witness
  4. L26
    cases hw_witness_witness_right
  5. L27
    cases hw_witness_witness_right_right
08Construct an explicit witnessL28–29

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

  1. L28
    exists x
  2. L29
    exists x1
09Separate the logical casesL30–30

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

  1. L30
    split
10Use earlier factsL31–31

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

  1. L31
    exact hw_witness_witness_left
11Separate the logical casesL32–32

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

  1. L32
    split
12Use earlier factsL33–33

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

  1. L33
    exact hw_witness_witness_right_left
13Separate the logical casesL34–34

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

  1. L34
    split
14Use earlier factsL35–39

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

  1. L35
    specialize le_succ S x1
  2. L36
    specialize le_succ l
  3. L37
    apply le_succ
  4. L38
    exact hw_witness_witness_right_right_left
  5. L39
    exact hw_witness_witness_right_right_right
15Fix variables and assumptionsL40–40

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

  1. L40
    intro hw
16Separate the logical casesL41–45

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

  1. L41
    cases hw
  2. L42
    cases hw_witness
  3. L43
    cases hw_witness_witness
  4. L44
    cases hw_witness_witness_right
  5. L45
    cases hw_witness_witness_right_right
17Establish hcaseL46–50

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.

  1. L46
    have hcase : x1=l \/ (exists fms_gap_lt. fms_gap_lt + S (x1) = (l))
  2. L47
    specialize finite_lt_succ_eq_or_lt l
  3. L48
    specialize finite_lt_succ_eq_or_lt x1
  4. L49
    apply finite_lt_succ_eq_or_lt
  5. L50
    exact hw_witness_witness_right_right_left
18Separate the logical casesL51–53

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

  1. L51
    cases hcase
  2. L52
    cases hw_witness_witness_right_left
  3. L53
    exfalso
19Use earlier factsL54–54

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

  1. L54
    apply habsent
20Calculate and transport equalitiesL55–56

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

  1. L55
    rewrite hcase_left at hw_witness_witness_right_left_right
  2. L56
    rewrite hcase_left at hw_witness_witness_right_left_right
21Use earlier factsL57–58

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

  1. L57
    exact hw_witness_witness_right_left_right
  2. L58
    apply he_right
22Construct an explicit witnessL59–60

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

  1. L59
    exists x
  2. L60
    exists x1
23Separate the logical casesL61–61

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

  1. L61
    split
24Use earlier factsL62–62

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

  1. L62
    exact hw_witness_witness_left
25Separate the logical casesL63–63

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

  1. L63
    split
26Use earlier factsL64–64

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

  1. L64
    exact hw_witness_witness_right_left
27Separate the logical casesL65–65

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

  1. L65
    split
28Use earlier factsL66–67

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

  1. L66
    exact hcase_right
  2. L67
    exact hw_witness_witness_right_right_right

Library-wide reading audit

Original exact command ledger · 67 lines
  1. 0001intro b
  2. 0002intro c
  3. 0003intro d
  4. 0004intro e
  5. 0005intro u
  6. 0006intro v
  7. 0007intro p
  8. 0008intro l
  9. 0009intro hprefix
  10. 0010intro habsent
  11. 0011intro z
  12. 0012intro hz
  13. 0013have he : (((((exists fs_h_fms_absent_old. fs_h_fms_absent_old + S (1) = S ((S (z)) * v)) /\ exists fs_q_fms_absent_old. u = fs_q_fms_absent_old * S ((S (z)) * v) + (1))) -> (exists fms_first_partial fms_second_partial. (((exists fms_gap_partial_left. fms_gap_partial_left + S (fms_first_partial) = (p)) /\ (((exists fs_h_fms_partial_left. fs_h_fms_partial_left + S (1) = S ((S (fms_first_partial)) * c)) /\ exists fs_q_fms_partial_left. b = fs_q_fms_partial_left * S ((S (fms_first_partial)) * c) + (1))))) /\ ((((exists fms_gap_partial_right. fms_gap_partial_right + S (fms_second_partial) = (p)) /\ (((exists fs_h_fms_partial_right. fs_h_fms_partial_right + S (1) = S ((S (fms_second_partial)) * e)) /\ exists fs_q_fms_partial_right. d = fs_q_fms_partial_right * S ((S (fms_second_partial)) * e) + (1))))) /\ ((exists fms_gap_partial_cutoff. fms_gap_partial_cutoff + S (fms_second_partial) = (l)) /\ (exists fms_u_partial_congruence fms_v_partial_congruence. (fms_first_partial+fms_second_partial) + (p) * fms_u_partial_congruence = (z) + (p) * fms_v_partial_congruence))))) /\ ((exists fms_first_partial fms_second_partial. (((exists fms_gap_partial_left. fms_gap_partial_left + S (fms_first_partial) = (p)) /\ (((exists fs_h_fms_partial_left. fs_h_fms_partial_left + S (1) = S ((S (fms_first_partial)) * c)) /\ exists fs_q_fms_partial_left. b = fs_q_fms_partial_left * S ((S (fms_first_partial)) * c) + (1))))) /\ ((((exists fms_gap_partial_right. fms_gap_partial_right + S (fms_second_partial) = (p)) /\ (((exists fs_h_fms_partial_right. fs_h_fms_partial_right + S (1) = S ((S (fms_second_partial)) * e)) /\ exists fs_q_fms_partial_right. d = fs_q_fms_partial_right * S ((S (fms_second_partial)) * e) + (1))))) /\ ((exists fms_gap_partial_cutoff. fms_gap_partial_cutoff + S (fms_second_partial) = (l)) /\ (exists fms_u_partial_congruence fms_v_partial_congruence. (fms_first_partial+fms_second_partial) + (p) * fms_u_partial_congruence = (z) + (p) * fms_v_partial_congruence)))) -> (((exists fs_h_fms_absent_old. fs_h_fms_absent_old + S (1) = S ((S (z)) * v)) /\ exists fs_q_fms_absent_old. u = fs_q_fms_absent_old * S ((S (z)) * v) + (1)))))
  14. 0014specialize hprefix z
  15. 0015apply hprefix
  16. 0016exact hz
  17. 0017cases he
  18. 0018split
  19. 0019intro hs
  20. 0020have hw : exists fms_first_partial fms_second_partial. (((exists fms_gap_partial_left. fms_gap_partial_left + S (fms_first_partial) = (p)) /\ (((exists fs_h_fms_partial_left. fs_h_fms_partial_left + S (1) = S ((S (fms_first_partial)) * c)) /\ exists fs_q_fms_partial_left. b = fs_q_fms_partial_left * S ((S (fms_first_partial)) * c) + (1))))) /\ ((((exists fms_gap_partial_right. fms_gap_partial_right + S (fms_second_partial) = (p)) /\ (((exists fs_h_fms_partial_right. fs_h_fms_partial_right + S (1) = S ((S (fms_second_partial)) * e)) /\ exists fs_q_fms_partial_right. d = fs_q_fms_partial_right * S ((S (fms_second_partial)) * e) + (1))))) /\ ((exists fms_gap_partial_cutoff. fms_gap_partial_cutoff + S (fms_second_partial) = (l)) /\ (exists fms_u_partial_congruence fms_v_partial_congruence. (fms_first_partial+fms_second_partial) + (p) * fms_u_partial_congruence = (z) + (p) * fms_v_partial_congruence)))
  21. 0021apply he_left
  22. 0022exact hs
  23. 0023cases hw
  24. 0024cases hw_witness
  25. 0025cases hw_witness_witness
  26. 0026cases hw_witness_witness_right
  27. 0027cases hw_witness_witness_right_right
  28. 0028exists x
  29. 0029exists x1
  30. 0030split
  31. 0031exact hw_witness_witness_left
  32. 0032split
  33. 0033exact hw_witness_witness_right_left
  34. 0034split
  35. 0035specialize le_succ S x1
  36. 0036specialize le_succ l
  37. 0037apply le_succ
  38. 0038exact hw_witness_witness_right_right_left
  39. 0039exact hw_witness_witness_right_right_right
  40. 0040intro hw
  41. 0041cases hw
  42. 0042cases hw_witness
  43. 0043cases hw_witness_witness
  44. 0044cases hw_witness_witness_right
  45. 0045cases hw_witness_witness_right_right
  46. 0046have hcase : x1=l \/ (exists fms_gap_lt. fms_gap_lt + S (x1) = (l))
  47. 0047specialize finite_lt_succ_eq_or_lt l
  48. 0048specialize finite_lt_succ_eq_or_lt x1
  49. 0049apply finite_lt_succ_eq_or_lt
  50. 0050exact hw_witness_witness_right_right_left
  51. 0051cases hcase
  52. 0052cases hw_witness_witness_right_left
  53. 0053exfalso
  54. 0054apply habsent
  55. 0055rewrite hcase_left at hw_witness_witness_right_left_right
  56. 0056rewrite hcase_left at hw_witness_witness_right_left_right
  57. 0057exact hw_witness_witness_right_left_right
  58. 0058apply he_right
  59. 0059exists x
  60. 0060exists x1
  61. 0061split
  62. 0062exact hw_witness_witness_left
  63. 0063split
  64. 0064exact hw_witness_witness_right_left
  65. 0065split
  66. 0066exact hcase_right
  67. 0067exact hw_witness_witness_right_right_right