DI0002

divisor_complement_exists

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

Decide zero and divisibility constructively, extracting a real quotient only in the positive-divisor branch.

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 expanded first-order arithmetic statement

forall n d. ~(n=0) -> exists q. ((((~((d)=0)) /\ ((n)=(d)*(q)))) \/ ((((d)=0 \/ ~(exists pvs_factor_exists_resultnondivisor. (n) = (d) * pvs_factor_exists_resultnondivisor)) /\ ((q)=(d)))))

Constructive proof overview

Generated structural guide

Decide zero and divisibility constructively, extracting a real quotient only in the positive-divisor branch.

The unchanged tactic script uses 2 declared prerequisites and contains 32 exact native proof lines.

Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable

Proof neighborhood

Direct dependencies

eq_decidable Stable theorem; checked-use authorized multiple_decidable_nonzero Stable theorem; checked-use authorized

Direct dependents

Formal native tactic body

Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.

Read the argument

Proof checkpoints

32 script commands · 16 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.

01Fix variables and assumptionsL1–3

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

  1. L1
    intro n
  2. L2
    intro d
  3. L3
    intro hn
02Establish hzL4–7

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

  1. L4
    have hz : d=0 \/ ~(d=0)
  2. L5
    specialize eq_decidable (d)
  3. L6
    specialize eq_decidable (0)
  4. L7
    apply eq_decidable
03Separate the logical casesL8–8

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

  1. L8
    cases hz
04Construct an explicit witnessL9–9

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

  1. L9
    exists d
05Separate the logical casesL10–12

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

  1. L10
    right
  2. L11
    split
  3. L12
    left
06Use earlier factsL13–13

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

  1. L13
    exact hz_left
07Calculate and transport equalitiesL14–14

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

  1. L14
    refl
08Establish hdL15–19

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

  1. L15
    have hd : (exists pvs_factor_exists_divisor. (n) = (d) * pvs_factor_exists_divisor) \/ ~(exists pvs_factor_exists_nondivisor. (n) = (d) * pvs_factor_exists_nondivisor)
  2. L16
    specialize multiple_decidable_nonzero (d)
  3. L17
    specialize multiple_decidable_nonzero (n)
  4. L18
    apply multiple_decidable_nonzero
  5. L19
    exact hz_right
09Separate the logical casesL20–21

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

  1. L20
    cases hd
  2. L21
    cases hd_left
10Construct an explicit witnessL22–22

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

  1. L22
    exists x
11Separate the logical casesL23–24

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

  1. L23
    left
  2. L24
    split
12Use earlier factsL25–26

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

  1. L25
    exact hz_right
  2. L26
    exact hd_left_witness
13Construct an explicit witnessL27–27

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

  1. L27
    exists d
14Separate the logical casesL28–30

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

  1. L28
    right
  2. L29
    split
  3. L30
    right
15Use earlier factsL31–31

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

  1. L31
    exact hd_right
16Calculate and transport equalitiesL32–32

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

  1. L32
    refl

Library-wide reading audit

Original exact command ledger · 32 lines
  1. 0001intro n
  2. 0002intro d
  3. 0003intro hn
  4. 0004have hz : d=0 \/ ~(d=0)
  5. 0005specialize eq_decidable (d)
  6. 0006specialize eq_decidable (0)
  7. 0007apply eq_decidable
  8. 0008cases hz
  9. 0009exists d
  10. 0010right
  11. 0011split
  12. 0012left
  13. 0013exact hz_left
  14. 0014refl
  15. 0015have hd : (exists pvs_factor_exists_divisor. (n) = (d) * pvs_factor_exists_divisor) \/ ~(exists pvs_factor_exists_nondivisor. (n) = (d) * pvs_factor_exists_nondivisor)
  16. 0016specialize multiple_decidable_nonzero (d)
  17. 0017specialize multiple_decidable_nonzero (n)
  18. 0018apply multiple_decidable_nonzero
  19. 0019exact hz_right
  20. 0020cases hd
  21. 0021cases hd_left
  22. 0022exists x
  23. 0023left
  24. 0024split
  25. 0025exact hz_right
  26. 0026exact hd_left_witness
  27. 0027exists d
  28. 0028right
  29. 0029split
  30. 0030right
  31. 0031exact hd_right
  32. 0032refl