Documentation

LeanPool.AFormalizationOfBorelDeterminacyInLean.Tree.RestrictTree

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
    @[simp]
    theorem Descriptive.Tree.res_obj_fst (k : ℕ) (S : Trees) :
    ((res k).obj S).fst = S.fst
    theorem Descriptive.Tree.res_ext {S : Trees} {k : ℕ} (x y : ↑↑((res k).obj S).snd) (h : ↑x = ↑y) :
    x = y
    theorem Descriptive.Tree.res_ext_iff {S : Trees} {k : ℕ} {x y : ↑↑((res k).obj S).snd} :
    x = y ↔ ↑x = ↑y
    @[simp]
    theorem Descriptive.Tree.mem_res_obj {T : Trees} {k : ℕ} (x : List T.fst) :
    x ∈ ((res k).obj T).snd ↔ x ∈ T.snd ∧ x.length ≤ k

    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.resEq_map (k : ℕ) {X✝ Y✝ : Trees} (f : X✝ ⟶ Y✝) :
      (resEq k).map f = TypeCat.ofHom fun (x : ↑{x : List X✝.fst | x ∈ X✝.snd ∧ x.length = k}) => ⟨↑((CategoryTheory.ConcreteCategory.hom f) ⟨↑x, ⋯⟩), ⋯⟩
      theorem Descriptive.Tree.resEq_ext {S : Trees} {k : ℕ} (x y : (resEq k).obj S) (h : ↑x = ↑y) :
      x = y
      theorem Descriptive.Tree.resEq_ext_iff {S : Trees} {k : ℕ} {x y : (resEq k).obj S} :
      x = y ↔ ↑x = ↑y
      theorem Descriptive.Tree.resEq_ext_hEq {T : Trees} {k m : ℕ} (x : (resEq k).obj T) (y : (resEq m).obj T) (h' : ↑x = ↑y) :
      x ≍ y
      @[simp]
      theorem Descriptive.Tree.res_mem {S : Trees} {k : ℕ} (x : ↑↑((res k).obj S).snd) :
      ↑x ∈ S.snd

      Auxiliary declaration for the Borel determinacy formalization.

      def Descriptive.Tree.res.val' {S : Trees} {k : ℕ} (x : ↑↑((res k).obj S).snd) :
      ↑↑S.snd

      Auxiliary declaration for the Borel determinacy formalization.

      Equations
      Instances For
        @[simp]
        theorem Descriptive.Tree.res.val'_coe {S : Trees} {k : ℕ} (x : ↑↑((res k).obj S).snd) :
        ↑(val' x) = ↑x
        theorem Descriptive.Tree.res.ext_val' {S : Trees} {k : ℕ} {x y : ↑↑((res k).obj S).snd} (h : val' x = val' y) :
        x = y
        @[simp]
        theorem Descriptive.Tree.res_val {S T : Trees} (f : S ⟶ T) (k : ℕ) (x : (fun (S : Trees) => ↑↑S.snd) ((res k).obj S)) :
        @[simp]
        theorem Descriptive.Tree.res_val'_val {S : Trees} {k : ℕ} (x : ↑↑S.snd) (h : ↑x ∈ ↑((res k).obj S).snd) :
        res.val' ⟨↑x, h⟩ = x
        @[simp]
        theorem Descriptive.Tree.res_len_le {S : Trees} {k : ℕ} (x : ↑↑((res k).obj S).snd) :
        (↑x).length ≤ k
        @[simp]
        theorem Descriptive.Tree.resEq_mem {S : Trees} {k : ℕ} (x : (resEq k).obj S) :
        ↑x ∈ S.snd

        Auxiliary declaration for the Borel determinacy formalization.

        def Descriptive.Tree.resEq.val' {S : Trees} {k : ℕ} (x : (resEq k).obj S) :
        ↑↑S.snd

        Auxiliary declaration for the Borel determinacy formalization.

        Equations
        Instances For
          @[simp]
          theorem Descriptive.Tree.resEq.val'_coe {S : Trees} {k : ℕ} (x : (resEq k).obj S) :
          ↑(val' x) = ↑x
          theorem Descriptive.Tree.resEq.ext_val' {S : Trees} {k : ℕ} {x y : (resEq k).obj S} (h : val' x = val' y) :
          x = y
          theorem Descriptive.Tree.resEq_val {S T : Trees} (f : S ⟶ T) (k : ℕ) (x : (fun (X : Type u_1) => X) ((resEq k).obj S)) :
          @[simp]
          theorem Descriptive.Tree.resEq_val'_val {S : Trees} {k : ℕ} (x : ↑↑S.snd) (h : ↑x ∈ {x : List S.fst | x ∈ S.snd ∧ x.length = k}) :
          @[simp]
          theorem Descriptive.Tree.resEq_len {T : Trees} (k : ℕ) (x : (resEq k).obj T) :
          (↑x).length = k

          Auxiliary declaration for the Borel determinacy formalization.

          Equations
          Instances For
            theorem Descriptive.Tree.resIncl_len {S : Trees} {k m : ℕ} (h : k ≤ m) (x : (fun (X : Type u_1) => X) ((resEq k).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
              • 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
                  class Descriptive.Tree.Fixing {S T : Trees} (k : outParam ℕ) (f : S ⟶ T) :

                  A morphism is k-fixing if it is a bijection on the first k levels

                  Instances
                    class Descriptive.Tree.FixingEq {S T : Trees} (k : outParam ℕ) (f : S ⟶ T) :

                    Whether a morphism is a bijection on level k

                    Instances
                      theorem Descriptive.Tree.fixing_iff_fixingEq {S T : Trees} (k : ℕ) (f : S ⟶ T) :
                      Fixing k f ↔ ∀ n ≤ k, FixingEq n f
                      theorem Descriptive.Tree.Fixing.mon {S T : Trees} {k n : ℕ} {f : S ⟶ T} (h : Fixing k f) (hn : n ≤ k) :
                      Fixing n f
                      instance Descriptive.Tree.fixing_comp {S T U : Trees} {k : ℕ} {f : S ⟶ T} {g : T ⟶ U} [h : Fixing k f] [h' : Fixing k g] :

                      Tactic support used by the Borel determinacy formalization.

                      Equations
                      Instances For
                        instance Descriptive.Tree.fixingEq_of_fixing {S T : Trees} {k : ℕ} {f : S ⟶ T} [h : Fixing k f] :
                        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) :
                        x = 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
                        Instances For
                          @[simp]
                          theorem Descriptive.Tree.h_length_pInv {S T : Trees} (f : S ⟶ T) (y : ↑↑T.snd) (h : Fixing (↑y).length f) :
                          (↑(pInv f y h)).length = (↑y).length
                          @[simp]
                          @[simp]
                          theorem Descriptive.Tree.cancel_pInv_right {S T : Trees} (f : S ⟶ T) (y : ↑↑T.snd) (h : Fixing (↑y).length f) :
                          @[simp]
                          theorem Descriptive.Tree.pInv_id {S : Trees} (x : ↑↑S.snd) :
                          @[simp]
                          theorem Descriptive.Tree.pInv_comp {S T U : Trees} (f : S ⟶ T) (g : T ⟶ U) (y : ↑↑U.snd) (hg : Fixing (↑y).length g := by as_aux_lemma => synthFixing) (hf : Fixing (↑y).length f := by as_aux_lemma => synthFixing) :
                          theorem Descriptive.Tree.pInv_comp' {S T U : Trees} (f : S ⟶ T) (g : T ⟶ U) (y : ↑↑U.snd) (hg : Fixing (↑y).length g) (hf : Fixing (↑(pInv g y hg)).length f) :
                          theorem Descriptive.Tree.take_apply_pInv {n : ℕ} {S T : Trees} (f : S ⟶ T) (x : ↥T.snd) (h : Fixing (↑x).length f) :
                          pInv f (take n x) ⋯ = take n (pInv f x h)
                          theorem Descriptive.Tree.take_apply_pInv_val {n : ℕ} {S T : Trees} (f : S ⟶ T) (x : ↥T.snd) (h : Fixing (↑x).length f) :
                          ↑(pInv f (take n x) ⋯) = List.take n ↑(pInv f x h)
                          @[simp]
                          theorem Descriptive.Tree.inv_val'_eq_pInv {k : ℕ} {S T : Trees} (f : S ⟶ T) (x : (fun (S : Trees) => ↑↑S.snd) ((res k).obj T)) (h : Fixing k f := by as_aux_lemma => synthFixing) :
                          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) :
                          @[simp]
                          theorem Descriptive.Tree.inv_val_eq_pInv_val {k : ℕ} {S T : Trees} (f : S ⟶ T) (x : (fun (S : Trees) => ↑↑S.snd) ((res k).obj T)) (h : Fixing k f := by as_aux_lemma => synthFixing) :
                          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) :