JT0021

jordan_tuple_outer_append_exists

Construct both outer beta streams after an append; no list witness is assumed.

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. ∀ j. ∀ b. ∀ c. ∃ U. ∃ V. ∃ W. ∃ X. IntegerVectorZero(B,C,U,V,j) ∧ (IntegerVectorZero(D,E,W,X,j) ∧ (BetaAt(U,V,j,b) ∧ BetaAt(W,X,j,c)))

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 j b c. exists U V W X. ((forall jt_index_outercodes jt_left_outercodes jt_right_outercodes. (exists jt_gap_outercodesindex. jt_gap_outercodesindex+S (jt_index_outercodes)=(j)) -> (((exists fs_h_jt_outercodesleft. fs_h_jt_outercodesleft + S (jt_left_outercodes) = S ((S (jt_index_outercodes)) * C)) /\ exists fs_q_jt_outercodesleft. B = fs_q_jt_outercodesleft * S ((S (jt_index_outercodes)) * C) + (jt_left_outercodes))) -> (((exists fs_h_jt_outercodesright. fs_h_jt_outercodesright + S (jt_right_outercodes) = S ((S (jt_index_outercodes)) * V)) /\ exists fs_q_jt_outercodesright. U = fs_q_jt_outercodesright * S ((S (jt_index_outercodes)) * V) + (jt_right_outercodes))) -> jt_left_outercodes=jt_right_outercodes) /\ (((forall jt_index_outerscales jt_left_outerscales jt_right_outerscales. (exists jt_gap_outerscalesindex. jt_gap_outerscalesindex+S (jt_index_outerscales)=(j)) -> (((exists fs_h_jt_outerscalesleft. fs_h_jt_outerscalesleft + S (jt_left_outerscales) = S ((S (jt_index_outerscales)) * E)) /\ exists fs_q_jt_outerscalesleft. D = fs_q_jt_outerscalesleft * S ((S (jt_index_outerscales)) * E) + (jt_left_outerscales))) -> (((exists fs_h_jt_outerscalesright. fs_h_jt_outerscalesright + S (jt_right_outerscales) = S ((S (jt_index_outerscales)) * X)) /\ exists fs_q_jt_outerscalesright. W = fs_q_jt_outerscalesright * S ((S (jt_index_outerscales)) * X) + (jt_right_outerscales))) -> jt_left_outerscales=jt_right_outerscales) /\ (((((exists fs_h_jt_outerlastcode. fs_h_jt_outerlastcode + S (b) = S ((S (j)) * V)) /\ exists fs_q_jt_outerlastcode. U = fs_q_jt_outerlastcode * S ((S (j)) * V) + (b))) /\ (((exists fs_h_jt_outerlastscale. fs_h_jt_outerlastscale + S (c) = S ((S (j)) * X)) /\ exists fs_q_jt_outerlastscale. W = fs_q_jt_outerlastscale * S ((S (j)) * X) + (c))))))))

Complete tactic proof in conservative notation

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

48 script commands · 12 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.

Named ingredients (1)
01Fix variables and assumptionsL1–7

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 j
  6. L6
    intro b
  7. L7
    intro c
02Establish hcL8–13

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

  1. L8
    have hc : ∃ u. ∃ v. BetaAt(u,v,j,b) ∧ BetaPrefixEqual(B,C,u,v,j)Definitions: BetaAt(u,v,j,b)BetaPrefixEqual(B,C,u,v,j)Original native command in the exact edition
  2. L9
    specialize beta_prefix_extend (j)
  3. L10
    specialize beta_prefix_extend (B)
  4. L11
    specialize beta_prefix_extend (C)
  5. L12
    specialize beta_prefix_extend (b)
  6. L13
    apply beta_prefix_extend
03Separate the logical casesL14–16

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

  1. L14
    cases hc
  2. L15
    cases hc_witness
  3. L16
    cases hc_witness_witness
04Establish hsL17–22

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

  1. L17
    have hs : ∃ u. ∃ v. BetaAt(u,v,j,c) ∧ BetaPrefixEqual(D,E,u,v,j)Definitions: BetaAt(u,v,j,c)BetaPrefixEqual(D,E,u,v,j)Original native command in the exact edition
  2. L18
    specialize beta_prefix_extend (j)
  3. L19
    specialize beta_prefix_extend (D)
  4. L20
    specialize beta_prefix_extend (E)
  5. L21
    specialize beta_prefix_extend (c)
  6. L22
    apply beta_prefix_extend
05Separate the logical casesL23–25

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

  1. L23
    cases hs
  2. L24
    cases hs_witness
  3. L25
    cases hs_witness_witness
06Construct an explicit witnessL26–29

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

  1. L26
    exists x
  2. L27
    exists x1
  3. L28
    exists x2
  4. L29
    exists x3
07Separate the logical casesL30–30

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

  1. L30
    split
08Use earlier factsL31–37

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

  1. L31
    specialize jordan_tuple_prefix_equal (B)
  2. L32
    specialize jordan_tuple_prefix_equal (C)
  3. L33
    specialize jordan_tuple_prefix_equal (x)
  4. L34
    specialize jordan_tuple_prefix_equal (x1)
  5. L35
    specialize jordan_tuple_prefix_equal (j)
  6. L36
    apply jordan_tuple_prefix_equal
  7. L37
    exact hc_witness_witness_right
09Separate the logical casesL38–38

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

  1. L38
    split
10Use earlier factsL39–45

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

  1. L39
    specialize jordan_tuple_prefix_equal (D)
  2. L40
    specialize jordan_tuple_prefix_equal (E)
  3. L41
    specialize jordan_tuple_prefix_equal (x2)
  4. L42
    specialize jordan_tuple_prefix_equal (x3)
  5. L43
    specialize jordan_tuple_prefix_equal (j)
  6. L44
    apply jordan_tuple_prefix_equal
  7. L45
    exact hs_witness_witness_right
11Separate the logical casesL46–46

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

  1. L46
    split
12Use earlier factsL47–48

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

  1. L47
    exact hc_witness_witness_left
  2. L48
    exact hs_witness_witness_left

Library-wide reading audit

Original defined command ledger · 48 lines
  1. 0001intro B
  2. 0002intro C
  3. 0003intro D
  4. 0004intro E
  5. 0005intro j
  6. 0006intro b
  7. 0007intro c
  8. 0008have hc : ∃ u. ∃ v. BetaAt(u,v,j,b) ∧ BetaPrefixEqual(B,C,u,v,j)
  9. 0009specialize beta_prefix_extend (j)
  10. 0010specialize beta_prefix_extend (B)
  11. 0011specialize beta_prefix_extend (C)
  12. 0012specialize beta_prefix_extend (b)
  13. 0013apply beta_prefix_extend
  14. 0014cases hc
  15. 0015cases hc_witness
  16. 0016cases hc_witness_witness
  17. 0017have hs : ∃ u. ∃ v. BetaAt(u,v,j,c) ∧ BetaPrefixEqual(D,E,u,v,j)
  18. 0018specialize beta_prefix_extend (j)
  19. 0019specialize beta_prefix_extend (D)
  20. 0020specialize beta_prefix_extend (E)
  21. 0021specialize beta_prefix_extend (c)
  22. 0022apply beta_prefix_extend
  23. 0023cases hs
  24. 0024cases hs_witness
  25. 0025cases hs_witness_witness
  26. 0026exists x
  27. 0027exists x1
  28. 0028exists x2
  29. 0029exists x3
  30. 0030split
  31. 0031specialize jordan_tuple_prefix_equal (B)
  32. 0032specialize jordan_tuple_prefix_equal (C)
  33. 0033specialize jordan_tuple_prefix_equal (x)
  34. 0034specialize jordan_tuple_prefix_equal (x1)
  35. 0035specialize jordan_tuple_prefix_equal (j)
  36. 0036apply jordan_tuple_prefix_equal
  37. 0037exact hc_witness_witness_right
  38. 0038split
  39. 0039specialize jordan_tuple_prefix_equal (D)
  40. 0040specialize jordan_tuple_prefix_equal (E)
  41. 0041specialize jordan_tuple_prefix_equal (x2)
  42. 0042specialize jordan_tuple_prefix_equal (x3)
  43. 0043specialize jordan_tuple_prefix_equal (j)
  44. 0044apply jordan_tuple_prefix_equal
  45. 0045exact hs_witness_witness_right
  46. 0046split
  47. 0047exact hc_witness_witness_left
  48. 0048exact hs_witness_witness_left