PA00CL · theorem

odd_reflected_remainder_mod_two

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

Reflecting two remainders across an odd modulus flips 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

∀ p. ∀ r. ∀ m. Odd(p) → r + m = p → ModEq(2,r,m + 1)

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

2 occurrences

In local proof propositions

none

0 occurrences

Exact expanded native-PA statement
forall p r m. (exists sdp_odd_prime_like_modulus. p = 2 * sdp_odd_prime_like_modulus + 1) -> r + m = p -> (exists sdp_u_reflected_remainder sdp_v_reflected_remainder. (r) + 2 * sdp_u_reflected_remainder = (m + 1) + 2 * sdp_v_reflected_remainder)

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

27 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.

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 (3)
01Fix variables and assumptionsL1–5

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

  1. L1
    intro p
  2. L2
    intro r
  3. L3
    intro m
  4. L4
    intro hp
  5. L5
    intro hreflect
02Separate the logical casesL6–6

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

  1. L6
    cases hp
03Establish hdoubleL7–10

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

  1. L7
    have hdouble : 2 * m = m + m
  2. L8
    trans m * 2
  3. L9
    apply mul_comm
  4. L10
    simp [zero_add]
04Construct an explicit witnessL11–12

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

  1. L11
    exists m
  2. L12
    exists x
05Calculate and transport equalitiesL13–15

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L13
    trans r + (m + m)
  2. L14
    congr
  3. L15
    refl
06Use earlier factsL16–16

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

  1. L16
    exact hdouble
07Calculate and transport equalitiesL17–18

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L17
    trans (r + m) + m
  2. L18
    symm
08Use earlier factsL19–19

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

  1. L19
    apply add_assoc
09Calculate and transport equalitiesL20–26

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L20
    trans p + m
  2. L21
    rewrite hreflect
  3. L22
    refl
  4. L23
    trans (2 * x + 1) + m
  5. L24
    rewrite hp_witness
  6. L25
    refl
  7. L26
    simp [add_assoc, add_comm]
10Use earlier factsL27–27

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

  1. L27
    apply add_succ_left

Library-wide reading audit

Original defined command ledger · 27 lines
  1. 0001intro p
  2. 0002intro r
  3. 0003intro m
  4. 0004intro hp
  5. 0005intro hreflect
  6. 0006cases hp
  7. 0007have hdouble : 2 * m = m + m
  8. 0008trans m * 2
  9. 0009apply mul_comm
  10. 0010simp [zero_add]
  11. 0011exists m
  12. 0012exists x
  13. 0013trans r + (m + m)
  14. 0014congr
  15. 0015refl
  16. 0016exact hdouble
  17. 0017trans (r + m) + m
  18. 0018symm
  19. 0019apply add_assoc
  20. 0020trans p + m
  21. 0021rewrite hreflect
  22. 0022refl
  23. 0023trans (2 * x + 1) + m
  24. 0024rewrite hp_witness
  25. 0025refl
  26. 0026simp [add_assoc, add_comm]
  27. 0027apply add_succ_left