Zulip Chat Archive

Stream: mathlib4

Topic: Inferring `Normal` instance for quotient


Johannes Choo (Mar 07 2025 at 02:33):

I'm trying to restate the second isomorphism theorem for groups without having to assume that the subgroup N below is normal in G, since the weaker condition H ≤ N.normalizersuffices. In order to state the respective quotients, instances of (N.subgroupOf H).Normal and (N.subgroupOf (H ⊔ N)).Normal need to be in context or synthesizable. I have portioned out what I have into an MWE. I want to be able to remove the optional arguments hNinf and hNsup, perhaps with making inf_subgroupOf_normal_of_le_normalizer and subgroupOf_sup_normal_of_le_normalizer into instances. But doing it naively (theorem ... -> instance ...) doesn't work. If sensible and possible, what needs to be done?

import Mathlib

open Subgroup

theorem inf_subgroupOf_normal_of_le_normalizer [Group G] {H N : Subgroup G}
    (hLE : H  N.normalizer) : (N.subgroupOf H).Normal := by sorry

theorem subgroupOf_sup_normal_of_le_normalizer [Group G] {H N : Subgroup G}
    (hLE : H  N.normalizer) : (N.subgroupOf (H  N)).Normal := by sorry

noncomputable def quotientInfEquivProdNormalizerQuotient [Group G] (H N : Subgroup G)
    (hLE : H  N.normalizer)
    (hNinf : (N.subgroupOf H).Normal := inf_subgroupOf_normal_of_le_normalizer hLE)
    (hNsup : (N.subgroupOf (H  N)).Normal := subgroupOf_sup_normal_of_le_normalizer hLE) :
    _  N.subgroupOf H ≃* _  N.subgroupOf (H  N) := by sorry

Thomas Browning (Mar 07 2025 at 06:22):

You aren't going to be able to avoid the theorems, I think, since typeclass inference can't infer the assumption hLE.

Johannes Choo (Mar 07 2025 at 10:25):

Got it, thanks!


Last updated: May 02 2025 at 03:31 UTC