Equations
- LO.Arith.Nuon.ext L S i = S / LO.Arith.bexp S (i * ‖L‖) % L # 1
Instances For
@[simp]
theorem
LO.Arith.Nuon.ext_le_self
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
(L : V)
(S : V)
(i : V)
:
LO.Arith.Nuon.ext L S i ≤ S
theorem
LO.Arith.Nuon.ext_graph
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
(z : V)
(S : V)
(L : V)
(i : V)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
LO.Arith.Nuon.ext_defined
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
:
𝚺₀-Function₃ LO.Arith.Nuon.ext via LO.Arith.Nuon.extDef
instance
LO.Arith.Nuon.ext_Definable
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
:
𝚺₀-Function₃ LO.Arith.Nuon.ext
Equations
- ⋯ = ⋯
instance
LO.Arith.Nuon.instBounded₃Ext
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
:
LO.FirstOrder.Arith.Bounded₃ LO.Arith.Nuon.ext
Equations
- ⋯ = ⋯
@[simp]
theorem
LO.Arith.Nuon.ext_zero
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
(L : V)
(i : V)
:
LO.Arith.Nuon.ext L 0 i = 0
theorem
LO.Arith.Nuon.ext_zero_eq_self_of_le
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{L : V}
{S : V}
(h : ‖S‖ ≤ ‖L‖)
:
LO.Arith.Nuon.ext L S 0 = S
theorem
LO.Arith.Nuon.ext_eq_of_ge
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{L : V}
{S : V}
{S' : V}
{i : V}
(h : S ≤ S')
:
S / LO.Arith.bexp S' (i * ‖L‖) % L # 1 = LO.Arith.Nuon.ext L S i
theorem
LO.Arith.Nuon.ext_add₁_pow2
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{L : V}
{i : V}
{S₁ : V}
{S₂ : V}
{p : V}
(pp : LO.Arith.Pow2 p)
(h : (i + 1) * ‖L‖ < ‖p‖)
:
LO.Arith.Nuon.ext L (S₁ + S₂ * p) i = LO.Arith.Nuon.ext L S₁ i
theorem
LO.Arith.Nuon.ext_add₁_bexp
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{I : V}
{L : V}
{i : V}
{j : V}
{S₁ : V}
{S₂ : V}
(hi : i ≤ ‖I‖)
(hij : j < i)
:
LO.Arith.Nuon.ext L (S₁ + S₂ * LO.Arith.bexp (I # L) (i * ‖L‖)) j = LO.Arith.Nuon.ext L S₁ j
def
LO.Arith.Nuon.append
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
(I : V)
(L : V)
(S : V)
(i : V)
(X : V)
:
V
Equations
- LO.Arith.Nuon.append I L S i X = S % LO.Arith.bexp (I # L) (i * ‖L‖) + X * LO.Arith.bexp (I # L) (i * ‖L‖)
Instances For
theorem
LO.Arith.Nuon.append_nil
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
(I : V)
(L : V)
(S : V)
(i : V)
:
LO.Arith.Nuon.append I L S i 0 = S % LO.Arith.bexp (I # L) (i * ‖L‖)
theorem
LO.Arith.Nuon.ext_append_last
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
(I : V)
(L : V)
(S : V)
{i : V}
{X : V}
(hi : i ≤ ‖I‖)
(hX : ‖X‖ ≤ ‖L‖)
:
LO.Arith.Nuon.ext L (LO.Arith.Nuon.append I L S i X) i = X
theorem
LO.Arith.Nuon.ext_append_lt
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
(I : V)
(L : V)
(S : V)
{i : V}
{j : V}
{X : V}
(hi : i ≤ ‖I‖)
(hij : j < i)
:
LO.Arith.Nuon.ext L (LO.Arith.Nuon.append I L S i X) j = LO.Arith.Nuon.ext L S j
def
LO.Arith.Nuon.IsSegment
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
(L : V)
(A : V)
(start : V)
(intv : V)
(S : V)
:
Equations
- LO.Arith.Nuon.IsSegment L A start intv S = ∀ i < intv, LO.Arith.Nuon.ext L S (i + 1) = LO.Arith.Nuon.ext L S i + LO.Arith.fbit A (start + i)
Instances For
def
LO.Arith.Nuon.Segment
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
(U : V)
(L : V)
(A : V)
(start : V)
(intv : V)
(nₛ : V)
(nₑ : V)
:
Equations
- LO.Arith.Nuon.Segment U L A start intv nₛ nₑ = ∃ S < U, LO.Arith.Nuon.IsSegment L A start intv S ∧ LO.Arith.Nuon.ext L S 0 = nₛ ∧ LO.Arith.Nuon.ext L S intv = nₑ
Instances For
def
LO.Arith.Nuon.IsSeries
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
(U : V)
(I : V)
(L : V)
(A : V)
(iter : V)
(T : V)
:
Equations
- LO.Arith.Nuon.IsSeries U I L A iter T = ∀ l < iter, LO.Arith.Nuon.Segment U L A (‖I‖ * l) ‖I‖ (LO.Arith.Nuon.ext L T l) (LO.Arith.Nuon.ext L T (l + 1))
Instances For
def
LO.Arith.Nuon.Series
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
(U : V)
(I : V)
(L : V)
(A : V)
(iter : V)
(n : V)
:
Equations
- LO.Arith.Nuon.Series U I L A iter n = ∃ T < U, LO.Arith.Nuon.IsSeries U I L A iter T ∧ LO.Arith.Nuon.ext L T 0 = 0 ∧ LO.Arith.Nuon.ext L T iter = n
Instances For
def
LO.Arith.Nuon.SeriesSegment
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
(U : V)
(I : V)
(L : V)
(A : V)
(k : V)
(n : V)
:
Equations
Instances For
theorem
LO.Arith.Nuon.SeriesSegment.series
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{U : V}
{I : V}
{L : V}
{A : V}
{k : V}
{n : V}
(H : LO.Arith.Nuon.SeriesSegment U I L A k n)
:
theorem
LO.Arith.Nuon.IsSegment.le_add
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{L : V}
{A : V}
{start : V}
{intv : V}
{S : V}
(H : LO.Arith.Nuon.IsSegment L A start intv S)
(i : V)
:
i ≤ intv → LO.Arith.Nuon.ext L S i ≤ LO.Arith.Nuon.ext L S 0 + i
theorem
LO.Arith.Nuon.Segment.le_add
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{U : V}
{L : V}
{A : V}
{start : V}
{intv : V}
{nₛ : V}
{nₑ : V}
(H : LO.Arith.Nuon.Segment U L A start intv nₛ nₑ)
:
theorem
LO.Arith.Nuon.Segment.uniq
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{U : V}
{L : V}
{A : V}
{start : V}
{intv : V}
{nₛ : V}
{nₑ₁ : V}
{nₑ₂ : V}
(H₁ : LO.Arith.Nuon.Segment U L A start intv nₛ nₑ₁)
(H₂ : LO.Arith.Nuon.Segment U L A start intv nₛ nₑ₂)
:
nₑ₁ = nₑ₂
theorem
LO.Arith.Nuon.IsSeries.le_add
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{U : V}
{I : V}
{L : V}
{A : V}
{iter : V}
{T : V}
(H : LO.Arith.Nuon.IsSeries U I L A iter T)
(l : V)
:
l ≤ iter → LO.Arith.Nuon.ext L T l ≤ LO.Arith.Nuon.ext L T 0 + ‖I‖ * l
theorem
LO.Arith.Nuon.Series.le_add
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{U : V}
{I : V}
{L : V}
{A : V}
{iter : V}
{n : V}
(H : LO.Arith.Nuon.Series U I L A iter n)
:
theorem
LO.Arith.Nuon.Series.uniq
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{U : V}
{I : V}
{L : V}
{A : V}
{iter : V}
{n₁ : V}
{n₂ : V}
(H₁ : LO.Arith.Nuon.Series U I L A iter n₁)
(H₂ : LO.Arith.Nuon.Series U I L A iter n₂)
:
n₁ = n₂
theorem
LO.Arith.Nuon.SeriesSegment.le
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{U : V}
{I : V}
{L : V}
{A : V}
{k : V}
{n : V}
(H : LO.Arith.Nuon.SeriesSegment U I L A k n)
:
n ≤ k
theorem
LO.Arith.Nuon.SeriesSegment.initial
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{U : V}
{I : V}
{L : V}
{A : V}
(Upos : 0 < U)
:
LO.Arith.Nuon.SeriesSegment U I L A 0 0
theorem
LO.Arith.Nuon.SeriesSegment.zero
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{U : V}
{I : V}
{L : V}
{k : V}
(Upos : 0 < U)
:
LO.Arith.Nuon.SeriesSegment U I L 0 k 0
theorem
LO.Arith.Nuon.SeriesSegment.uniq
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{U : V}
{I : V}
{L : V}
{A : V}
{k : V}
{n₁ : V}
{n₂ : V}
(H₁ : LO.Arith.Nuon.SeriesSegment U I L A k n₁)
(H₂ : LO.Arith.Nuon.SeriesSegment U I L A k n₂)
:
n₁ = n₂
theorem
LO.Arith.Nuon.Segment.succ
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{U : V}
{I : V}
{L : V}
{A : V}
(hU : (I # L) ^ 2 ≤ U)
{start : V}
{intv : V}
{nₛ : V}
{nₑ : V}
(H : LO.Arith.Nuon.Segment U L A start intv nₛ nₑ)
(hintv : intv < ‖I‖)
(hnₛ : ‖nₛ + ‖I‖‖ ≤ ‖L‖)
:
LO.Arith.Nuon.Segment U L A start (intv + 1) nₛ (nₑ + LO.Arith.fbit A (start + intv))
theorem
LO.Arith.Nuon.Series.succ
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{U : V}
{I : V}
{L : V}
{A : V}
(hU : (I # L) ^ 2 ≤ U)
(hIL : ‖‖I‖ ^ 2‖ ≤ ‖L‖)
{iter : V}
{n : V}
{n' : V}
(HT : LO.Arith.Nuon.Series U I L A iter n)
(HS : LO.Arith.Nuon.Segment U L A (‖I‖ * iter) ‖I‖ n n')
(hiter : iter < ‖I‖)
:
LO.Arith.Nuon.Series U I L A (iter + 1) n'
theorem
LO.Arith.Nuon.SeriesSegment.succ
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{U : V}
{I : V}
{L : V}
{A : V}
(hU : (I # L) ^ 2 ≤ U)
(hIL : ‖‖I‖ ^ 2‖ ≤ ‖L‖)
{k : V}
{n : V}
(hk : k < ‖I‖ ^ 2)
(H : LO.Arith.Nuon.SeriesSegment U I L A k n)
:
LO.Arith.Nuon.SeriesSegment U I L A (k + 1) (n + LO.Arith.fbit A k)
Define $I$, $L$, $U$ to satisfy the following:
- $I$, $L$, $U$ are polynomial of $A$.
- $(I \# L)^2 \le U$
- $\| \| I \|^2 \| \le \|L\|$
- $\| A \| < \|I\|^2$
Equations
- LO.Arith.Nuon.polyI A = LO.Arith.bexp (2 * A) (√‖A‖)
Instances For
Equations
Instances For
Equations
- LO.Arith.Nuon.polyU A = (2 * A + 1) ^ 128
Instances For
theorem
LO.Arith.Nuon.bexp_four_mul
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{a : V}
{a' : V}
{x : V}
(hx : 4 * x < ‖a‖)
(hx' : x < ‖a'‖)
:
LO.Arith.bexp a (4 * x) = LO.Arith.bexp a' x ^ 4
theorem
LO.Arith.Nuon.polyI_hash_self_polybounded
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{A : V}
(pos : 0 < A)
:
LO.Arith.Nuon.polyI A # LO.Arith.Nuon.polyI A ≤ (2 * A + 1) ^ 4
theorem
LO.Arith.Nuon.polyI_hash_polyL_polybounded
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{A : V}
(pos : 0 < A)
:
LO.Arith.Nuon.polyI A # LO.Arith.Nuon.polyL A ≤ (2 * A + 1) ^ 64
theorem
LO.Arith.Nuon.sq_polyI_hash_polyL_polybounded
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{A : V}
(pos : 0 < A)
:
(LO.Arith.Nuon.polyI A # LO.Arith.Nuon.polyL A) ^ 2 ≤ LO.Arith.Nuon.polyU A
def
LO.Arith.Nuon.NuonAux
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
(A : V)
(k : V)
(n : V)
:
Equations
- LO.Arith.Nuon.NuonAux A k n = LO.Arith.Nuon.SeriesSegment (LO.Arith.Nuon.polyU A) (LO.Arith.Nuon.polyI A) (LO.Arith.Nuon.polyL A) A k n
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
LO.Arith.Nuon.isSegmentDef_defined
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
:
LO.FirstOrder.Arith.HierarchySymbol.Defined
(fun (v : Fin 5 → V) => LO.Arith.Nuon.IsSegment (v 0) (v 1) (v 2) (v 3) (v 4)) LO.Arith.Nuon.isSegmentDef
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
LO.Arith.Nuon.segmentDef_defined
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
:
LO.FirstOrder.Arith.HierarchySymbol.Defined
(fun (v : Fin 7 → V) => LO.Arith.Nuon.Segment (v 0) (v 1) (v 2) (v 3) (v 4) (v 5) (v 6)) LO.Arith.Nuon.segmentDef
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
LO.Arith.Nuon.bex_eq_le_iff
{V : Type u_1}
[LO.ORingStruc V]
{z : V}
{p : V → Prop}
{b : V}
:
theorem
LO.Arith.Nuon.bex_eq_lt_iff
{V : Type u_1}
[LO.ORingStruc V]
{z : V}
{p : V → Prop}
{b : V}
:
theorem
LO.Arith.Nuon.isSerieDef_defined
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
:
LO.FirstOrder.Arith.HierarchySymbol.Defined
(fun (v : Fin 6 → V) => LO.Arith.Nuon.IsSeries (v 0) (v 1) (v 2) (v 3) (v 4) (v 5)) LO.Arith.Nuon.isSeriesDef
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
LO.Arith.Nuon.seriesDef_defined
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
:
LO.FirstOrder.Arith.HierarchySymbol.Defined
(fun (v : Fin 6 → V) => LO.Arith.Nuon.Series (v 0) (v 1) (v 2) (v 3) (v 4) (v 5)) LO.Arith.Nuon.seriesDef
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
LO.Arith.Nuon.seriesSegmentDef_defined
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
:
LO.FirstOrder.Arith.HierarchySymbol.Defined
(fun (v : Fin 6 → V) => LO.Arith.Nuon.SeriesSegment (v 0) (v 1) (v 2) (v 3) (v 4) (v 5))
LO.Arith.Nuon.seriesSegmentDef
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
LO.Arith.Nuon.nuonAux_defined
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
:
𝚺₀-Relation₃ LO.Arith.Nuon.NuonAux via LO.Arith.Nuon.nuonAuxDef
instance
LO.Arith.Nuon.nuonAux_definable
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
:
𝚺₀-Relation₃ LO.Arith.Nuon.NuonAux
Equations
- ⋯ = ⋯
instance
LO.Arith.Nuon.instBounded₃Ext_1
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
:
LO.FirstOrder.Arith.Bounded₃ LO.Arith.Nuon.ext
Equations
- ⋯ = ⋯
@[simp]
theorem
LO.Arith.Nuon.NuonAux.initial
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
(A : V)
:
LO.Arith.Nuon.NuonAux A 0 0
@[simp]
theorem
LO.Arith.Nuon.NuonAux.initial_iff
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
(A : V)
(n : V)
:
LO.Arith.Nuon.NuonAux A 0 n ↔ n = 0
@[simp]
theorem
LO.Arith.Nuon.NuonAux.zero
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
(k : V)
:
LO.Arith.Nuon.NuonAux 0 k 0
theorem
LO.Arith.Nuon.NuonAux.le
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{A : V}
{k : V}
{n : V}
(H : LO.Arith.Nuon.NuonAux A k n)
:
n ≤ k
theorem
LO.Arith.Nuon.NuonAux.uniq
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{A : V}
{k : V}
{n₁ : V}
{n₂ : V}
(H₁ : LO.Arith.Nuon.NuonAux A k n₁)
(H₂ : LO.Arith.Nuon.NuonAux A k n₂)
:
n₁ = n₂
theorem
LO.Arith.Nuon.NuonAux.succ
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{n : V}
{A : V}
{k : V}
(H : LO.Arith.Nuon.NuonAux A k n)
(hk : k ≤ ‖A‖)
:
LO.Arith.Nuon.NuonAux A (k + 1) (n + LO.Arith.fbit A k)
theorem
LO.Arith.Nuon.NuonAux.exists
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{A : V}
{k : V}
(hk : k ≤ ‖A‖)
:
∃ (n : V), LO.Arith.Nuon.NuonAux A k n
theorem
LO.Arith.Nuon.NuonAux.succ_elim
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{n : V}
{A : V}
{k : V}
(hk : k ≤ ‖A‖)
(H : LO.Arith.Nuon.NuonAux A (k + 1) n)
:
∃ (n' : V), n = n' + LO.Arith.fbit A k ∧ LO.Arith.Nuon.NuonAux A k n'
theorem
LO.Arith.Nuon.NuonAux.succ_iff
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{n : V}
{A : V}
{k : V}
(hk : k ≤ ‖A‖)
:
LO.Arith.Nuon.NuonAux A (k + 1) (n + LO.Arith.fbit A k) ↔ LO.Arith.Nuon.NuonAux A k n
theorem
LO.Arith.Nuon.NuonAux.two_mul
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{A : V}
{k : V}
{n : V}
(hk : k ≤ ‖A‖)
:
LO.Arith.Nuon.NuonAux A k n → LO.Arith.Nuon.NuonAux (2 * A) (k + 1) n
theorem
LO.Arith.Nuon.NuonAux.two_mul_add_one
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{A : V}
{k : V}
{n : V}
(hk : k ≤ ‖A‖)
:
LO.Arith.Nuon.NuonAux A k n → LO.Arith.Nuon.NuonAux (2 * A + 1) (k + 1) (n + 1)
Equations
- LO.Arith.Nuon A n = LO.Arith.Nuon.NuonAux A ‖A‖ n
Instances For
theorem
LO.Arith.Nuon.exists_unique
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
(A : V)
:
∃! n : V, LO.Arith.Nuon A n
Equations
Instances For
@[simp]
theorem
LO.Arith.nuon_nuon
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
(a : V)
:
LO.Arith.Nuon a (LO.Arith.nuon a)
theorem
LO.Arith.Nuon.nuon_eq
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{a : V}
{b : V}
(h : LO.Arith.Nuon a b)
:
LO.Arith.nuon a = b
theorem
LO.Arith.Nuon.nuon_eq_iff
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
{a : V}
{b : V}
:
b = LO.Arith.nuon a ↔ LO.Arith.Nuon a b
theorem
LO.Arith.nuon_bit0
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
(a : V)
:
LO.Arith.nuon (2 * a) = LO.Arith.nuon a
theorem
LO.Arith.nuon_bit1
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
(a : V)
:
LO.Arith.nuon (2 * a + 1) = LO.Arith.nuon a + 1
@[simp]
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
LO.Arith.nuon_defined
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
:
𝚺₀-Function₁ LO.Arith.nuon via LO.FirstOrder.Arith.nuonDef
@[simp]
instance
LO.Arith.nuon_definable
{V : Type u_1}
[LO.ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀ + 𝛀₁]
:
𝚺₀-Function₁ LO.Arith.nuon
Equations
- ⋯ = ⋯