Documentation

LeanPool.ZFLean.Isomorphisms

LeanPool.ZFLean.Isomorphisms #

Imported Lean Pool material for LeanPool.ZFLean.Isomorphisms.

Imported ZFLean declaration.

Equations
Instances For

    Imported ZFLean declaration.

    Equations
    Instances For
      theorem ZFSet.isIso_trans (x y z : ZFSet.{u_1}) (x_iso_y : x ≅ᶻ y) (y_iso_z : y ≅ᶻ z) :
      x ≅ᶻ z
      @[implicit_reducible]
      Equations
      theorem ZFSet.isIso_symm x y : ZFSet.{u_1} :
      x ≅ᶻ yy ≅ᶻ x
      theorem ZFSet.bijective_of_injective_on_subset {A B : ZFSet.{u_1}} (B_sub : B A) {u : ZFSet.{u_1}} {hu : A.IsFunc B u} (u_inj : u.IsInjective hu) :
      ∃ (v : ZFSet.{u_1}) (hv : A.IsFunc B v), v.IsBijective hv
      theorem ZFSet.isIso_of_biembedding {E F f g : ZFSet.{u_1}} {hf : E.IsFunc F f} (f_inj : f.IsInjective hf) {hg : F.IsFunc E g} (g_inj : g.IsInjective hg) :
      E ≅ᶻ F

      Cantor–Bernstein theorem: if there are injective functions f : A → B and g : B → A, then A and B are isomorphic.

      theorem ZFSet.schroeder_bernstein {E F f g : ZFSet.{u_1}} {hf : E.IsFunc F f} (f_inj : f.IsInjective hf) {hg : F.IsFunc E g} (g_inj : g.IsInjective hg) :
      E ≅ᶻ F

      Alias of ZFSet.isIso_of_biembedding.


      Cantor–Bernstein theorem: if there are injective functions f : A → B and g : B → A, then A and B are isomorphic.

      theorem ZFSet.isIso_of_prod {A B C D : ZFSet.{u_1}} (h : A ≅ᶻ C) (h' : B ≅ᶻ D) :
      A.prod B ≅ᶻ C.prod D
      theorem ZFSet.inv_Image_of_bijective {f A B : ZFSet.{u_1}} {hf : A.IsFunc B f} (bij : f.IsBijective hf) {X : ZFSet.{u_1}} (hX : X A) :
      ((f⁻¹ )[(f[X]) ]) = X
      theorem ZFSet.Image_inv_of_bijective {f A B : ZFSet.{u_1}} {hf : A.IsFunc B f} (bij : f.IsBijective hf) {X : ZFSet.{u_1}} (hX : X B) :
      (f[((f⁻¹ )[X]) ]) = X
      theorem ZFSet.IsInjective_of_left_inverse {A B f : ZFSet.{u_1}} (hf : A.IsFunc B f) {g : ZFSet.{u_1}} (hg : B.IsFunc A g) (left_inv : (g ∘ᶻ f) hg hf = 𝟙A) :
      theorem ZFSet.IsSurjective_of_right_inverse {A B f : ZFSet.{u_1}} (hf : A.IsFunc B f) {g : ZFSet.{u_1}} (hg : B.IsFunc A g) (right_inv : (f ∘ᶻ g) hf hg = 𝟙B) :
      theorem ZFSet.isIso_of_two_sided_inverse {A B f : ZFSet.{u_1}} {hf : A.IsFunc B f} {g : ZFSet.{u_1}} {hg : B.IsFunc A g} (left_inv : (g ∘ᶻ f) hg hf = 𝟙A) (right_inv : (f ∘ᶻ g) hf hg = 𝟙B) :
      A ≅ᶻ B
      theorem ZFSet.isIso_of_funs {A B C D : ZFSet.{u_1}} (h : A ≅ᶻ C) (h' : B ≅ᶻ D) :
      A.funs B ≅ᶻ C.funs D
      noncomputable def ZFSet.currify {A B C : ZFSet.{u_1}} (f : ZFSet.{u_1}) (hf : (A.prod B).IsFunc C f := by zfun) :

      Imported ZFLean declaration.

      Equations
      Instances For
        theorem ZFSet.currify_is_func {A B C : ZFSet.{u_1}} (f : ZFSet.{u_1}) (hf : (A.prod B).IsFunc C f := by zfun) :
        A.IsFunc (B.funs C) (currify f hf)
        noncomputable def ZFSet.uncurrify {A B C : ZFSet.{u_1}} (g : ZFSet.{u_1}) (hg : A.IsFunc (B.funs C) g := by zfun) :

        Imported ZFLean declaration.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          theorem ZFSet.uncurrify_is_func {A B C : ZFSet.{u_1}} (g : ZFSet.{u_1}) (hg : A.IsFunc (B.funs C) g := by zfun) :
          (A.prod B).IsFunc C (uncurrify g hg)
          @[simp]
          theorem ZFSet.currify_of_uncurrify {A B C : ZFSet.{u_1}} (f : ZFSet.{u_1}) (hf : A.IsFunc (B.funs C) f := by zfun) :
          currify (uncurrify f hf) = f
          theorem ZFSet.uncurrify_of_currify {A B C : ZFSet.{u_1}} (g : ZFSet.{u_1}) (hg : (A.prod B).IsFunc C g := by zfun) :
          uncurrify (currify g hg) = g
          theorem ZFSet.isIso_curry {A B C : ZFSet.{u_1}} :
          (A.prod B).funs C ≅ᶻ A.funs (B.funs C)