JT0003

jordan_tuple_equal_trans

A real decoded middle coordinate witnesses transitivity.

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

∀ b. ∀ c. ∀ d. ∀ e. ∀ f. ∀ g. ∀ k. IntegerVectorZero(b,c,d,e,k) → IntegerVectorZero(d,e,f,g,k) → IntegerVectorZero(b,c,f,g,k)

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

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall b c d e f g k. (forall jt_index_transfirst jt_left_transfirst jt_right_transfirst. (exists jt_gap_transfirstindex. jt_gap_transfirstindex+S (jt_index_transfirst)=(k)) -> (((exists fs_h_jt_transfirstleft. fs_h_jt_transfirstleft + S (jt_left_transfirst) = S ((S (jt_index_transfirst)) * c)) /\ exists fs_q_jt_transfirstleft. b = fs_q_jt_transfirstleft * S ((S (jt_index_transfirst)) * c) + (jt_left_transfirst))) -> (((exists fs_h_jt_transfirstright. fs_h_jt_transfirstright + S (jt_right_transfirst) = S ((S (jt_index_transfirst)) * e)) /\ exists fs_q_jt_transfirstright. d = fs_q_jt_transfirstright * S ((S (jt_index_transfirst)) * e) + (jt_right_transfirst))) -> jt_left_transfirst=jt_right_transfirst) -> (forall jt_index_transsecond jt_left_transsecond jt_right_transsecond. (exists jt_gap_transsecondindex. jt_gap_transsecondindex+S (jt_index_transsecond)=(k)) -> (((exists fs_h_jt_transsecondleft. fs_h_jt_transsecondleft + S (jt_left_transsecond) = S ((S (jt_index_transsecond)) * e)) /\ exists fs_q_jt_transsecondleft. d = fs_q_jt_transsecondleft * S ((S (jt_index_transsecond)) * e) + (jt_left_transsecond))) -> (((exists fs_h_jt_transsecondright. fs_h_jt_transsecondright + S (jt_right_transsecond) = S ((S (jt_index_transsecond)) * g)) /\ exists fs_q_jt_transsecondright. f = fs_q_jt_transsecondright * S ((S (jt_index_transsecond)) * g) + (jt_right_transsecond))) -> jt_left_transsecond=jt_right_transsecond) -> (forall jt_index_transresult jt_left_transresult jt_right_transresult. (exists jt_gap_transresultindex. jt_gap_transresultindex+S (jt_index_transresult)=(k)) -> (((exists fs_h_jt_transresultleft. fs_h_jt_transresultleft + S (jt_left_transresult) = S ((S (jt_index_transresult)) * c)) /\ exists fs_q_jt_transresultleft. b = fs_q_jt_transresultleft * S ((S (jt_index_transresult)) * c) + (jt_left_transresult))) -> (((exists fs_h_jt_transresultright. fs_h_jt_transresultright + S (jt_right_transresult) = S ((S (jt_index_transresult)) * g)) /\ exists fs_q_jt_transresultright. f = fs_q_jt_transresultright * S ((S (jt_index_transresult)) * g) + (jt_right_transresult))) -> jt_left_transresult=jt_right_transresult)

Complete tactic proof in conservative notation

All 40 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

40 script commands · 7 reading checkpoints · 3 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 b
  2. L2
    intro c
  3. L3
    intro d
  4. L4
    intro e
  5. L5
    intro f
  6. L6
    intro g
  7. L7
    intro k
  8. L8
    intro h
  9. L9
    intro hnext
  10. L10
    intro i
02Fix variables and assumptionsL11–15

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

  1. L11
    intro a
  2. L12
    intro z
  3. L13
    intro hi
  4. L14
    intro ha
  5. L15
    intro hz
03Establish hmL16–20

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

  1. L16
    have hm : ∃ t. BetaAt(d,e,i,t)Definitions: BetaAt(d,e,i,t)Original native command in the exact edition
  2. L17
    specialize beta_at_exists (d)
  3. L18
    specialize beta_at_exists (e)
  4. L19
    specialize beta_at_exists (i)
  5. L20
    apply beta_at_exists
04Separate the logical casesL21–21

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

  1. L21
    cases hm
05Establish hleftL22–29

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

  1. L22
    have hleft : a=x
  2. L23
    specialize h (i)
  3. L24
    specialize h (a)
  4. L25
    specialize h (x)
  5. L26
    apply h
  6. L27
    exact hi
  7. L28
    exact ha
  8. L29
    exact hm_witness
06Establish hrightL30–39

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

  1. L30
    have hright : x=z
  2. L31
    specialize hnext (i)
  3. L32
    specialize hnext (x)
  4. L33
    specialize hnext (z)
  5. L34
    apply hnext
  6. L35
    exact hi
  7. L36
    exact hm_witness
  8. L37
    exact hz
  9. L38
    trans x
  10. L39
    exact hleft
07Use earlier factsL40–40

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

  1. L40
    exact hright

Library-wide reading audit

Original defined command ledger · 40 lines
  1. 0001intro b
  2. 0002intro c
  3. 0003intro d
  4. 0004intro e
  5. 0005intro f
  6. 0006intro g
  7. 0007intro k
  8. 0008intro h
  9. 0009intro hnext
  10. 0010intro i
  11. 0011intro a
  12. 0012intro z
  13. 0013intro hi
  14. 0014intro ha
  15. 0015intro hz
  16. 0016have hm : ∃ t. BetaAt(d,e,i,t)
  17. 0017specialize beta_at_exists (d)
  18. 0018specialize beta_at_exists (e)
  19. 0019specialize beta_at_exists (i)
  20. 0020apply beta_at_exists
  21. 0021cases hm
  22. 0022have hleft : a=x
  23. 0023specialize h (i)
  24. 0024specialize h (a)
  25. 0025specialize h (x)
  26. 0026apply h
  27. 0027exact hi
  28. 0028exact ha
  29. 0029exact hm_witness
  30. 0030have hright : x=z
  31. 0031specialize hnext (i)
  32. 0032specialize hnext (x)
  33. 0033specialize hnext (z)
  34. 0034apply hnext
  35. 0035exact hi
  36. 0036exact hm_witness
  37. 0037exact hz
  38. 0038trans x
  39. 0039exact hleft
  40. 0040exact hright