PA001C · theorem

division_remainder_succ

Stable checked-use theorem · independently closed

Every dividend has a quotient and bounded remainder for a successor divisor.

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

∀ d. ∀ n. ∃ q. ∃ r. DivRem(n,S d,q,r)

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

1 occurrences

In local proof propositions

none

0 occurrences

Exact expanded native-PA statement
forall d n. exists q r. n = S d * q + r /\ S r <= S d

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

38 script commands · 25 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 (2)
01Fix variables and assumptionsL1–1

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

  1. L1
    intro d
02Induction on nL2–2

Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.

  1. L2
    induction n
03Construct an explicit witnessL3–4

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

  1. L3
    exists 0
  2. L4
    exists 0
04Separate the logical casesL5–5

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

  1. L5
    split
05Calculate and transport equalitiesL6–6

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

  1. L6
    simp
06Construct an explicit witnessL7–7

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

  1. L7
    exists d
07Calculate and transport equalitiesL8–8

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

  1. L8
    simp
08Separate the logical casesL9–12

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

  1. L9
    cases IH
  2. L10
    cases IH_witness
  3. L11
    cases IH_witness_witness
  4. L12
    cases IH_witness_witness_right
09Use earlier factsL13–13

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

  1. L13
    specialize zero_or_succ x2
10Separate the logical casesL14–14

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

  1. L14
    cases zero_or_succ
11Calculate and transport equalitiesL15–15

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

  1. L15
    rewrite zero_or_succ_left at IH_witness_witness_right_witness
12Use earlier factsL16–16

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

  1. L16
    specialize zero_add S x1
13Calculate and transport equalitiesL17–17

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

  1. L17
    rewrite zero_add at IH_witness_witness_right_witness
14Establish hrdL18–20

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

  1. L18
    have hrd : x1 = d
  2. L19
    apply PA2
  3. L20
    exact IH_witness_witness_right_witness
15Construct an explicit witnessL21–22

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

  1. L21
    exists S x
  2. L22
    exists 0
16Separate the logical casesL23–23

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

  1. L23
    split
17Calculate and transport equalitiesL24–26

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

  1. L24
    rewrite IH_witness_witness_left
  2. L25
    rewrite hrd
  3. L26
    simp
18Construct an explicit witnessL27–27

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

  1. L27
    exists d
19Calculate and transport equalitiesL28–28

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

  1. L28
    simp
20Separate the logical casesL29–29

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

  1. L29
    cases zero_or_succ_right
21Construct an explicit witnessL30–31

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

  1. L30
    exists x
  2. L31
    exists S x1
22Separate the logical casesL32–32

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

  1. L32
    split
23Calculate and transport equalitiesL33–34

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

  1. L33
    rewrite IH_witness_witness_left
  2. L34
    simp
24Construct an explicit witnessL35–35

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

  1. L35
    exists x3
25Calculate and transport equalitiesL36–38

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

  1. L36
    rewrite <- IH_witness_witness_right_witness
  2. L37
    rewrite zero_or_succ_right_witness
  3. L38
    simp [add_succ_left]

Library-wide reading audit

Original defined command ledger · 38 lines
  1. 0001intro d
  2. 0002induction n
  3. 0003exists 0
  4. 0004exists 0
  5. 0005split
  6. 0006simp
  7. 0007exists d
  8. 0008simp
  9. 0009cases IH
  10. 0010cases IH_witness
  11. 0011cases IH_witness_witness
  12. 0012cases IH_witness_witness_right
  13. 0013specialize zero_or_succ x2
  14. 0014cases zero_or_succ
  15. 0015rewrite zero_or_succ_left at IH_witness_witness_right_witness
  16. 0016specialize zero_add S x1
  17. 0017rewrite zero_add at IH_witness_witness_right_witness
  18. 0018have hrd : x1 = d
  19. 0019apply PA2
  20. 0020exact IH_witness_witness_right_witness
  21. 0021exists S x
  22. 0022exists 0
  23. 0023split
  24. 0024rewrite IH_witness_witness_left
  25. 0025rewrite hrd
  26. 0026simp
  27. 0027exists d
  28. 0028simp
  29. 0029cases zero_or_succ_right
  30. 0030exists x
  31. 0031exists S x1
  32. 0032split
  33. 0033rewrite IH_witness_witness_left
  34. 0034simp
  35. 0035exists x3
  36. 0036rewrite <- IH_witness_witness_right_witness
  37. 0037rewrite zero_or_succ_right_witness
  38. 0038simp [add_succ_left]