JT001B

jordan_tuple_listed_lift

An existing list position remains below the successor bound.

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. ∀ k. ∀ B. ∀ C. ∀ D. ∀ E. ∀ j. JordanTupleListed(b,c,k,B,C,D,E,j) → JordanTupleListed(b,c,k,B,C,D,E,S j)

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

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall b c k B C D E j. (exists jt_index_listedliftold jt_code_listedliftold jt_scale_listedliftold. ((exists jt_gap_listedliftoldindex. jt_gap_listedliftoldindex+S (jt_index_listedliftold)=(j)) /\ (((((((exists fs_h_jt_listedliftoldcode. fs_h_jt_listedliftoldcode + S (jt_code_listedliftold) = S ((S (jt_index_listedliftold)) * C)) /\ exists fs_q_jt_listedliftoldcode. B = fs_q_jt_listedliftoldcode * S ((S (jt_index_listedliftold)) * C) + (jt_code_listedliftold))) /\ (((exists fs_h_jt_listedliftoldscale. fs_h_jt_listedliftoldscale + S (jt_scale_listedliftold) = S ((S (jt_index_listedliftold)) * E)) /\ exists fs_q_jt_listedliftoldscale. D = fs_q_jt_listedliftoldscale * S ((S (jt_index_listedliftold)) * E) + (jt_scale_listedliftold))))) /\ (forall jt_index_listedliftoldequal jt_left_listedliftoldequal jt_right_listedliftoldequal. (exists jt_gap_listedliftoldequalindex. jt_gap_listedliftoldequalindex+S (jt_index_listedliftoldequal)=(k)) -> (((exists fs_h_jt_listedliftoldequalleft. fs_h_jt_listedliftoldequalleft + S (jt_left_listedliftoldequal) = S ((S (jt_index_listedliftoldequal)) * c)) /\ exists fs_q_jt_listedliftoldequalleft. b = fs_q_jt_listedliftoldequalleft * S ((S (jt_index_listedliftoldequal)) * c) + (jt_left_listedliftoldequal))) -> (((exists fs_h_jt_listedliftoldequalright. fs_h_jt_listedliftoldequalright + S (jt_right_listedliftoldequal) = S ((S (jt_index_listedliftoldequal)) * jt_scale_listedliftold)) /\ exists fs_q_jt_listedliftoldequalright. jt_code_listedliftold = fs_q_jt_listedliftoldequalright * S ((S (jt_index_listedliftoldequal)) * jt_scale_listedliftold) + (jt_right_listedliftoldequal))) -> jt_left_listedliftoldequal=jt_right_listedliftoldequal))))) -> (exists jt_index_listedliftnew jt_code_listedliftnew jt_scale_listedliftnew. ((exists jt_gap_listedliftnewindex. jt_gap_listedliftnewindex+S (jt_index_listedliftnew)=(S j)) /\ (((((((exists fs_h_jt_listedliftnewcode. fs_h_jt_listedliftnewcode + S (jt_code_listedliftnew) = S ((S (jt_index_listedliftnew)) * C)) /\ exists fs_q_jt_listedliftnewcode. B = fs_q_jt_listedliftnewcode * S ((S (jt_index_listedliftnew)) * C) + (jt_code_listedliftnew))) /\ (((exists fs_h_jt_listedliftnewscale. fs_h_jt_listedliftnewscale + S (jt_scale_listedliftnew) = S ((S (jt_index_listedliftnew)) * E)) /\ exists fs_q_jt_listedliftnewscale. D = fs_q_jt_listedliftnewscale * S ((S (jt_index_listedliftnew)) * E) + (jt_scale_listedliftnew))))) /\ (forall jt_index_listedliftnewequal jt_left_listedliftnewequal jt_right_listedliftnewequal. (exists jt_gap_listedliftnewequalindex. jt_gap_listedliftnewequalindex+S (jt_index_listedliftnewequal)=(k)) -> (((exists fs_h_jt_listedliftnewequalleft. fs_h_jt_listedliftnewequalleft + S (jt_left_listedliftnewequal) = S ((S (jt_index_listedliftnewequal)) * c)) /\ exists fs_q_jt_listedliftnewequalleft. b = fs_q_jt_listedliftnewequalleft * S ((S (jt_index_listedliftnewequal)) * c) + (jt_left_listedliftnewequal))) -> (((exists fs_h_jt_listedliftnewequalright. fs_h_jt_listedliftnewequalright + S (jt_right_listedliftnewequal) = S ((S (jt_index_listedliftnewequal)) * jt_scale_listedliftnew)) /\ exists fs_q_jt_listedliftnewequalright. jt_code_listedliftnew = fs_q_jt_listedliftnewequalright * S ((S (jt_index_listedliftnewequal)) * jt_scale_listedliftnew) + (jt_right_listedliftnewequal))) -> jt_left_listedliftnewequal=jt_right_listedliftnewequal)))))

Complete tactic proof in conservative notation

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

25 script commands · 7 reading checkpoints · 0 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–9

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

  1. L1
    intro b
  2. L2
    intro c
  3. L3
    intro k
  4. L4
    intro B
  5. L5
    intro C
  6. L6
    intro D
  7. L7
    intro E
  8. L8
    intro j
  9. L9
    intro h
02Separate the logical casesL10–14

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

  1. L10
    cases h
  2. L11
    cases h_witness
  3. L12
    cases h_witness_witness
  4. L13
    cases h_witness_witness_witness
  5. L14
    cases h_witness_witness_witness_right
03Construct an explicit witnessL15–17

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

  1. L15
    exists x
  2. L16
    exists x1
  3. L17
    exists x2
04Separate the logical casesL18–18

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

  1. L18
    split
05Use earlier factsL19–22

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

  1. L19
    specialize le_succ (S x)
  2. L20
    specialize le_succ (j)
  3. L21
    apply le_succ
  4. L22
    exact h_witness_witness_witness_left
06Separate the logical casesL23–23

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

  1. L23
    split
07Use earlier factsL24–25

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

  1. L24
    exact h_witness_witness_witness_right_left
  2. L25
    exact h_witness_witness_witness_right_right

Library-wide reading audit

Original defined command ledger · 25 lines
  1. 0001intro b
  2. 0002intro c
  3. 0003intro k
  4. 0004intro B
  5. 0005intro C
  6. 0006intro D
  7. 0007intro E
  8. 0008intro j
  9. 0009intro h
  10. 0010cases h
  11. 0011cases h_witness
  12. 0012cases h_witness_witness
  13. 0013cases h_witness_witness_witness
  14. 0014cases h_witness_witness_witness_right
  15. 0015exists x
  16. 0016exists x1
  17. 0017exists x2
  18. 0018split
  19. 0019specialize le_succ (S x)
  20. 0020specialize le_succ (j)
  21. 0021apply le_succ
  22. 0022exact h_witness_witness_witness_left
  23. 0023split
  24. 0024exact h_witness_witness_witness_right_left
  25. 0025exact h_witness_witness_witness_right_right