LeanPool.AFormalizationOfBorelDeterminacyInLean.Tree.RestrictTree #
Auxiliary declarations for the Borel determinacy formalization.
Remove all nodes of a tree beyond level k
Equations
- One or more equations did not get rendered due to their size.
Instances For
Remove all nodes of a tree not on level exactly k
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
Descriptive.Tree.res_val
{S T : Trees}
(f : S ⟶ T)
(k : ℕ)
(x : (fun (S : Trees) => ↑↑S.snd) ((res k).obj S))
:
↑((CategoryTheory.ConcreteCategory.hom ((res k).map f)) x) = ↑((CategoryTheory.ConcreteCategory.hom f) (res.val' x))
theorem
Descriptive.Tree.resEq_val
{S T : Trees}
(f : S ⟶ T)
(k : ℕ)
(x : (fun (X : Type u_1) => X) ((resEq k).obj S))
:
↑((CategoryTheory.ConcreteCategory.hom ((resEq k).map f)) x) = ↑((CategoryTheory.ConcreteCategory.hom f) (resEq.val' x))
Auxiliary declaration for the Borel determinacy formalization.
Equations
- Descriptive.Tree.resIncl h = { app := fun (x : Descriptive.Tree.Trees) => TypeCat.ofHom fun (x_1 : (Descriptive.Tree.resEq k).obj x) => ⟨↑x_1, ⋯⟩, naturality := ⋯ }
Instances For
def
Descriptive.Tree.resCocone
(k : ℕ)
:
CategoryTheory.Limits.Cocone (CategoryTheory.Discrete.functor fun (i : Fin (k + 1)) => resEq ↑i)
Auxiliary declaration for the Borel determinacy formalization.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Auxiliary declaration for the Borel determinacy formalization.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Descriptive.Tree.evResCocone
(k : ℕ)
(S : Trees)
:
CategoryTheory.Limits.Cocone
((CategoryTheory.Discrete.functor fun (i : Fin (k + 1)) => resEq ↑i).comp
((CategoryTheory.evaluation Trees (Type u_1)).obj S))
Auxiliary declaration for the Borel determinacy formalization.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Auxiliary declaration for the Borel determinacy formalization.
Equations
Instances For
A morphism is k-fixing if it is a bijection on the first k levels
- prop : CategoryTheory.IsIso ((res k).map f)
Instances
instance
Descriptive.Tree.instIsIsoTreesMapResOfFixing
{S T : Trees}
{k : ℕ}
(f : S ⟶ T)
[h : Fixing k f]
:
CategoryTheory.IsIso ((res k).map f)
instance
Descriptive.Tree.instIsIsoObjTreesResEqMapOfFixingEq
{S T : Trees}
{k : ℕ}
(f : S ⟶ T)
[h : FixingEq k f]
:
CategoryTheory.IsIso ((resEq k).map f)
theorem
Descriptive.Tree.fixing_iso
{S T : Trees}
{f : S ⟶ T}
[CategoryTheory.IsIso f]
{k : ℕ}
:
Fixing k f
Tactic support used by the Borel determinacy formalization.
Equations
- Descriptive.Tree.tacticSynthFixing = Lean.ParserDescr.node `Descriptive.Tree.tacticSynthFixing 1024 (Lean.ParserDescr.nonReservedSymbol "synthFixing" false)
Instances For
theorem
Descriptive.Tree.Fixing.inj
{S T : Trees}
(f : S ⟶ T)
(x y : ↑↑S.snd)
(ht : Fixing (↑x).length f := by as_aux_lemma => synthFixing)
(he : (CategoryTheory.ConcreteCategory.hom f) x = (CategoryTheory.ConcreteCategory.hom f) y)
:
noncomputable def
Descriptive.Tree.pInv
{S T : Trees}
(f : S ⟶ T)
(y : ↑↑T.snd)
(h : Fixing (↑y).length f := by as_aux_lemma => synthFixing)
:
↑↑S.snd
Auxiliary declaration for the Borel determinacy formalization.
Equations
- Descriptive.Tree.pInv f y h = Descriptive.Tree.res.val' ((CategoryTheory.ConcreteCategory.hom (CategoryTheory.inv ((Descriptive.Tree.res (↑y).length).map f))) ⟨↑y, ⋯⟩)
Instances For
@[simp]
theorem
Descriptive.Tree.cancel_pInv_left
{S T : Trees}
(f : S ⟶ T)
(x : ↑↑S.snd)
(h : Fixing (↑((CategoryTheory.ConcreteCategory.hom f) x)).length f)
:
@[simp]
@[simp]
@[simp]
theorem
Descriptive.Tree.inv_val'_eq_pInv'
{k : ℕ}
{S T : Trees}
(f : S ⟶ T)
(x : (fun (X : Type u_1) => X) ((resEq k).obj T))
(h : Fixing k f := by as_aux_lemma => synthFixing)
:
resEq.val' ((CategoryTheory.ConcreteCategory.hom (CategoryTheory.inv ((resEq k).map f))) x) = pInv f (resEq.val' x) ⋯
@[simp]
theorem
Descriptive.Tree.inv_val_eq_pInv_val'
{k : ℕ}
{S T : Trees}
(f : S ⟶ T)
(x : (fun (X : Type u_1) => X) ((resEq k).obj T))
(h : Fixing k f := by as_aux_lemma => synthFixing)
:
↑((CategoryTheory.ConcreteCategory.hom (CategoryTheory.inv ((resEq k).map f))) x) = ↑(pInv f (resEq.val' x) ⋯)