Classical.Structures.Group.MaximalSubgroup¶
Maximal subgroups¶
This is the Classical.Structures.Group.MaximalSubgroup module of the Agda Universal Algebra Library.
A maximal subgroup of G is a proper subgroup H such that no subgroup lies
strictly between H and G; equivalently, the interval [H , G] in the subgroup
lattice is the two-element chain. Groups with a core-free maximal subgroup are
classically exactly the groups with a faithful primitive permutation action, which
is why the notion matters to the enforcement catalog of FLRP.Reductions:
core-free interval enforceability via a two-element chain constrains precisely this
class of groups.
The definition is stated in the form the proofs consume, and that form deserves a
constructive health warning. The field classify places every
intermediate subgroup at H or at G as a disjunction, and producing that
disjunction for an arbitrary equality-respecting predicate is oracle-strength data:
a subgroup can encode an arbitrary proposition in its membership predicate (for any
proposition P, the predicate Ξ» x β x β H β P respects equality and is closed
under the group operations), so classify applied to such a predicate
decides the proposition up to double negation. Consequently no concrete group can
inhabit IsMaximalSubgroup in safe Agda; the record is a named
classical hypothesis in the sense of the FLRP assumption discipline, inhabited by
classical mathematics (where it is ordinary maximality) and consumed by theorems
that are honest about assuming it. A decidable-membership sibling in the Layer-D
style of ADR-008, quantifying only over subgroups packaged with decision
procedures, would be constructible for concrete finite groups; it is deliberately
not defined here because no present consumer needs it.
The maximality record¶
Throughout, π’ is a group and ββ the base level of its
subgroup lattice; subgroup predicates live at the resulting level L, exactly as
in Classical.Structures.Group.MinimalNormal.
IsMaximalSubgroup H bundles the three conditions: H is a
subgroup, it is proper (not every element lies in it, stated negatively because no
argument below needs a witness), and every subgroup between H and the whole group
is one of the two endpoints. Given H β K, the first disjunct K β H says the
two predicates have the same extent, and the second says K is everything.
module MaximalSubgroup {Ξ± Ο : Level} (π’ : Group Ξ± Ο) (ββ : Level) where private G = π[ projβ π’ ] open GroupSublattice π’ ββ using ( L ) record IsMaximalSubgroup (H : Pred G L) : Type (Ξ± β Ο β lsuc L) where field isSubgroup : IsSubgroup π’ H proper : Β¬ (β x β x β H) classify : (K : Pred G L) β IsSubgroup π’ K β H β K β (K β H) β (β x β x β K) open IsMaximalSubgroup public