PA00CD · theorem

odd_sum_parity_cases

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

An odd sum has summands of opposite 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. Odd(m + n)Even(m)Odd(n)Odd(m)Even(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_odd_odd_sum. m + n = 2 * psc_odd_odd_sum + 1) -> ((((exists psc_even_even_m. m = 2 * psc_even_even_m) /\ (exists psc_odd_odd_n. n = 2 * psc_odd_odd_n + 1)) \/ ((exists psc_odd_odd_m. m = 2 * psc_odd_odd_m + 1) /\ (exists psc_even_even_n. n = 2 * psc_even_even_n))))

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–14

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
    exfalso
05Establish hevenL15–18

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

  1. L15
    have heven : Even(m + n)Definitions: Even(m + n)Original native command in the exact edition
  2. L16
    specialize even_add_even m
  3. L17
    specialize even_add_even n
  4. L18
    apply even_add_even
06Construct an explicit witnessL19–19

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

  1. L19
    exists x
07Use earlier factsL20–20

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

  1. L20
    exact hm_witness_left
08Construct an explicit witnessL21–21

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

  1. L21
    exists x1
09Use earlier factsL22–26

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

  1. L22
    exact hn_witness_left
  2. L23
    specialize odd_not_even (m + n)
  3. L24
    apply odd_not_even
  4. L25
    exact hsum
  5. L26
    exact heven
10Separate the logical casesL27–28

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

  1. L27
    left
  2. L28
    split
11Construct an explicit witnessL29–29

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

  1. L29
    exists x
12Use earlier factsL30–30

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

  1. L30
    exact hm_witness_left
13Construct an explicit witnessL31–31

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

  1. L31
    exists x1
14Use earlier factsL32–32

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

  1. L32
    exact hn_witness_right
15Separate the logical casesL33–35

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

  1. L33
    cases hn_witness
  2. L34
    right
  3. L35
    split
16Construct an explicit witnessL36–36

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

  1. L36
    exists x
17Use earlier factsL37–37

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

  1. L37
    exact hm_witness_right
18Construct an explicit witnessL38–38

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

  1. L38
    exists x1
19Use earlier factsL39–39

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

  1. L39
    exact hn_witness_left
20Separate the logical casesL40–40

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

  1. L40
    exfalso
21Establish hevenL41–44

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

  1. L41
    have heven : Even(m + n)Definitions: Even(m + n)Original native command in the exact edition
  2. L42
    specialize odd_add_odd m
  3. L43
    specialize odd_add_odd n
  4. L44
    apply odd_add_odd
22Construct an explicit witnessL45–45

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

  1. L45
    exists x
23Use earlier factsL46–46

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

  1. L46
    exact hm_witness_right
24Construct an explicit witnessL47–47

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

  1. L47
    exists x1
25Use earlier factsL48–52

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

  1. L48
    exact hn_witness_right
  2. L49
    specialize odd_not_even (m + n)
  3. L50
    apply odd_not_even
  4. L51
    exact hsum
  5. L52
    exact heven

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. 0014exfalso
  15. 0015have heven : Even(m + n)
    Exact native replay linehave heven : exists c. m + n = 2 * c
  16. 0016specialize even_add_even m
  17. 0017specialize even_add_even n
  18. 0018apply even_add_even
  19. 0019exists x
  20. 0020exact hm_witness_left
  21. 0021exists x1
  22. 0022exact hn_witness_left
  23. 0023specialize odd_not_even (m + n)
  24. 0024apply odd_not_even
  25. 0025exact hsum
  26. 0026exact heven
  27. 0027left
  28. 0028split
  29. 0029exists x
  30. 0030exact hm_witness_left
  31. 0031exists x1
  32. 0032exact hn_witness_right
  33. 0033cases hn_witness
  34. 0034right
  35. 0035split
  36. 0036exists x
  37. 0037exact hm_witness_right
  38. 0038exists x1
  39. 0039exact hn_witness_left
  40. 0040exfalso
  41. 0041have heven : Even(m + n)
    Exact native replay linehave heven : exists c. m + n = 2 * c
  42. 0042specialize odd_add_odd m
  43. 0043specialize odd_add_odd n
  44. 0044apply odd_add_odd
  45. 0045exists x
  46. 0046exact hm_witness_right
  47. 0047exists x1
  48. 0048exact hn_witness_right
  49. 0049specialize odd_not_even (m + n)
  50. 0050apply odd_not_even
  51. 0051exact hsum
  52. 0052exact heven