File: Mathlib/Analysis/Normed/Group/Seminorm.lean

full_name: AddGroupSeminorm.toFun
code: /-- A seminorm on an additive group `G` is a function `f : G → ℝ` that preserves zero, is
subadditive and such that `f (-x) = f x` for all `x`. -/
structure AddGroupSeminorm (G : Type*) [AddGroup G] where
  -- Porting note: can't extend `ZeroHom G ℝ` because otherwise `to_additive` won't work since
  -- we aren't using old structures
  /-- The bare function of an `AddGroupSeminorm`. -/
  protected toFun : G → ℝ
  /-- The image of zero is zero. -/
  protected map_zero' : toFun 0 = 0
  /-- The seminorm is subadditive. -/
  protected add_le' : ∀ r s, toFun (r + s) ≤ toFun r + toFun s
  /-- The seminorm is invariant under negation. -/
  protected neg' : ∀ r, toFun (-r) = toFun r
goal: G → ℝ

full_name: AddGroupSeminorm.map_zero'
code: /-- A seminorm on an additive group `G` is a function `f : G → ℝ` that preserves zero, is
subadditive and such that `f (-x) = f x` for all `x`. -/
structure AddGroupSeminorm (G : Type*) [AddGroup G] where
  -- Porting note: can't extend `ZeroHom G ℝ` because otherwise `to_additive` won't work since
  -- we aren't using old structures
  /-- The bare function of an `AddGroupSeminorm`. -/
  protected toFun : G → ℝ
  /-- The image of zero is zero. -/
  protected map_zero' : toFun 0 = 0
  /-- The seminorm is subadditive. -/
  protected add_le' : ∀ r s, toFun (r + s) ≤ toFun r + toFun s
  /-- The seminorm is invariant under negation. -/
  protected neg' : ∀ r, toFun (-r) = toFun r
goal: self.toFun 0 = 0

full_name: AddGroupSeminorm
code: /-- A seminorm on an additive group `G` is a function `f : G → ℝ` that preserves zero, is
subadditive and such that `f (-x) = f x` for all `x`. -/
structure AddGroupSeminorm (G : Type*) [AddGroup G] where
  -- Porting note: can't extend `ZeroHom G ℝ` because otherwise `to_additive` won't work since
  -- we aren't using old structures
  /-- The bare function of an `AddGroupSeminorm`. -/
  protected toFun : G → ℝ
  /-- The image of zero is zero. -/
  protected map_zero' : toFun 0 = 0
  /-- The seminorm is subadditive. -/
  protected add_le' : ∀ r s, toFun (r + s) ≤ toFun r + toFun s
  /-- The seminorm is invariant under negation. -/
  protected neg' : ∀ r, toFun (-r) = toFun r
goal: Type u_7

full_name: AddGroupSeminorm.neg'
code: /-- A seminorm on an additive group `G` is a function `f : G → ℝ` that preserves zero, is
subadditive and such that `f (-x) = f x` for all `x`. -/
structure AddGroupSeminorm (G : Type*) [AddGroup G] where
  -- Porting note: can't extend `ZeroHom G ℝ` because otherwise `to_additive` won't work since
  -- we aren't using old structures
  /-- The bare function of an `AddGroupSeminorm`. -/
  protected toFun : G → ℝ
  /-- The image of zero is zero. -/
  protected map_zero' : toFun 0 = 0
  /-- The seminorm is subadditive. -/
  protected add_le' : ∀ r s, toFun (r + s) ≤ toFun r + toFun s
  /-- The seminorm is invariant under negation. -/
  protected neg' : ∀ r, toFun (-r) = toFun r
goal: self.toFun (-r) = self.toFun r

full_name: AddGroupSeminorm.add_le'
code: /-- A seminorm on an additive group `G` is a function `f : G → ℝ` that preserves zero, is
subadditive and such that `f (-x) = f x` for all `x`. -/
structure AddGroupSeminorm (G : Type*) [AddGroup G] where
  -- Porting note: can't extend `ZeroHom G ℝ` because otherwise `to_additive` won't work since
  -- we aren't using old structures
  /-- The bare function of an `AddGroupSeminorm`. -/
  protected toFun : G → ℝ
  /-- The image of zero is zero. -/
  protected map_zero' : toFun 0 = 0
  /-- The seminorm is subadditive. -/
  protected add_le' : ∀ r s, toFun (r + s) ≤ toFun r + toFun s
  /-- The seminorm is invariant under negation. -/
  protected neg' : ∀ r, toFun (-r) = toFun r
goal: self.toFun (r + s) ≤ self.toFun r + self.toFun s

full_name: GroupSeminorm.inv'
code: /-- A seminorm on a group `G` is a function `f : G → ℝ` that sends one to zero, is submultiplicative
and such that `f x⁻¹ = f x` for all `x`. -/
@[to_additive]
structure GroupSeminorm (G : Type*) [Group G] where
  /-- The bare function of a `GroupSeminorm`. -/
  protected toFun : G → ℝ
  /-- The image of one is zero. -/
  protected map_one' : toFun 1 = 0
  /-- The seminorm applied to a product is dominated by the sum of the seminorm applied to the
  factors. -/
  protected mul_le' : ∀ x y, toFun (x * y) ≤ toFun x + toFun y
  /-- The seminorm is invariant under inversion. -/
  protected inv' : ∀ x, toFun x⁻¹ = toFun x
goal: self.toFun x⁻¹ = self.toFun x

full_name: GroupSeminorm.mul_le'
code: /-- A seminorm on a group `G` is a function `f : G → ℝ` that sends one to zero, is submultiplicative
and such that `f x⁻¹ = f x` for all `x`. -/
@[to_additive]
structure GroupSeminorm (G : Type*) [Group G] where
  /-- The bare function of a `GroupSeminorm`. -/
  protected toFun : G → ℝ
  /-- The image of one is zero. -/
  protected map_one' : toFun 1 = 0
  /-- The seminorm applied to a product is dominated by the sum of the seminorm applied to the
  factors. -/
  protected mul_le' : ∀ x y, toFun (x * y) ≤ toFun x + toFun y
  /-- The seminorm is invariant under inversion. -/
  protected inv' : ∀ x, toFun x⁻¹ = toFun x
goal: self.toFun (x * y) ≤ self.toFun x + self.toFun y

full_name: GroupSeminorm.map_one'
code: /-- A seminorm on a group `G` is a function `f : G → ℝ` that sends one to zero, is submultiplicative
and such that `f x⁻¹ = f x` for all `x`. -/
@[to_additive]
structure GroupSeminorm (G : Type*) [Group G] where
  /-- The bare function of a `GroupSeminorm`. -/
  protected toFun : G → ℝ
  /-- The image of one is zero. -/
  protected map_one' : toFun 1 = 0
  /-- The seminorm applied to a product is dominated by the sum of the seminorm applied to the
  factors. -/
  protected mul_le' : ∀ x y, toFun (x * y) ≤ toFun x + toFun y
  /-- The seminorm is invariant under inversion. -/
  protected inv' : ∀ x, toFun x⁻¹ = toFun x
goal: self.toFun 1 = 0

full_name: GroupSeminorm.toFun
code: /-- A seminorm on a group `G` is a function `f : G → ℝ` that sends one to zero, is submultiplicative
and such that `f x⁻¹ = f x` for all `x`. -/
@[to_additive]
structure GroupSeminorm (G : Type*) [Group G] where
  /-- The bare function of a `GroupSeminorm`. -/
  protected toFun : G → ℝ
  /-- The image of one is zero. -/
  protected map_one' : toFun 1 = 0
  /-- The seminorm applied to a product is dominated by the sum of the seminorm applied to the
  factors. -/
  protected mul_le' : ∀ x y, toFun (x * y) ≤ toFun x + toFun y
  /-- The seminorm is invariant under inversion. -/
  protected inv' : ∀ x, toFun x⁻¹ = toFun x
goal: G → ℝ

full_name: GroupSeminorm
code: /-- A seminorm on a group `G` is a function `f : G → ℝ` that sends one to zero, is submultiplicative
and such that `f x⁻¹ = f x` for all `x`. -/
@[to_additive]
structure GroupSeminorm (G : Type*) [Group G] where
  /-- The bare function of a `GroupSeminorm`. -/
  protected toFun : G → ℝ
  /-- The image of one is zero. -/
  protected map_one' : toFun 1 = 0
  /-- The seminorm applied to a product is dominated by the sum of the seminorm applied to the
  factors. -/
  protected mul_le' : ∀ x y, toFun (x * y) ≤ toFun x + toFun y
  /-- The seminorm is invariant under inversion. -/
  protected inv' : ∀ x, toFun x⁻¹ = toFun x
goal: Type u_7

full_name: NonarchAddGroupSeminorm
code: /-- A nonarchimedean seminorm on an additive group `G` is a function `f : G → ℝ` that preserves
zero, is nonarchimedean and such that `f (-x) = f x` for all `x`. -/
structure NonarchAddGroupSeminorm (G : Type*) [AddGroup G] extends ZeroHom G ℝ where
  /-- The seminorm applied to a sum is dominated by the maximum of the function applied to the
  addends. -/
  protected add_le_max' : ∀ r s, toFun (r + s) ≤ max (toFun r) (toFun s)
  /-- The seminorm is invariant under negation. -/
  protected neg' : ∀ r, toFun (-r) = toFun r
goal: Type u_7

full_name: NonarchAddGroupSeminorm.neg'
code: /-- A nonarchimedean seminorm on an additive group `G` is a function `f : G → ℝ` that preserves
zero, is nonarchimedean and such that `f (-x) = f x` for all `x`. -/
structure NonarchAddGroupSeminorm (G : Type*) [AddGroup G] extends ZeroHom G ℝ where
  /-- The seminorm applied to a sum is dominated by the maximum of the function applied to the
  addends. -/
  protected add_le_max' : ∀ r s, toFun (r + s) ≤ max (toFun r) (toFun s)
  /-- The seminorm is invariant under negation. -/
  protected neg' : ∀ r, toFun (-r) = toFun r
goal: self.toFun (-r) = self.toFun r

full_name: NonarchAddGroupSeminorm.add_le_max'
code: /-- A nonarchimedean seminorm on an additive group `G` is a function `f : G → ℝ` that preserves
zero, is nonarchimedean and such that `f (-x) = f x` for all `x`. -/
structure NonarchAddGroupSeminorm (G : Type*) [AddGroup G] extends ZeroHom G ℝ where
  /-- The seminorm applied to a sum is dominated by the maximum of the function applied to the
  addends. -/
  protected add_le_max' : ∀ r s, toFun (r + s) ≤ max (toFun r) (toFun s)
  /-- The seminorm is invariant under negation. -/
  protected neg' : ∀ r, toFun (-r) = toFun r
goal: self.toFun (r + s) ≤ max (self.toFun r) (self.toFun s)

full_name: AddGroupNorm
code: /-- A norm on an additive group `G` is a function `f : G → ℝ` that preserves zero, is subadditive
and such that `f (-x) = f x` and `f x = 0 → x = 0` for all `x`. -/
structure AddGroupNorm (G : Type*) [AddGroup G] extends AddGroupSeminorm G where
  /-- If the image under the seminorm is zero, then the argument is zero. -/
  protected eq_zero_of_map_eq_zero' : ∀ x, toFun x = 0 → x = 0
goal: Type u_7

full_name: AddGroupNorm.eq_zero_of_map_eq_zero'
code: /-- A norm on an additive group `G` is a function `f : G → ℝ` that preserves zero, is subadditive
and such that `f (-x) = f x` and `f x = 0 → x = 0` for all `x`. -/
structure AddGroupNorm (G : Type*) [AddGroup G] extends AddGroupSeminorm G where
  /-- If the image under the seminorm is zero, then the argument is zero. -/
  protected eq_zero_of_map_eq_zero' : ∀ x, toFun x = 0 → x = 0
goal: self.toFun x = 0 → x = 0

full_name: GroupNorm.eq_one_of_map_eq_zero'
code: /-- A seminorm on a group `G` is a function `f : G → ℝ` that sends one to zero, is submultiplicative
and such that `f x⁻¹ = f x` and `f x = 0 → x = 1` for all `x`. -/
@[to_additive]
structure GroupNorm (G : Type*) [Group G] extends GroupSeminorm G where
  /-- If the image under the norm is zero, then the argument is one. -/
  protected eq_one_of_map_eq_zero' : ∀ x, toFun x = 0 → x = 1
goal: self.toFun x = 0 → x = 1

full_name: GroupNorm
code: /-- A seminorm on a group `G` is a function `f : G → ℝ` that sends one to zero, is submultiplicative
and such that `f x⁻¹ = f x` and `f x = 0 → x = 1` for all `x`. -/
@[to_additive]
structure GroupNorm (G : Type*) [Group G] extends GroupSeminorm G where
  /-- If the image under the norm is zero, then the argument is one. -/
  protected eq_one_of_map_eq_zero' : ∀ x, toFun x = 0 → x = 1
goal: Type u_7

full_name: NonarchAddGroupNorm
code: /-- A nonarchimedean norm on an additive group `G` is a function `f : G → ℝ` that preserves zero, is
nonarchimedean and such that `f (-x) = f x` and `f x = 0 → x = 0` for all `x`. -/
structure NonarchAddGroupNorm (G : Type*) [AddGroup G] extends NonarchAddGroupSeminorm G where
  /-- If the image under the norm is zero, then the argument is zero. -/
  protected eq_zero_of_map_eq_zero' : ∀ x, toFun x = 0 → x = 0
goal: Type u_7

full_name: NonarchAddGroupNorm.eq_zero_of_map_eq_zero'
code: /-- A nonarchimedean norm on an additive group `G` is a function `f : G → ℝ` that preserves zero, is
nonarchimedean and such that `f (-x) = f x` and `f x = 0 → x = 0` for all `x`. -/
structure NonarchAddGroupNorm (G : Type*) [AddGroup G] extends NonarchAddGroupSeminorm G where
  /-- If the image under the norm is zero, then the argument is zero. -/
  protected eq_zero_of_map_eq_zero' : ∀ x, toFun x = 0 → x = 0
goal: self.toFun x = 0 → x = 0

full_name: NonarchAddGroupSeminormClass.map_neg_eq_map'
code: /-- `NonarchAddGroupSeminormClass F α` states that `F` is a type of nonarchimedean seminorms on
the additive group `α`.

You should extend this class when you extend `NonarchAddGroupSeminorm`. -/
class NonarchAddGroupSeminormClass (F : Type*) (α : outParam Type*) [AddGroup α] [FunLike F α ℝ]
    extends NonarchimedeanHomClass F α ℝ : Prop where
  /-- The image of zero is zero. -/
  protected map_zero (f : F) : f 0 = 0
  /-- The seminorm is invariant under negation. -/
  protected map_neg_eq_map' (f : F) (a : α) : f (-a) = f a
goal: f (-a) = f a

full_name: NonarchAddGroupSeminormClass.map_zero
code: /-- `NonarchAddGroupSeminormClass F α` states that `F` is a type of nonarchimedean seminorms on
the additive group `α`.

You should extend this class when you extend `NonarchAddGroupSeminorm`. -/
class NonarchAddGroupSeminormClass (F : Type*) (α : outParam Type*) [AddGroup α] [FunLike F α ℝ]
    extends NonarchimedeanHomClass F α ℝ : Prop where
  /-- The image of zero is zero. -/
  protected map_zero (f : F) : f 0 = 0
  /-- The seminorm is invariant under negation. -/
  protected map_neg_eq_map' (f : F) (a : α) : f (-a) = f a
goal: f 0 = 0

full_name: NonarchAddGroupSeminormClass
code: /-- `NonarchAddGroupSeminormClass F α` states that `F` is a type of nonarchimedean seminorms on
the additive group `α`.

You should extend this class when you extend `NonarchAddGroupSeminorm`. -/
class NonarchAddGroupSeminormClass (F : Type*) (α : outParam Type*) [AddGroup α] [FunLike F α ℝ]
    extends NonarchimedeanHomClass F α ℝ : Prop where
  /-- The image of zero is zero. -/
  protected map_zero (f : F) : f 0 = 0
  /-- The seminorm is invariant under negation. -/
  protected map_neg_eq_map' (f : F) (a : α) : f (-a) = f a
goal: Prop

full_name: NonarchAddGroupNormClass
code: /-- `NonarchAddGroupNormClass F α` states that `F` is a type of nonarchimedean norms on the
additive group `α`.

You should extend this class when you extend `NonarchAddGroupNorm`. -/
class NonarchAddGroupNormClass (F : Type*) (α : outParam Type*) [AddGroup α] [FunLike F α ℝ]
    extends NonarchAddGroupSeminormClass F α : Prop where
  /-- If the image under the norm is zero, then the argument is zero. -/
  protected eq_zero_of_map_eq_zero (f : F) {a : α} : f a = 0 → a = 0
goal: Prop

full_name: NonarchAddGroupNormClass.eq_zero_of_map_eq_zero
code: /-- `NonarchAddGroupNormClass F α` states that `F` is a type of nonarchimedean norms on the
additive group `α`.

You should extend this class when you extend `NonarchAddGroupNorm`. -/
class NonarchAddGroupNormClass (F : Type*) (α : outParam Type*) [AddGroup α] [FunLike F α ℝ]
    extends NonarchAddGroupSeminormClass F α : Prop where
  /-- If the image under the norm is zero, then the argument is zero. -/
  protected eq_zero_of_map_eq_zero (f : F) {a : α} : f a = 0 → a = 0
goal: f a = 0 → a = 0

full_name: map_sub_le_max
code: theorem map_sub_le_max : f (x - y) ≤ max (f x) (f y) 
goal: f (x - y) ≤ max (f x) (f y)

full_name: NonarchAddGroupSeminormClass.toAddGroupSeminormClass
code: instance (priority := 100) NonarchAddGroupSeminormClass.toAddGroupSeminormClass [AddGroup E]
    [NonarchAddGroupSeminormClass F E] : AddGroupSeminormClass F E ℝ 
goal: AddGroupSeminormClass F E ℝ

full_name: NonarchAddGroupNormClass.toAddGroupNormClass
code: instance (priority := 100) NonarchAddGroupNormClass.toAddGroupNormClass [AddGroup E]
    [NonarchAddGroupNormClass F E] : AddGroupNormClass F E ℝ 
goal: AddGroupNormClass F E ℝ

full_name: GroupSeminorm.funLike
code: @[to_additive]
instance funLike : FunLike (GroupSeminorm E) E ℝ 
goal: FunLike (GroupSeminorm E) E ℝ

full_name: AddGroupSeminorm.funLike
code: @[to_additive]
instance funLike : FunLike (GroupSeminorm E) E ℝ 
goal: FunLike (AddGroupSeminorm E) E ℝ

full_name: AddGroupSeminorm.addGroupSeminormClass
code: @[to_additive]
instance groupSeminormClass : GroupSeminormClass (GroupSeminorm E) E ℝ 
goal: AddGroupSeminormClass (AddGroupSeminorm E) E ℝ

full_name: GroupSeminorm.groupSeminormClass
code: @[to_additive]
instance groupSeminormClass : GroupSeminormClass (GroupSeminorm E) E ℝ 
goal: GroupSeminormClass (GroupSeminorm E) E ℝ

full_name: GroupSeminorm.instCoeFunForallReal
code: /-- Helper instance for when there's too many metavariables to apply `DFunLike.hasCoeToFun`. -/
@[to_additive "Helper instance for when there's too many metavariables to apply
`DFunLike.hasCoeToFun`. "]
instance : CoeFun (GroupSeminorm E) fun _ => E → ℝ 
goal: CoeFun (GroupSeminorm E) fun x => E → ℝ

full_name: AddGroupSeminorm.instCoeFunForallReal
code: /-- Helper instance for when there's too many metavariables to apply `DFunLike.hasCoeToFun`. -/
@[to_additive "Helper instance for when there's too many metavariables to apply
`DFunLike.hasCoeToFun`. "]
instance : CoeFun (GroupSeminorm E) fun _ => E → ℝ 
goal: CoeFun (AddGroupSeminorm E) fun x => E → ℝ

full_name: GroupSeminorm.toFun_eq_coe
code: @[to_additive (attr := simp)]
theorem toFun_eq_coe : p.toFun = p 
goal: p.toFun = ⇑p

full_name: AddGroupSeminorm.toFun_eq_coe
code: @[to_additive (attr := simp)]
theorem toFun_eq_coe : p.toFun = p 
goal: p.toFun = ⇑p

full_name: GroupSeminorm.ext
code: @[to_additive (attr := ext)]
theorem ext : (∀ x, p x = q x) → p = q 
goal: (∀ (x : E), p x = q x) → p = q

full_name: AddGroupSeminorm.ext
code: @[to_additive (attr := ext)]
theorem ext : (∀ x, p x = q x) → p = q 
goal: (∀ (x : E), p x = q x) → p = q

full_name: GroupSeminorm.instPartialOrder
code: @[to_additive]
instance : PartialOrder (GroupSeminorm E) 
goal: PartialOrder (GroupSeminorm E)

full_name: AddGroupSeminorm.instPartialOrder
code: @[to_additive]
instance : PartialOrder (GroupSeminorm E) 
goal: PartialOrder (AddGroupSeminorm E)

full_name: GroupSeminorm.le_def
code: @[to_additive]
theorem le_def : p ≤ q ↔ (p : E → ℝ) ≤ q 
goal: p ≤ q ↔ ⇑p ≤ ⇑q

full_name: AddGroupSeminorm.le_def
code: @[to_additive]
theorem le_def : p ≤ q ↔ (p : E → ℝ) ≤ q 
goal: p ≤ q ↔ ⇑p ≤ ⇑q

full_name: GroupSeminorm.lt_def
code: @[to_additive]
theorem lt_def : p < q ↔ (p : E → ℝ) < q 
goal: p < q ↔ ⇑p < ⇑q

full_name: AddGroupSeminorm.lt_def
code: @[to_additive]
theorem lt_def : p < q ↔ (p : E → ℝ) < q 
goal: p < q ↔ ⇑p < ⇑q

full_name: AddGroupSeminorm.coe_le_coe
code: @[to_additive (attr := simp, norm_cast)]
theorem coe_le_coe : (p : E → ℝ) ≤ q ↔ p ≤ q 
goal: ⇑p ≤ ⇑q ↔ p ≤ q

full_name: GroupSeminorm.coe_le_coe
code: @[to_additive (attr := simp, norm_cast)]
theorem coe_le_coe : (p : E → ℝ) ≤ q ↔ p ≤ q 
goal: ⇑p ≤ ⇑q ↔ p ≤ q

full_name: AddGroupSeminorm.coe_lt_coe
code: @[to_additive (attr := simp, norm_cast)]
theorem coe_lt_coe : (p : E → ℝ) < q ↔ p < q 
goal: ⇑p < ⇑q ↔ p < q

full_name: GroupSeminorm.coe_lt_coe
code: @[to_additive (attr := simp, norm_cast)]
theorem coe_lt_coe : (p : E → ℝ) < q ↔ p < q 
goal: ⇑p < ⇑q ↔ p < q

full_name: GroupSeminorm.instZeroGroupSeminorm
code: @[to_additive]
instance instZeroGroupSeminorm : Zero (GroupSeminorm E) 
goal: Zero (GroupSeminorm E)

full_name: AddGroupSeminorm.instZeroAddGroupSeminorm
code: @[to_additive]
instance instZeroGroupSeminorm : Zero (GroupSeminorm E) 
goal: Zero (AddGroupSeminorm E)

full_name: GroupSeminorm.coe_zero
code: @[to_additive (attr := simp, norm_cast)]
theorem coe_zero : ⇑(0 : GroupSeminorm E) = 0 
goal: ⇑0 = 0

full_name: AddGroupSeminorm.coe_zero
code: @[to_additive (attr := simp, norm_cast)]
theorem coe_zero : ⇑(0 : GroupSeminorm E) = 0 
goal: ⇑0 = 0

full_name: GroupSeminorm.zero_apply
code: @[to_additive (attr := simp)]
theorem zero_apply (x : E) : (0 : GroupSeminorm E) x = 0 
goal: 0 x = 0

full_name: AddGroupSeminorm.zero_apply
code: @[to_additive (attr := simp)]
theorem zero_apply (x : E) : (0 : GroupSeminorm E) x = 0 
goal: 0 x = 0

full_name: GroupSeminorm.instInhabited
code: @[to_additive]
instance : Inhabited (GroupSeminorm E) 
goal: Inhabited (GroupSeminorm E)

full_name: AddGroupSeminorm.instInhabited
code: @[to_additive]
instance : Inhabited (GroupSeminorm E) 
goal: Inhabited (AddGroupSeminorm E)

full_name: AddGroupSeminorm.instAdd
code: @[to_additive]
instance : Add (GroupSeminorm E) 
goal: Add (AddGroupSeminorm E)

full_name: GroupSeminorm.instAdd
code: @[to_additive]
instance : Add (GroupSeminorm E) 
goal: Add (GroupSeminorm E)

full_name: GroupSeminorm.coe_add
code: @[to_additive (attr := simp)]
theorem coe_add : ⇑(p + q) = p + q 
goal: ⇑(p + q) = ⇑p + ⇑q

full_name: AddGroupSeminorm.coe_add
code: @[to_additive (attr := simp)]
theorem coe_add : ⇑(p + q) = p + q 
goal: ⇑(p + q) = ⇑p + ⇑q

full_name: AddGroupSeminorm.add_apply
code: @[to_additive (attr := simp)]
theorem add_apply (x : E) : (p + q) x = p x + q x 
goal: (p + q) x = p x + q x

full_name: GroupSeminorm.add_apply
code: @[to_additive (attr := simp)]
theorem add_apply (x : E) : (p + q) x = p x + q x 
goal: (p + q) x = p x + q x

full_name: GroupSeminorm.instSup
code: @[to_additive]
instance : Sup (GroupSeminorm E) 
goal: Sup (GroupSeminorm E)

full_name: AddGroupSeminorm.instSup
code: @[to_additive]
instance : Sup (GroupSeminorm E) 
goal: Sup (AddGroupSeminorm E)

full_name: GroupSeminorm.coe_sup
code: @[to_additive (attr := simp, norm_cast)]
theorem coe_sup : ⇑(p ⊔ q) = ⇑p ⊔ ⇑q 
goal: ⇑(p ⊔ q) = ⇑p ⊔ ⇑q

full_name: AddGroupSeminorm.coe_sup
code: @[to_additive (attr := simp, norm_cast)]
theorem coe_sup : ⇑(p ⊔ q) = ⇑p ⊔ ⇑q 
goal: ⇑(p ⊔ q) = ⇑p ⊔ ⇑q

full_name: AddGroupSeminorm.sup_apply
code: @[to_additive (attr := simp)]
theorem sup_apply (x : E) : (p ⊔ q) x = p x ⊔ q x 
goal: (p ⊔ q) x = p x ⊔ q x

full_name: GroupSeminorm.sup_apply
code: @[to_additive (attr := simp)]
theorem sup_apply (x : E) : (p ⊔ q) x = p x ⊔ q x 
goal: (p ⊔ q) x = p x ⊔ q x

full_name: GroupSeminorm.semilatticeSup
code: @[to_additive]
instance semilatticeSup : SemilatticeSup (GroupSeminorm E) 
goal: SemilatticeSup (GroupSeminorm E)

full_name: AddGroupSeminorm.semilatticeSup
code: @[to_additive]
instance semilatticeSup : SemilatticeSup (GroupSeminorm E) 
goal: SemilatticeSup (AddGroupSeminorm E)

full_name: AddGroupSeminorm.comp
code: /-- Composition of a group seminorm with a monoid homomorphism as a group seminorm. -/
@[to_additive "Composition of an additive group seminorm with an additive monoid homomorphism as an
additive group seminorm."]
def comp (p : GroupSeminorm E) (f : F →* E) : GroupSeminorm F 
goal: AddGroupSeminorm F

full_name: GroupSeminorm.comp
code: /-- Composition of a group seminorm with a monoid homomorphism as a group seminorm. -/
@[to_additive "Composition of an additive group seminorm with an additive monoid homomorphism as an
additive group seminorm."]
def comp (p : GroupSeminorm E) (f : F →* E) : GroupSeminorm F 
goal: GroupSeminorm F

full_name: AddGroupSeminorm.coe_comp
code: @[to_additive (attr := simp)]
theorem coe_comp : ⇑(p.comp f) = p ∘ f 
goal: ⇑(p.comp f) = ⇑p ∘ ⇑f

full_name: GroupSeminorm.coe_comp
code: @[to_additive (attr := simp)]
theorem coe_comp : ⇑(p.comp f) = p ∘ f 
goal: ⇑(p.comp f) = ⇑p ∘ ⇑f

full_name: GroupSeminorm.comp_apply
code: @[to_additive (attr := simp)]
theorem comp_apply (x : F) : (p.comp f) x = p (f x) 
goal: (p.comp f) x = p (f x)

full_name: AddGroupSeminorm.comp_apply
code: @[to_additive (attr := simp)]
theorem comp_apply (x : F) : (p.comp f) x = p (f x) 
goal: (p.comp f) x = p (f x)

full_name: AddGroupSeminorm.comp_id
code: @[to_additive (attr := simp)]
theorem comp_id : p.comp (MonoidHom.id _) = p 
goal: p.comp (AddMonoidHom.id E) = p

full_name: GroupSeminorm.comp_id
code: @[to_additive (attr := simp)]
theorem comp_id : p.comp (MonoidHom.id _) = p 
goal: p.comp (MonoidHom.id E) = p

full_name: AddGroupSeminorm.comp_zero
code: @[to_additive (attr := simp)]
theorem comp_zero : p.comp (1 : F →* E) = 0 
goal: p.comp 0 = 0

full_name: GroupSeminorm.comp_zero
code: @[to_additive (attr := simp)]
theorem comp_zero : p.comp (1 : F →* E) = 0 
goal: p.comp 1 = 0

full_name: GroupSeminorm.zero_comp
code: @[to_additive (attr := simp)]
theorem zero_comp : (0 : GroupSeminorm E).comp f = 0 
goal: GroupSeminorm.comp 0 f = 0

full_name: AddGroupSeminorm.zero_comp
code: @[to_additive (attr := simp)]
theorem zero_comp : (0 : GroupSeminorm E).comp f = 0 
goal: AddGroupSeminorm.comp 0 f = 0

full_name: GroupSeminorm.comp_assoc
code: @[to_additive]
theorem comp_assoc (g : F →* E) (f : G →* F) : p.comp (g.comp f) = (p.comp g).comp f 
goal: p.comp (g.comp f) = (p.comp g).comp f

full_name: AddGroupSeminorm.comp_assoc
code: @[to_additive]
theorem comp_assoc (g : F →* E) (f : G →* F) : p.comp (g.comp f) = (p.comp g).comp f 
goal: p.comp (g.comp f) = (p.comp g).comp f

full_name: GroupSeminorm.add_comp
code: @[to_additive]
theorem add_comp (f : F →* E) : (p + q).comp f = p.comp f + q.comp f 
goal: (p + q).comp f = p.comp f + q.comp f

full_name: AddGroupSeminorm.add_comp
code: @[to_additive]
theorem add_comp (f : F →* E) : (p + q).comp f = p.comp f + q.comp f 
goal: (p + q).comp f = p.comp f + q.comp f

full_name: AddGroupSeminorm.comp_mono
code: @[to_additive]
theorem comp_mono (hp : p ≤ q) : p.comp f ≤ q.comp f 
goal: p.comp f ≤ q.comp f

full_name: GroupSeminorm.comp_mono
code: @[to_additive]
theorem comp_mono (hp : p ≤ q) : p.comp f ≤ q.comp f 
goal: p.comp f ≤ q.comp f

full_name: AddGroupSeminorm.comp_add_le
code: @[to_additive]
theorem comp_mul_le (f g : F →* E) : p.comp (f * g) ≤ p.comp f + p.comp g 
goal: p.comp (f + g) ≤ p.comp f + p.comp g

full_name: GroupSeminorm.comp_mul_le
code: @[to_additive]
theorem comp_mul_le (f g : F →* E) : p.comp (f * g) ≤ p.comp f + p.comp g 
goal: p.comp (f * g) ≤ p.comp f + p.comp g

full_name: GroupSeminorm.mul_bddBelow_range_add
code: @[to_additive]
theorem mul_bddBelow_range_add {p q : GroupSeminorm E} {x : E} :
    BddBelow (range fun y => p y + q (x / y)) 
goal: BddBelow (Set.range fun y => p y + q (x / y))

full_name: AddGroupSeminorm.add_bddBelow_range_add
code: @[to_additive]
theorem mul_bddBelow_range_add {p q : GroupSeminorm E} {x : E} :
    BddBelow (range fun y => p y + q (x / y)) 
goal: BddBelow (Set.range fun y => p y + q (x - y))

full_name: GroupSeminorm.instInf
code: @[to_additive]
noncomputable instance : Inf (GroupSeminorm E) 
goal: Inf (GroupSeminorm E)

full_name: AddGroupSeminorm.instInf
code: @[to_additive]
noncomputable instance : Inf (GroupSeminorm E) 
goal: Inf (AddGroupSeminorm E)

full_name: AddGroupSeminorm.inf_apply
code: @[to_additive (attr := simp)]
theorem inf_apply : (p ⊓ q) x = ⨅ y, p y + q (x / y) 
goal: (p ⊓ q) x = ⨅ y, p y + q (x - y)

full_name: GroupSeminorm.inf_apply
code: @[to_additive (attr := simp)]
theorem inf_apply : (p ⊓ q) x = ⨅ y, p y + q (x / y) 
goal: (p ⊓ q) x = ⨅ y, p y + q (x / y)

full_name: GroupSeminorm.instLattice
code: @[to_additive]
noncomputable instance : Lattice (GroupSeminorm E) 
goal: Lattice (GroupSeminorm E)

full_name: AddGroupSeminorm.instLattice
code: @[to_additive]
noncomputable instance : Lattice (GroupSeminorm E) 
goal: Lattice (AddGroupSeminorm E)

full_name: AddGroupSeminorm.toOne
code: instance toOne [DecidableEq E] : One (AddGroupSeminorm E) 
goal: One (AddGroupSeminorm E)

full_name: AddGroupSeminorm.apply_one
code: @[simp]
theorem apply_one [DecidableEq E] (x : E) : (1 : AddGroupSeminorm E) x = if x = 0 then 0 else 1 
goal: 1 x = if x = 0 then 0 else 1

full_name: AddGroupSeminorm.toSMul
code: /-- Any action on `ℝ` which factors through `ℝ≥0` applies to an `AddGroupSeminorm`. -/
instance toSMul : SMul R (AddGroupSeminorm E) 
goal: SMul R (AddGroupSeminorm E)

full_name: AddGroupSeminorm.coe_smul
code: @[simp, norm_cast]
theorem coe_smul (r : R) (p : AddGroupSeminorm E) : ⇑(r • p) = r • ⇑p 
goal: ⇑(r • p) = r • ⇑p

full_name: AddGroupSeminorm.smul_apply
code: @[simp]
theorem smul_apply (r : R) (p : AddGroupSeminorm E) (x : E) : (r • p) x = r • p x 
goal: (r • p) x = r • p x

full_name: AddGroupSeminorm.isScalarTower
code: instance isScalarTower [SMul R' ℝ] [SMul R' ℝ≥0] [IsScalarTower R' ℝ≥0 ℝ] [SMul R R']
    [IsScalarTower R R' ℝ] : IsScalarTower R R' (AddGroupSeminorm E) 
goal: IsScalarTower R R' (AddGroupSeminorm E)

full_name: AddGroupSeminorm.smul_sup
code: theorem smul_sup (r : R) (p q : AddGroupSeminorm E) : r • (p ⊔ q) = r • p ⊔ r • q 
goal: r • (p ⊔ q) = r • p ⊔ r • q

full_name: NonarchAddGroupSeminorm.funLike
code: instance funLike : FunLike (NonarchAddGroupSeminorm E) E ℝ 
goal: FunLike (NonarchAddGroupSeminorm E) E ℝ

full_name: NonarchAddGroupSeminorm.nonarchAddGroupSeminormClass
code: instance nonarchAddGroupSeminormClass :
    NonarchAddGroupSeminormClass (NonarchAddGroupSeminorm E) E 
goal: NonarchAddGroupSeminormClass (NonarchAddGroupSeminorm E) E

full_name: NonarchAddGroupSeminorm.instCoeFunForallReal
code: /-- Helper instance for when there's too many metavariables to apply `DFunLike.hasCoeToFun`. -/
instance : CoeFun (NonarchAddGroupSeminorm E) fun _ => E → ℝ 
goal: CoeFun (NonarchAddGroupSeminorm E) fun x => E → ℝ

full_name: NonarchAddGroupSeminorm.toZeroHom_eq_coe
code: @[simp]
theorem toZeroHom_eq_coe : ⇑p.toZeroHom = p 
goal: ⇑p.toZeroHom = ⇑p

full_name: NonarchAddGroupSeminorm.ext
code: @[ext]
theorem ext : (∀ x, p x = q x) → p = q 
goal: (∀ (x : E), p x = q x) → p = q

full_name: NonarchAddGroupSeminorm.instPartialOrder
code: noncomputable instance : PartialOrder (NonarchAddGroupSeminorm E) 
goal: PartialOrder (NonarchAddGroupSeminorm E)

full_name: NonarchAddGroupSeminorm.le_def
code: theorem le_def : p ≤ q ↔ (p : E → ℝ) ≤ q 
goal: p ≤ q ↔ ⇑p ≤ ⇑q

full_name: NonarchAddGroupSeminorm.lt_def
code: theorem lt_def : p < q ↔ (p : E → ℝ) < q 
goal: p < q ↔ ⇑p < ⇑q

full_name: NonarchAddGroupSeminorm.coe_le_coe
code: @[simp, norm_cast]
theorem coe_le_coe : (p : E → ℝ) ≤ q ↔ p ≤ q 
goal: ⇑p ≤ ⇑q ↔ p ≤ q

full_name: NonarchAddGroupSeminorm.coe_lt_coe
code: @[simp, norm_cast]
theorem coe_lt_coe : (p : E → ℝ) < q ↔ p < q 
goal: ⇑p < ⇑q ↔ p < q

full_name: NonarchAddGroupSeminorm.instZero
code: instance : Zero (NonarchAddGroupSeminorm E) 
goal: Zero (NonarchAddGroupSeminorm E)

full_name: NonarchAddGroupSeminorm.coe_zero
code: @[simp, norm_cast]
theorem coe_zero : ⇑(0 : NonarchAddGroupSeminorm E) = 0 
goal: ⇑0 = 0

full_name: NonarchAddGroupSeminorm.zero_apply
code: @[simp]
theorem zero_apply (x : E) : (0 : NonarchAddGroupSeminorm E) x = 0 
goal: 0 x = 0

full_name: NonarchAddGroupSeminorm.instInhabited
code: instance : Inhabited (NonarchAddGroupSeminorm E) 
goal: Inhabited (NonarchAddGroupSeminorm E)

full_name: NonarchAddGroupSeminorm.instSup
code: instance : Sup (NonarchAddGroupSeminorm E) 
goal: Sup (NonarchAddGroupSeminorm E)

full_name: NonarchAddGroupSeminorm.coe_sup
code: @[simp, norm_cast]
theorem coe_sup : ⇑(p ⊔ q) = ⇑p ⊔ ⇑q 
goal: ⇑(p ⊔ q) = ⇑p ⊔ ⇑q

full_name: NonarchAddGroupSeminorm.sup_apply
code: @[simp]
theorem sup_apply (x : E) : (p ⊔ q) x = p x ⊔ q x 
goal: (p ⊔ q) x = p x ⊔ q x

full_name: NonarchAddGroupSeminorm.instSemilatticeSup
code: noncomputable instance : SemilatticeSup (NonarchAddGroupSeminorm E) 
goal: SemilatticeSup (NonarchAddGroupSeminorm E)

full_name: NonarchAddGroupSeminorm.add_bddBelow_range_add
code: theorem add_bddBelow_range_add {p q : NonarchAddGroupSeminorm E} {x : E} :
    BddBelow (range fun y => p y + q (x - y)) 
goal: BddBelow (Set.range fun y => p y + q (x - y))

full_name: GroupSeminorm.toOne
code: @[to_additive existing AddGroupSeminorm.toOne]
instance toOne [DecidableEq E] : One (GroupSeminorm E) 
goal: One (GroupSeminorm E)

full_name: GroupSeminorm.apply_one
code: @[to_additive (attr := simp) existing AddGroupSeminorm.apply_one]
theorem apply_one [DecidableEq E] (x : E) : (1 : GroupSeminorm E) x = if x = 1 then 0 else 1 
goal: 1 x = if x = 1 then 0 else 1

full_name: GroupSeminorm.instSMul
code: /-- Any action on `ℝ` which factors through `ℝ≥0` applies to an `AddGroupSeminorm`. -/
@[to_additive existing AddGroupSeminorm.toSMul]
instance : SMul R (GroupSeminorm E) 
goal: SMul R (GroupSeminorm E)

full_name: GroupSeminorm.instIsScalarTowerOfReal
code: @[to_additive existing AddGroupSeminorm.isScalarTower]
instance [SMul R' ℝ] [SMul R' ℝ≥0] [IsScalarTower R' ℝ≥0 ℝ] [SMul R R'] [IsScalarTower R R' ℝ] :
    IsScalarTower R R' (GroupSeminorm E) 
goal: IsScalarTower R R' (GroupSeminorm E)

full_name: GroupSeminorm.coe_smul
code: @[to_additive (attr := simp, norm_cast) existing AddGroupSeminorm.coe_smul]
theorem coe_smul (r : R) (p : GroupSeminorm E) : ⇑(r • p) = r • ⇑p 
goal: ⇑(r • p) = r • ⇑p

full_name: GroupSeminorm.smul_apply
code: @[to_additive (attr := simp) existing AddGroupSeminorm.smul_apply]
theorem smul_apply (r : R) (p : GroupSeminorm E) (x : E) : (r • p) x = r • p x 
goal: (r • p) x = r • p x

full_name: GroupSeminorm.smul_sup
code: @[to_additive existing AddGroupSeminorm.smul_sup]
theorem smul_sup (r : R) (p q : GroupSeminorm E) : r • (p ⊔ q) = r • p ⊔ r • q 
goal: r • (p ⊔ q) = r • p ⊔ r • q

full_name: NonarchAddGroupSeminorm.instOneOfDecidableEq
code: instance [DecidableEq E] : One (NonarchAddGroupSeminorm E) 
goal: One (NonarchAddGroupSeminorm E)

full_name: NonarchAddGroupSeminorm.apply_one
code: @[simp]
theorem apply_one [DecidableEq E] (x : E) :
    (1 : NonarchAddGroupSeminorm E) x = if x = 0 then 0 else 1 
goal: 1 x = if x = 0 then 0 else 1

full_name: NonarchAddGroupSeminorm.instSMul
code: /-- Any action on `ℝ` which factors through `ℝ≥0` applies to a `NonarchAddGroupSeminorm`. -/
instance : SMul R (NonarchAddGroupSeminorm E) 
goal: SMul R (NonarchAddGroupSeminorm E)

full_name: NonarchAddGroupSeminorm.instIsScalarTowerOfReal
code: instance [SMul R' ℝ] [SMul R' ℝ≥0] [IsScalarTower R' ℝ≥0 ℝ] [SMul R R'] [IsScalarTower R R' ℝ] :
    IsScalarTower R R' (NonarchAddGroupSeminorm E) 
goal: IsScalarTower R R' (NonarchAddGroupSeminorm E)

full_name: NonarchAddGroupSeminorm.coe_smul
code: @[simp, norm_cast]
theorem coe_smul (r : R) (p : NonarchAddGroupSeminorm E) : ⇑(r • p) = r • ⇑p 
goal: ⇑(r • p) = r • ⇑p

full_name: NonarchAddGroupSeminorm.smul_apply
code: @[simp]
theorem smul_apply (r : R) (p : NonarchAddGroupSeminorm E) (x : E) : (r • p) x = r • p x 
goal: (r • p) x = r • p x

full_name: NonarchAddGroupSeminorm.smul_sup
code: theorem smul_sup (r : R) (p q : NonarchAddGroupSeminorm E) : r • (p ⊔ q) = r • p ⊔ r • q 
goal: r • (p ⊔ q) = r • p ⊔ r • q

full_name: AddGroupNorm.funLike
code: @[to_additive]
instance funLike : FunLike (GroupNorm E) E ℝ 
goal: FunLike (AddGroupNorm E) E ℝ

full_name: GroupNorm.funLike
code: @[to_additive]
instance funLike : FunLike (GroupNorm E) E ℝ 
goal: FunLike (GroupNorm E) E ℝ

full_name: GroupNorm.groupNormClass
code: @[to_additive]
instance groupNormClass : GroupNormClass (GroupNorm E) E ℝ 
goal: GroupNormClass (GroupNorm E) E ℝ

full_name: AddGroupNorm.addGroupNormClass
code: @[to_additive]
instance groupNormClass : GroupNormClass (GroupNorm E) E ℝ 
goal: AddGroupNormClass (AddGroupNorm E) E ℝ

full_name: AddGroupNorm.instCoeFunForallReal
code: /-- Helper instance for when there's too many metavariables to apply `DFunLike.hasCoeToFun`
directly. -/
@[to_additive "Helper instance for when there's too many metavariables to apply
`DFunLike.hasCoeToFun` directly. "]
instance : CoeFun (GroupNorm E) fun _ => E → ℝ 
goal: CoeFun (AddGroupNorm E) fun x => E → ℝ

full_name: GroupNorm.instCoeFunForallReal
code: /-- Helper instance for when there's too many metavariables to apply `DFunLike.hasCoeToFun`
directly. -/
@[to_additive "Helper instance for when there's too many metavariables to apply
`DFunLike.hasCoeToFun` directly. "]
instance : CoeFun (GroupNorm E) fun _ => E → ℝ 
goal: CoeFun (GroupNorm E) fun x => E → ℝ

full_name: GroupNorm.toGroupSeminorm_eq_coe
code: @[to_additive (attr := simp)]
theorem toGroupSeminorm_eq_coe : ⇑p.toGroupSeminorm = p 
goal: ⇑p.toGroupSeminorm = ⇑p

full_name: AddGroupNorm.toAddGroupSeminorm_eq_coe
code: @[to_additive (attr := simp)]
theorem toGroupSeminorm_eq_coe : ⇑p.toGroupSeminorm = p 
goal: ⇑p.toAddGroupSeminorm = ⇑p

full_name: AddGroupNorm.ext
code: @[to_additive (attr := ext)]
theorem ext : (∀ x, p x = q x) → p = q 
goal: (∀ (x : E), p x = q x) → p = q

full_name: GroupNorm.ext
code: @[to_additive (attr := ext)]
theorem ext : (∀ x, p x = q x) → p = q 
goal: (∀ (x : E), p x = q x) → p = q

full_name: AddGroupNorm.instPartialOrder
code: @[to_additive]
instance : PartialOrder (GroupNorm E) 
goal: PartialOrder (AddGroupNorm E)

full_name: GroupNorm.instPartialOrder
code: @[to_additive]
instance : PartialOrder (GroupNorm E) 
goal: PartialOrder (GroupNorm E)

full_name: AddGroupNorm.le_def
code: @[to_additive]
theorem le_def : p ≤ q ↔ (p : E → ℝ) ≤ q 
goal: p ≤ q ↔ ⇑p ≤ ⇑q

full_name: GroupNorm.le_def
code: @[to_additive]
theorem le_def : p ≤ q ↔ (p : E → ℝ) ≤ q 
goal: p ≤ q ↔ ⇑p ≤ ⇑q

full_name: GroupNorm.lt_def
code: @[to_additive]
theorem lt_def : p < q ↔ (p : E → ℝ) < q 
goal: p < q ↔ ⇑p < ⇑q

full_name: AddGroupNorm.lt_def
code: @[to_additive]
theorem lt_def : p < q ↔ (p : E → ℝ) < q 
goal: p < q ↔ ⇑p < ⇑q

full_name: AddGroupNorm.coe_le_coe
code: @[to_additive (attr := simp, norm_cast)]
theorem coe_le_coe : (p : E → ℝ) ≤ q ↔ p ≤ q 
goal: ⇑p ≤ ⇑q ↔ p ≤ q

full_name: GroupNorm.coe_le_coe
code: @[to_additive (attr := simp, norm_cast)]
theorem coe_le_coe : (p : E → ℝ) ≤ q ↔ p ≤ q 
goal: ⇑p ≤ ⇑q ↔ p ≤ q

full_name: AddGroupNorm.coe_lt_coe
code: @[to_additive (attr := simp, norm_cast)]
theorem coe_lt_coe : (p : E → ℝ) < q ↔ p < q 
goal: ⇑p < ⇑q ↔ p < q

full_name: GroupNorm.coe_lt_coe
code: @[to_additive (attr := simp, norm_cast)]
theorem coe_lt_coe : (p : E → ℝ) < q ↔ p < q 
goal: ⇑p < ⇑q ↔ p < q

full_name: AddGroupNorm.instAdd
code: @[to_additive]
instance : Add (GroupNorm E) 
goal: Add (AddGroupNorm E)

full_name: GroupNorm.instAdd
code: @[to_additive]
instance : Add (GroupNorm E) 
goal: Add (GroupNorm E)

full_name: AddGroupNorm.coe_add
code: @[to_additive (attr := simp)]
theorem coe_add : ⇑(p + q) = p + q 
goal: ⇑(p + q) = ⇑p + ⇑q

full_name: GroupNorm.coe_add
code: @[to_additive (attr := simp)]
theorem coe_add : ⇑(p + q) = p + q 
goal: ⇑(p + q) = ⇑p + ⇑q

full_name: GroupNorm.add_apply
code: @[to_additive (attr := simp)]
theorem add_apply (x : E) : (p + q) x = p x + q x 
goal: (p + q) x = p x + q x

full_name: AddGroupNorm.add_apply
code: @[to_additive (attr := simp)]
theorem add_apply (x : E) : (p + q) x = p x + q x 
goal: (p + q) x = p x + q x

full_name: AddGroupNorm.instSup
code: @[to_additive]
instance : Sup (GroupNorm E) 
goal: Sup (AddGroupNorm E)

full_name: GroupNorm.instSup
code: @[to_additive]
instance : Sup (GroupNorm E) 
goal: Sup (GroupNorm E)

full_name: AddGroupNorm.coe_sup
code: @[to_additive (attr := simp, norm_cast)]
theorem coe_sup : ⇑(p ⊔ q) = ⇑p ⊔ ⇑q 
goal: ⇑(p ⊔ q) = ⇑p ⊔ ⇑q

full_name: GroupNorm.coe_sup
code: @[to_additive (attr := simp, norm_cast)]
theorem coe_sup : ⇑(p ⊔ q) = ⇑p ⊔ ⇑q 
goal: ⇑(p ⊔ q) = ⇑p ⊔ ⇑q

full_name: AddGroupNorm.sup_apply
code: @[to_additive (attr := simp)]
theorem sup_apply (x : E) : (p ⊔ q) x = p x ⊔ q x 
goal: (p ⊔ q) x = p x ⊔ q x

full_name: GroupNorm.sup_apply
code: @[to_additive (attr := simp)]
theorem sup_apply (x : E) : (p ⊔ q) x = p x ⊔ q x 
goal: (p ⊔ q) x = p x ⊔ q x

full_name: AddGroupNorm.instSemilatticeSup
code: @[to_additive]
instance : SemilatticeSup (GroupNorm E) 
goal: SemilatticeSup (AddGroupNorm E)

full_name: GroupNorm.instSemilatticeSup
code: @[to_additive]
instance : SemilatticeSup (GroupNorm E) 
goal: SemilatticeSup (GroupNorm E)

full_name: AddGroupNorm.instOne
code: instance : One (AddGroupNorm E) 
goal: One (AddGroupNorm E)

full_name: AddGroupNorm.apply_one
code: @[simp]
theorem apply_one (x : E) : (1 : AddGroupNorm E) x = if x = 0 then 0 else 1 
goal: 1 x = if x = 0 then 0 else 1

full_name: AddGroupNorm.instInhabited
code: instance : Inhabited (AddGroupNorm E) 
goal: Inhabited (AddGroupNorm E)

full_name: AddGroupNorm.toOne
code: instance _root_.AddGroupNorm.toOne [AddGroup E] [DecidableEq E] : One (AddGroupNorm E) 
goal: One (AddGroupNorm E)

full_name: GroupNorm.toOne
code: @[to_additive existing AddGroupNorm.toOne]
instance toOne : One (GroupNorm E) 
goal: One (GroupNorm E)

full_name: GroupNorm.apply_one
code: @[to_additive (attr := simp) existing AddGroupNorm.apply_one]
theorem apply_one (x : E) : (1 : GroupNorm E) x = if x = 1 then 0 else 1 
goal: 1 x = if x = 1 then 0 else 1

full_name: GroupNorm.instInhabited
code: @[to_additive existing]
instance : Inhabited (GroupNorm E) 
goal: Inhabited (GroupNorm E)

full_name: NonarchAddGroupNorm.funLike
code: instance funLike : FunLike (NonarchAddGroupNorm E) E ℝ 
goal: FunLike (NonarchAddGroupNorm E) E ℝ

full_name: NonarchAddGroupNorm.nonarchAddGroupNormClass
code: instance nonarchAddGroupNormClass : NonarchAddGroupNormClass (NonarchAddGroupNorm E) E 
goal: NonarchAddGroupNormClass (NonarchAddGroupNorm E) E

full_name: NonarchAddGroupNorm.instCoeFunForallReal
code: /-- Helper instance for when there's too many metavariables to apply `DFunLike.hasCoeToFun`. -/
noncomputable instance : CoeFun (NonarchAddGroupNorm E) fun _ => E → ℝ 
goal: CoeFun (NonarchAddGroupNorm E) fun x => E → ℝ

full_name: NonarchAddGroupNorm.toNonarchAddGroupSeminorm_eq_coe
code: @[simp]
theorem toNonarchAddGroupSeminorm_eq_coe : ⇑p.toNonarchAddGroupSeminorm = p 
goal: ⇑p.toNonarchAddGroupSeminorm = ⇑p

full_name: NonarchAddGroupNorm.ext
code: @[ext]
theorem ext : (∀ x, p x = q x) → p = q 
goal: (∀ (x : E), p x = q x) → p = q

full_name: NonarchAddGroupNorm.instPartialOrder
code: noncomputable instance : PartialOrder (NonarchAddGroupNorm E) 
goal: PartialOrder (NonarchAddGroupNorm E)

full_name: NonarchAddGroupNorm.le_def
code: theorem le_def : p ≤ q ↔ (p : E → ℝ) ≤ q 
goal: p ≤ q ↔ ⇑p ≤ ⇑q

full_name: NonarchAddGroupNorm.lt_def
code: theorem lt_def : p < q ↔ (p : E → ℝ) < q 
goal: p < q ↔ ⇑p < ⇑q

full_name: NonarchAddGroupNorm.coe_le_coe
code: @[simp, norm_cast]
theorem coe_le_coe : (p : E → ℝ) ≤ q ↔ p ≤ q 
goal: ⇑p ≤ ⇑q ↔ p ≤ q

full_name: NonarchAddGroupNorm.coe_lt_coe
code: @[simp, norm_cast]
theorem coe_lt_coe : (p : E → ℝ) < q ↔ p < q 
goal: ⇑p < ⇑q ↔ p < q

full_name: NonarchAddGroupNorm.instSup
code: instance : Sup (NonarchAddGroupNorm E) 
goal: Sup (NonarchAddGroupNorm E)

full_name: NonarchAddGroupNorm.coe_sup
code: @[simp, norm_cast]
theorem coe_sup : ⇑(p ⊔ q) = ⇑p ⊔ ⇑q 
goal: ⇑(p ⊔ q) = ⇑p ⊔ ⇑q

full_name: NonarchAddGroupNorm.sup_apply
code: @[simp]
theorem sup_apply (x : E) : (p ⊔ q) x = p x ⊔ q x 
goal: (p ⊔ q) x = p x ⊔ q x

full_name: NonarchAddGroupNorm.instSemilatticeSup
code: noncomputable instance : SemilatticeSup (NonarchAddGroupNorm E) 
goal: SemilatticeSup (NonarchAddGroupNorm E)

full_name: NonarchAddGroupNorm.instOneOfDecidableEq
code: instance [DecidableEq E] : One (NonarchAddGroupNorm E) 
goal: One (NonarchAddGroupNorm E)

full_name: NonarchAddGroupNorm.apply_one
code: @[simp]
theorem apply_one [DecidableEq E] (x : E) :
    (1 : NonarchAddGroupNorm E) x = if x = 0 then 0 else 1 
goal: 1 x = if x = 0 then 0 else 1

full_name: NonarchAddGroupNorm.instInhabitedOfDecidableEq
code: instance [DecidableEq E] : Inhabited (NonarchAddGroupNorm E) 
goal: Inhabited (NonarchAddGroupNorm E)