JT0004

jordan_tuple_common_divisor_transport

Divisibility of all coordinates is extensional across tuple encodings.

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

95 new Alpha admissions come from 96 source lemmas: tuple equality reflexivity reuses an already-admitted theorem and is not counted twice. All counts use actual finite beta-coded enumerations. G008 multiplicativity is proved; the general prime-power count and distinct-prime product formula are further goals. General prime-power fields (G091) remain open. Stable is unchanged.

Exact theorem in conservative defined notation

∀ q. ∀ b. ∀ c. ∀ d. ∀ e. ∀ k. IntegerVectorZero(b,c,d,e,k) → JordanTupleAllDivisible(q,b,c,k) → JordanTupleAllDivisible(q,d,e,k)

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall q b c d e k. (forall jt_index_dvd_equal jt_left_dvd_equal jt_right_dvd_equal. (exists jt_gap_dvd_equalindex. jt_gap_dvd_equalindex+S (jt_index_dvd_equal)=(k)) -> (((exists fs_h_jt_dvd_equalleft. fs_h_jt_dvd_equalleft + S (jt_left_dvd_equal) = S ((S (jt_index_dvd_equal)) * c)) /\ exists fs_q_jt_dvd_equalleft. b = fs_q_jt_dvd_equalleft * S ((S (jt_index_dvd_equal)) * c) + (jt_left_dvd_equal))) -> (((exists fs_h_jt_dvd_equalright. fs_h_jt_dvd_equalright + S (jt_right_dvd_equal) = S ((S (jt_index_dvd_equal)) * e)) /\ exists fs_q_jt_dvd_equalright. d = fs_q_jt_dvd_equalright * S ((S (jt_index_dvd_equal)) * e) + (jt_right_dvd_equal))) -> jt_left_dvd_equal=jt_right_dvd_equal) -> (forall jt_index_dvdsource jt_value_dvdsource. (exists jt_gap_dvdsourceindex. jt_gap_dvdsourceindex+S (jt_index_dvdsource)=(k)) -> (((exists fs_h_jt_dvdsourceat. fs_h_jt_dvdsourceat + S (jt_value_dvdsource) = S ((S (jt_index_dvdsource)) * c)) /\ exists fs_q_jt_dvdsourceat. b = fs_q_jt_dvdsourceat * S ((S (jt_index_dvdsource)) * c) + (jt_value_dvdsource))) -> (exists jt_factor_dvdsourcedivides. (jt_value_dvdsource)=(q)*jt_factor_dvdsourcedivides)) -> (forall jt_index_dvdtarget jt_value_dvdtarget. (exists jt_gap_dvdtargetindex. jt_gap_dvdtargetindex+S (jt_index_dvdtarget)=(k)) -> (((exists fs_h_jt_dvdtargetat. fs_h_jt_dvdtargetat + S (jt_value_dvdtarget) = S ((S (jt_index_dvdtarget)) * e)) /\ exists fs_q_jt_dvdtargetat. d = fs_q_jt_dvdtargetat * S ((S (jt_index_dvdtarget)) * e) + (jt_value_dvdtarget))) -> (exists jt_factor_dvdtargetdivides. (jt_value_dvdtarget)=(q)*jt_factor_dvdtargetdivides))

Complete tactic proof in conservative notation

All 32 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.

Read the argument

Proof checkpoints

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

01Fix variables and assumptionsL1–10

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

  1. L1
    intro q
  2. L2
    intro b
  3. L3
    intro c
  4. L4
    intro d
  5. L5
    intro e
  6. L6
    intro k
  7. L7
    intro heq
  8. L8
    intro hdiv
  9. L9
    intro i
  10. L10
    intro z
02Fix variables and assumptionsL11–12

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

  1. L11
    intro hi
  2. L12
    intro hz
03Establish haL13–17

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

  1. L13
    have ha : ∃ a. BetaAt(b,c,i,a)Definitions: BetaAt(b,c,i,a)Original native command in the exact edition
  2. L14
    specialize beta_at_exists (b)
  3. L15
    specialize beta_at_exists (c)
  4. L16
    specialize beta_at_exists (i)
  5. L17
    apply beta_at_exists
04Separate the logical casesL18–18

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

  1. L18
    cases ha
05Establish hvalL19–28

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

  1. L19
    have hval : x=z
  2. L20
    specialize heq (i)
  3. L21
    specialize heq (x)
  4. L22
    specialize heq (z)
  5. L23
    apply heq
  6. L24
    exact hi
  7. L25
    exact ha_witness
  8. L26
    exact hz
  9. L27
    rewrite <- hval
  10. L28
    specialize hdiv (i)
06Use earlier factsL29–32

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

  1. L29
    specialize hdiv (x)
  2. L30
    apply hdiv
  3. L31
    exact hi
  4. L32
    exact ha_witness

Library-wide reading audit

Original defined command ledger · 32 lines
  1. 0001intro q
  2. 0002intro b
  3. 0003intro c
  4. 0004intro d
  5. 0005intro e
  6. 0006intro k
  7. 0007intro heq
  8. 0008intro hdiv
  9. 0009intro i
  10. 0010intro z
  11. 0011intro hi
  12. 0012intro hz
  13. 0013have ha : ∃ a. BetaAt(b,c,i,a)
  14. 0014specialize beta_at_exists (b)
  15. 0015specialize beta_at_exists (c)
  16. 0016specialize beta_at_exists (i)
  17. 0017apply beta_at_exists
  18. 0018cases ha
  19. 0019have hval : x=z
  20. 0020specialize heq (i)
  21. 0021specialize heq (x)
  22. 0022specialize heq (z)
  23. 0023apply heq
  24. 0024exact hi
  25. 0025exact ha_witness
  26. 0026exact hz
  27. 0027rewrite <- hval
  28. 0028specialize hdiv (i)
  29. 0029specialize hdiv (x)
  30. 0030apply hdiv
  31. 0031exact hi
  32. 0032exact ha_witness