CD0031

finite_modular_sumset_cover

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

An exact actual sumset contains each witnessed canonical sum of input members.

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. (forall fms_s_sumset. (exists fms_gap_sumset_s. fms_gap_sumset_s + S (fms_s_sumset) = (p)) -> ((((((exists fs_h_fms_sumset_result. fs_h_fms_sumset_result + S (1) = S ((S (fms_s_sumset)) * v)) /\ exists fs_q_fms_sumset_result. u = fs_q_fms_sumset_result * S ((S (fms_s_sumset)) * v) + (1))) -> (exists fms_i_sumset fms_j_sumset. ((((exists fms_gap_sumset_left. fms_gap_sumset_left + S (fms_i_sumset) = (p)) /\ (((exists fs_h_fms_sumset_left. fs_h_fms_sumset_left + S (1) = S ((S (fms_i_sumset)) * c)) /\ exists fs_q_fms_sumset_left. b = fs_q_fms_sumset_left * S ((S (fms_i_sumset)) * c) + (1))))) /\ ((((exists fms_gap_sumset_right. fms_gap_sumset_right + S (fms_j_sumset) = (p)) /\ (((exists fs_h_fms_sumset_right. fs_h_fms_sumset_right + S (1) = S ((S (fms_j_sumset)) * e)) /\ exists fs_q_fms_sumset_right. d = fs_q_fms_sumset_right * S ((S (fms_j_sumset)) * e) + (1))))) /\ (exists fms_u_sumset fms_v_sumset. (fms_i_sumset + fms_j_sumset) + (p) * fms_u_sumset = (fms_s_sumset) + (p) * fms_v_sumset))))) /\ ((exists fms_i_sumset fms_j_sumset. ((((exists fms_gap_sumset_left. fms_gap_sumset_left + S (fms_i_sumset) = (p)) /\ (((exists fs_h_fms_sumset_left. fs_h_fms_sumset_left + S (1) = S ((S (fms_i_sumset)) * c)) /\ exists fs_q_fms_sumset_left. b = fs_q_fms_sumset_left * S ((S (fms_i_sumset)) * c) + (1))))) /\ ((((exists fms_gap_sumset_right. fms_gap_sumset_right + S (fms_j_sumset) = (p)) /\ (((exists fs_h_fms_sumset_right. fs_h_fms_sumset_right + S (1) = S ((S (fms_j_sumset)) * e)) /\ exists fs_q_fms_sumset_right. d = fs_q_fms_sumset_right * S ((S (fms_j_sumset)) * e) + (1))))) /\ (exists fms_u_sumset fms_v_sumset. (fms_i_sumset + fms_j_sumset) + (p) * fms_u_sumset = (fms_s_sumset) + (p) * fms_v_sumset)))) -> (((exists fs_h_fms_sumset_result. fs_h_fms_sumset_result + S (1) = S ((S (fms_s_sumset)) * v)) /\ exists fs_q_fms_sumset_result. u = fs_q_fms_sumset_result * S ((S (fms_s_sumset)) * v) + (1))))))) -> (forall fms_i_cover fms_j_cover fms_s_cover. (exists fms_gap_cover_i. fms_gap_cover_i + S (fms_i_cover) = (p)) -> (exists fms_gap_cover_j. fms_gap_cover_j + S (fms_j_cover) = (p)) -> (exists fms_gap_cover_s. fms_gap_cover_s + S (fms_s_cover) = (p)) -> (((exists fs_h_fms_cover_left. fs_h_fms_cover_left + S (1) = S ((S (fms_i_cover)) * c)) /\ exists fs_q_fms_cover_left. b = fs_q_fms_cover_left * S ((S (fms_i_cover)) * c) + (1))) -> (((exists fs_h_fms_cover_right. fs_h_fms_cover_right + S (1) = S ((S (fms_j_cover)) * e)) /\ exists fs_q_fms_cover_right. d = fs_q_fms_cover_right * S ((S (fms_j_cover)) * e) + (1))) -> (exists fms_u_cover fms_v_cover. (fms_i_cover + fms_j_cover) + (p) * fms_u_cover = (fms_s_cover) + (p) * fms_v_cover) -> (((exists fs_h_fms_cover_result. fs_h_fms_cover_result + S (1) = S ((S (fms_s_cover)) * v)) /\ exists fs_q_fms_cover_result. u = fs_q_fms_cover_result * S ((S (fms_s_cover)) * v) + (1))))

Constructive proof overview

Generated structural guide

An exact actual sumset contains each witnessed canonical sum of input members.

The unchanged tactic script uses 0 declared prerequisites and contains 34 exact native proof lines.

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

Proof neighborhood

Direct dependencies

none

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

34 script commands · 10 reading checkpoints · 1 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 hsum
  9. L9
    intro a
  10. L10
    intro w
02Fix variables and assumptionsL11–17

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

  1. L11
    intro z
  2. L12
    intro ha
  3. L13
    intro hw
  4. L14
    intro hz
  5. L15
    intro hA
  6. L16
    intro hB
  7. L17
    intro hmod
03Establish heL18–21

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

  1. L18
    have he : (BetaAt(u,v,z,1) → ∃ x. ∃ y. ModularSetMember(b,c,p,x) ∧ (ModularSetMember(d,e,p,y) ∧ ModEq(p,x + y,z))) ∧ ((∃ x. ∃ y. ModularSetMember(b,c,p,x) ∧ (ModularSetMember(d,e,p,y) ∧ ModEq(p,x + y,z))) → BetaAt(u,v,z,1))Definitions: ModularSetMemberModEqBetaAt
  2. L19
    specialize hsum z
  3. L20
    apply hsum
  4. L21
    exact hz
04Separate the logical casesL22–22

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

  1. L22
    cases he
05Use earlier factsL23–23

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

  1. L23
    apply he_right
06Construct an explicit witnessL24–25

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

  1. L24
    exists a
  2. L25
    exists w
07Separate the logical casesL26–27

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

  1. L26
    split
  2. L27
    split
08Use earlier factsL28–29

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

  1. L28
    exact ha
  2. L29
    exact hA
09Separate the logical casesL30–31

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

  1. L30
    split
  2. L31
    split
10Use earlier factsL32–34

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

  1. L32
    exact hw
  2. L33
    exact hB
  3. L34
    exact hmod

Library-wide reading audit

Original exact command ledger · 34 lines
  1. 0001intro b
  2. 0002intro c
  3. 0003intro d
  4. 0004intro e
  5. 0005intro u
  6. 0006intro v
  7. 0007intro p
  8. 0008intro hsum
  9. 0009intro a
  10. 0010intro w
  11. 0011intro z
  12. 0012intro ha
  13. 0013intro hw
  14. 0014intro hz
  15. 0015intro hA
  16. 0016intro hB
  17. 0017intro hmod
  18. 0018have he : (((((exists fs_h_fms_sumset_cover. fs_h_fms_sumset_cover + S (1) = S ((S (z)) * v)) /\ exists fs_q_fms_sumset_cover. u = fs_q_fms_sumset_cover * S ((S (z)) * v) + (1))) -> (exists a v. (((exists fms_gap_member. fms_gap_member + S (a) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (a)) * c)) /\ exists fs_q_fms_member. b = fs_q_fms_member * S ((S (a)) * c) + (1))))) /\ ((((exists fms_gap_member. fms_gap_member + S (v) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (v)) * e)) /\ exists fs_q_fms_member. d = fs_q_fms_member * S ((S (v)) * e) + (1))))) /\ (exists fms_u_mod fms_v_mod. (a+v) + (p) * fms_u_mod = (z) + (p) * fms_v_mod)))) /\ ((exists a v. (((exists fms_gap_member. fms_gap_member + S (a) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (a)) * c)) /\ exists fs_q_fms_member. b = fs_q_fms_member * S ((S (a)) * c) + (1))))) /\ ((((exists fms_gap_member. fms_gap_member + S (v) = (p)) /\ (((exists fs_h_fms_member. fs_h_fms_member + S (1) = S ((S (v)) * e)) /\ exists fs_q_fms_member. d = fs_q_fms_member * S ((S (v)) * e) + (1))))) /\ (exists fms_u_mod fms_v_mod. (a+v) + (p) * fms_u_mod = (z) + (p) * fms_v_mod))) -> (((exists fs_h_fms_sumset_cover. fs_h_fms_sumset_cover + S (1) = S ((S (z)) * v)) /\ exists fs_q_fms_sumset_cover. u = fs_q_fms_sumset_cover * S ((S (z)) * v) + (1)))))
  19. 0019specialize hsum z
  20. 0020apply hsum
  21. 0021exact hz
  22. 0022cases he
  23. 0023apply he_right
  24. 0024exists a
  25. 0025exists w
  26. 0026split
  27. 0027split
  28. 0028exact ha
  29. 0029exact hA
  30. 0030split
  31. 0031split
  32. 0032exact hw
  33. 0033exact hB
  34. 0034exact hmod