BT005G · Bertrand theorem

beta_product_functional

Stable checked-use theorem · independently kernel verified

The fully expanded beta-coded Product relation is functional in its terminal product.

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 original first-admission records.

Statement with defined notation

∀ b. ∀ c. ∀ l. ∀ n. ∀ u. ∀ v. ∀ m. ∀ w. ∀ d. BetaAt(u,v,0,1) ∧ (BetaAt(u,v,l,n) ∧ (∀ x. Lt(x,l) → ∃ y. ∃ z. ∃ k. BetaAt(b,c,x,y) ∧ (BetaAt(u,v,x,z) ∧ (BetaAt(u,v,S x,k) ∧ k = z · y)))) → BetaAt(w,d,0,1) ∧ (BetaAt(w,d,l,m) ∧ (∀ x. Lt(x,l) → ∃ y. ∃ z. ∃ k. BetaAt(b,c,x,y) ∧ (BetaAt(w,d,x,z) ∧ (BetaAt(w,d,S x,k) ∧ k = z · y)))) → n = m

Every purple notation token opens its conservative definition. Expanding the displayed statement recovers the exact first-order Peano-arithmetic formula checked by the unchanged kernel.

Definitions used by this theorem

In the theorem statement

12 occurrences

In local proof propositions

18 occurrences

Exact expanded native-PA statement
forall b c l n u v m w d. (((exists h. h + S 1 = S ((S 0) * v)) /\ exists q. u = q * S ((S 0) * v) + 1) /\ (((exists h. h + S n = S ((S l) * v)) /\ exists q. u = q * S ((S l) * v) + n) /\ forall i. (exists h. h + S i = l) -> exists p r s. (((exists h. h + S p = S ((S i) * c)) /\ exists q. b = q * S ((S i) * c) + p) /\ (((exists h. h + S r = S ((S i) * v)) /\ exists q. u = q * S ((S i) * v) + r) /\ (((exists h. h + S s = S ((S S i) * v)) /\ exists q. u = q * S ((S S i) * v) + s) /\ s = r * p))))) -> (((exists h. h + S 1 = S ((S 0) * d)) /\ exists q. w = q * S ((S 0) * d) + 1) /\ (((exists h. h + S m = S ((S l) * d)) /\ exists q. w = q * S ((S l) * d) + m) /\ forall i. (exists h. h + S i = l) -> exists p r s. (((exists h. h + S p = S ((S i) * c)) /\ exists q. b = q * S ((S i) * c) + p) /\ (((exists h. h + S r = S ((S i) * d)) /\ exists q. w = q * S ((S i) * d) + r) /\ (((exists h. h + S s = S ((S S i) * d)) /\ exists q. w = q * S ((S S i) * d) + s) /\ s = r * p))))) -> n = m

Proof neighborhood

Direct theorem prerequisites

Direct theorem dependents

Definition-aware tactic body

Only local propositions introduced by have or suffices are compacted. Every changed line has an exact-AST conservative-expansion receipt; the kernel still receives the immutable original tactic script.

Read the argument

Proof checkpoints

153 script commands · 41 reading checkpoints · 11 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 (4)
01Fix variables and assumptionsL1–2

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

  1. L1
    intro b
  2. L2
    intro c
02Induction on lL3–11

Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.

  1. L3
    induction l
  2. L4
    intro n
  3. L5
    intro u
  4. L6
    intro v
  5. L7
    intro m
  6. L8
    intro w
  7. L9
    intro d
  8. L10
    intro h1
  9. L11
    intro h2
03Separate the logical casesL12–15

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

  1. L12
    cases h1
  2. L13
    cases h1_right
  3. L14
    cases h2
  4. L15
    cases h2_right
04Establish hnL16–24

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

  1. L16
    have hn : n = 1
  2. L17
    specialize beta_at_unique u
  3. L18
    specialize beta_at_unique v
  4. L19
    specialize beta_at_unique 0
  5. L20
    specialize beta_at_unique n
  6. L21
    specialize beta_at_unique 1
  7. L22
    apply beta_at_unique
  8. L23
    exact h1_right_left
  9. L24
    exact h1_left
05Establish hmL25–34

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

  1. L25
    have hm : m = 1
  2. L26
    specialize beta_at_unique w
  3. L27
    specialize beta_at_unique d
  4. L28
    specialize beta_at_unique 0
  5. L29
    specialize beta_at_unique m
  6. L30
    specialize beta_at_unique 1
  7. L31
    apply beta_at_unique
  8. L32
    exact h2_right_left
  9. L33
    exact h2_left
  10. L34
    trans 1
06Use earlier factsL35–35

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

  1. L35
    exact hn
07Calculate and transport equalitiesL36–36

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

  1. L36
    symm
08Use earlier factsL37–37

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

  1. L37
    exact hm
09Fix variables and assumptionsL38–45

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

  1. L38
    intro n
  2. L39
    intro u
  3. L40
    intro v
  4. L41
    intro m
  5. L42
    intro w
  6. L43
    intro d
  7. L44
    intro h1
  8. L45
    intro h2
10Separate the logical casesL46–49

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

  1. L46
    cases h1
  2. L47
    cases h1_right
  3. L48
    cases h2
  4. L49
    cases h2_right
11Establish hstep1L50–54

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

  1. L50
    have hstep1 : ∃ p. ∃ r. ∃ s. BetaAt(b,c,l,p) ∧ (BetaAt(u,v,l,r) ∧ (BetaAt(u,v,S l,s) ∧ s = r · p))Definitions: BetaAt(b,c,l,p)BetaAt(u,v,l,r)BetaAt(u,v,S l,s)Original native command in the exact edition
  2. L51
    specialize h1_right_right l
  3. L52
    apply h1_right_right
  4. L53
    specialize le_refl (S l)
  5. L54
    exact le_refl
12Separate the logical casesL55–60

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

  1. L55
    cases hstep1
  2. L56
    cases hstep1_witness
  3. L57
    cases hstep1_witness_witness
  4. L58
    cases hstep1_witness_witness_witness
  5. L59
    cases hstep1_witness_witness_witness_right
  6. L60
    cases hstep1_witness_witness_witness_right_right
13Establish hstep2L61–65

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

  1. L61
    have hstep2 : ∃ p. ∃ r. ∃ s. BetaAt(b,c,l,p) ∧ (BetaAt(w,d,l,r) ∧ (BetaAt(w,d,S l,s) ∧ s = r · p))Definitions: BetaAt(b,c,l,p)BetaAt(w,d,l,r)BetaAt(w,d,S l,s)Original native command in the exact edition
  2. L62
    specialize h2_right_right l
  3. L63
    apply h2_right_right
  4. L64
    specialize le_refl (S l)
  5. L65
    exact le_refl
14Separate the logical casesL66–71

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

  1. L66
    cases hstep2
  2. L67
    cases hstep2_witness
  3. L68
    cases hstep2_witness_witness
  4. L69
    cases hstep2_witness_witness_witness
  5. L70
    cases hstep2_witness_witness_witness_right
  6. L71
    cases hstep2_witness_witness_witness_right_right
15Establish hnL72–80

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

  1. L72
    have hn : n = x2
  2. L73
    specialize beta_at_unique u
  3. L74
    specialize beta_at_unique v
  4. L75
    specialize beta_at_unique (S l)
  5. L76
    specialize beta_at_unique n
  6. L77
    specialize beta_at_unique x2
  7. L78
    apply beta_at_unique
  8. L79
    exact h1_right_left
  9. L80
    exact hstep1_witness_witness_witness_right_right_left
16Establish hmL81–89

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

  1. L81
    have hm : m = x5
  2. L82
    specialize beta_at_unique w
  3. L83
    specialize beta_at_unique d
  4. L84
    specialize beta_at_unique (S l)
  5. L85
    specialize beta_at_unique m
  6. L86
    specialize beta_at_unique x5
  7. L87
    apply beta_at_unique
  8. L88
    exact h2_right_left
  9. L89
    exact hstep2_witness_witness_witness_right_right_left
17Establish hpL90–98

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

  1. L90
    have hp : x = x3
  2. L91
    specialize beta_at_unique b
  3. L92
    specialize beta_at_unique c
  4. L93
    specialize beta_at_unique l
  5. L94
    specialize beta_at_unique x
  6. L95
    specialize beta_at_unique x3
  7. L96
    apply beta_at_unique
  8. L97
    exact hstep1_witness_witness_witness_left
  9. L98
    exact hstep2_witness_witness_witness_left
18Establish hprod1L99–99

Establish this local claim before using it. It is not an additional assumption.

  1. L99
    have hprod1 : BetaAt(u,v,0,1) ∧ (BetaAt(u,v,l,x1) ∧ (∀ x. Lt(x,l) → ∃ y. ∃ z. ∃ n. BetaAt(b,c,x,y) ∧ (BetaAt(u,v,x,z) ∧ (BetaAt(u,v,S x,n) ∧ n = z · y))))Definitions: BetaAt(u,v,0,1)BetaAt(u,v,l,x1)Lt(x,l)BetaAt(b,c,x,y)BetaAt(u,v,x,z)BetaAt(u,v,S x,n)Original native command in the exact edition
19Separate the logical casesL100–100

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

  1. L100
    split
20Use earlier factsL101–101

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

  1. L101
    exact h1_left
21Separate the logical casesL102–102

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

  1. L102
    split
22Use earlier factsL103–103

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

  1. L103
    exact hstep1_witness_witness_witness_right_left
23Fix variables and assumptionsL104–105

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

  1. L104
    intro i
  2. L105
    intro hi
24Use earlier factsL106–111

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

  1. L106
    specialize h1_right_right i
  2. L107
    apply h1_right_right
  3. L108
    specialize le_succ (S i)
  4. L109
    specialize le_succ l
  5. L110
    apply le_succ
  6. L111
    exact hi
25Establish hprod2L112–112

Establish this local claim before using it. It is not an additional assumption.

  1. L112
    have hprod2 : BetaAt(w,d,0,1) ∧ (BetaAt(w,d,l,x4) ∧ (∀ x. Lt(x,l) → ∃ y. ∃ z. ∃ n. BetaAt(b,c,x,y) ∧ (BetaAt(w,d,x,z) ∧ (BetaAt(w,d,S x,n) ∧ n = z · y))))Definitions: BetaAt(w,d,0,1)BetaAt(w,d,l,x4)Lt(x,l)BetaAt(b,c,x,y)BetaAt(w,d,x,z)BetaAt(w,d,S x,n)Original native command in the exact edition
26Separate the logical casesL113–113

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

  1. L113
    split
27Use earlier factsL114–114

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

  1. L114
    exact h2_left
28Separate the logical casesL115–115

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

  1. L115
    split
29Use earlier factsL116–116

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

  1. L116
    exact hstep2_witness_witness_witness_right_left
30Fix variables and assumptionsL117–118

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

  1. L117
    intro i
  2. L118
    intro hi
31Use earlier factsL119–124

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

  1. L119
    specialize h2_right_right i
  2. L120
    apply h2_right_right
  3. L121
    specialize le_succ (S i)
  4. L122
    specialize le_succ l
  5. L123
    apply le_succ
  6. L124
    exact hi
32Establish hprevL125–134

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

  1. L125
    have hprev : x1 = x4
  2. L126
    specialize IH x1
  3. L127
    specialize IH u
  4. L128
    specialize IH v
  5. L129
    specialize IH x4
  6. L130
    specialize IH w
  7. L131
    specialize IH d
  8. L132
    apply IH
  9. L133
    exact hprod1
  10. L134
    exact hprod2
33Establish hmulL135–144

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

  1. L135
    have hmul : x1 * x = x4 * x3
  2. L136
    specialize mul_congr x1
  3. L137
    specialize mul_congr x4
  4. L138
    specialize mul_congr x
  5. L139
    specialize mul_congr x3
  6. L140
    apply mul_congr
  7. L141
    exact hprev
  8. L142
    exact hp
  9. L143
    trans x2
  10. L144
    exact hn
34Calculate and transport equalitiesL145–145

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

  1. L145
    trans x1 * x
35Use earlier factsL146–146

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

  1. L146
    exact hstep1_witness_witness_witness_right_right_right
36Calculate and transport equalitiesL147–147

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

  1. L147
    trans x4 * x3
37Use earlier factsL148–148

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

  1. L148
    exact hmul
38Calculate and transport equalitiesL149–150

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

  1. L149
    trans x5
  2. L150
    symm
39Use earlier factsL151–151

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

  1. L151
    exact hstep2_witness_witness_witness_right_right_right
40Calculate and transport equalitiesL152–152

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

  1. L152
    symm
41Use earlier factsL153–153

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

  1. L153
    exact hm

Library-wide reading audit

Original defined command ledger · 153 lines
  1. 0001intro b
  2. 0002intro c
  3. 0003induction l
  4. 0004intro n
  5. 0005intro u
  6. 0006intro v
  7. 0007intro m
  8. 0008intro w
  9. 0009intro d
  10. 0010intro h1
  11. 0011intro h2
  12. 0012cases h1
  13. 0013cases h1_right
  14. 0014cases h2
  15. 0015cases h2_right
  16. 0016have hn : n = 1
  17. 0017specialize beta_at_unique u
  18. 0018specialize beta_at_unique v
  19. 0019specialize beta_at_unique 0
  20. 0020specialize beta_at_unique n
  21. 0021specialize beta_at_unique 1
  22. 0022apply beta_at_unique
  23. 0023exact h1_right_left
  24. 0024exact h1_left
  25. 0025have hm : m = 1
  26. 0026specialize beta_at_unique w
  27. 0027specialize beta_at_unique d
  28. 0028specialize beta_at_unique 0
  29. 0029specialize beta_at_unique m
  30. 0030specialize beta_at_unique 1
  31. 0031apply beta_at_unique
  32. 0032exact h2_right_left
  33. 0033exact h2_left
  34. 0034trans 1
  35. 0035exact hn
  36. 0036symm
  37. 0037exact hm
  38. 0038intro n
  39. 0039intro u
  40. 0040intro v
  41. 0041intro m
  42. 0042intro w
  43. 0043intro d
  44. 0044intro h1
  45. 0045intro h2
  46. 0046cases h1
  47. 0047cases h1_right
  48. 0048cases h2
  49. 0049cases h2_right
  50. 0050have hstep1 : ∃ p. ∃ r. ∃ s. BetaAt(b,c,l,p) ∧ (BetaAt(u,v,l,r) ∧ (BetaAt(u,v,S l,s) ∧ s = r · p))
    Exact native replay linehave hstep1 : exists p r s. (((exists h. h + S p = S ((S l) * c)) /\ exists q. b = q * S ((S l) * c) + p) /\ (((exists h. h + S r = S ((S l) * v)) /\ exists q. u = q * S ((S l) * v) + r) /\ (((exists h. h + S s = S ((S S l) * v)) /\ exists q. u = q * S ((S S l) * v) + s) /\ s = r * p)))
  51. 0051specialize h1_right_right l
  52. 0052apply h1_right_right
  53. 0053specialize le_refl (S l)
  54. 0054exact le_refl
  55. 0055cases hstep1
  56. 0056cases hstep1_witness
  57. 0057cases hstep1_witness_witness
  58. 0058cases hstep1_witness_witness_witness
  59. 0059cases hstep1_witness_witness_witness_right
  60. 0060cases hstep1_witness_witness_witness_right_right
  61. 0061have hstep2 : ∃ p. ∃ r. ∃ s. BetaAt(b,c,l,p) ∧ (BetaAt(w,d,l,r) ∧ (BetaAt(w,d,S l,s) ∧ s = r · p))
    Exact native replay linehave hstep2 : exists p r s. (((exists h. h + S p = S ((S l) * c)) /\ exists q. b = q * S ((S l) * c) + p) /\ (((exists h. h + S r = S ((S l) * d)) /\ exists q. w = q * S ((S l) * d) + r) /\ (((exists h. h + S s = S ((S S l) * d)) /\ exists q. w = q * S ((S S l) * d) + s) /\ s = r * p)))
  62. 0062specialize h2_right_right l
  63. 0063apply h2_right_right
  64. 0064specialize le_refl (S l)
  65. 0065exact le_refl
  66. 0066cases hstep2
  67. 0067cases hstep2_witness
  68. 0068cases hstep2_witness_witness
  69. 0069cases hstep2_witness_witness_witness
  70. 0070cases hstep2_witness_witness_witness_right
  71. 0071cases hstep2_witness_witness_witness_right_right
  72. 0072have hn : n = x2
  73. 0073specialize beta_at_unique u
  74. 0074specialize beta_at_unique v
  75. 0075specialize beta_at_unique (S l)
  76. 0076specialize beta_at_unique n
  77. 0077specialize beta_at_unique x2
  78. 0078apply beta_at_unique
  79. 0079exact h1_right_left
  80. 0080exact hstep1_witness_witness_witness_right_right_left
  81. 0081have hm : m = x5
  82. 0082specialize beta_at_unique w
  83. 0083specialize beta_at_unique d
  84. 0084specialize beta_at_unique (S l)
  85. 0085specialize beta_at_unique m
  86. 0086specialize beta_at_unique x5
  87. 0087apply beta_at_unique
  88. 0088exact h2_right_left
  89. 0089exact hstep2_witness_witness_witness_right_right_left
  90. 0090have hp : x = x3
  91. 0091specialize beta_at_unique b
  92. 0092specialize beta_at_unique c
  93. 0093specialize beta_at_unique l
  94. 0094specialize beta_at_unique x
  95. 0095specialize beta_at_unique x3
  96. 0096apply beta_at_unique
  97. 0097exact hstep1_witness_witness_witness_left
  98. 0098exact hstep2_witness_witness_witness_left
  99. 0099have hprod1 : BetaAt(u,v,0,1) ∧ (BetaAt(u,v,l,x1) ∧ (∀ x. Lt(x,l) → ∃ y. ∃ z. ∃ n. BetaAt(b,c,x,y) ∧ (BetaAt(u,v,x,z) ∧ (BetaAt(u,v,S x,n) ∧ n = z · y))))
    Exact native replay linehave hprod1 : (((exists h. h + S 1 = S ((S 0) * v)) /\ exists q. u = q * S ((S 0) * v) + 1) /\ (((exists h. h + S x1 = S ((S l) * v)) /\ exists q. u = q * S ((S l) * v) + x1) /\ forall i. (exists h. h + S i = l) -> exists p r s. (((exists h. h + S p = S ((S i) * c)) /\ exists q. b = q * S ((S i) * c) + p) /\ (((exists h. h + S r = S ((S i) * v)) /\ exists q. u = q * S ((S i) * v) + r) /\ (((exists h. h + S s = S ((S S i) * v)) /\ exists q. u = q * S ((S S i) * v) + s) /\ s = r * p)))))
  100. 0100split
  101. 0101exact h1_left
  102. 0102split
  103. 0103exact hstep1_witness_witness_witness_right_left
  104. 0104intro i
  105. 0105intro hi
  106. 0106specialize h1_right_right i
  107. 0107apply h1_right_right
  108. 0108specialize le_succ (S i)
  109. 0109specialize le_succ l
  110. 0110apply le_succ
  111. 0111exact hi
  112. 0112have hprod2 : BetaAt(w,d,0,1) ∧ (BetaAt(w,d,l,x4) ∧ (∀ x. Lt(x,l) → ∃ y. ∃ z. ∃ n. BetaAt(b,c,x,y) ∧ (BetaAt(w,d,x,z) ∧ (BetaAt(w,d,S x,n) ∧ n = z · y))))
    Exact native replay linehave hprod2 : (((exists h. h + S 1 = S ((S 0) * d)) /\ exists q. w = q * S ((S 0) * d) + 1) /\ (((exists h. h + S x4 = S ((S l) * d)) /\ exists q. w = q * S ((S l) * d) + x4) /\ forall i. (exists h. h + S i = l) -> exists p r s. (((exists h. h + S p = S ((S i) * c)) /\ exists q. b = q * S ((S i) * c) + p) /\ (((exists h. h + S r = S ((S i) * d)) /\ exists q. w = q * S ((S i) * d) + r) /\ (((exists h. h + S s = S ((S S i) * d)) /\ exists q. w = q * S ((S S i) * d) + s) /\ s = r * p)))))
  113. 0113split
  114. 0114exact h2_left
  115. 0115split
  116. 0116exact hstep2_witness_witness_witness_right_left
  117. 0117intro i
  118. 0118intro hi
  119. 0119specialize h2_right_right i
  120. 0120apply h2_right_right
  121. 0121specialize le_succ (S i)
  122. 0122specialize le_succ l
  123. 0123apply le_succ
  124. 0124exact hi
  125. 0125have hprev : x1 = x4
  126. 0126specialize IH x1
  127. 0127specialize IH u
  128. 0128specialize IH v
  129. 0129specialize IH x4
  130. 0130specialize IH w
  131. 0131specialize IH d
  132. 0132apply IH
  133. 0133exact hprod1
  134. 0134exact hprod2
  135. 0135have hmul : x1 * x = x4 * x3
  136. 0136specialize mul_congr x1
  137. 0137specialize mul_congr x4
  138. 0138specialize mul_congr x
  139. 0139specialize mul_congr x3
  140. 0140apply mul_congr
  141. 0141exact hprev
  142. 0142exact hp
  143. 0143trans x2
  144. 0144exact hn
  145. 0145trans x1 * x
  146. 0146exact hstep1_witness_witness_witness_right_right_right
  147. 0147trans x4 * x3
  148. 0148exact hmul
  149. 0149trans x5
  150. 0150symm
  151. 0151exact hstep2_witness_witness_witness_right_right_right
  152. 0152symm
  153. 0153exact hm