Injective functions from denied sets #
In this file, we construct a mechanism for creating injective functions satisfying particular constraints.
Main declarations #
ConNF.funOfDeny
: An injective function satisfying particular requirements.
Equations
Instances For
Endow a type X
with a well-order of smallest possible order type.
Equations
Instances For
Equations
Instances For
theorem
ConNF.chooseOfCardLt_not_mem
{X : Type u_1}
{s : Set X}
(h : Cardinal.mk ↑s < Cardinal.mk X)
:
chooseOfCardLt h ∉ s
theorem
ConNF.gtOfDeny_aux
[Params]
{X : Type u}
(h₁ : Cardinal.mk X ≤ Cardinal.mk μ)
(deny : X → Set μ)
(h₂ : ∀ (x : X), Cardinal.mk ↑(deny x) < (Cardinal.mk μ).ord.cof)
(x : X)
(ih : (y : X) → y < x → μ)
:
def
ConNF.gtOfDeny
[Params]
{X : Type u}
(h₁ : Cardinal.mk X ≤ Cardinal.mk μ)
(deny : X → Set μ)
(h₂ : ∀ (x : X), Cardinal.mk ↑(deny x) < (Cardinal.mk μ).ord.cof)
(x : X)
(ih : (y : X) → y < x → μ)
:
Equations
- ConNF.gtOfDeny h₁ deny h₂ x ih = ConNF.chooseOfCardLt ⋯
Instances For
theorem
ConNF.gtOfDeny_spec
[Params]
{X : Type u}
(h₁ : Cardinal.mk X ≤ Cardinal.mk μ)
(deny : X → Set μ)
(h₂ : ∀ (x : X), Cardinal.mk ↑(deny x) < (Cardinal.mk μ).ord.cof)
(x : X)
(ih : (y : X) → y < x → μ)
:
def
ConNF.funOfDeny
[Params]
{X : Type u}
(h₁ : Cardinal.mk X ≤ Cardinal.mk μ)
(deny : X → Set μ)
(h₂ : ∀ (x : X), Cardinal.mk ↑(deny x) < (Cardinal.mk μ).ord.cof)
:
X → μ
Equations
- ConNF.funOfDeny h₁ deny h₂ = ⋯.fix fun (x : X) (ih : (y : X) → y < x → (fun (x : X) => ConNF.μ) y) => ConNF.gtOfDeny h₁ deny h₂ x ih
Instances For
theorem
ConNF.funOfDeny_eq
[Params]
{X : Type u}
(h₁ : Cardinal.mk X ≤ Cardinal.mk μ)
(deny : X → Set μ)
(h₂ : ∀ (x : X), Cardinal.mk ↑(deny x) < (Cardinal.mk μ).ord.cof)
(x : X)
:
theorem
ConNF.funOfDeny_gt_deny
[Params]
{X : Type u}
(h₁ : Cardinal.mk X ≤ Cardinal.mk μ)
(deny : X → Set μ)
(h₂ : ∀ (x : X), Cardinal.mk ↑(deny x) < (Cardinal.mk μ).ord.cof)
(x : X)
(ν : μ)
(hν : ν ∈ deny x)
:
theorem
ConNF.funOfDeny_injective
[Params]
{X : Type u}
(h₁ : Cardinal.mk X ≤ Cardinal.mk μ)
(deny : X → Set μ)
(h₂ : ∀ (x : X), Cardinal.mk ↑(deny x) < (Cardinal.mk μ).ord.cof)
:
Function.Injective (funOfDeny h₁ deny h₂)