Hereditary Finite Set Theory in #
@[simp]
@[simp]
theorem
LO.Arith.lt_of_mem_dom
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{x y m : V}
(h : ⟪x, y⟫ ∈ m)
:
x < m
theorem
LO.Arith.lt_of_mem_rng
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{x y m : V}
(h : ⟪x, y⟫ ∈ m)
:
y < m
theorem
LO.Arith.insert_subset_insert_of_subset
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{a b : V}
(x : V)
(h : a ⊆ b)
:
Equations
- ⋃ʰᶠ s = Classical.choose! ⋯
Equations
- LO.Arith.«term⋃ʰᶠ_» = Lean.ParserDescr.node `LO.Arith.«term⋃ʰᶠ_» 80 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "⋃ʰᶠ ") (Lean.ParserDescr.cat `term 80))
@[simp]
@[simp]
Equations
- One or more equations did not get rendered due to their size.
theorem
LO.Arith.sUnion_defined
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
:
𝚺₀-Function₁ fun (x : V) => ⋃ʰᶠ x via FirstOrder.Arith.sUnionDef
@[simp]
instance
LO.Arith.sUnion_definable
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
:
𝚺₀-Function₁ fun (x : V) => ⋃ʰᶠ x
instance
LO.Arith.sUnion_definable'
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(ℌ : FirstOrder.Arith.HierarchySymbol)
:
ℌ-Function₁ fun (x : V) => ⋃ʰᶠ x
Equations
- LO.Arith.union a b = ⋃ʰᶠ {a, b}
Equations
- LO.Arith.instUnion_arithmetization = { union := LO.Arith.union }
Equations
- One or more equations did not get rendered due to their size.
theorem
LO.Arith.union_defined
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
:
𝚺₀-Function₂ fun (x1 x2 : V) => x1 ∪ x2 via FirstOrder.Arith.unionDef
@[simp]
theorem
LO.Arith.union_defined_iff
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(v : Fin 3 → V)
:
V ⊧/v (FirstOrder.Arith.HierarchySymbol.Semiformula.val FirstOrder.Arith.unionDef) ↔ v 0 = v 1 ∪ v 2
instance
LO.Arith.union_definable
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
:
𝚺₀-Function₂ fun (x1 x2 : V) => x1 ∪ x2
instance
LO.Arith.union_definable'
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(ℌ : FirstOrder.Arith.HierarchySymbol)
:
ℌ-Function₂ fun (x1 x2 : V) => x1 ∪ x2
@[simp]
instance
LO.Arith.instBounded₂Union
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
:
FirstOrder.Arith.Bounded₂ fun (x1 x2 : V) => x1 ∪ x2
@[simp]
@[simp]
@[simp]
theorem
LO.Arith.union_succ_union_union_left
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(a b c : V)
:
@[simp]
theorem
LO.Arith.union_succ_union_union_right
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(a b c : V)
:
@[simp]
@[simp]
Equations
- ⋂ʰᶠ s = Classical.choose! ⋯
Equations
- LO.Arith.«term⋂ʰᶠ_» = Lean.ParserDescr.node `LO.Arith.«term⋂ʰᶠ_» 80 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "⋂ʰᶠ ") (Lean.ParserDescr.cat `term 80))
@[simp]
Equations
- LO.Arith.inter a b = ⋂ʰᶠ {a, b}
Equations
- LO.Arith.instInter_arithmetization = { inter := LO.Arith.inter }
theorem
LO.Arith.inter_eq_self_of_subset
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{a b : V}
(h : a ⊆ b)
:
Equations
- a ×ʰᶠ b = Classical.choose! ⋯
Equations
- LO.Arith.«term_×ʰᶠ_» = Lean.ParserDescr.trailingNode `LO.Arith.«term_×ʰᶠ_» 60 60 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ×ʰᶠ ") (Lean.ParserDescr.cat `term 61))
theorem
LO.Arith.pair_mem_product
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{x y a b : V}
(hx : x ∈ a)
(hy : y ∈ b)
:
Equations
- One or more equations did not get rendered due to their size.
theorem
LO.Arith.product_defined
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
:
𝚺₀-Function₂ fun (x1 x2 : V) => x1 ×ʰᶠ x2 via FirstOrder.Arith.productDef
@[simp]
theorem
LO.Arith.product_defined_iff
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(v : Fin 3 → V)
:
V ⊧/v (FirstOrder.Arith.HierarchySymbol.Semiformula.val FirstOrder.Arith.productDef) ↔ v 0 = v 1 ×ʰᶠ v 2
instance
LO.Arith.product_definable
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
:
𝚺₀-Function₂ fun (x1 x2 : V) => x1 ×ʰᶠ x2
instance
LO.Arith.product_definable'
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(ℌ : FirstOrder.Arith.HierarchySymbol)
:
ℌ-Function₂ fun (x1 x2 : V) => x1 ×ʰᶠ x2
Equations
Equations
- One or more equations did not get rendered due to their size.
@[simp]
instance
LO.Arith.domain_definable'
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(ℌ : FirstOrder.Arith.HierarchySymbol)
:
@[simp]
@[simp]
theorem
LO.Arith.mem_domain_of_pair_mem
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{x y s : V}
(h : ⟪x, y⟫ ∈ s)
:
theorem
LO.Arith.domain_subset_domain_of_subset
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{s t : V}
(h : s ⊆ t)
:
Range #
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
@[simp]
instance
LO.Arith.range_definable'
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(ℌ : FirstOrder.Arith.HierarchySymbol)
:
Disjoint #
Equations
- LO.Arith.Disjoint s t = (s ∩ t = ∅)
theorem
LO.Arith.Disjoint.not_of_mem
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{s t x : V}
(hs : x ∈ s)
(ht : x ∈ t)
:
theorem
LO.Arith.Disjoint.symm
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{s t : V}
(h : Disjoint s t)
:
Disjoint t s
@[simp]
Mapping #
Equations
- LO.Arith.IsMapping m = ∀ x ∈ LO.Arith.domain m, ∃! y : V, ⟪x, y⟫ ∈ m
Equations
- One or more equations did not get rendered due to their size.
@[simp]
instance
LO.Arith.isMapping_definable'
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(ℌ : FirstOrder.Arith.HierarchySymbol)
:
theorem
LO.Arith.IsMapping.get_exists_uniq
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{m : V}
(h : IsMapping m)
{x : V}
(hx : x ∈ domain m)
:
∃! y : V, ⟪x, y⟫ ∈ m
def
LO.Arith.IsMapping.get
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{m : V}
(h : IsMapping m)
{x : V}
(hx : x ∈ domain m)
:
V
Equations
- h.get hx = Classical.choose! ⋯
@[simp]
theorem
LO.Arith.IsMapping.get_mem
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{m : V}
(h : IsMapping m)
{x : V}
(hx : x ∈ domain m)
:
⟪x, h.get hx⟫ ∈ m
@[simp]
@[simp]
theorem
LO.Arith.IsMapping.singleton
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(x y : V)
:
IsMapping {⟪x, y⟫}
theorem
LO.Arith.IsMapping.insert
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{x y m : V}
(h : IsMapping m)
(disjoint : x ∉ domain m)
:
IsMapping (Insert.insert ⟪x, y⟫ m)
theorem
LO.Arith.IsMapping.of_subset
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{m m' : V}
(h : IsMapping m)
(ss : m' ⊆ m)
:
IsMapping m'
theorem
LO.Arith.IsMapping.uniq
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{m x y₁ y₂ : V}
(h : IsMapping m)
:
Restriction of mapping #
Equations
- LO.Arith.restr f s = Classical.choose! ⋯
Equations
- LO.Arith.«term_↾_» = Lean.ParserDescr.trailingNode `LO.Arith.«term_↾_» 80 81 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ↾ ") (Lean.ParserDescr.cat `term 81))
@[simp]
@[simp]
@[simp]
theorem
LO.Arith.IsMapping.restr
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{m : V}
(h : IsMapping m)
(s : V)
:
IsMapping (Arith.restr m s)
theorem
LO.Arith.insert_induction
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{Γ : SigmaPiDelta}
{P : V → Prop}
(hP : { Γ := Γ, rank := 1 }-Predicate P)
(hempty : P ∅)
(hinsert : ∀ (a s : V), a ∉ s → P s → P (insert a s))
(s : V)
:
P s
theorem
LO.Arith.insert_induction_sigmaOne
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{P : V → Prop}
(hP : 𝚺₁-Predicate P)
(hempty : P ∅)
(hinsert : ∀ (a s : V), a ∉ s → P s → P (insert a s))
(s : V)
:
P s
theorem
LO.Arith.insert_induction_piOne
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{P : V → Prop}
(hP : 𝚷₁-Predicate P)
(hempty : P ∅)
(hinsert : ∀ (a s : V), a ∉ s → P s → P (insert a s))
(s : V)
:
P s
theorem
LO.Arith.sigma₁_replacement
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{f : V → V}
(hf : 𝚺₁-Function₁ f)
(s : V)
:
theorem
LO.Arith.sigma₁_replacement₂
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{f : V → V → V}
(hf : 𝚺₁-Function₂ f)
(s₁ s₂ : V)
:
Equations
- LO.Arith.fstIdx p = π₁(p - 1)
Instances For
@[simp]
Equations
- One or more equations did not get rendered due to their size.
@[simp]
instance
LO.Arith.fstIdx_definable'
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(Γ : FirstOrder.Arith.HierarchySymbol)
:
Equations
- LO.Arith.sndIdx p = π₂(p - 1)
Instances For
@[simp]
Equations
- One or more equations did not get rendered due to their size.
@[simp]
instance
LO.Arith.sndIdx_definable'
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(Γ : FirstOrder.Arith.HierarchySymbol)
: