PA00C8 · theorem

odd_multiplier_odd_product_iff

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

Multiplication by an odd natural preserves and reflects oddness.

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) → (Odd(p · q)Odd(q)) ∧ (Odd(q)Odd(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_odd_product_odd. p * q = 2 * pod_odd_product_odd + 1) -> (exists pod_odd_factor_odd. q = 2 * pod_odd_factor_odd + 1)) /\ ((exists pod_odd_factor_odd. q = 2 * pod_odd_factor_odd + 1) -> (exists pod_odd_product_odd. p * q = 2 * pod_odd_product_odd + 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

29 script commands · 12 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–11

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

  1. L9
    cases hqcases
  2. L10
    cases hqcases_witness
  3. L11
    exfalso
06Establish hproduct_evenL12–15

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

  1. L12
    have hproduct_even : Even(p · q)Definitions: Even(p · q)Original native command in the exact edition
  2. L13
    specialize even_mul_right p
  3. L14
    specialize even_mul_right q
  4. L15
    apply even_mul_right
07Construct an explicit witnessL16–16

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

  1. L16
    exists x
08Use earlier factsL17–21

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

  1. L17
    exact hqcases_witness_left
  2. L18
    specialize odd_not_even (p * q)
  3. L19
    apply odd_not_even
  4. L20
    exact hproduct
  5. L21
    exact hproduct_even
09Construct an explicit witnessL22–22

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

  1. L22
    exists x
10Use earlier factsL23–23

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

  1. L23
    exact hqcases_witness_right
11Fix variables and assumptionsL24–24

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

  1. L24
    intro hq
12Use earlier factsL25–29

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

  1. L25
    specialize odd_mul_odd p
  2. L26
    specialize odd_mul_odd q
  3. L27
    apply odd_mul_odd
  4. L28
    exact hp
  5. 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. 0011exfalso
  12. 0012have hproduct_even : Even(p · q)
    Exact native replay linehave hproduct_even : exists pod_even_odd_iff_contradiction. p * q = 2 * pod_even_odd_iff_contradiction
  13. 0013specialize even_mul_right p
  14. 0014specialize even_mul_right q
  15. 0015apply even_mul_right
  16. 0016exists x
  17. 0017exact hqcases_witness_left
  18. 0018specialize odd_not_even (p * q)
  19. 0019apply odd_not_even
  20. 0020exact hproduct
  21. 0021exact hproduct_even
  22. 0022exists x
  23. 0023exact hqcases_witness_right
  24. 0024intro hq
  25. 0025specialize odd_mul_odd p
  26. 0026specialize odd_mul_odd q
  27. 0027apply odd_mul_odd
  28. 0028exact hp
  29. 0029exact hq