PA00CA · theorem

even_sum_parity_cases

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

An even sum has summands of the same parity.

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

∀ m. ∀ n. Even(m + n)Even(m)Even(n)Odd(m)Odd(n)

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

2 occurrences

Exact expanded native-PA statement
forall m n. (exists psc_even_even_sum. m + n = 2 * psc_even_even_sum) -> ((((exists psc_even_even_m. m = 2 * psc_even_even_m) /\ (exists psc_even_even_n. n = 2 * psc_even_even_n)) \/ ((exists psc_odd_odd_m. m = 2 * psc_odd_odd_m + 1) /\ (exists psc_odd_odd_n. n = 2 * psc_odd_odd_n + 1))))

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

52 script commands · 25 reading checkpoints · 4 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 m
  2. L2
    intro n
  3. L3
    intro hsum
02Establish hmL4–6

Establish this local claim before using it. It is not an additional assumption.

  1. L4
    have hm : exists a. m = 2 * a \/ m = 2 * a + 1
  2. L5
    specialize parity_cases m
  3. L6
    exact parity_cases
03Establish hnL7–9

Establish this local claim before using it. It is not an additional assumption.

  1. L7
    have hn : exists b. n = 2 * b \/ n = 2 * b + 1
  2. L8
    specialize parity_cases n
  3. L9
    exact parity_cases
04Separate the logical casesL10–15

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

  1. L10
    cases hm
  2. L11
    cases hn
  3. L12
    cases hm_witness
  4. L13
    cases hn_witness
  5. L14
    left
  6. L15
    split
05Construct an explicit witnessL16–16

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

  1. L16
    exists x
06Use earlier factsL17–17

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

  1. L17
    exact hm_witness_left
07Construct an explicit witnessL18–18

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

  1. L18
    exists x1
08Use earlier factsL19–19

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

  1. L19
    exact hn_witness_left
09Separate the logical casesL20–20

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

  1. L20
    exfalso
10Establish hoddL21–24

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

  1. L21
  2. L22
    specialize even_add_odd m
  3. L23
    specialize even_add_odd n
  4. L24
    apply even_add_odd
11Construct an explicit witnessL25–25

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

  1. L25
    exists x
12Use earlier factsL26–26

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

  1. L26
    exact hm_witness_left
13Construct an explicit witnessL27–27

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

  1. L27
    exists x1
14Use earlier factsL28–32

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

  1. L28
    exact hn_witness_right
  2. L29
    specialize even_not_odd (m + n)
  3. L30
    apply even_not_odd
  4. L31
    exact hsum
  5. L32
    exact hodd
15Separate the logical casesL33–34

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

  1. L33
    cases hn_witness
  2. L34
    exfalso
16Establish hoddL35–38

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

  1. L35
  2. L36
    specialize odd_add_even m
  3. L37
    specialize odd_add_even n
  4. L38
    apply odd_add_even
17Construct an explicit witnessL39–39

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

  1. L39
    exists x
18Use earlier factsL40–40

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

  1. L40
    exact hm_witness_right
19Construct an explicit witnessL41–41

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

  1. L41
    exists x1
20Use earlier factsL42–46

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

  1. L42
    exact hn_witness_left
  2. L43
    specialize even_not_odd (m + n)
  3. L44
    apply even_not_odd
  4. L45
    exact hsum
  5. L46
    exact hodd
21Separate the logical casesL47–48

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

  1. L47
    right
  2. L48
    split
22Construct an explicit witnessL49–49

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

  1. L49
    exists x
23Use earlier factsL50–50

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

  1. L50
    exact hm_witness_right
24Construct an explicit witnessL51–51

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

  1. L51
    exists x1
25Use earlier factsL52–52

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

  1. L52
    exact hn_witness_right

Library-wide reading audit

Original defined command ledger · 52 lines
  1. 0001intro m
  2. 0002intro n
  3. 0003intro hsum
  4. 0004have hm : exists a. m = 2 * a \/ m = 2 * a + 1
  5. 0005specialize parity_cases m
  6. 0006exact parity_cases
  7. 0007have hn : exists b. n = 2 * b \/ n = 2 * b + 1
  8. 0008specialize parity_cases n
  9. 0009exact parity_cases
  10. 0010cases hm
  11. 0011cases hn
  12. 0012cases hm_witness
  13. 0013cases hn_witness
  14. 0014left
  15. 0015split
  16. 0016exists x
  17. 0017exact hm_witness_left
  18. 0018exists x1
  19. 0019exact hn_witness_left
  20. 0020exfalso
  21. 0021have hodd : Odd(m + n)
    Exact native replay linehave hodd : exists c. m + n = 2 * c + 1
  22. 0022specialize even_add_odd m
  23. 0023specialize even_add_odd n
  24. 0024apply even_add_odd
  25. 0025exists x
  26. 0026exact hm_witness_left
  27. 0027exists x1
  28. 0028exact hn_witness_right
  29. 0029specialize even_not_odd (m + n)
  30. 0030apply even_not_odd
  31. 0031exact hsum
  32. 0032exact hodd
  33. 0033cases hn_witness
  34. 0034exfalso
  35. 0035have hodd : Odd(m + n)
    Exact native replay linehave hodd : exists c. m + n = 2 * c + 1
  36. 0036specialize odd_add_even m
  37. 0037specialize odd_add_even n
  38. 0038apply odd_add_even
  39. 0039exists x
  40. 0040exact hm_witness_right
  41. 0041exists x1
  42. 0042exact hn_witness_left
  43. 0043specialize even_not_odd (m + n)
  44. 0044apply even_not_odd
  45. 0045exact hsum
  46. 0046exact hodd
  47. 0047right
  48. 0048split
  49. 0049exists x
  50. 0050exact hm_witness_right
  51. 0051exists x1
  52. 0052exact hn_witness_right