ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- QuotientGroup.congr_mk'
theorem congr_mk' (e : G ≃* H) (he : G'.map ↑e = H') (x) :
    congr G' H' e he (mk' G' x) = mk' H' (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) ((QuotientGroup.mk' G') x) = (QuotientGroup.mk' H') (e x)
-- QuotientGroup.congr_apply
@[simp]
theorem congr_apply (e : G ≃* H) (he : G'.map ↑e = H') (x : G) :
    congr G' H' e he x = mk' H' (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 = (QuotientGroup.mk' H') (e x)
-- QuotientGroup.congr_refl
@[simp]
theorem congr_refl (he : G'.map (MulEquiv.refl G : G →* G) = G' := Subgroup.map_id G') :
    congr G' G' (MulEquiv.refl G) he = MulEquiv.refl (G ⧸ G') 
Arguments: {G : Type u} [Group G] (G' : Subgroup G) [G'.Normal] (he : Subgroup.map (↑(MulEquiv.refl G)) G' = G' := ⋯)
Goal: QuotientGroup.congr G' G' (MulEquiv.refl G) he = MulEquiv.refl (G ⧸ G')
-- QuotientGroup.congr_symm
@[simp]
theorem congr_symm (e : G ≃* H) (he : G'.map ↑e = H') :
    (congr G' H' e he).symm = congr H' G' e.symm ((Subgroup.map_symm_eq_iff_map_eq _).mpr he) 
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')
Goal: (QuotientGroup.congr G' H' e he).symm = QuotientGroup.congr H' G' e.symm ⋯
-- QuotientAddGroup.kerLift_mk
@[to_additive (attr := simp)]
theorem kerLift_mk (g : G) : (kerLift φ) g = φ g 
Arguments: {G : Type u} [AddGroup G] {H : Type v} [AddGroup H] (φ : G →+ H) (g : G)
Goal: (QuotientAddGroup.kerLift φ) ↑g = φ g
-- QuotientGroup.kerLift_mk
@[to_additive (attr := simp)]
theorem kerLift_mk (g : G) : (kerLift φ) g = φ g 
Arguments: {G : Type u} [Group G] {H : Type v} [Group H] (φ : G →* H) (g : G)
Goal: (QuotientGroup.kerLift φ) ↑g = φ g
-- QuotientGroup.kerLift_mk'
@[to_additive (attr := simp)]
theorem kerLift_mk' (g : G) : (kerLift φ) (mk g) = φ g 
Arguments: {G : Type u} [Group G] {H : Type v} [Group H] (φ : G →* H) (g : G)
Goal: (QuotientGroup.kerLift φ) ↑g = φ g
-- QuotientAddGroup.kerLift_mk'
@[to_additive (attr := simp)]
theorem kerLift_mk' (g : G) : (kerLift φ) (mk g) = φ g 
Arguments: {G : Type u} [AddGroup G] {H : Type v} [AddGroup H] (φ : G →+ H) (g : G)
Goal: (QuotientAddGroup.kerLift φ) ↑g = φ g
-- QuotientGroup.kerLift_injective
@[to_additive]
theorem kerLift_injective : Injective (kerLift φ) 
Arguments: {G : Type u} [Group G] {H : Type v} [Group H] (φ : G →* H)
Goal: Function.Injective ⇑(QuotientGroup.kerLift φ)
-- QuotientAddGroup.kerLift_injective
@[to_additive]
theorem kerLift_injective : Injective (kerLift φ) 
Arguments: {G : Type u} [AddGroup G] {H : Type v} [AddGroup H] (φ : G →+ H)
Goal: Function.Injective ⇑(QuotientAddGroup.kerLift φ)
-- QuotientAddGroup.rangeKerLift_injective
@[to_additive]
theorem rangeKerLift_injective : Injective (rangeKerLift φ) 
Arguments: {G : Type u} [AddGroup G] {H : Type v} [AddGroup H] (φ : G →+ H)
Goal: Function.Injective ⇑(QuotientAddGroup.rangeKerLift φ)
-- QuotientGroup.rangeKerLift_injective
@[to_additive]
theorem rangeKerLift_injective : Injective (rangeKerLift φ) 
Arguments: {G : Type u} [Group G] {H : Type v} [Group H] (φ : G →* H)
Goal: Function.Injective ⇑(QuotientGroup.rangeKerLift φ)
-- QuotientAddGroup.rangeKerLift_surjective
@[to_additive]
theorem rangeKerLift_surjective : Surjective (rangeKerLift φ) 
Arguments: {G : Type u} [AddGroup G] {H : Type v} [AddGroup H] (φ : G →+ H)
Goal: Function.Surjective ⇑(QuotientAddGroup.rangeKerLift φ)
-- QuotientGroup.rangeKerLift_surjective
@[to_additive]
theorem rangeKerLift_surjective : Surjective (rangeKerLift φ) 
Arguments: {G : Type u} [Group G] {H : Type v} [Group H] (φ : G →* H)
Goal: Function.Surjective ⇑(QuotientGroup.rangeKerLift φ)
-- QuotientGroup.quotientKerEquivOfRightInverse_symm_apply
@[to_additive (attr := simps) "The canonical isomorphism `G/(ker φ) ≃+ H` induced by a homomorphism
`φ : G →+ H` with a right inverse `ψ : H → G`."]
def quotientKerEquivOfRightInverse (ψ : H → G) (hφ : RightInverse ψ φ) : G ⧸ ker φ ≃* H 
Arguments: {G : Type u} [Group G] {H : Type v} [Group H] (φ : G →* H) (ψ : H → G) (hφ : Function.RightInverse ψ ⇑φ)
Goal: ∀ (a : H), (QuotientGroup.quotientKerEquivOfRightInverse φ ψ hφ).symm a = (QuotientGroup.mk ∘ ψ) a
-- QuotientAddGroup.quotientKerEquivOfRightInverse_symm_apply
@[to_additive (attr := simps) "The canonical isomorphism `G/(ker φ) ≃+ H` induced by a homomorphism
`φ : G →+ H` with a right inverse `ψ : H → G`."]
def quotientKerEquivOfRightInverse (ψ : H → G) (hφ : RightInverse ψ φ) : G ⧸ ker φ ≃* H 
Arguments: {G : Type u} [AddGroup G] {H : Type v} [AddGroup H] (φ : G →+ H) (ψ : H → G) (hφ : Function.RightInverse ψ ⇑φ)
Goal: ∀ (a : H), (QuotientAddGroup.quotientKerEquivOfRightInverse φ ψ hφ).symm a = (QuotientAddGroup.mk ∘ ψ) a
-- QuotientGroup.quotientKerEquivOfRightInverse_apply
@[to_additive (attr := simps) "The canonical isomorphism `G/(ker φ) ≃+ H` induced by a homomorphism
`φ : G →+ H` with a right inverse `ψ : H → G`."]
def quotientKerEquivOfRightInverse (ψ : H → G) (hφ : RightInverse ψ φ) : G ⧸ ker φ ≃* H 
Arguments: {G : Type u} [Group G] {H : Type v} [Group H] (φ : G →* H) (ψ : H → G) (hφ : Function.RightInverse ψ ⇑φ) (a : G ⧸ φ.ker)
Goal: (QuotientGroup.quotientKerEquivOfRightInverse φ ψ hφ) a = (QuotientGroup.kerLift φ) a
-- QuotientAddGroup.quotientKerEquivOfRightInverse_apply
@[to_additive (attr := simps) "The canonical isomorphism `G/(ker φ) ≃+ H` induced by a homomorphism
`φ : G →+ H` with a right inverse `ψ : H → G`."]
def quotientKerEquivOfRightInverse (ψ : H → G) (hφ : RightInverse ψ φ) : G ⧸ ker φ ≃* H 
Arguments: {G : Type u} [AddGroup G] {H : Type v} [AddGroup H] (φ : G →+ H) (ψ : H → G) (hφ : Function.RightInverse ψ ⇑φ) (a : G ⧸ φ.ker)
Goal: (QuotientAddGroup.quotientKerEquivOfRightInverse φ ψ hφ) a = (QuotientAddGroup.kerLift φ) a
-- QuotientAddGroup.quotientBot_apply
@[to_additive (attr := simps!) "The canonical isomorphism `G/⊥ ≃+ G`."]
def quotientBot : G ⧸ (⊥ : Subgroup G) ≃* G 
Arguments: {G : Type u} [AddGroup G] (a : G ⧸ (AddMonoidHom.id G).ker)
Goal: QuotientAddGroup.quotientBot a = (QuotientAddGroup.kerLift (AddMonoidHom.id G)) a
-- QuotientGroup.quotientBot_symm_apply
@[to_additive (attr := simps!) "The canonical isomorphism `G/⊥ ≃+ G`."]
def quotientBot : G ⧸ (⊥ : Subgroup G) ≃* G 
Arguments: {G : Type u} [Group G]
Goal: ∀ (a : G), QuotientGroup.quotientBot.symm a = ↑a
-- QuotientGroup.quotientBot_apply
@[to_additive (attr := simps!) "The canonical isomorphism `G/⊥ ≃+ G`."]
def quotientBot : G ⧸ (⊥ : Subgroup G) ≃* G 
Arguments: {G : Type u} [Group G] (a : G ⧸ (MonoidHom.id G).ker)
Goal: QuotientGroup.quotientBot a = (QuotientGroup.kerLift (MonoidHom.id G)) a
-- QuotientAddGroup.quotientBot_symm_apply
@[to_additive (attr := simps!) "The canonical isomorphism `G/⊥ ≃+ G`."]
def quotientBot : G ⧸ (⊥ : Subgroup G) ≃* G 
Arguments: {G : Type u} [AddGroup G]
Goal: ∀ (a : G), QuotientAddGroup.quotientBot.symm a = ↑a
-- QuotientGroup.quotientMulEquivOfEq_mk
@[to_additive (attr := simp)]
theorem quotientMulEquivOfEq_mk {M N : Subgroup G} [M.Normal] [N.Normal] (h : M = N) (x : G) :
    QuotientGroup.quotientMulEquivOfEq h (QuotientGroup.mk x) = QuotientGroup.mk x 
Arguments: {G : Type u} [Group G] {M N : Subgroup G} [M.Normal] [N.Normal] (h : M = N) (x : G)
Goal: (QuotientGroup.quotientMulEquivOfEq h) ↑x = ↑x
-- QuotientAddGroup.quotientAddEquivOfEq_mk
@[to_additive (attr := simp)]
theorem quotientMulEquivOfEq_mk {M N : Subgroup G} [M.Normal] [N.Normal] (h : M = N) (x : G) :
    QuotientGroup.quotientMulEquivOfEq h (QuotientGroup.mk x) = QuotientGroup.mk x 
Arguments: {G : Type u} [AddGroup G] {M N : AddSubgroup G} [M.Normal] [N.Normal] (h : M = N) (x : G)
Goal: (QuotientAddGroup.quotientAddEquivOfEq h) ↑x = ↑x
-- QuotientGroup.quotientMapSubgroupOfOfLe_mk
@[to_additive (attr := simp)]
theorem quotientMapSubgroupOfOfLe_mk {A' A B' B : Subgroup G} [_hAN : (A'.subgroupOf A).Normal]
    [_hBN : (B'.subgroupOf B).Normal] (h' : A' ≤ B') (h : A ≤ B) (x : A) :
    quotientMapSubgroupOfOfLe h' h x = ↑(Subgroup.inclusion h x : B) 
Arguments: {G : Type u} [Group G] {A' A B' B : Subgroup G} [_hAN : (A'.subgroupOf A).Normal] [_hBN : (B'.subgroupOf B).Normal] (h' : A' ≤ B') (h : A ≤ B) (x : ↥A)
Goal: (QuotientGroup.quotientMapSubgroupOfOfLe h' h) ↑x = ↑((Subgroup.inclusion h) x)
-- QuotientAddGroup.quotientMapAddSubgroupOfOfLe_mk
@[to_additive (attr := simp)]
theorem quotientMapSubgroupOfOfLe_mk {A' A B' B : Subgroup G} [_hAN : (A'.subgroupOf A).Normal]
    [_hBN : (B'.subgroupOf B).Normal] (h' : A' ≤ B') (h : A ≤ B) (x : A) :
    quotientMapSubgroupOfOfLe h' h x = ↑(Subgroup.inclusion h x : B) 
Arguments: {G : Type u} [AddGroup G] {A' A B' B : AddSubgroup G} [_hAN : (A'.addSubgroupOf A).Normal] [_hBN : (B'.addSubgroupOf B).Normal] (h' : A' ≤ B') (h : A ≤ B) (x : ↥A)
Goal: (QuotientAddGroup.quotientMapAddSubgroupOfOfLe h' h) ↑x = ↑((AddSubgroup.inclusion h) x)
-- QuotientGroup.homQuotientZPowOfHom_id
@[to_additive (attr := simp)]
theorem homQuotientZPowOfHom_id : homQuotientZPowOfHom (MonoidHom.id A) n = MonoidHom.id _ 
Arguments: {A : Type u} [CommGroup A] (n : ℤ)
Goal: QuotientGroup.homQuotientZPowOfHom (MonoidHom.id A) n = MonoidHom.id (A ⧸ (zpowGroupHom n).range)
-- QuotientAddGroup.homQuotientZSMulOfHom_id
@[to_additive (attr := simp)]
theorem homQuotientZPowOfHom_id : homQuotientZPowOfHom (MonoidHom.id A) n = MonoidHom.id _ 
Arguments: {A : Type u} [AddCommGroup A] (n : ℤ)
Goal: QuotientAddGroup.homQuotientZSMulOfHom (AddMonoidHom.id A) n = AddMonoidHom.id (A ⧸ (zsmulAddGroupHom n).range)
-- QuotientGroup.homQuotientZPowOfHom_comp
@[to_additive (attr := simp)]
theorem homQuotientZPowOfHom_comp :
    homQuotientZPowOfHom (f.comp g) n =
      (homQuotientZPowOfHom f n).comp (homQuotientZPowOfHom g n) 
Arguments: {A B : Type u} [CommGroup A] [CommGroup B] (f : A →* B) (g : B →* A) (n : ℤ)
Goal: QuotientGroup.homQuotientZPowOfHom (f.comp g) n =
  (QuotientGroup.homQuotientZPowOfHom f n).comp (QuotientGroup.homQuotientZPowOfHom g n)
-- QuotientAddGroup.homQuotientZSMulOfHom_comp
@[to_additive (attr := simp)]
theorem homQuotientZPowOfHom_comp :
    homQuotientZPowOfHom (f.comp g) n =
      (homQuotientZPowOfHom f n).comp (homQuotientZPowOfHom g n) 
Arguments: {A B : Type u} [AddCommGroup A] [AddCommGroup B] (f : A →+ B) (g : B →+ A) (n : ℤ)
Goal: QuotientAddGroup.homQuotientZSMulOfHom (f.comp g) n =
  (QuotientAddGroup.homQuotientZSMulOfHom f n).comp (QuotientAddGroup.homQuotientZSMulOfHom g n)
-- QuotientAddGroup.homQuotientZSMulOfHom_comp_of_rightInverse
@[to_additive (attr := simp)]
theorem homQuotientZPowOfHom_comp_of_rightInverse (i : Function.RightInverse g f) :
    (homQuotientZPowOfHom f n).comp (homQuotientZPowOfHom g n) = MonoidHom.id _ 
Arguments: {A B : Type u} [AddCommGroup A] [AddCommGroup B] (f : A →+ B) (g : B →+ A) (n : ℤ) (i : Function.RightInverse ⇑g ⇑f)
Goal: (QuotientAddGroup.homQuotientZSMulOfHom f n).comp (QuotientAddGroup.homQuotientZSMulOfHom g n) =
  AddMonoidHom.id (B ⧸ (zsmulAddGroupHom n).range)
-- QuotientGroup.homQuotientZPowOfHom_comp_of_rightInverse
@[to_additive (attr := simp)]
theorem homQuotientZPowOfHom_comp_of_rightInverse (i : Function.RightInverse g f) :
    (homQuotientZPowOfHom f n).comp (homQuotientZPowOfHom g n) = MonoidHom.id _ 
Arguments: {A B : Type u} [CommGroup A] [CommGroup B] (f : A →* B) (g : B →* A) (n : ℤ) (i : Function.RightInverse ⇑g ⇑f)
Goal: (QuotientGroup.homQuotientZPowOfHom f n).comp (QuotientGroup.homQuotientZPowOfHom g n) =
  MonoidHom.id (B ⧸ (zpowGroupHom n).range)
-- QuotientGroup.equivQuotientZPowOfEquiv_refl
@[to_additive (attr := simp)]
theorem equivQuotientZPowOfEquiv_refl :
    MulEquiv.refl (A ⧸ (zpowGroupHom n : A →* A).range) =
      equivQuotientZPowOfEquiv (MulEquiv.refl A) n 
Arguments: {A : Type u} [CommGroup A] (n : ℤ)
Goal: MulEquiv.refl (A ⧸ (zpowGroupHom n).range) = QuotientGroup.equivQuotientZPowOfEquiv (MulEquiv.refl A) n
-- QuotientAddGroup.equivQuotientZSMulOfEquiv_refl
@[to_additive (attr := simp)]
theorem equivQuotientZPowOfEquiv_refl :
    MulEquiv.refl (A ⧸ (zpowGroupHom n : A →* A).range) =
      equivQuotientZPowOfEquiv (MulEquiv.refl A) n 
Arguments: {A : Type u} [AddCommGroup A] (n : ℤ)
Goal: AddEquiv.refl (A ⧸ (zsmulAddGroupHom n).range) = QuotientAddGroup.equivQuotientZSMulOfEquiv (AddEquiv.refl A) n
-- QuotientAddGroup.equivQuotientZSMulOfEquiv_symm
@[to_additive (attr := simp)]
theorem equivQuotientZPowOfEquiv_symm :
    (equivQuotientZPowOfEquiv e n).symm = equivQuotientZPowOfEquiv e.symm n 
Arguments: {A B : Type u} [AddCommGroup A] [AddCommGroup B] (e : A ≃+ B) (n : ℤ)
Goal: (QuotientAddGroup.equivQuotientZSMulOfEquiv e n).symm = QuotientAddGroup.equivQuotientZSMulOfEquiv e.symm n
-- QuotientGroup.equivQuotientZPowOfEquiv_symm
@[to_additive (attr := simp)]
theorem equivQuotientZPowOfEquiv_symm :
    (equivQuotientZPowOfEquiv e n).symm = equivQuotientZPowOfEquiv e.symm n 
Arguments: {A B : Type u} [CommGroup A] [CommGroup B] (e : A ≃* B) (n : ℤ)
Goal: (QuotientGroup.equivQuotientZPowOfEquiv e n).symm = QuotientGroup.equivQuotientZPowOfEquiv e.symm n
-- QuotientGroup.equivQuotientZPowOfEquiv_trans
@[to_additive (attr := simp)]
theorem equivQuotientZPowOfEquiv_trans :
    (equivQuotientZPowOfEquiv e n).trans (equivQuotientZPowOfEquiv d n) =
      equivQuotientZPowOfEquiv (e.trans d) n 
Arguments: {A B C : Type u} [CommGroup A] [CommGroup B] [CommGroup C] (e : A ≃* B) (d : B ≃* C) (n : ℤ)
Goal: (QuotientGroup.equivQuotientZPowOfEquiv e n).trans (QuotientGroup.equivQuotientZPowOfEquiv d n) =
  QuotientGroup.equivQuotientZPowOfEquiv (e.trans d) n
-- QuotientAddGroup.equivQuotientZSMulOfEquiv_trans
@[to_additive (attr := simp)]
theorem equivQuotientZPowOfEquiv_trans :
    (equivQuotientZPowOfEquiv e n).trans (equivQuotientZPowOfEquiv d n) =
      equivQuotientZPowOfEquiv (e.trans d) n 
Arguments: {A B C : Type u} [AddCommGroup A] [AddCommGroup B] [AddCommGroup C] (e : A ≃+ B) (d : B ≃+ C) (n : ℤ)
Goal: (QuotientAddGroup.equivQuotientZSMulOfEquiv e n).trans (QuotientAddGroup.equivQuotientZSMulOfEquiv d n) =
  QuotientAddGroup.equivQuotientZSMulOfEquiv (e.trans d) n
-- QuotientAddGroup.quotientQuotientEquivQuotientAux_mk
@[to_additive (attr := simp)]
theorem quotientQuotientEquivQuotientAux_mk (x : G ⧸ N) :
    quotientQuotientEquivQuotientAux N M h x = QuotientGroup.map N M (MonoidHom.id G) h x 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal] (M : AddSubgroup G) [nM : M.Normal] (h : N ≤ M) (x : G ⧸ N)
Goal: (QuotientAddGroup.quotientQuotientEquivQuotientAux N M h) ↑x = (QuotientAddGroup.map N M (AddMonoidHom.id G) h) x
-- QuotientGroup.quotientQuotientEquivQuotientAux_mk
@[to_additive (attr := simp)]
theorem quotientQuotientEquivQuotientAux_mk (x : G ⧸ N) :
    quotientQuotientEquivQuotientAux N M h x = QuotientGroup.map N M (MonoidHom.id G) h x 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] (M : Subgroup G) [nM : M.Normal] (h : N ≤ M) (x : G ⧸ N)
Goal: (QuotientGroup.quotientQuotientEquivQuotientAux N M h) ↑x = (QuotientGroup.map N M (MonoidHom.id G) h) x
-- QuotientAddGroup.quotientQuotientEquivQuotientAux_mk_mk
@[to_additive]
theorem quotientQuotientEquivQuotientAux_mk_mk (x : G) :
    quotientQuotientEquivQuotientAux N M h (x : G ⧸ N) = x 
Arguments: {G : Type u} [AddGroup G] (N : AddSubgroup G) [nN : N.Normal] (M : AddSubgroup G) [nM : M.Normal] (h : N ≤ M) (x : G)
Goal: (QuotientAddGroup.quotientQuotientEquivQuotientAux N M h) ↑↑x = ↑x
-- QuotientGroup.quotientQuotientEquivQuotientAux_mk_mk
@[to_additive]
theorem quotientQuotientEquivQuotientAux_mk_mk (x : G) :
    quotientQuotientEquivQuotientAux N M h (x : G ⧸ N) = x 
Arguments: {G : Type u} [Group G] (N : Subgroup G) [nN : N.Normal] (M : Subgroup G) [nM : M.Normal] (h : N ≤ M) (x : G)
Goal: (QuotientGroup.quotientQuotientEquivQuotientAux N M h) ↑↑x = ↑x
-- QuotientAddGroup.subsingleton_quotient_top
@[to_additive]
theorem subsingleton_quotient_top : Subsingleton (G ⧸ (⊤ : Subgroup G)) 
Arguments: {G : Type u} [AddGroup G]
Goal: Subsingleton (G ⧸ ⊤)
-- QuotientGroup.subsingleton_quotient_top
@[to_additive]
theorem subsingleton_quotient_top : Subsingleton (G ⧸ (⊤ : Subgroup G)) 
Arguments: {G : Type u} [Group G]
Goal: Subsingleton (G ⧸ ⊤)
-- QuotientGroup.subgroup_eq_top_of_subsingleton
@[to_additive "If the quotient by an additive subgroup gives a singleton then the additive subgroup
is the whole additive group."]
theorem subgroup_eq_top_of_subsingleton (H : Subgroup G) (h : Subsingleton (G ⧸ H)) : H = ⊤ 
Arguments: {G : Type u} [Group G] (H : Subgroup G) (h : Subsingleton (G ⧸ H))
Goal: H = ⊤
-- QuotientAddGroup.addSubgroup_eq_top_of_subsingleton
@[to_additive "If the quotient by an additive subgroup gives a singleton then the additive subgroup
is the whole additive group."]
theorem subgroup_eq_top_of_subsingleton (H : Subgroup G) (h : Subsingleton (G ⧸ H)) : H = ⊤ 
Arguments: {G : Type u} [AddGroup G] (H : AddSubgroup G) (h : Subsingleton (G ⧸ H))
Goal: H = ⊤
-- QuotientGroup.comap_comap_center
@[to_additive]
theorem comap_comap_center {H₁ : Subgroup G} [H₁.Normal] {H₂ : Subgroup (G ⧸ H₁)} [H₂.Normal] :
    ((Subgroup.center ((G ⧸ H₁) ⧸ H₂)).comap (mk' H₂)).comap (mk' H₁) =
      (Subgroup.center (G ⧸ H₂.comap (mk' H₁))).comap (mk' (H₂.comap (mk' H₁))) 
Arguments: {G : Type u} [Group G] {H₁ : Subgroup G} [H₁.Normal] {H₂ : Subgroup (G ⧸ H₁)} [H₂.Normal]
Goal: Subgroup.comap (QuotientGroup.mk' H₁) (Subgroup.comap (QuotientGroup.mk' H₂) (Subgroup.center ((G ⧸ H₁) ⧸ H₂))) =
  Subgroup.comap (QuotientGroup.mk' (Subgroup.comap (QuotientGroup.mk' H₁) H₂))
    (Subgroup.center (G ⧸ Subgroup.comap (QuotientGroup.mk' H₁) H₂))
-- QuotientAddGroup.comap_comap_center
@[to_additive]
theorem comap_comap_center {H₁ : Subgroup G} [H₁.Normal] {H₂ : Subgroup (G ⧸ H₁)} [H₂.Normal] :
    ((Subgroup.center ((G ⧸ H₁) ⧸ H₂)).comap (mk' H₂)).comap (mk' H₁) =
      (Subgroup.center (G ⧸ H₂.comap (mk' H₁))).comap (mk' (H₂.comap (mk' H₁))) 
Arguments: {G : Type u} [AddGroup G] {H₁ : AddSubgroup G} [H₁.Normal] {H₂ : AddSubgroup (G ⧸ H₁)} [H₂.Normal]
Goal: AddSubgroup.comap (QuotientAddGroup.mk' H₁)
    (AddSubgroup.comap (QuotientAddGroup.mk' H₂) (AddSubgroup.center ((G ⧸ H₁) ⧸ H₂))) =
  AddSubgroup.comap (QuotientAddGroup.mk' (AddSubgroup.comap (QuotientAddGroup.mk' H₁) H₂))
    (AddSubgroup.center (G ⧸ AddSubgroup.comap (QuotientAddGroup.mk' H₁) H₂))
-- OrderIso.range_eq
theorem range_eq (e : α ≃o β) : Set.range e = Set.univ 
Arguments: {α : Type u_2} {β : Type u_3} [LE α] [LE β] (e : α ≃o β)
Goal: Set.range ⇑e = Set.univ
-- OrderIso.symm_image_image
@[simp]
theorem symm_image_image (e : α ≃o β) (s : Set α) : e.symm '' (e '' s) = s 
Arguments: {α : Type u_2} {β : Type u_3} [LE α] [LE β] (e : α ≃o β) (s : Set α)
Goal: ⇑e.symm '' (⇑e '' s) = s
-- OrderIso.image_symm_image
@[simp]
theorem image_symm_image (e : α ≃o β) (s : Set β) : e '' (e.symm '' s) = s 
Arguments: {α : Type u_2} {β : Type u_3} [LE α] [LE β] (e : α ≃o β) (s : Set β)
Goal: ⇑e '' (⇑e.symm '' s) = s
-- OrderIso.image_eq_preimage
theorem image_eq_preimage (e : α ≃o β) (s : Set α) : e '' s = e.symm ⁻¹' s 
Arguments: {α : Type u_2} {β : Type u_3} [LE α] [LE β] (e : α ≃o β) (s : Set α)
Goal: ⇑e '' s = ⇑e.symm ⁻¹' s
-- OrderIso.preimage_symm_preimage
@[simp]
theorem preimage_symm_preimage (e : α ≃o β) (s : Set α) : e ⁻¹' (e.symm ⁻¹' s) = s 
Arguments: {α : Type u_2} {β : Type u_3} [LE α] [LE β] (e : α ≃o β) (s : Set α)
Goal: ⇑e ⁻¹' (⇑e.symm ⁻¹' s) = s
-- OrderIso.symm_preimage_preimage
@[simp]
theorem symm_preimage_preimage (e : α ≃o β) (s : Set β) : e.symm ⁻¹' (e ⁻¹' s) = s 
Arguments: {α : Type u_2} {β : Type u_3} [LE α] [LE β] (e : α ≃o β) (s : Set β)
Goal: ⇑e.symm ⁻¹' (⇑e ⁻¹' s) = s
-- OrderIso.image_preimage
@[simp]
theorem image_preimage (e : α ≃o β) (s : Set β) : e '' (e ⁻¹' s) = s 
Arguments: {α : Type u_2} {β : Type u_3} [LE α] [LE β] (e : α ≃o β) (s : Set β)
Goal: ⇑e '' (⇑e ⁻¹' s) = s
-- OrderIso.preimage_image
@[simp]
theorem preimage_image (e : α ≃o β) (s : Set α) : e ⁻¹' (e '' s) = s 
Arguments: {α : Type u_2} {β : Type u_3} [LE α] [LE β] (e : α ≃o β) (s : Set α)
Goal: ⇑e ⁻¹' (⇑e '' s) = s
-- OrderEmbedding.orderIso_apply
@[simps! apply]
noncomputable def OrderEmbedding.orderIso [LE α] [LE β] {f : α ↪o β} :
    α ≃o Set.range f 
Arguments: {α : Type u_2} {β : Type u_3} [LE α] [LE β] {f : α ↪o β} (a : α)
Goal: OrderEmbedding.orderIso a = ⟨f a, ⋯⟩
-- StrictMono.orderIso_apply
@[simps! apply]
protected noncomputable def orderIso :
    α ≃o Set.range f 
Arguments: {α : Type u_2} {β : Type u_3} [LinearOrder α] [Preorder β] (f : α → β) (h_mono : StrictMono f) (a : α)
Goal: (StrictMono.orderIso f h_mono) a = ⟨f a, ⋯⟩
-- StrictMono.coe_orderIsoOfSurjective
@[simp]
theorem coe_orderIsoOfSurjective : (orderIsoOfSurjective f h_mono h_surj : α → β) = f 
Arguments: {α : Type u_2} {β : Type u_3} [LinearOrder α] [Preorder β] (f : α → β) (h_mono : StrictMono f) (h_surj : Function.Surjective f)
Goal: ⇑(StrictMono.orderIsoOfSurjective f h_mono h_surj) = f
-- StrictMono.orderIsoOfSurjective_symm_apply_self
@[simp]
theorem orderIsoOfSurjective_symm_apply_self (a : α) :
    (orderIsoOfSurjective f h_mono h_surj).symm (f a) = a 
Arguments: {α : Type u_2} {β : Type u_3} [LinearOrder α] [Preorder β] (f : α → β) (h_mono : StrictMono f) (h_surj : Function.Surjective f) (a : α)
Goal: (StrictMono.orderIsoOfSurjective f h_mono h_surj).symm (f a) = a
-- StrictMono.orderIsoOfSurjective_self_symm_apply
theorem orderIsoOfSurjective_self_symm_apply (b : β) :
    f ((orderIsoOfSurjective f h_mono h_surj).symm b) = b 
Arguments: {α : Type u_2} {β : Type u_3} [LinearOrder α] [Preorder β] (f : α → β) (h_mono : StrictMono f) (h_surj : Function.Surjective f) (b : β)
Goal: f ((StrictMono.orderIsoOfSurjective f h_mono h_surj).symm b) = b
-- OrderIso.compl_apply
@[simps!]
def OrderIso.compl : α ≃o αᵒᵈ 
Arguments: (α : Type u_2) [BooleanAlgebra α]
Goal: ∀ (a : α), (OrderIso.compl α) a = (OrderDual.toDual a)ᶜ
-- OrderIso.compl_symm_apply
@[simps!]
def OrderIso.compl : α ≃o αᵒᵈ 
Arguments: (α : Type u_2) [BooleanAlgebra α]
Goal: ∀ (a : αᵒᵈ), (RelIso.symm (OrderIso.compl α)) a = (OrderDual.ofDual a)ᶜ
-- compl_strictAnti
theorem compl_strictAnti : StrictAnti (compl : α → α) 
Arguments: (α : Type u_2) [BooleanAlgebra α]
Goal: StrictAnti compl
-- compl_antitone
theorem compl_antitone : Antitone (compl : α → α) 
Arguments: (α : Type u_2) [BooleanAlgebra α]
Goal: Antitone compl
-- OrderHom.coe_sup
@[simp] lemma coe_sup [SemilatticeSup β] (f g : α →o β) :
  ((f ⊔ g : α →o β) : α → β) = (f : α → β) ⊔ g 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [SemilatticeSup β] (f g : α →o β)
Goal: ⇑(f ⊔ g) = ⇑f ⊔ ⇑g
-- OrderHom.coe_inf
@[simp] lemma coe_inf [SemilatticeInf β] (f g : α →o β) :
  ((f ⊓ g : α →o β) : α → β) = (f : α → β) ⊓ g 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [SemilatticeInf β] (f g : α →o β)
Goal: ⇑(f ⊓ g) = ⇑f ⊓ ⇑g
-- OrderHom.instBotOfOrderBot_bot
@[simps]
instance [Preorder β] [OrderBot β] : Bot (α →o β) 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] [OrderBot β]
Goal: ⊥ = (OrderHom.const α) ⊥
-- OrderHom.instTopOrderHom_top
@[simps]
instance instTopOrderHom [Preorder β] [OrderTop β] : Top (α →o β) 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] [OrderTop β]
Goal: ⊤ = (OrderHom.const α) ⊤
-- OrderHom.sInf_apply
@[simp]
theorem sInf_apply [CompleteLattice β] (s : Set (α →o β)) (x : α) :
    sInf s x = ⨅ f ∈ s, (f : _) x 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [CompleteLattice β] (s : Set (α →o β)) (x : α)
Goal: (sInf s) x = ⨅ f ∈ s, f x
-- OrderHom.iInf_apply
theorem iInf_apply {ι : Sort*} [CompleteLattice β] (f : ι → α →o β) (x : α) :
    (⨅ i, f i) x = ⨅ i, f i x 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] {ι : Sort u_3} [CompleteLattice β] (f : ι → α →o β) (x : α)
Goal: (⨅ i, f i) x = ⨅ i, (f i) x
-- OrderHom.coe_iInf
@[simp, norm_cast]
theorem coe_iInf {ι : Sort*} [CompleteLattice β] (f : ι → α →o β) :
    ((⨅ i, f i : α →o β) : α → β) = ⨅ i, (f i : α → β) 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] {ι : Sort u_3} [CompleteLattice β] (f : ι → α →o β)
Goal: ⇑(⨅ i, f i) = ⨅ i, ⇑(f i)