PA00C7 · theorem

odd_multiplier_even_product_iff

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

Multiplication by an odd natural preserves and reflects evenness.

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

∀ p. ∀ q. Odd(p) → (Even(p · q)Even(q)) ∧ (Even(q)Even(p · q))

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

1 occurrences

Exact expanded native-PA statement
forall p q. (exists pod_odd_multiplier. p = 2 * pod_odd_multiplier + 1) -> ((((exists pod_even_product_even. p * q = 2 * pod_even_product_even) -> (exists pod_even_factor_even. q = 2 * pod_even_factor_even)) /\ ((exists pod_even_factor_even. q = 2 * pod_even_factor_even) -> (exists pod_even_product_even. p * q = 2 * pod_even_product_even))))

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

29 script commands · 13 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.

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 p
  2. L2
    intro q
  3. L3
    intro hp
02Separate the logical casesL4–4

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

  1. L4
    split
03Fix variables and assumptionsL5–5

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

  1. L5
    intro hproduct
04Establish hqcasesL6–8

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

  1. L6
    have hqcases : exists k. q = 2 * k \/ q = 2 * k + 1
  2. L7
    specialize parity_cases q
  3. L8
    exact parity_cases
05Separate the logical casesL9–10

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

  1. L9
    cases hqcases
  2. L10
    cases hqcases_witness
06Construct an explicit witnessL11–11

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

  1. L11
    exists x
07Use earlier factsL12–12

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

  1. L12
    exact hqcases_witness_left
08Separate the logical casesL13–13

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

  1. L13
    exfalso
09Establish hproduct_oddL14–18

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

  1. L14
    have hproduct_odd : Odd(p · q)Definitions: Odd(p · q)Original native command in the exact edition
  2. L15
    specialize odd_mul_odd p
  3. L16
    specialize odd_mul_odd q
  4. L17
    apply odd_mul_odd
  5. L18
    exact hp
10Construct an explicit witnessL19–19

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

  1. L19
    exists x
11Use earlier factsL20–24

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

  1. L20
    exact hqcases_witness_right
  2. L21
    specialize even_not_odd (p * q)
  3. L22
    apply even_not_odd
  4. L23
    exact hproduct
  5. L24
    exact hproduct_odd
12Fix variables and assumptionsL25–25

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

  1. L25
    intro hq
13Use earlier factsL26–29

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

  1. L26
    specialize even_mul_right p
  2. L27
    specialize even_mul_right q
  3. L28
    apply even_mul_right
  4. L29
    exact hq

Library-wide reading audit

Original defined command ledger · 29 lines
  1. 0001intro p
  2. 0002intro q
  3. 0003intro hp
  4. 0004split
  5. 0005intro hproduct
  6. 0006have hqcases : exists k. q = 2 * k \/ q = 2 * k + 1
  7. 0007specialize parity_cases q
  8. 0008exact parity_cases
  9. 0009cases hqcases
  10. 0010cases hqcases_witness
  11. 0011exists x
  12. 0012exact hqcases_witness_left
  13. 0013exfalso
  14. 0014have hproduct_odd : Odd(p · q)
    Exact native replay linehave hproduct_odd : exists pod_odd_even_iff_contradiction. p * q = 2 * pod_odd_even_iff_contradiction + 1
  15. 0015specialize odd_mul_odd p
  16. 0016specialize odd_mul_odd q
  17. 0017apply odd_mul_odd
  18. 0018exact hp
  19. 0019exists x
  20. 0020exact hqcases_witness_right
  21. 0021specialize even_not_odd (p * q)
  22. 0022apply even_not_odd
  23. 0023exact hproduct
  24. 0024exact hproduct_odd
  25. 0025intro hq
  26. 0026specialize even_mul_right p
  27. 0027specialize even_mul_right q
  28. 0028apply even_mul_right
  29. 0029exact hq