ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- RightOrdContinuous.mono
theorem mono (hf : RightOrdContinuous f) : Monotone f 
Arguments: {α : Type u} {β : Type v} [Preorder α] [Preorder β] {f : α → β} (hf : RightOrdContinuous f)
Goal: Monotone f
-- RightOrdContinuous.comp
theorem comp (hg : RightOrdContinuous g) (hf : RightOrdContinuous f) : RightOrdContinuous (g ∘ f) 
Arguments: {α : Type u} {β : Type v} {γ : Type w} [Preorder α] [Preorder β] [Preorder γ] {g : β → γ} {f : α → β} (hg : RightOrdContinuous g) (hf : RightOrdContinuous f)
Goal: RightOrdContinuous (g ∘ f)
-- RightOrdContinuous.iterate
protected theorem iterate {f : α → α} (hf : RightOrdContinuous f) (n : ℕ) :
    RightOrdContinuous f^[n] 
Arguments: {α : Type u} [Preorder α] {f : α → α} (hf : RightOrdContinuous f) (n : ℕ)
Goal: RightOrdContinuous f^[n]
-- RightOrdContinuous.map_inf
theorem map_inf (hf : RightOrdContinuous f) (x y : α) : f (x ⊓ y) = f x ⊓ f y 
Arguments: {α : Type u} {β : Type v} [SemilatticeInf α] [SemilatticeInf β] {f : α → β} (hf : RightOrdContinuous f) (x y : α)
Goal: f (x ⊓ y) = f x ⊓ f y
-- RightOrdContinuous.le_iff
theorem le_iff (hf : RightOrdContinuous f) (h : Injective f) {x y} : f x ≤ f y ↔ x ≤ y 
Arguments: {α : Type u} {β : Type v} [SemilatticeInf α] [SemilatticeInf β] {f : α → β} (hf : RightOrdContinuous f) (h : Function.Injective f) {x y : α}
Goal: f x ≤ f y ↔ x ≤ y
-- RightOrdContinuous.lt_iff
theorem lt_iff (hf : RightOrdContinuous f) (h : Injective f) {x y} : f x < f y ↔ x < y 
Arguments: {α : Type u} {β : Type v} [SemilatticeInf α] [SemilatticeInf β] {f : α → β} (hf : RightOrdContinuous f) (h : Function.Injective f) {x y : α}
Goal: f x < f y ↔ x < y
-- RightOrdContinuous.coe_toOrderEmbedding
@[simp]
theorem coe_toOrderEmbedding (hf : RightOrdContinuous f) (h : Injective f) :
    ⇑(hf.toOrderEmbedding f h) = f 
Arguments: {α : Type u} {β : Type v} [SemilatticeInf α] [SemilatticeInf β] {f : α → β} (hf : RightOrdContinuous f) (h : Function.Injective f)
Goal: ⇑(RightOrdContinuous.toOrderEmbedding f hf h) = f
-- RightOrdContinuous.map_sInf'
theorem map_sInf' (hf : RightOrdContinuous f) (s : Set α) : f (sInf s) = sInf (f '' s) 
Arguments: {α : Type u} {β : Type v} [CompleteLattice α] [CompleteLattice β] {f : α → β} (hf : RightOrdContinuous f) (s : Set α)
Goal: f (sInf s) = sInf (f '' s)
-- RightOrdContinuous.map_sInf
theorem map_sInf (hf : RightOrdContinuous f) (s : Set α) : f (sInf s) = ⨅ x ∈ s, f x 
Arguments: {α : Type u} {β : Type v} [CompleteLattice α] [CompleteLattice β] {f : α → β} (hf : RightOrdContinuous f) (s : Set α)
Goal: f (sInf s) = ⨅ x ∈ s, f x
-- RightOrdContinuous.map_iInf
theorem map_iInf (hf : RightOrdContinuous f) (g : ι → α) : f (⨅ i, g i) = ⨅ i, f (g i) 
Arguments: {α : Type u} {β : Type v} {ι : Sort x} [CompleteLattice α] [CompleteLattice β] {f : α → β} (hf : RightOrdContinuous f) (g : ι → α)
Goal: f (⨅ i, g i) = ⨅ i, f (g i)
-- RightOrdContinuous.map_csInf
theorem map_csInf (hf : RightOrdContinuous f) {s : Set α} (sne : s.Nonempty) (sbdd : BddBelow s) :
    f (sInf s) = sInf (f '' s) 
Arguments: {α : Type u} {β : Type v} [ConditionallyCompleteLattice α] [ConditionallyCompleteLattice β] {f : α → β} (hf : RightOrdContinuous f) {s : Set α} (sne : s.Nonempty) (sbdd : BddBelow s)
Goal: f (sInf s) = sInf (f '' s)
-- RightOrdContinuous.map_ciInf
theorem map_ciInf (hf : RightOrdContinuous f) {g : ι → α} (hg : BddBelow (range g)) :
    f (⨅ i, g i) = ⨅ i, f (g i) 
Arguments: {α : Type u} {β : Type v} {ι : Sort x} [ConditionallyCompleteLattice α] [ConditionallyCompleteLattice β] [Nonempty ι] {f : α → β} (hf : RightOrdContinuous f) {g : ι → α} (hg : BddBelow (Set.range g))
Goal: f (⨅ i, g i) = ⨅ i, f (g i)
-- OrderIso.leftOrdContinuous
protected theorem leftOrdContinuous : LeftOrdContinuous e 
Arguments: {α : Type u} {β : Type v} [Preorder α] [Preorder β] (e : α ≃o β)
Goal: LeftOrdContinuous ⇑e
-- OrderIso.rightOrdContinuous
protected theorem rightOrdContinuous : RightOrdContinuous e 
Arguments: {α : Type u} {β : Type v} [Preorder α] [Preorder β] (e : α ≃o β)
Goal: RightOrdContinuous ⇑e
-- QuotientAddGroup.coe_mk'
@[to_additive (attr := simp)]
theorem coe_mk' : (mk' N : G → G ⧸ N) = mk 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal]
Goal: ⇑(QuotientAddGroup.mk' N) = QuotientAddGroup.mk
-- QuotientGroup.coe_mk'
@[to_additive (attr := simp)]
theorem coe_mk' : (mk' N : G → G ⧸ N) = mk 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal]
Goal: ⇑(QuotientGroup.mk' N) = QuotientGroup.mk
-- QuotientGroup.mk'_apply
@[to_additive (attr := simp)]
theorem mk'_apply (x : G) : mk' N x = x 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] (x : G)
Goal: (QuotientGroup.mk' N) x = ↑x
-- QuotientAddGroup.mk'_apply
@[to_additive (attr := simp)]
theorem mk'_apply (x : G) : mk' N x = x 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal] (x : G)
Goal: (QuotientAddGroup.mk' N) x = ↑x
-- QuotientGroup.mk'_surjective
@[to_additive]
theorem mk'_surjective : Surjective <| mk' N 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal]
Goal: Function.Surjective ⇑(QuotientGroup.mk' N)
-- QuotientAddGroup.mk'_surjective
@[to_additive]
theorem mk'_surjective : Surjective <| mk' N 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal]
Goal: Function.Surjective ⇑(QuotientAddGroup.mk' N)
-- QuotientGroup.mk'_eq_mk'
@[to_additive]
theorem mk'_eq_mk' {x y : G} : mk' N x = mk' N y ↔ ∃ z ∈ N, x * z = y 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] {x y : G}
Goal: (QuotientGroup.mk' N) x = (QuotientGroup.mk' N) y ↔ ∃ z ∈ N, x * z = y
-- QuotientAddGroup.mk'_eq_mk'
@[to_additive]
theorem mk'_eq_mk' {x y : G} : mk' N x = mk' N y ↔ ∃ z ∈ N, x * z = y 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal] {x y : G}
Goal: (QuotientAddGroup.mk' N) x = (QuotientAddGroup.mk' N) y ↔ ∃ z ∈ N, x + z = y
-- QuotientGroup.sound
@[to_additive]
theorem sound (U : Set (G ⧸ N)) (g : N.op) :
    g • (mk' N) ⁻¹' U = (mk' N) ⁻¹' U 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] (U : Set (G ⧸ N)) (g : ↥N.op)
Goal: g • ⇑(QuotientGroup.mk' N) ⁻¹' U = ⇑(QuotientGroup.mk' N) ⁻¹' U
-- QuotientAddGroup.sound
@[to_additive]
theorem sound (U : Set (G ⧸ N)) (g : N.op) :
    g • (mk' N) ⁻¹' U = (mk' N) ⁻¹' U 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal] (U : Set (G ⧸ N)) (g : ↥N.op)
Goal: g +ᵥ ⇑(QuotientAddGroup.mk' N) ⁻¹' U = ⇑(QuotientAddGroup.mk' N) ⁻¹' U
-- QuotientGroup.monoidHom_ext
@[to_additive (attr := ext 1100) "Two `AddMonoidHom`s from an additive quotient group are equal if
 their compositions with `AddQuotientGroup.mk'` are equal.

 See note [partially-applied ext lemmas]. "]
theorem monoidHom_ext ⦃f g : G ⧸ N →* M⦄ (h : f.comp (mk' N) = g.comp (mk' N)) : f = g 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] {M : Type x} [Monoid M] ⦃f g : G ⧸ N →* M⦄ (h : f.comp (QuotientGroup.mk' N) = g.comp (QuotientGroup.mk' N))
Goal: f = g
-- QuotientAddGroup.addMonoidHom_ext
@[to_additive (attr := ext 1100) "Two `AddMonoidHom`s from an additive quotient group are equal if
 their compositions with `AddQuotientGroup.mk'` are equal.

 See note [partially-applied ext lemmas]. "]
theorem monoidHom_ext ⦃f g : G ⧸ N →* M⦄ (h : f.comp (mk' N) = g.comp (mk' N)) : f = g 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal] {M : Type x} [AddMonoid M] ⦃f g : G ⧸ N →+ M⦄ (h : f.comp (QuotientAddGroup.mk' N) = g.comp (QuotientAddGroup.mk' N))
Goal: f = g
-- QuotientGroup.eq_one_iff
@[to_additive (attr := simp)]
theorem eq_one_iff {N : Subgroup G} [nN : N.Normal] (x : G) : (x : G ⧸ N) = 1 ↔ x ∈ N 
Arguments: {G : Type u} [Group G] {N : Subgroup G} [nN : N.Normal] (x : G)
Goal: ↑x = 1 ↔ x ∈ N
-- QuotientAddGroup.eq_zero_iff
@[to_additive (attr := simp)]
theorem eq_one_iff {N : Subgroup G} [nN : N.Normal] (x : G) : (x : G ⧸ N) = 1 ↔ x ∈ N 
Arguments: {G : Type u} [AddGroup G] {N : AddSubgroup G} [nN : N.Normal] (x : G)
Goal: ↑x = 0 ↔ x ∈ N
-- QuotientAddGroup.ker_le_range_iff
@[to_additive]
theorem ker_le_range_iff {I : Type w} [Group I] (f : G →* H) [f.range.Normal] (g : H →* I) :
    g.ker ≤ f.range ↔ (mk' f.range).comp g.ker.subtype = 1 
Arguments: {G : Type u} [AddGroup G] {H : Type v} [AddGroup H] {I : Type w} [AddGroup I] (f : G →+ H) [f.range.Normal] (g : H →+ I)
Goal: g.ker ≤ f.range ↔ (QuotientAddGroup.mk' f.range).comp g.ker.subtype = 0
-- QuotientGroup.ker_le_range_iff
@[to_additive]
theorem ker_le_range_iff {I : Type w} [Group I] (f : G →* H) [f.range.Normal] (g : H →* I) :
    g.ker ≤ f.range ↔ (mk' f.range).comp g.ker.subtype = 1 
Arguments: {G : Type u} [Group G] {H : Type v} [Group H] {I : Type w} [Group I] (f : G →* H) [f.range.Normal] (g : H →* I)
Goal: g.ker ≤ f.range ↔ (QuotientGroup.mk' f.range).comp g.ker.subtype = 1
-- QuotientAddGroup.ker_mk'
@[to_additive (attr := simp)]
theorem ker_mk' : MonoidHom.ker (QuotientGroup.mk' N : G →* G ⧸ N) = N 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal]
Goal: (QuotientAddGroup.mk' N).ker = N
-- QuotientGroup.ker_mk'
@[to_additive (attr := simp)]
theorem ker_mk' : MonoidHom.ker (QuotientGroup.mk' N : G →* G ⧸ N) = N 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal]
Goal: (QuotientGroup.mk' N).ker = N
-- QuotientAddGroup.eq_iff_sub_mem
@[to_additive]
theorem eq_iff_div_mem {N : Subgroup G} [nN : N.Normal] {x y : G} :
    (x : G ⧸ N) = y ↔ x / y ∈ N 
Arguments: {G : Type u} [AddGroup G] {N : AddSubgroup G} [nN : N.Normal] {x y : G}
Goal: ↑x = ↑y ↔ x - y ∈ N
-- QuotientGroup.eq_iff_div_mem
@[to_additive]
theorem eq_iff_div_mem {N : Subgroup G} [nN : N.Normal] {x y : G} :
    (x : G ⧸ N) = y ↔ x / y ∈ N 
Arguments: {G : Type u} [Group G] {N : Subgroup G} [nN : N.Normal] {x y : G}
Goal: ↑x = ↑y ↔ x / y ∈ N
-- QuotientAddGroup.mk_zero
@[to_additive (attr := simp)]
theorem mk_one : ((1 : G) : Q) = 1 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal]
Goal: ↑0 = 0
-- QuotientGroup.mk_one
@[to_additive (attr := simp)]
theorem mk_one : ((1 : G) : Q) = 1 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal]
Goal: ↑1 = 1
-- QuotientAddGroup.mk_add
@[to_additive (attr := simp)]
theorem mk_mul (a b : G) : ((a * b : G) : Q) = a * b 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal] (a b : G)
Goal: ↑(a + b) = ↑a + ↑b
-- QuotientGroup.mk_mul
@[to_additive (attr := simp)]
theorem mk_mul (a b : G) : ((a * b : G) : Q) = a * b 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] (a b : G)
Goal: ↑(a * b) = ↑a * ↑b
-- QuotientAddGroup.mk_neg
@[to_additive (attr := simp)]
theorem mk_inv (a : G) : ((a⁻¹ : G) : Q) = (a : Q)⁻¹ 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal] (a : G)
Goal: ↑(-a) = -↑a
-- QuotientGroup.mk_inv
@[to_additive (attr := simp)]
theorem mk_inv (a : G) : ((a⁻¹ : G) : Q) = (a : Q)⁻¹ 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] (a : G)
Goal: ↑a⁻¹ = (↑a)⁻¹
-- QuotientGroup.mk_div
@[to_additive (attr := simp)]
theorem mk_div (a b : G) : ((a / b : G) : Q) = a / b 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] (a b : G)
Goal: ↑(a / b) = ↑a / ↑b
-- QuotientAddGroup.mk_sub
@[to_additive (attr := simp)]
theorem mk_div (a b : G) : ((a / b : G) : Q) = a / b 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal] (a b : G)
Goal: ↑(a - b) = ↑a - ↑b
-- QuotientAddGroup.mk_nsmul
@[to_additive (attr := simp)]
theorem mk_pow (a : G) (n : ℕ) : ((a ^ n : G) : Q) = (a : Q) ^ n 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal] (a : G) (n : ℕ)
Goal: ↑(n • a) = n • ↑a
-- QuotientGroup.mk_pow
@[to_additive (attr := simp)]
theorem mk_pow (a : G) (n : ℕ) : ((a ^ n : G) : Q) = (a : Q) ^ n 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] (a : G) (n : ℕ)
Goal: ↑(a ^ n) = ↑a ^ n
-- QuotientGroup.mk_zpow
@[to_additive (attr := simp)]
theorem mk_zpow (a : G) (n : ℤ) : ((a ^ n : G) : Q) = (a : Q) ^ n 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] (a : G) (n : ℤ)
Goal: ↑(a ^ n) = ↑a ^ n
-- QuotientAddGroup.mk_zsmul
@[to_additive (attr := simp)]
theorem mk_zpow (a : G) (n : ℤ) : ((a ^ n : G) : Q) = (a : Q) ^ n 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal] (a : G) (n : ℤ)
Goal: ↑(n • a) = n • ↑a
-- QuotientGroup.mk_prod
@[to_additive (attr := simp)]
theorem mk_prod {G ι : Type*} [CommGroup G] (N : Subgroup G) (s : Finset ι) {f : ι → G} :
    ((Finset.prod s f : G) : G ⧸ N) = Finset.prod s (fun i => (f i : G ⧸ N)) 
Arguments: {G : Type u_1} {ι : Type u_2} [CommGroup G] (N : Subgroup G) (s : Finset ι) {f : ι → G}
Goal: ↑(s.prod f) = ∏ i ∈ s, ↑(f i)
-- QuotientAddGroup.mk_sum
@[to_additive (attr := simp)]
theorem mk_prod {G ι : Type*} [CommGroup G] (N : Subgroup G) (s : Finset ι) {f : ι → G} :
    ((Finset.prod s f : G) : G ⧸ N) = Finset.prod s (fun i => (f i : G ⧸ N)) 
Arguments: {G : Type u_1} {ι : Type u_2} [AddCommGroup G] (N : AddSubgroup G) (s : Finset ι) {f : ι → G}
Goal: ↑(s.sum f) = ∑ i ∈ s, ↑(f i)
-- QuotientGroup.map_mk'_self
@[to_additive (attr := simp)] lemma map_mk'_self : N.map (mk' N) = ⊥ 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal]
Goal: Subgroup.map (QuotientGroup.mk' N) N = ⊥
-- QuotientAddGroup.map_mk'_self
@[to_additive (attr := simp)] lemma map_mk'_self : N.map (mk' N) = ⊥ 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal]
Goal: AddSubgroup.map (QuotientAddGroup.mk' N) N = ⊥
-- QuotientAddGroup.lift_mk
@[to_additive (attr := simp)]
theorem lift_mk {φ : G →* M} (HN : N ≤ φ.ker) (g : G) : lift N φ HN (g : Q) = φ g 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal] {M : Type x} [AddMonoid M] {φ : G →+ M} (HN : N ≤ φ.ker) (g : G)
Goal: (QuotientAddGroup.lift N φ HN) ↑g = φ g
-- QuotientGroup.lift_mk
@[to_additive (attr := simp)]
theorem lift_mk {φ : G →* M} (HN : N ≤ φ.ker) (g : G) : lift N φ HN (g : Q) = φ g 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] {M : Type x} [Monoid M] {φ : G →* M} (HN : N ≤ φ.ker) (g : G)
Goal: (QuotientGroup.lift N φ HN) ↑g = φ g
-- QuotientAddGroup.lift_mk'
@[to_additive (attr := simp)]
theorem lift_mk' {φ : G →* M} (HN : N ≤ φ.ker) (g : G) : lift N φ HN (mk g : Q) = φ g 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal] {M : Type x} [AddMonoid M] {φ : G →+ M} (HN : N ≤ φ.ker) (g : G)
Goal: (QuotientAddGroup.lift N φ HN) ↑g = φ g
-- QuotientGroup.lift_mk'
@[to_additive (attr := simp)]
theorem lift_mk' {φ : G →* M} (HN : N ≤ φ.ker) (g : G) : lift N φ HN (mk g : Q) = φ g 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] {M : Type x} [Monoid M] {φ : G →* M} (HN : N ≤ φ.ker) (g : G)
Goal: (QuotientGroup.lift N φ HN) ↑g = φ g
-- QuotientAddGroup.lift_quot_mk
@[to_additive (attr := simp)]
theorem lift_quot_mk {φ : G →* M} (HN : N ≤ φ.ker) (g : G) :
    lift N φ HN (Quot.mk _ g : Q) = φ g 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal] {M : Type x} [AddMonoid M] {φ : G →+ M} (HN : N ≤ φ.ker) (g : G)
Goal: (QuotientAddGroup.lift N φ HN) (Quot.mk Setoid.r g) = φ g
-- QuotientGroup.lift_quot_mk
@[to_additive (attr := simp)]
theorem lift_quot_mk {φ : G →* M} (HN : N ≤ φ.ker) (g : G) :
    lift N φ HN (Quot.mk _ g : Q) = φ g 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] {M : Type x} [Monoid M] {φ : G →* M} (HN : N ≤ φ.ker) (g : G)
Goal: (QuotientGroup.lift N φ HN) (Quot.mk Setoid.r g) = φ g
-- QuotientGroup.map_mk
@[to_additive (attr := simp)]
theorem map_mk (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) (x : G) :
    map N M f h ↑x = ↑(f x) 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] {H : Type v} [Group H] (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ Subgroup.comap f M) (x : G)
Goal: (QuotientGroup.map N M f h) ↑x = ↑(f x)
-- QuotientAddGroup.map_mk
@[to_additive (attr := simp)]
theorem map_mk (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) (x : G) :
    map N M f h ↑x = ↑(f x) 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal] {H : Type v} [AddGroup H] (M : AddSubgroup H) [M.Normal] (f : G →+ H) (h : N ≤ AddSubgroup.comap f M) (x : G)
Goal: (QuotientAddGroup.map N M f h) ↑x = ↑(f x)
-- QuotientGroup.map_mk'
@[to_additive]
theorem map_mk' (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) (x : G) :
    map N M f h (mk' _ x) = ↑(f x) 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] {H : Type v} [Group H] (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ Subgroup.comap f M) (x : G)
Goal: (QuotientGroup.map N M f h) ((QuotientGroup.mk' N) x) = ↑(f x)
-- QuotientAddGroup.map_mk'
@[to_additive]
theorem map_mk' (M : Subgroup H) [M.Normal] (f : G →* H) (h : N ≤ M.comap f) (x : G) :
    map N M f h (mk' _ x) = ↑(f x) 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal] {H : Type v} [AddGroup H] (M : AddSubgroup H) [M.Normal] (f : G →+ H) (h : N ≤ AddSubgroup.comap f M) (x : G)
Goal: (QuotientAddGroup.map N M f h) ((QuotientAddGroup.mk' N) x) = ↑(f x)
-- QuotientGroup.map_id_apply
@[to_additive]
theorem map_id_apply (h : N ≤ Subgroup.comap (MonoidHom.id _) N := (Subgroup.comap_id N).le) (x) :
    map N N (MonoidHom.id _) h x = x 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] (h : N ≤ Subgroup.comap (MonoidHom.id G) N := ⋯) (x : G ⧸ N)
Goal: (QuotientGroup.map N N (MonoidHom.id G) h) x = x
-- QuotientAddGroup.map_id_apply
@[to_additive]
theorem map_id_apply (h : N ≤ Subgroup.comap (MonoidHom.id _) N := (Subgroup.comap_id N).le) (x) :
    map N N (MonoidHom.id _) h x = x 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal] (h : N ≤ AddSubgroup.comap (AddMonoidHom.id G) N := ⋯) (x : G ⧸ N)
Goal: (QuotientAddGroup.map N N (AddMonoidHom.id G) h) x = x
-- QuotientAddGroup.map_id
@[to_additive (attr := simp)]
theorem map_id (h : N ≤ Subgroup.comap (MonoidHom.id _) N := (Subgroup.comap_id N).le) :
    map N N (MonoidHom.id _) h = MonoidHom.id _ 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal] (h : N ≤ AddSubgroup.comap (AddMonoidHom.id G) N := ⋯)
Goal: QuotientAddGroup.map N N (AddMonoidHom.id G) h = AddMonoidHom.id (G ⧸ N)
-- QuotientGroup.map_id
@[to_additive (attr := simp)]
theorem map_id (h : N ≤ Subgroup.comap (MonoidHom.id _) N := (Subgroup.comap_id N).le) :
    map N N (MonoidHom.id _) h = MonoidHom.id _ 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] (h : N ≤ Subgroup.comap (MonoidHom.id G) N := ⋯)
Goal: QuotientGroup.map N N (MonoidHom.id G) h = MonoidHom.id (G ⧸ N)
-- QuotientAddGroup.map_map
@[to_additive (attr := simp)]
theorem map_map {I : Type*} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Normal] [O.Normal]
    (f : G →* H) (g : H →* I) (hf : N ≤ Subgroup.comap f M) (hg : M ≤ Subgroup.comap g O)
    (hgf : N ≤ Subgroup.comap (g.comp f) O :=
      hf.trans ((Subgroup.comap_mono hg).trans_eq (Subgroup.comap_comap _ _ _)))
    (x : G ⧸ N) : map M O g hg (map N M f hf x) = map N O (g.comp f) hgf x 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal] {H : Type v} [AddGroup H] {I : Type u_1} [AddGroup I] (M : AddSubgroup H) (O : AddSubgroup I) [M.Normal] [O.Normal] (f : G →+ H) (g : H →+ I) (hf : N ≤ AddSubgroup.comap f M) (hg : M ≤ AddSubgroup.comap g O) (hgf : N ≤ AddSubgroup.comap (g.comp f) O := ⋯) (x : G ⧸ N)
Goal: (QuotientAddGroup.map M O g hg) ((QuotientAddGroup.map N M f hf) x) = (QuotientAddGroup.map N O (g.comp f) hgf) x
-- QuotientGroup.map_map
@[to_additive (attr := simp)]
theorem map_map {I : Type*} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Normal] [O.Normal]
    (f : G →* H) (g : H →* I) (hf : N ≤ Subgroup.comap f M) (hg : M ≤ Subgroup.comap g O)
    (hgf : N ≤ Subgroup.comap (g.comp f) O :=
      hf.trans ((Subgroup.comap_mono hg).trans_eq (Subgroup.comap_comap _ _ _)))
    (x : G ⧸ N) : map M O g hg (map N M f hf x) = map N O (g.comp f) hgf x 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] {H : Type v} [Group H] {I : Type u_1} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Normal] [O.Normal] (f : G →* H) (g : H →* I) (hf : N ≤ Subgroup.comap f M) (hg : M ≤ Subgroup.comap g O) (hgf : N ≤ Subgroup.comap (g.comp f) O := ⋯) (x : G ⧸ N)
Goal: (QuotientGroup.map M O g hg) ((QuotientGroup.map N M f hf) x) = (QuotientGroup.map N O (g.comp f) hgf) x
-- QuotientGroup.map_comp_map
@[to_additive (attr := simp)]
theorem map_comp_map {I : Type*} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Normal] [O.Normal]
    (f : G →* H) (g : H →* I) (hf : N ≤ Subgroup.comap f M) (hg : M ≤ Subgroup.comap g O)
    (hgf : N ≤ Subgroup.comap (g.comp f) O :=
      hf.trans ((Subgroup.comap_mono hg).trans_eq (Subgroup.comap_comap _ _ _))) :
    (map M O g hg).comp (map N M f hf) = map N O (g.comp f) hgf 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] {H : Type v} [Group H] {I : Type u_1} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Normal] [O.Normal] (f : G →* H) (g : H →* I) (hf : N ≤ Subgroup.comap f M) (hg : M ≤ Subgroup.comap g O) (hgf : N ≤ Subgroup.comap (g.comp f) O := ⋯)
Goal: (QuotientGroup.map M O g hg).comp (QuotientGroup.map N M f hf) = QuotientGroup.map N O (g.comp f) hgf
-- QuotientAddGroup.map_comp_map
@[to_additive (attr := simp)]
theorem map_comp_map {I : Type*} [Group I] (M : Subgroup H) (O : Subgroup I) [M.Normal] [O.Normal]
    (f : G →* H) (g : H →* I) (hf : N ≤ Subgroup.comap f M) (hg : M ≤ Subgroup.comap g O)
    (hgf : N ≤ Subgroup.comap (g.comp f) O :=
      hf.trans ((Subgroup.comap_mono hg).trans_eq (Subgroup.comap_comap _ _ _))) :
    (map M O g hg).comp (map N M f hf) = map N O (g.comp f) hgf 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal] {H : Type v} [AddGroup H] {I : Type u_1} [AddGroup I] (M : AddSubgroup H) (O : AddSubgroup I) [M.Normal] [O.Normal] (f : G →+ H) (g : H →+ I) (hf : N ≤ AddSubgroup.comap f M) (hg : M ≤ AddSubgroup.comap g O) (hgf : N ≤ AddSubgroup.comap (g.comp f) O := ⋯)
Goal: (QuotientAddGroup.map M O g hg).comp (QuotientAddGroup.map N M f hf) = QuotientAddGroup.map N O (g.comp f) hgf
-- QuotientGroup.image_coe
@[to_additive (attr := simp)] lemma image_coe : ((↑) : G → Q) '' N = 1 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal]
Goal: QuotientGroup.mk '' ↑N = 1
-- QuotientAddGroup.image_coe
@[to_additive (attr := simp)] lemma image_coe : ((↑) : G → Q) '' N = 1 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal]
Goal: QuotientAddGroup.mk '' ↑N = 0
-- QuotientGroup.preimage_image_coe
@[to_additive]
lemma preimage_image_coe (s : Set G) : ((↑) : G → Q) ⁻¹' ((↑) '' s) = N * s 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] (s : Set G)
Goal: QuotientGroup.mk ⁻¹' (QuotientGroup.mk '' s) = ↑N * s
-- QuotientAddGroup.preimage_image_coe
@[to_additive]
lemma preimage_image_coe (s : Set G) : ((↑) : G → Q) ⁻¹' ((↑) '' s) = N * s 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal] (s : Set G)
Goal: QuotientAddGroup.mk ⁻¹' (QuotientAddGroup.mk '' s) = ↑N + s
-- QuotientGroup.image_coe_inj
@[to_additive]
lemma image_coe_inj {s t : Set G} : ((↑) : G → Q) '' s = ((↑) : G → Q) '' t ↔ ↑N * s = N * t 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] {s t : Set G}
Goal: QuotientGroup.mk '' s = QuotientGroup.mk '' t ↔ ↑N * s = ↑N * t
-- QuotientAddGroup.image_coe_inj
@[to_additive]
lemma image_coe_inj {s t : Set G} : ((↑) : G → Q) '' s = ((↑) : G → Q) '' t ↔ ↑N * s = N * t 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal] {s t : Set G}
Goal: QuotientAddGroup.mk '' s = QuotientAddGroup.mk '' t ↔ ↑N + s = ↑N + t
-- QuotientGroup.congr_mk
@[simp]
theorem congr_mk (e : G ≃* H) (he : G'.map ↑e = H') (x) : congr G' H' e he (mk x) = e x 
Arguments: {G : Type u} [Group G] {H : Type v} [Group H] (G' : Subgroup G) (H' : Subgroup H) [G'.Normal] [H'.Normal] (e : G ≃* H) (he : Subgroup.map (↑e) G' = H') (x : G)
Goal: (QuotientGroup.congr G' H' e he) ↑x = ↑(e x)