File: Mathlib/Order/Hom/CompleteLattice.lean

full_name: sSupHom.map_sSup'
code: /-- The type of `⨆`-preserving functions from `α` to `β`. -/
structure sSupHom (α β : Type*) [SupSet α] [SupSet β] where
  /-- The underlying function of a sSupHom. -/
  toFun : α → β
  /-- The proposition that a `sSupHom` commutes with arbitrary suprema/joins. -/
  map_sSup' (s : Set α) : toFun (sSup s) = sSup (toFun '' s)
goal: self.toFun (sSup s) = sSup (self.toFun '' s)

full_name: sSupHom
code: /-- The type of `⨆`-preserving functions from `α` to `β`. -/
structure sSupHom (α β : Type*) [SupSet α] [SupSet β] where
  /-- The underlying function of a sSupHom. -/
  toFun : α → β
  /-- The proposition that a `sSupHom` commutes with arbitrary suprema/joins. -/
  map_sSup' (s : Set α) : toFun (sSup s) = sSup (toFun '' s)
goal: Type (max u_8 u_9)

full_name: sSupHom.toFun
code: /-- The type of `⨆`-preserving functions from `α` to `β`. -/
structure sSupHom (α β : Type*) [SupSet α] [SupSet β] where
  /-- The underlying function of a sSupHom. -/
  toFun : α → β
  /-- The proposition that a `sSupHom` commutes with arbitrary suprema/joins. -/
  map_sSup' (s : Set α) : toFun (sSup s) = sSup (toFun '' s)
goal: α → β

full_name: sInfHom.map_sInf'
code: /-- The type of `⨅`-preserving functions from `α` to `β`. -/
structure sInfHom (α β : Type*) [InfSet α] [InfSet β] where
  /-- The underlying function of an `sInfHom`. -/
  toFun : α → β
  /-- The proposition that a `sInfHom` commutes with arbitrary infima/meets -/
  map_sInf' (s : Set α) : toFun (sInf s) = sInf (toFun '' s)
goal: self.toFun (sInf s) = sInf (self.toFun '' s)

full_name: sInfHom.toFun
code: /-- The type of `⨅`-preserving functions from `α` to `β`. -/
structure sInfHom (α β : Type*) [InfSet α] [InfSet β] where
  /-- The underlying function of an `sInfHom`. -/
  toFun : α → β
  /-- The proposition that a `sInfHom` commutes with arbitrary infima/meets -/
  map_sInf' (s : Set α) : toFun (sInf s) = sInf (toFun '' s)
goal: α → β

full_name: sInfHom
code: /-- The type of `⨅`-preserving functions from `α` to `β`. -/
structure sInfHom (α β : Type*) [InfSet α] [InfSet β] where
  /-- The underlying function of an `sInfHom`. -/
  toFun : α → β
  /-- The proposition that a `sInfHom` commutes with arbitrary infima/meets -/
  map_sInf' (s : Set α) : toFun (sInf s) = sInf (toFun '' s)
goal: Type (max u_8 u_9)

full_name: FrameHom
code: /-- The type of frame homomorphisms from `α` to `β`. They preserve finite meets and arbitrary joins.
-/
structure FrameHom (α β : Type*) [CompleteLattice α] [CompleteLattice β] extends
  InfTopHom α β where
  /-- The proposition that frame homomorphisms commute with arbitrary suprema/joins. -/
  map_sSup' (s : Set α) : toFun (sSup s) = sSup (toFun '' s)
goal: Type (max u_8 u_9)

full_name: FrameHom.map_sSup'
code: /-- The type of frame homomorphisms from `α` to `β`. They preserve finite meets and arbitrary joins.
-/
structure FrameHom (α β : Type*) [CompleteLattice α] [CompleteLattice β] extends
  InfTopHom α β where
  /-- The proposition that frame homomorphisms commute with arbitrary suprema/joins. -/
  map_sSup' (s : Set α) : toFun (sSup s) = sSup (toFun '' s)
goal: self.toFun (sSup s) = sSup (self.toFun '' s)

full_name: CompleteLatticeHom
code: /-- The type of complete lattice homomorphisms from `α` to `β`. -/
structure CompleteLatticeHom (α β : Type*) [CompleteLattice α] [CompleteLattice β] extends
  sInfHom α β where
  /-- The proposition that complete lattice homomorphism commutes with arbitrary suprema/joins. -/
  map_sSup' (s : Set α) : toFun (sSup s) = sSup (toFun '' s)
goal: Type (max u_8 u_9)

full_name: CompleteLatticeHom.map_sSup'
code: /-- The type of complete lattice homomorphisms from `α` to `β`. -/
structure CompleteLatticeHom (α β : Type*) [CompleteLattice α] [CompleteLattice β] extends
  sInfHom α β where
  /-- The proposition that complete lattice homomorphism commutes with arbitrary suprema/joins. -/
  map_sSup' (s : Set α) : toFun (sSup s) = sSup (toFun '' s)
goal: self.toFun (sSup s) = sSup (self.toFun '' s)

full_name: sSupHomClass.map_sSup
code: /-- `sSupHomClass F α β` states that `F` is a type of `⨆`-preserving morphisms.

You should extend this class when you extend `sSupHom`. -/
class sSupHomClass (F α β : Type*) [SupSet α] [SupSet β] [FunLike F α β] : Prop where
  /-- The proposition that members of `sSupHomClass`s commute with arbitrary suprema/joins. -/
  map_sSup (f : F) (s : Set α) : f (sSup s) = sSup (f '' s)
goal: f (sSup s) = sSup (⇑f '' s)

full_name: sSupHomClass
code: /-- `sSupHomClass F α β` states that `F` is a type of `⨆`-preserving morphisms.

You should extend this class when you extend `sSupHom`. -/
class sSupHomClass (F α β : Type*) [SupSet α] [SupSet β] [FunLike F α β] : Prop where
  /-- The proposition that members of `sSupHomClass`s commute with arbitrary suprema/joins. -/
  map_sSup (f : F) (s : Set α) : f (sSup s) = sSup (f '' s)
goal: Prop

full_name: sInfHomClass.map_sInf
code: /-- `sInfHomClass F α β` states that `F` is a type of `⨅`-preserving morphisms.

You should extend this class when you extend `sInfHom`. -/
class sInfHomClass (F α β : Type*) [InfSet α] [InfSet β] [FunLike F α β] : Prop where
  /-- The proposition that members of `sInfHomClass`s commute with arbitrary infima/meets. -/
  map_sInf (f : F) (s : Set α) : f (sInf s) = sInf (f '' s)
goal: f (sInf s) = sInf (⇑f '' s)

full_name: sInfHomClass
code: /-- `sInfHomClass F α β` states that `F` is a type of `⨅`-preserving morphisms.

You should extend this class when you extend `sInfHom`. -/
class sInfHomClass (F α β : Type*) [InfSet α] [InfSet β] [FunLike F α β] : Prop where
  /-- The proposition that members of `sInfHomClass`s commute with arbitrary infima/meets. -/
  map_sInf (f : F) (s : Set α) : f (sInf s) = sInf (f '' s)
goal: Prop

full_name: FrameHomClass
code: /-- `FrameHomClass F α β` states that `F` is a type of frame morphisms. They preserve `⊓` and `⨆`.

You should extend this class when you extend `FrameHom`. -/
class FrameHomClass (F α β : Type*) [CompleteLattice α] [CompleteLattice β] [FunLike F α β]
  extends InfTopHomClass F α β : Prop where
  /-- The proposition that members of `FrameHomClass` commute with arbitrary suprema/joins. -/
  map_sSup (f : F) (s : Set α) : f (sSup s) = sSup (f '' s)
goal: Prop

full_name: FrameHomClass.map_sSup
code: /-- `FrameHomClass F α β` states that `F` is a type of frame morphisms. They preserve `⊓` and `⨆`.

You should extend this class when you extend `FrameHom`. -/
class FrameHomClass (F α β : Type*) [CompleteLattice α] [CompleteLattice β] [FunLike F α β]
  extends InfTopHomClass F α β : Prop where
  /-- The proposition that members of `FrameHomClass` commute with arbitrary suprema/joins. -/
  map_sSup (f : F) (s : Set α) : f (sSup s) = sSup (f '' s)
goal: f (sSup s) = sSup (⇑f '' s)

full_name: CompleteLatticeHomClass.map_sSup
code: /-- `CompleteLatticeHomClass F α β` states that `F` is a type of complete lattice morphisms.

You should extend this class when you extend `CompleteLatticeHom`. -/
class CompleteLatticeHomClass (F α β : Type*) [CompleteLattice α] [CompleteLattice β]
  [FunLike F α β] extends sInfHomClass F α β : Prop where
  /-- The proposition that members of `CompleteLatticeHomClass` commute with arbitrary
  suprema/joins. -/
  map_sSup (f : F) (s : Set α) : f (sSup s) = sSup (f '' s)
goal: f (sSup s) = sSup (⇑f '' s)

full_name: CompleteLatticeHomClass
code: /-- `CompleteLatticeHomClass F α β` states that `F` is a type of complete lattice morphisms.

You should extend this class when you extend `CompleteLatticeHom`. -/
class CompleteLatticeHomClass (F α β : Type*) [CompleteLattice α] [CompleteLattice β]
  [FunLike F α β] extends sInfHomClass F α β : Prop where
  /-- The proposition that members of `CompleteLatticeHomClass` commute with arbitrary
  suprema/joins. -/
  map_sSup (f : F) (s : Set α) : f (sSup s) = sSup (f '' s)
goal: Prop

full_name: map_iSup
code: @[simp] theorem map_iSup [SupSet α] [SupSet β] [sSupHomClass F α β] (f : F) (g : ι → α) :
    f (⨆ i, g i) = ⨆ i, f (g i) 
goal: f (⨆ i, g i) = ⨆ i, f (g i)

full_name: map_iSup₂
code: theorem map_iSup₂ [SupSet α] [SupSet β] [sSupHomClass F α β] (f : F) (g : ∀ i, κ i → α) :
    f (⨆ (i) (j), g i j) = ⨆ (i) (j), f (g i j) 
goal: f (⨆ i, ⨆ j, g i j) = ⨆ i, ⨆ j, f (g i j)

full_name: map_iInf
code: @[simp] theorem map_iInf [InfSet α] [InfSet β] [sInfHomClass F α β] (f : F) (g : ι → α) :
    f (⨅ i, g i) = ⨅ i, f (g i) 
goal: f (⨅ i, g i) = ⨅ i, f (g i)

full_name: map_iInf₂
code: theorem map_iInf₂ [InfSet α] [InfSet β] [sInfHomClass F α β] (f : F) (g : ∀ i, κ i → α) :
    f (⨅ (i) (j), g i j) = ⨅ (i) (j), f (g i j) 
goal: f (⨅ i, ⨅ j, g i j) = ⨅ i, ⨅ j, f (g i j)

full_name: sSupHomClass.toSupBotHomClass
code: instance (priority := 100) sSupHomClass.toSupBotHomClass [CompleteLattice α]
    [CompleteLattice β] [sSupHomClass F α β] : SupBotHomClass F α β 
goal: SupBotHomClass F α β

full_name: sInfHomClass.toInfTopHomClass
code: instance (priority := 100) sInfHomClass.toInfTopHomClass [CompleteLattice α]
    [CompleteLattice β] [sInfHomClass F α β] : InfTopHomClass F α β 
goal: InfTopHomClass F α β

full_name: FrameHomClass.tosSupHomClass
code: instance (priority := 100) FrameHomClass.tosSupHomClass [CompleteLattice α]
    [CompleteLattice β] [FrameHomClass F α β] : sSupHomClass F α β 
goal: sSupHomClass F α β

full_name: FrameHomClass.toBoundedLatticeHomClass
code: instance (priority := 100) FrameHomClass.toBoundedLatticeHomClass [CompleteLattice α]
    [CompleteLattice β] [FrameHomClass F α β] : BoundedLatticeHomClass F α β 
goal: BoundedLatticeHomClass F α β

full_name: CompleteLatticeHomClass.toFrameHomClass
code: instance (priority := 100) CompleteLatticeHomClass.toFrameHomClass [CompleteLattice α]
    [CompleteLattice β] [CompleteLatticeHomClass F α β] : FrameHomClass F α β 
goal: FrameHomClass F α β

full_name: CompleteLatticeHomClass.toBoundedLatticeHomClass
code: instance (priority := 100) CompleteLatticeHomClass.toBoundedLatticeHomClass [CompleteLattice α]
    [CompleteLattice β] [CompleteLatticeHomClass F α β] : BoundedLatticeHomClass F α β 
goal: BoundedLatticeHomClass F α β

full_name: OrderIsoClass.tosSupHomClass
code: instance (priority := 100) OrderIsoClass.tosSupHomClass [CompleteLattice α]
    [CompleteLattice β] [OrderIsoClass F α β] : sSupHomClass F α β 
goal: sSupHomClass F α β

full_name: OrderIsoClass.tosInfHomClass
code: instance (priority := 100) OrderIsoClass.tosInfHomClass [CompleteLattice α]
    [CompleteLattice β] [OrderIsoClass F α β] : sInfHomClass F α β 
goal: sInfHomClass F α β

full_name: OrderIsoClass.toCompleteLatticeHomClass
code: instance (priority := 100) OrderIsoClass.toCompleteLatticeHomClass [CompleteLattice α]
    [CompleteLattice β] [OrderIsoClass F α β] : CompleteLatticeHomClass F α β 
goal: CompleteLatticeHomClass F α β

full_name: OrderIso.toCompleteLatticeHom_toFun
code: /-- Reinterpret an order isomorphism as a morphism of complete lattices. -/
@[simps] def OrderIso.toCompleteLatticeHom [CompleteLattice α] [CompleteLattice β]
    (f : OrderIso α β) : CompleteLatticeHom α β 
goal: f.toCompleteLatticeHom.toFun a = f a

full_name: OrderIso.toCompleteLatticeHom
code: /-- Reinterpret an order isomorphism as a morphism of complete lattices. -/
@[simps] def OrderIso.toCompleteLatticeHom [CompleteLattice α] [CompleteLattice β]
    (f : OrderIso α β) : CompleteLatticeHom α β 
goal: CompleteLatticeHom α β

full_name: instCoeTCSSupHomOfSSupHomClass
code: instance [SupSet α] [SupSet β] [sSupHomClass F α β] : CoeTC F (sSupHom α β) 
goal: CoeTC F (sSupHom α β)

full_name: instCoeTCSInfHomOfSInfHomClass
code: instance [InfSet α] [InfSet β] [sInfHomClass F α β] : CoeTC F (sInfHom α β) 
goal: CoeTC F (sInfHom α β)

full_name: instCoeTCFrameHomOfFrameHomClass
code: instance [CompleteLattice α] [CompleteLattice β] [FrameHomClass F α β] : CoeTC F (FrameHom α β) 
goal: CoeTC F (FrameHom α β)

full_name: instCoeTCCompleteLatticeHomOfCompleteLatticeHomClass
code: instance [CompleteLattice α] [CompleteLattice β] [CompleteLatticeHomClass F α β] :
    CoeTC F (CompleteLatticeHom α β) 
goal: CoeTC F (CompleteLatticeHom α β)

full_name: sSupHom.instFunLike
code: instance : FunLike (sSupHom α β) α β 
goal: FunLike (sSupHom α β) α β

full_name: sSupHom.instSSupHomClass
code: instance : sSupHomClass (sSupHom α β) α β 
goal: sSupHomClass (sSupHom α β) α β

full_name: sSupHom.toFun_eq_coe
code: @[simp] lemma toFun_eq_coe (f : sSupHom α β) : f.toFun = f 
goal: f.toFun = ⇑f

full_name: sSupHom.coe_mk
code: @[simp, norm_cast] lemma coe_mk (f : α → β) (hf) : ⇑(mk f hf) = f 
goal: ⇑{ toFun := f, map_sSup' := hf } = f

full_name: sSupHom.ext
code: @[ext]
theorem ext {f g : sSupHom α β} (h : ∀ a, f a = g a) : f = g 
goal: f = g

full_name: sSupHom.copy
code: /-- Copy of a `sSupHom` with a new `toFun` equal to the old one. Useful to fix definitional
equalities. -/
protected def copy (f : sSupHom α β) (f' : α → β) (h : f' = f) : sSupHom α β 
goal: sSupHom α β

full_name: sSupHom.coe_copy
code: @[simp]
theorem coe_copy (f : sSupHom α β) (f' : α → β) (h : f' = f) : ⇑(f.copy f' h) = f' 
goal: ⇑(f.copy f' h) = f'

full_name: sSupHom.copy_eq
code: theorem copy_eq (f : sSupHom α β) (f' : α → β) (h : f' = f) : f.copy f' h = f 
goal: f.copy f' h = f

full_name: sSupHom.id
code: /-- `id` as a `sSupHom`. -/
protected def id : sSupHom α α 
goal: sSupHom α α

full_name: sSupHom.instInhabited
code: instance : Inhabited (sSupHom α α) 
goal: Inhabited (sSupHom α α)

full_name: sSupHom.coe_id
code: @[simp]
theorem coe_id : ⇑(sSupHom.id α) = id 
goal: ⇑(sSupHom.id α) = id

full_name: sSupHom.id_apply
code: @[simp]
theorem id_apply (a : α) : sSupHom.id α a = a 
goal: (sSupHom.id α) a = a

full_name: sSupHom.comp
code: /-- Composition of `sSupHom`s as a `sSupHom`. -/
def comp (f : sSupHom β γ) (g : sSupHom α β) : sSupHom α γ 
goal: sSupHom α γ

full_name: sSupHom.coe_comp
code: @[simp]
theorem coe_comp (f : sSupHom β γ) (g : sSupHom α β) : ⇑(f.comp g) = f ∘ g 
goal: ⇑(f.comp g) = ⇑f ∘ ⇑g

full_name: sSupHom.comp_apply
code: @[simp]
theorem comp_apply (f : sSupHom β γ) (g : sSupHom α β) (a : α) : (f.comp g) a = f (g a) 
goal: (f.comp g) a = f (g a)

full_name: sSupHom.comp_assoc
code: @[simp]
theorem comp_assoc (f : sSupHom γ δ) (g : sSupHom β γ) (h : sSupHom α β) :
    (f.comp g).comp h = f.comp (g.comp h) 
goal: (f.comp g).comp h = f.comp (g.comp h)

full_name: sSupHom.comp_id
code: @[simp]
theorem comp_id (f : sSupHom α β) : f.comp (sSupHom.id α) = f 
goal: f.comp (sSupHom.id α) = f

full_name: sSupHom.id_comp
code: @[simp]
theorem id_comp (f : sSupHom α β) : (sSupHom.id β).comp f = f 
goal: (sSupHom.id β).comp f = f

full_name: sSupHom.cancel_right
code: @[simp]
theorem cancel_right {g₁ g₂ : sSupHom β γ} {f : sSupHom α β} (hf : Surjective f) :
    g₁.comp f = g₂.comp f ↔ g₁ = g₂ 
goal: g₁.comp f = g₂.comp f ↔ g₁ = g₂

full_name: sSupHom.cancel_left
code: @[simp]
theorem cancel_left {g : sSupHom β γ} {f₁ f₂ : sSupHom α β} (hg : Injective g) :
    g.comp f₁ = g.comp f₂ ↔ f₁ = f₂ 
goal: g.comp f₁ = g.comp f₂ ↔ f₁ = f₂

full_name: sSupHom.instPartialOrder
code: instance : PartialOrder (sSupHom α β) 
goal: {x : CompleteLattice β} → PartialOrder (sSupHom α β)

full_name: sSupHom.instBot
code: instance : Bot (sSupHom α β) 
goal: {x : CompleteLattice β} → Bot (sSupHom α β)

full_name: sSupHom.instOrderBot
code: instance : OrderBot (sSupHom α β) 
goal: {x : CompleteLattice β} → OrderBot (sSupHom α β)

full_name: sSupHom.coe_bot
code: @[simp]
theorem coe_bot : ⇑(⊥ : sSupHom α β) = ⊥ 
goal: ∀ {x : CompleteLattice β}, ⇑⊥ = ⊥

full_name: sSupHom.bot_apply
code: @[simp]
theorem bot_apply (a : α) : (⊥ : sSupHom α β) a = ⊥ 
goal: ∀ {x : CompleteLattice β} (a : α), ⊥ a = ⊥

full_name: sInfHom.instFunLike
code: instance : FunLike (sInfHom α β) α β 
goal: FunLike (sInfHom α β) α β

full_name: sInfHom.instSInfHomClass
code: instance : sInfHomClass (sInfHom α β) α β 
goal: sInfHomClass (sInfHom α β) α β

full_name: sInfHom.toFun_eq_coe
code: @[simp] lemma toFun_eq_coe (f : sInfHom α β) : f.toFun = f 
goal: f.toFun = ⇑f

full_name: sInfHom.coe_mk
code: @[simp] lemma coe_mk (f : α → β) (hf) : ⇑(mk f hf) = f 
goal: ⇑{ toFun := f, map_sInf' := hf } = f

full_name: sInfHom.ext
code: @[ext]
theorem ext {f g : sInfHom α β} (h : ∀ a, f a = g a) : f = g 
goal: f = g

full_name: sInfHom.copy
code: /-- Copy of a `sInfHom` with a new `toFun` equal to the old one. Useful to fix definitional
equalities. -/
protected def copy (f : sInfHom α β) (f' : α → β) (h : f' = f) : sInfHom α β 
goal: sInfHom α β

full_name: sInfHom.coe_copy
code: @[simp]
theorem coe_copy (f : sInfHom α β) (f' : α → β) (h : f' = f) : ⇑(f.copy f' h) = f' 
goal: ⇑(f.copy f' h) = f'

full_name: sInfHom.copy_eq
code: theorem copy_eq (f : sInfHom α β) (f' : α → β) (h : f' = f) : f.copy f' h = f 
goal: f.copy f' h = f

full_name: sInfHom.id
code: /-- `id` as an `sInfHom`. -/
protected def id : sInfHom α α 
goal: sInfHom α α

full_name: sInfHom.instInhabited
code: instance : Inhabited (sInfHom α α) 
goal: Inhabited (sInfHom α α)

full_name: sInfHom.coe_id
code: @[simp]
theorem coe_id : ⇑(sInfHom.id α) = id 
goal: ⇑(sInfHom.id α) = id

full_name: sInfHom.id_apply
code: @[simp]
theorem id_apply (a : α) : sInfHom.id α a = a 
goal: (sInfHom.id α) a = a

full_name: sInfHom.comp
code: /-- Composition of `sInfHom`s as a `sInfHom`. -/
def comp (f : sInfHom β γ) (g : sInfHom α β) : sInfHom α γ 
goal: sInfHom α γ

full_name: sInfHom.coe_comp
code: @[simp]
theorem coe_comp (f : sInfHom β γ) (g : sInfHom α β) : ⇑(f.comp g) = f ∘ g 
goal: ⇑(f.comp g) = ⇑f ∘ ⇑g

full_name: sInfHom.comp_apply
code: @[simp]
theorem comp_apply (f : sInfHom β γ) (g : sInfHom α β) (a : α) : (f.comp g) a = f (g a) 
goal: (f.comp g) a = f (g a)

full_name: sInfHom.comp_assoc
code: @[simp]
theorem comp_assoc (f : sInfHom γ δ) (g : sInfHom β γ) (h : sInfHom α β) :
    (f.comp g).comp h = f.comp (g.comp h) 
goal: (f.comp g).comp h = f.comp (g.comp h)

full_name: sInfHom.comp_id
code: @[simp]
theorem comp_id (f : sInfHom α β) : f.comp (sInfHom.id α) = f 
goal: f.comp (sInfHom.id α) = f

full_name: sInfHom.id_comp
code: @[simp]
theorem id_comp (f : sInfHom α β) : (sInfHom.id β).comp f = f 
goal: (sInfHom.id β).comp f = f

full_name: sInfHom.cancel_right
code: @[simp]
theorem cancel_right {g₁ g₂ : sInfHom β γ} {f : sInfHom α β} (hf : Surjective f) :
    g₁.comp f = g₂.comp f ↔ g₁ = g₂ 
goal: g₁.comp f = g₂.comp f ↔ g₁ = g₂

full_name: sInfHom.cancel_left
code: @[simp]
theorem cancel_left {g : sInfHom β γ} {f₁ f₂ : sInfHom α β} (hg : Injective g) :
    g.comp f₁ = g.comp f₂ ↔ f₁ = f₂ 
goal: g.comp f₁ = g.comp f₂ ↔ f₁ = f₂

full_name: sInfHom.instPartialOrder
code: instance : PartialOrder (sInfHom α β) 
goal: PartialOrder (sInfHom α β)

full_name: sInfHom.instTop
code: instance : Top (sInfHom α β) 
goal: Top (sInfHom α β)

full_name: sInfHom.instOrderTop
code: instance : OrderTop (sInfHom α β) 
goal: OrderTop (sInfHom α β)

full_name: sInfHom.coe_top
code: @[simp]
theorem coe_top : ⇑(⊤ : sInfHom α β) = ⊤ 
goal: ⇑⊤ = ⊤

full_name: sInfHom.top_apply
code: @[simp]
theorem top_apply (a : α) : (⊤ : sInfHom α β) a = ⊤ 
goal: ⊤ a = ⊤

full_name: FrameHom.instFunLike
code: instance : FunLike (FrameHom α β) α β 
goal: FunLike (FrameHom α β) α β

full_name: FrameHom.instFrameHomClass
code: instance : FrameHomClass (FrameHom α β) α β 
goal: FrameHomClass (FrameHom α β) α β

full_name: FrameHom.toLatticeHom
code: /-- Reinterpret a `FrameHom` as a `LatticeHom`. -/
def toLatticeHom (f : FrameHom α β) : LatticeHom α β 
goal: LatticeHom α β

full_name: FrameHom.toFun_eq_coe
code: lemma toFun_eq_coe (f : FrameHom α β) : f.toFun = f 
goal: f.toFun = ⇑f

full_name: FrameHom.coe_toInfTopHom
code: @[simp] lemma coe_toInfTopHom (f : FrameHom α β) : ⇑f.toInfTopHom = f 
goal: ⇑f.toInfTopHom = ⇑f

full_name: FrameHom.coe_toLatticeHom
code: @[simp] lemma coe_toLatticeHom (f : FrameHom α β) : ⇑f.toLatticeHom = f 
goal: ⇑f.toLatticeHom = ⇑f

full_name: FrameHom.coe_mk
code: @[simp] lemma coe_mk (f : InfTopHom α β) (hf) : ⇑(mk f hf) = f 
goal: ⇑{ toInfTopHom := f, map_sSup' := hf } = ⇑f

full_name: FrameHom.ext
code: @[ext]
theorem ext {f g : FrameHom α β} (h : ∀ a, f a = g a) : f = g 
goal: f = g

full_name: FrameHom.copy
code: /-- Copy of a `FrameHom` with a new `toFun` equal to the old one. Useful to fix definitional
equalities. -/
protected def copy (f : FrameHom α β) (f' : α → β) (h : f' = f) : FrameHom α β 
goal: FrameHom α β

full_name: FrameHom.coe_copy
code: @[simp]
theorem coe_copy (f : FrameHom α β) (f' : α → β) (h : f' = f) : ⇑(f.copy f' h) = f' 
goal: ⇑(f.copy f' h) = f'

full_name: FrameHom.copy_eq
code: theorem copy_eq (f : FrameHom α β) (f' : α → β) (h : f' = f) : f.copy f' h = f 
goal: f.copy f' h = f

full_name: FrameHom.id
code: /-- `id` as a `FrameHom`. -/
protected def id : FrameHom α α 
goal: FrameHom α α

full_name: FrameHom.instInhabited
code: instance : Inhabited (FrameHom α α) 
goal: Inhabited (FrameHom α α)

full_name: FrameHom.coe_id
code: @[simp]
theorem coe_id : ⇑(FrameHom.id α) = id 
goal: ⇑(FrameHom.id α) = id

full_name: FrameHom.id_apply
code: @[simp]
theorem id_apply (a : α) : FrameHom.id α a = a 
goal: (FrameHom.id α) a = a

full_name: FrameHom.comp
code: /-- Composition of `FrameHom`s as a `FrameHom`. -/
def comp (f : FrameHom β γ) (g : FrameHom α β) : FrameHom α γ 
goal: FrameHom α γ

full_name: FrameHom.coe_comp
code: @[simp]
theorem coe_comp (f : FrameHom β γ) (g : FrameHom α β) : ⇑(f.comp g) = f ∘ g 
goal: ⇑(f.comp g) = ⇑f ∘ ⇑g

full_name: FrameHom.comp_apply
code: @[simp]
theorem comp_apply (f : FrameHom β γ) (g : FrameHom α β) (a : α) : (f.comp g) a = f (g a) 
goal: (f.comp g) a = f (g a)

full_name: FrameHom.comp_assoc
code: @[simp]
theorem comp_assoc (f : FrameHom γ δ) (g : FrameHom β γ) (h : FrameHom α β) :
    (f.comp g).comp h = f.comp (g.comp h) 
goal: (f.comp g).comp h = f.comp (g.comp h)

full_name: FrameHom.comp_id
code: @[simp]
theorem comp_id (f : FrameHom α β) : f.comp (FrameHom.id α) = f 
goal: f.comp (FrameHom.id α) = f

full_name: FrameHom.id_comp
code: @[simp]
theorem id_comp (f : FrameHom α β) : (FrameHom.id β).comp f = f 
goal: (FrameHom.id β).comp f = f

full_name: FrameHom.cancel_right
code: @[simp]
theorem cancel_right {g₁ g₂ : FrameHom β γ} {f : FrameHom α β} (hf : Surjective f) :
    g₁.comp f = g₂.comp f ↔ g₁ = g₂ 
goal: g₁.comp f = g₂.comp f ↔ g₁ = g₂

full_name: FrameHom.cancel_left
code: @[simp]
theorem cancel_left {g : FrameHom β γ} {f₁ f₂ : FrameHom α β} (hg : Injective g) :
    g.comp f₁ = g.comp f₂ ↔ f₁ = f₂ 
goal: g.comp f₁ = g.comp f₂ ↔ f₁ = f₂

full_name: FrameHom.instPartialOrder
code: instance : PartialOrder (FrameHom α β) 
goal: PartialOrder (FrameHom α β)

full_name: CompleteLatticeHom.instFunLike
code: instance : FunLike (CompleteLatticeHom α β) α β 
goal: FunLike (CompleteLatticeHom α β) α β

full_name: CompleteLatticeHom.instCompleteLatticeHomClass
code: instance : CompleteLatticeHomClass (CompleteLatticeHom α β) α β 
goal: CompleteLatticeHomClass (CompleteLatticeHom α β) α β

full_name: CompleteLatticeHom.tosSupHom
code: /-- Reinterpret a `CompleteLatticeHom` as a `sSupHom`. -/
def tosSupHom (f : CompleteLatticeHom α β) : sSupHom α β 
goal: sSupHom α β

full_name: CompleteLatticeHom.toBoundedLatticeHom
code: /-- Reinterpret a `CompleteLatticeHom` as a `BoundedLatticeHom`. -/
def toBoundedLatticeHom (f : CompleteLatticeHom α β) : BoundedLatticeHom α β 
goal: BoundedLatticeHom α β

full_name: CompleteLatticeHom.toFun_eq_coe
code: lemma toFun_eq_coe (f : CompleteLatticeHom α β) : f.toFun = f 
goal: f.toFun = ⇑f

full_name: CompleteLatticeHom.coe_tosInfHom
code: @[simp] lemma coe_tosInfHom (f : CompleteLatticeHom α β) : ⇑f.tosInfHom = f 
goal: ⇑f.tosInfHom = ⇑f

full_name: CompleteLatticeHom.coe_tosSupHom
code: @[simp] lemma coe_tosSupHom (f : CompleteLatticeHom α β) : ⇑f.tosSupHom = f 
goal: ⇑f.tosSupHom = ⇑f

full_name: CompleteLatticeHom.coe_toBoundedLatticeHom
code: @[simp] lemma coe_toBoundedLatticeHom (f : CompleteLatticeHom α β) : ⇑f.toBoundedLatticeHom = f 
goal: ⇑f.toBoundedLatticeHom = ⇑f

full_name: CompleteLatticeHom.coe_mk
code: @[simp] lemma coe_mk (f : sInfHom α β) (hf) : ⇑(mk f hf) = f 
goal: ⇑{ tosInfHom := f, map_sSup' := hf } = ⇑f

full_name: CompleteLatticeHom.ext
code: @[ext]
theorem ext {f g : CompleteLatticeHom α β} (h : ∀ a, f a = g a) : f = g 
goal: f = g

full_name: CompleteLatticeHom.copy
code: /-- Copy of a `CompleteLatticeHom` with a new `toFun` equal to the old one. Useful to fix
definitional equalities. -/
protected def copy (f : CompleteLatticeHom α β) (f' : α → β) (h : f' = f) :
    CompleteLatticeHom α β 
goal: CompleteLatticeHom α β

full_name: CompleteLatticeHom.coe_copy
code: @[simp]
theorem coe_copy (f : CompleteLatticeHom α β) (f' : α → β) (h : f' = f) : ⇑(f.copy f' h) = f' 
goal: ⇑(f.copy f' h) = f'

full_name: CompleteLatticeHom.copy_eq
code: theorem copy_eq (f : CompleteLatticeHom α β) (f' : α → β) (h : f' = f) : f.copy f' h = f 
goal: f.copy f' h = f

full_name: CompleteLatticeHom.id
code: /-- `id` as a `CompleteLatticeHom`. -/
protected def id : CompleteLatticeHom α α 
goal: CompleteLatticeHom α α

full_name: CompleteLatticeHom.instInhabited
code: instance : Inhabited (CompleteLatticeHom α α) 
goal: Inhabited (CompleteLatticeHom α α)

full_name: CompleteLatticeHom.coe_id
code: @[simp]
theorem coe_id : ⇑(CompleteLatticeHom.id α) = id 
goal: ⇑(CompleteLatticeHom.id α) = id

full_name: CompleteLatticeHom.id_apply
code: @[simp]
theorem id_apply (a : α) : CompleteLatticeHom.id α a = a 
goal: (CompleteLatticeHom.id α) a = a

full_name: CompleteLatticeHom.comp
code: /-- Composition of `CompleteLatticeHom`s as a `CompleteLatticeHom`. -/
def comp (f : CompleteLatticeHom β γ) (g : CompleteLatticeHom α β) : CompleteLatticeHom α γ 
goal: CompleteLatticeHom α γ

full_name: CompleteLatticeHom.coe_comp
code: @[simp]
theorem coe_comp (f : CompleteLatticeHom β γ) (g : CompleteLatticeHom α β) : ⇑(f.comp g) = f ∘ g 
goal: ⇑(f.comp g) = ⇑f ∘ ⇑g

full_name: CompleteLatticeHom.comp_apply
code: @[simp]
theorem comp_apply (f : CompleteLatticeHom β γ) (g : CompleteLatticeHom α β) (a : α) :
    (f.comp g) a = f (g a) 
goal: (f.comp g) a = f (g a)

full_name: CompleteLatticeHom.comp_assoc
code: @[simp]
theorem comp_assoc (f : CompleteLatticeHom γ δ) (g : CompleteLatticeHom β γ)
    (h : CompleteLatticeHom α β) : (f.comp g).comp h = f.comp (g.comp h) 
goal: (f.comp g).comp h = f.comp (g.comp h)

full_name: CompleteLatticeHom.comp_id
code: @[simp]
theorem comp_id (f : CompleteLatticeHom α β) : f.comp (CompleteLatticeHom.id α) = f 
goal: f.comp (CompleteLatticeHom.id α) = f

full_name: CompleteLatticeHom.id_comp
code: @[simp]
theorem id_comp (f : CompleteLatticeHom α β) : (CompleteLatticeHom.id β).comp f = f 
goal: (CompleteLatticeHom.id β).comp f = f

full_name: CompleteLatticeHom.cancel_right
code: @[simp]
theorem cancel_right {g₁ g₂ : CompleteLatticeHom β γ} {f : CompleteLatticeHom α β}
    (hf : Surjective f) : g₁.comp f = g₂.comp f ↔ g₁ = g₂ 
goal: g₁.comp f = g₂.comp f ↔ g₁ = g₂

full_name: CompleteLatticeHom.cancel_left
code: @[simp]
theorem cancel_left {g : CompleteLatticeHom β γ} {f₁ f₂ : CompleteLatticeHom α β}
    (hg : Injective g) : g.comp f₁ = g.comp f₂ ↔ f₁ = f₂ 
goal: g.comp f₁ = g.comp f₂ ↔ f₁ = f₂

full_name: sSupHom.dual_symm_apply_toFun
code: /-- Reinterpret a `⨆`-homomorphism as an `⨅`-homomorphism between the dual orders. -/
@[simps]
protected def dual : sSupHom α β ≃ sInfHom αᵒᵈ βᵒᵈ 
goal: ∀ (a : α), (sSupHom.dual.symm f) a = (⇑OrderDual.ofDual ∘ ⇑f ∘ ⇑OrderDual.toDual) a

full_name: sSupHom.dual_apply_toFun
code: /-- Reinterpret a `⨆`-homomorphism as an `⨅`-homomorphism between the dual orders. -/
@[simps]
protected def dual : sSupHom α β ≃ sInfHom αᵒᵈ βᵒᵈ 
goal: ∀ (a : αᵒᵈ), (sSupHom.dual f).toFun a = (⇑OrderDual.toDual ∘ ⇑f ∘ ⇑OrderDual.ofDual) a

full_name: sSupHom.dual
code: /-- Reinterpret a `⨆`-homomorphism as an `⨅`-homomorphism between the dual orders. -/
@[simps]
protected def dual : sSupHom α β ≃ sInfHom αᵒᵈ βᵒᵈ 
goal: sSupHom α β ≃ sInfHom αᵒᵈ βᵒᵈ

full_name: sSupHom.dual_id
code: @[simp]
theorem dual_id : sSupHom.dual (sSupHom.id α) = sInfHom.id _ 
goal: sSupHom.dual (sSupHom.id α) = sInfHom.id αᵒᵈ

full_name: sSupHom.dual_comp
code: @[simp]
theorem dual_comp (g : sSupHom β γ) (f : sSupHom α β) :
    sSupHom.dual (g.comp f) = (sSupHom.dual g).comp (sSupHom.dual f) 
goal: sSupHom.dual (g.comp f) = (sSupHom.dual g).comp (sSupHom.dual f)

full_name: sSupHom.symm_dual_id
code: @[simp]
theorem symm_dual_id : sSupHom.dual.symm (sInfHom.id _) = sSupHom.id α 
goal: sSupHom.dual.symm (sInfHom.id αᵒᵈ) = sSupHom.id α

full_name: sSupHom.symm_dual_comp
code: @[simp]
theorem symm_dual_comp (g : sInfHom βᵒᵈ γᵒᵈ) (f : sInfHom αᵒᵈ βᵒᵈ) :
    sSupHom.dual.symm (g.comp f) = (sSupHom.dual.symm g).comp (sSupHom.dual.symm f) 
goal: sSupHom.dual.symm (g.comp f) = (sSupHom.dual.symm g).comp (sSupHom.dual.symm f)

full_name: sInfHom.dual_apply_toFun
code: /-- Reinterpret an `⨅`-homomorphism as a `⨆`-homomorphism between the dual orders. -/
@[simps]
protected def dual : sInfHom α β ≃ sSupHom αᵒᵈ βᵒᵈ 
goal: ∀ (a : αᵒᵈ), (sInfHom.dual f) a = (⇑OrderDual.toDual ∘ ⇑f ∘ ⇑OrderDual.ofDual) a

full_name: sInfHom.dual_symm_apply_toFun
code: /-- Reinterpret an `⨅`-homomorphism as a `⨆`-homomorphism between the dual orders. -/
@[simps]
protected def dual : sInfHom α β ≃ sSupHom αᵒᵈ βᵒᵈ 
goal: ∀ (a : α), (sInfHom.dual.symm f).toFun a = (⇑OrderDual.ofDual ∘ ⇑f ∘ ⇑OrderDual.toDual) a

full_name: sInfHom.dual
code: /-- Reinterpret an `⨅`-homomorphism as a `⨆`-homomorphism between the dual orders. -/
@[simps]
protected def dual : sInfHom α β ≃ sSupHom αᵒᵈ βᵒᵈ 
goal: sInfHom α β ≃ sSupHom αᵒᵈ βᵒᵈ

full_name: sInfHom.dual_id
code: @[simp]
theorem dual_id : sInfHom.dual (sInfHom.id α) = sSupHom.id _ 
goal: sInfHom.dual (sInfHom.id α) = sSupHom.id αᵒᵈ

full_name: sInfHom.dual_comp
code: @[simp]
theorem dual_comp (g : sInfHom β γ) (f : sInfHom α β) :
    sInfHom.dual (g.comp f) = (sInfHom.dual g).comp (sInfHom.dual f) 
goal: sInfHom.dual (g.comp f) = (sInfHom.dual g).comp (sInfHom.dual f)

full_name: sInfHom.symm_dual_id
code: @[simp]
theorem symm_dual_id : sInfHom.dual.symm (sSupHom.id _) = sInfHom.id α 
goal: sInfHom.dual.symm (sSupHom.id αᵒᵈ) = sInfHom.id α

full_name: sInfHom.symm_dual_comp
code: @[simp]
theorem symm_dual_comp (g : sSupHom βᵒᵈ γᵒᵈ) (f : sSupHom αᵒᵈ βᵒᵈ) :
    sInfHom.dual.symm (g.comp f) = (sInfHom.dual.symm g).comp (sInfHom.dual.symm f) 
goal: sInfHom.dual.symm (g.comp f) = (sInfHom.dual.symm g).comp (sInfHom.dual.symm f)

full_name: CompleteLatticeHom.dual_symm_apply_toFun
code: /-- Reinterpret a complete lattice homomorphism as a complete lattice homomorphism between the dual
lattices. -/
@[simps!]
protected def dual : CompleteLatticeHom α β ≃ CompleteLatticeHom αᵒᵈ βᵒᵈ 
goal: ∀ (a : αᵒᵈᵒᵈ), (CompleteLatticeHom.dual.symm f).toFun a = OrderDual.toDual (f (OrderDual.ofDual a))

full_name: CompleteLatticeHom.dual
code: /-- Reinterpret a complete lattice homomorphism as a complete lattice homomorphism between the dual
lattices. -/
@[simps!]
protected def dual : CompleteLatticeHom α β ≃ CompleteLatticeHom αᵒᵈ βᵒᵈ 
goal: CompleteLatticeHom α β ≃ CompleteLatticeHom αᵒᵈ βᵒᵈ

full_name: CompleteLatticeHom.dual_apply_toFun
code: /-- Reinterpret a complete lattice homomorphism as a complete lattice homomorphism between the dual
lattices. -/
@[simps!]
protected def dual : CompleteLatticeHom α β ≃ CompleteLatticeHom αᵒᵈ βᵒᵈ 
goal: ∀ (a : αᵒᵈ), (CompleteLatticeHom.dual f).toFun a = OrderDual.toDual (f (OrderDual.ofDual a))

full_name: CompleteLatticeHom.dual_id
code: @[simp]
theorem dual_id : CompleteLatticeHom.dual (CompleteLatticeHom.id α) = CompleteLatticeHom.id _ 
goal: CompleteLatticeHom.dual (CompleteLatticeHom.id α) = CompleteLatticeHom.id αᵒᵈ

full_name: CompleteLatticeHom.dual_comp
code: @[simp]
theorem dual_comp (g : CompleteLatticeHom β γ) (f : CompleteLatticeHom α β) :
    CompleteLatticeHom.dual (g.comp f) =
      (CompleteLatticeHom.dual g).comp (CompleteLatticeHom.dual f) 
goal: CompleteLatticeHom.dual (g.comp f) = (CompleteLatticeHom.dual g).comp (CompleteLatticeHom.dual f)

full_name: CompleteLatticeHom.symm_dual_id
code: @[simp]
theorem symm_dual_id :
    CompleteLatticeHom.dual.symm (CompleteLatticeHom.id _) = CompleteLatticeHom.id α 
goal: CompleteLatticeHom.dual.symm (CompleteLatticeHom.id αᵒᵈ) = CompleteLatticeHom.id α

full_name: CompleteLatticeHom.symm_dual_comp
code: @[simp]
theorem symm_dual_comp (g : CompleteLatticeHom βᵒᵈ γᵒᵈ) (f : CompleteLatticeHom αᵒᵈ βᵒᵈ) :
    CompleteLatticeHom.dual.symm (g.comp f) =
      (CompleteLatticeHom.dual.symm g).comp (CompleteLatticeHom.dual.symm f) 
goal: CompleteLatticeHom.dual.symm (g.comp f) = (CompleteLatticeHom.dual.symm g).comp (CompleteLatticeHom.dual.symm f)

full_name: CompleteLatticeHom.setPreimage
code: /-- `Set.preimage` as a complete lattice homomorphism.

See also `sSupHom.setImage`. -/
def setPreimage (f : α → β) : CompleteLatticeHom (Set β) (Set α) 
goal: CompleteLatticeHom (Set β) (Set α)

full_name: CompleteLatticeHom.coe_setPreimage
code: @[simp]
theorem coe_setPreimage (f : α → β) : ⇑(setPreimage f) = preimage f 
goal: ⇑(CompleteLatticeHom.setPreimage f) = Set.preimage f

full_name: CompleteLatticeHom.setPreimage_apply
code: @[simp]
theorem setPreimage_apply (f : α → β) (s : Set β) : setPreimage f s = s.preimage f 
goal: (CompleteLatticeHom.setPreimage f) s = f ⁻¹' s

full_name: CompleteLatticeHom.setPreimage_id
code: @[simp]
theorem setPreimage_id : setPreimage (id : α → α) = CompleteLatticeHom.id _ 
goal: CompleteLatticeHom.setPreimage id = CompleteLatticeHom.id (Set α)

full_name: CompleteLatticeHom.setPreimage_comp
code: theorem setPreimage_comp (g : β → γ) (f : α → β) :
    setPreimage (g ∘ f) = (setPreimage f).comp (setPreimage g) 
goal: CompleteLatticeHom.setPreimage (g ∘ f) = (CompleteLatticeHom.setPreimage f).comp (CompleteLatticeHom.setPreimage g)

full_name: Set.image_sSup
code: theorem Set.image_sSup {f : α → β} (s : Set (Set α)) : f '' sSup s = sSup (image f '' s) 
goal: f '' sSup s = sSup (Set.image f '' s)

full_name: sSupHom.setImage_toFun
code: /-- Using `Set.image`, a function between types yields a `sSupHom` between their lattices of
subsets.

See also `CompleteLatticeHom.setPreimage`. -/
@[simps]
def sSupHom.setImage (f : α → β) : sSupHom (Set α) (Set β) 
goal: (sSupHom.setImage f) s = f '' s

full_name: sSupHom.setImage
code: /-- Using `Set.image`, a function between types yields a `sSupHom` between their lattices of
subsets.

See also `CompleteLatticeHom.setPreimage`. -/
@[simps]
def sSupHom.setImage (f : α → β) : sSupHom (Set α) (Set β) 
goal: sSupHom (Set α) (Set β)

full_name: Equiv.toOrderIsoSet_apply
code: /-- An equivalence of types yields an order isomorphism between their lattices of subsets. -/
@[simps]
def Equiv.toOrderIsoSet (e : α ≃ β) : Set α ≃o Set β 
goal: e.toOrderIsoSet s = ⇑e '' s

full_name: Equiv.toOrderIsoSet_symm_apply
code: /-- An equivalence of types yields an order isomorphism between their lattices of subsets. -/
@[simps]
def Equiv.toOrderIsoSet (e : α ≃ β) : Set α ≃o Set β 
goal: (RelIso.symm e.toOrderIsoSet) s = ⇑e.symm '' s

full_name: Equiv.toOrderIsoSet
code: /-- An equivalence of types yields an order isomorphism between their lattices of subsets. -/
@[simps]
def Equiv.toOrderIsoSet (e : α ≃ β) : Set α ≃o Set β 
goal: Set α ≃o Set β

full_name: supsSupHom
code: /-- The map `(a, b) ↦ a ⊔ b` as a `sSupHom`. -/
def supsSupHom : sSupHom (α × α) α 
goal: sSupHom (α × α) α

full_name: infsInfHom
code: /-- The map `(a, b) ↦ a ⊓ b` as an `sInfHom`. -/
def infsInfHom : sInfHom (α × α) α 
goal: sInfHom (α × α) α

full_name: supsSupHom_apply
code: @[simp, norm_cast]
theorem supsSupHom_apply : supsSupHom x = x.1 ⊔ x.2 
goal: supsSupHom x = x.1 ⊔ x.2

full_name: infsInfHom_apply
code: @[simp, norm_cast]
theorem infsInfHom_apply : infsInfHom x = x.1 ⊓ x.2 
goal: infsInfHom x = x.1 ⊓ x.2