Documentation

BourbakiLean2.Function.Prod

def Function.prod {α : Type u_1} {α' : Type u_2} {β : Type u_3} {β' : Type u_4} (f : αβ) (f' : α'β') :
α × α'β × β'
Equations
Instances For
    @[simp]
    theorem Function.prod_val {α : Type u_1} {α' : Type u_2} {β : Type u_3} {β' : Type u_4} {f : αβ} {f' : α'β'} {a : α} {a' : α'} :
    Function.prod f f' (a, a') = (f a, f' a')
    @[simp]
    theorem Function.prod_image {α : Type u_1} {α' : Type u_2} {β : Type u_3} {β' : Type u_4} {f : αβ} {f' : α'β'} {x : Set α} {x' : Set α'} :
    Function.prod f f' '' x.prod x' = (f '' x).prod (f' '' x')
    @[simp]
    theorem Function.prod_surj_iff {α : Type u_1} {α' : Type u_2} {β : Type u_3} {β' : Type u_4} {f : αβ} {f' : α'β'} [Nonempty β] [Nonempty β'] :
    @[simp]
    theorem Function.prod_inj_iff {α : Type u_1} {α' : Type u_2} {β : Type u_3} {β' : Type u_4} {f : αβ} {f' : α'β'} [Nonempty α] [Nonempty α'] :
    @[simp]
    theorem Function.prod_bij_iff {α : Type u_1} {α' : Type u_2} {β : Type u_3} {β' : Type u_4} {f : αβ} {f' : α'β'} [Nonempty α] [Nonempty α'] [Nonempty β] [Nonempty β'] :
    theorem Function.comp_prod_comp {α : Type u_1} {α' : Type u_2} {β : Type u_3} {β' : Type u_4} {γ : Type u_5} {γ' : Type u_6} {f : αβ} {f' : α'β'} {g : γα} {g' : γ'α'} :
    @[simp]
    theorem Function.id_prod_id {α : Type u_1} {α' : Type u_2} :
    Function.prod id id = id
    theorem Function.prod_inverse {α : Type u_1} {α' : Type u_2} {β : Type u_3} {β' : Type u_4} {f : αβ} {f' : α'β'} {g : βα} {g' : β'α'} (h : Function.IsInverseOf g f) (h' : Function.IsInverseOf g' f') :
    instance Function.instUniqueForall {x : FalseType u_12} :
    Unique ((a : False) → x a)
    Equations
    • Function.instUniqueForall = { default := fun (a : False) => nomatch a, uniq := }
    theorem Function.prod_const {ι : Type u_1} {α : Type u_3} :
    ((i : ι) → Function.const ι α i) = (ια)
    def Function.prod_unique {ι : Type u_1} {x : ιType u_9} [inst : Unique ι] :
    Function.Bijection ((i : ι) → x i) (x default)
    Equations
    • Function.prod_unique = Function.bijection_of_funcs (fun (x : (i : ι) → x i) => x default) (fun (a : x default) (i : ι) => a)
    Instances For
      def Function.prod_bool {α β : Type u_3} :
      Function.Bijection ((i : Bool) → if i = true then α else β) (α × β)
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem Function.nonempty_prod {ι : Type u_1} {x : ιType u_9} (h : ∀ (i : ι), Nonempty (x i)) :
        Nonempty ((i : ι) → x i)
        def Function.unique_prod_of_unique {ι : Type u_1} {x : ιType u_9} (h : (i : ι) → Unique (x i)) :
        Unique ((i : ι) → x i)
        Equations
        Instances For
          @[simp]
          theorem Function.const_inj {α : Type u_3} {β : Type u_5} [inst : Nonempty β] :
          def Function.reindex_by_bij {ι : Type u_1} {ι' : Type u_2} {x : ιType u_9} (f : Function.Bijection ι' ι) :
          Function.Bijection ((i : ι) → x i) ((i' : ι') → x (f.val i'))
          Equations
          Instances For
            theorem Function.subfamily_covered {ι : Type u_1} {ι' : Type u_2} {x : ιType u_9} {f : Function.Injection ι' ι} (h : ∀ (i : ι), Nonempty (x i)) :
            Function.Surjective fun (a : (i : ι) → x i) (i' : ι') => a (f.val i')
            @[simp]
            theorem Function.apply_surjective {ι : Type u_1} {x : ιType u_9} (h : ∀ (i : ι), Nonempty (x i)) {i : ι} :
            Function.Surjective fun (a : (i : ι) → x i) => a i
            @[simp]
            theorem Function.prod_nonempty_iff {ι : Type u_1} {x : ιType u_9} :
            Nonempty ((i : ι) → x i) ∀ (i : ι), Nonempty (x i)
            def Function.prod_map {ι : Type u_1} {x : ιType u_9} {y : ιType u_10} (f : (i : ι) → x iy i) (a : (i : ι) → x i) (i : ι) :
            y i
            Equations
            Instances For
              @[simp]
              theorem Function.prod_map_comp {ι : Type u_1} {x : ιType u_9} {y : ιType u_10} {z : ιType u_11} {f : (i : ι) → x iy i} {g : (i : ι) → z ix i} :
              (Function.prod_map fun (i : ι) (c : z i) => f i (g i c)) = Function.prod_map f Function.prod_map g
              @[simp]
              theorem Function.prod_map_id {ι : Type u_1} {x : ιType u_9} :
              (Function.prod_map fun (x_1 : ι) (a : x x_1) => a) = id
              theorem Function.prod_map_inj {ι : Type u_1} {x : ιType u_9} {y : ιType u_10} {f : (i : ι) → x iy i} (h : ∀ (i : ι), Function.Injective (f i)) :
              @[simp]
              theorem Function.prod_map_inj_iff {ι : Type u_1} {x : ιType u_9} {y : ιType u_10} (h : ∀ (i : ι), Nonempty (x i)) {f : (i : ι) → x iy i} :
              def Function.dep_flip {ι : Type u_1} {α : Type u_3} {x : ιType u_9} :
              Function.Bijection ((i : ι) → αx i) (α(i : ι) → x i)
              Equations
              • Function.dep_flip = Function.bijection_of_funcs (fun (f : (i : ι) → αx i) (a : α) (i : ι) => f i a) (fun (f : α(i : ι) → x i) (i : ι) (a : α) => f a i)
              Instances For
                def Set.IsPartition.prod_assoc {ι : Type u_1} {ι' : Type u_2} {x : ιType u_9} {p : ι'Set ι} (h : Set.IsPartition p) :
                Function.Bijection ((i : ι) → x i) ((i' : ι') → (i : (p i')) → x i.val)
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  theorem Prod.swap_inv {α : Type u_3} {β : Type u_5} :
                  Function.IsInverseOf Prod.swap Prod.swap
                  @[simp]
                  theorem Prod.swap_bij {α : Type u_3} {β : Type u_5} :
                  def Prod.prod_assoc {α : Type u_3} {β : Type u_5} {γ : Type u_7} :
                  Function.Bijection (α × β × γ) ((α × β) × γ)
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For