Skip to content

FLRP.WreathNoGo

The wreath no-go: Lemma 3.3 and the dead-end question

This is the FLRP.WreathNoGo module of the Agda Universal Algebra Library.

This module is the formal face of research phase RP-4: the note's Lemma 3.31, its corollary that classes omitting wreath products are not core-free interval enforceable by group-representable lattices, and the statements that frame the phase's open dead-end question, "Can a property and its negation both be cf-IE by group-representable lattices?"

The theorem and its proof shape.

Lemma 3.3. If P is a cf-IE property, enforced by a group representable lattice, then for every finite nonabelian simple group S, some wreath product S ≀ ÅŖ has property P.

The proof applies Kurzweil's construction twice. From a core-free representation [H , G] ≅ š‘³, the wreath product U = S ≀ G over the coset action of G on G / H carries the dual lattice as an upper interval, [D įø  , U] ≅ š‘³ā€², over the subgroup D įø  of diagonal-based elements; crucially, D įø  is again core-free, so the construction can be repeated: [D₁ ÅŖ , S ≀ ÅŖ] ≅ š‘³ā€³ = š‘³ is again a core-free representation, of the original lattice, and cf-IE forces P (S ≀ ÅŖ).

What is imported, and what is proved. The honest split, per the --safe discipline of the roadmap (§ 6) and the per-entry registry style of FLRP.Assumptions is as follows:

  • Imported: Entry 5 (KurzweilWreathInterval, defined here, registered as KurzweilWreathIntervalAt).

From a core-free representation, over a finite group, of a lattice š‘³ with two distinct elements, Kurzweil's construction yields the enumerated coset action of š’¢ on the cosets of H (a RightAction on Fin (2 + m) with the pointed IsCosetAction specification) and the interval isomorphism [D įø  , S ≀ G] ≅ š‘³ā€².

The isomorphism is Kurzweil's theorem (the same 1985 article behind Entries 2 and 4); the enumeration of the coset space, and the carrier finiteness of the wreath the construction builds, are elementary finiteness bookkeeping the library cannot yet perform. All parts are documented in the registry entry, with the retirement path split accordingly.

  • Proved: the technical heart.

Core-freeness preservation (Diag≀-coreFree of Classical.Structures.Group.Wreath) and the kernel–core correspondence (coreFree→faithful of Classical.Structures.Group.IndexAction); so faithfulness of the provided action is derived from core-freeness of the representation, not assumed.

The preservation proof also repairs the note's index-hypothesis gap; see the Wreath module header and docs/notes/flrp-rp4-wreath.md § 4.

  • Proved: the assembly.

The double application (Lemma 3.3, cfIE-must-have-wreaths), the omission corollary (omits-wreaths→not-cfIE), the wreath-richness constraint on contradictory pairs (contradictory-pair-wreaths), and the reduction of the dead-end question to statement (C) of the parachute program (statement-C→no-contradictory-pair).

Where the two-element hypothesis comes from.

If š‘³ is trivial then [H , G] ≅ š‘³ forces H = G, the coset space has one point, and D įø  is all of S ≀ G; the wreath interval degenerates and the lemma is false (cf-IE by the one-point lattice constrains only the trivial group). Two distinct elements of š‘³ rule this out: classically n = |G : H| ≄ 2, which is why Entry 5 produces an action on Fin (2 + m). The hypothesis transports to the dual (nontrivial-dual), which is what keeps the second application fed.

The nonabelian-simple side condition.

The formal hypotheses on š’® are the two fragments the core-freeness argument consumes (a non-identity element and a trivial center, NontrivialCenterless). The library's simplicity notion (Classical.Structures.Group.Simple) discharges the record at any nonabelian simple group with decidable equality (nonabelianSimple→nontrivialCenterless below), so consumers can instantiate š’® through the notion instead of threading the fragments by hand.

Kurzweil's interval theorem needs full finite nonabelian simplicity, which stays a prose side condition of Entry 5, exactly as in Entry 4. Finiteness of the represented group, by contrast, is a formal antecedent of the entry (a FiniteAlgebra witness); only the finiteness of š’® stays in prose alongside simplicity.

{-# OPTIONS --cubical-compatible --exact-split --safe #-}

module FLRP.WreathNoGo where

open import Agda.Primitive using () renaming ( Set to Type )

-- Imports from the Agda Standard Library ---------------------------------------
open import Data.Empty                             using  ( ⊄ )
open import Data.Fin.Base                          using  ( Fin ; suc )
open import Data.Fin.Patterns                      using  ( 0F ; 1F )
open import Data.Fin.Properties                    using  ( _ā‰Ÿ_ )
open import Data.Nat.Base                          using  ( ā„• ; _+_ )
open import Data.Product                           using  ( Ī£-syntax ; _Ɨ_ ; _,_
                                                          ; proj₁ ; projā‚‚ ; ∃-syntax )
open import Level                                  using  ( Level ; 0ā„“ ; _āŠ”_ )
                                                   renaming ( suc to lsuc )
open import Relation.Binary                        using  ( Setoid )
open import Relation.Binary.PropositionalEquality  using  ( _≔_ )
open import Relation.Nullary                       using  ( ¬_ )
open import Relation.Unary                         using  ( Pred )

-- Imports from the Agda Universal Algebra Library ------------------------------
open import Classical.Small.Structures    using  ( Lattice )
open import Classical.Structures.Group    using  ( Group ; module Group-Op
                                                 ; RightAction ; IsCosetAction
                                                 ; module ActionKernel ; _ā‰€įµ_
                                                 ; IsSubgroup ; module WreathProduct
                                                 ; module Simple )
open import Classical.Structures.Lattice  using  ( dualLattice )
open import FLRP.Enforceable              using  ( cfIE ; CoreFree
                                                 ; CoreFreeRepresentable
                                                 ; GroupRepresentable ; GroupProperty
                                                 ; IntervalIso ; Statement-C
                                                 ; TwoBigCanopies ; Nontrivial
                                                 ; HasThreeDistinct
                                                 ; threeDistinct→nontrivial )
open import FLRP.Problem                  using  ( FiniteLattice ; toLattice )
open import Setoid.Algebras               using  ( š•Œ[_] ; š”»[_] ; FiniteAlgebra )

open GroupRepresentable

Two distinct elements, and their transport to the dual

The nontriviality side condition on the enforcing lattice is Nontrivial of FLRP.Enforceable, where it now lives beside its three-element sibling as a guard of statement (C). The dual lattice of Classical.Structures.Lattice.Dual lives on the same carrier setoid, so the witness transports unchanged.

-- The dual shares carrier and equality, so the witness transports as-is.
nontrivial-dual : (š‘³ : Lattice) → Nontrivial š‘³ → Nontrivial (dualLattice š‘³)
nontrivial-dual š‘³ w = w

The nonabelian-simple fragments

The two properties of the base group the core-freeness argument consumes are a non-identity element and triviality of the center. A finite nonabelian simple group has both (it is nontrivial, and its center is a proper normal subgroup, hence trivial); a nontrivial centerless group is automatically nonabelian, which is what the repaired index argument uses.

record NontrivialCenterless (š’® : Group 0ā„“ 0ā„“) : Type 0ā„“ where
  open Group-Op š’® using ( _āˆ™_ ; ε )
  open Setoid š”»[ š’® .proj₁ ] using ( _ā‰ˆ_ )

  field
    elt         : š•Œ[ š’® .proj₁ ]
    elt≉ε       : ¬ elt ā‰ˆ ε
    centerless  : āˆ€ d → (āˆ€ t → t āˆ™ d ā‰ˆ d āˆ™ t) → d ā‰ˆ ε

The record is exactly what the library's nonabelian-simple interface of Classical.Structures.Group.Simple proves: the interface's non-commuting pair supplies the non-identity element, and its center-triviality theorem supplies centerless, positively, given stability of identity equations (which decidable equality supplies, so every concrete finite instance qualifies). Consumers holding a certified nonabelian simple group therefore discharge the record here once, instead of exhibiting the two fragments per instance.

-- Nonabelian simple, with stable identity equations, implies nontrivial
-- and centerless.  The stability antecedent is the constructive caveat
-- recorded in the Simple module's design note.
nonabelianSimple→nontrivialCenterless : (š’® : Group 0ā„“ 0ā„“)
  → Simple.Stable-ā‰ˆĪµ š’® 0ā„“
  → Simple.IsNonabelianSimple š’® 0ā„“
  → NontrivialCenterless š’®
nonabelianSimple→nontrivialCenterless š’® st nas = record
  { elt         = S.elt nas
  ; elt≉ε       = S.elt≉ε nas
  ; centerless  = Ī» d central → S.center-trivial st nas d (Ī» x _ → ā‰ˆsym (central x))
  }
  where
  module S = Simple š’® 0ā„“
  open Setoid š”»[ š’® .proj₁ ] using () renaming ( sym to ā‰ˆsym )

Entry 5: Kurzweil's wreath interval

The data Kurzweil's construction attaches to a core-free representation of a finite group: the enumerated coset action (on an index set of at least two points; the record carries 2 + degree), its pointed coset-action specification tying it to H, the interval isomorphism [D įø  , S ≀ G] ≅ š‘³ā€² onto the dual of the represented lattice, and carrier finiteness of the wreath product the construction builds — the field that feeds the entry's own finiteness antecedent at the second application.

record WreathIntervalData
  (š’®     : Group 0ā„“ 0ā„“)
  (š‘³     : Lattice)
  (š’¢     : Group 0ā„“ 0ā„“)
  (H     : Pred š•Œ[ š’¢ .proj₁ ] 0ā„“)
  (H-sg  : IsSubgroup š’¢ H) : Type (lsuc 0ā„“) where
  field
    degree    : ā„•
    action    : RightAction (Fin (2 + degree)) š’¢
    cosets    : IsCosetAction action H
    interval  : IntervalIso  (š’® ā‰€įµ action)
                             (WreathProduct.Diag≀ š’® action)
                             (WreathProduct.Diag≀-isSubgroup š’® action)
                             (dualLattice š‘³)
    finite    : FiniteAlgebra (proj₁ (š’® ā‰€įµ action))

The statement type of Entry 5 of the assumptions registry (FLRP.Assumptions): every core-free representation of a lattice with two distinct elements over a finite group extends to the full wreath-interval package. The finiteness antecedent (a FiniteAlgebra witness for the represented group) is what keeps the statement exactly the cited finite theorem: without it the type would also quantify over infinite-index core-free representations, where no finite coset enumeration exists and the statement is false. The registry entry documents source, side conditions, and the split retirement path; the classical theorem asserts the instances where š’® is a finite nonabelian simple group, and consumers must instantiate it there.

KurzweilWreathInterval : Group 0ā„“ 0ā„“ → Type (lsuc 0ā„“)
KurzweilWreathInterval š’® =
  (š‘³          : Lattice)
  (š’¢@(š‘® , _)  : Group 0ā„“ 0ā„“)
  (H          : Pred š•Œ[ š‘® ] 0ā„“)
  (H-sg       : IsSubgroup š’¢ H)
  → FiniteAlgebra š‘®
  → CoreFree š’¢ H H-sg
  → IntervalIso š’¢ H H-sg š‘³
  → Nontrivial š‘³
  → WreathIntervalData š’® š‘³ š’¢ H H-sg

Core-freeness of the wreath representation

The formal content that makes the double application go: the wreath package of a core-free representation is again core-free. Faithfulness of the provided action is derived from core-freeness through the kernel–core correspondence, and the preservation theorem of Classical.Structures.Group.Wreath does the rest; the two-point index hypothesis is discharged by fin-another on Fin (2 + m), and decidable index equality by Data.Fin's _ā‰Ÿ_.

-- Every index of Fin (2 + m) has a distinct companion.
fin-another : āˆ€ {m} (i : Fin (2 + m)) → Ī£[ j ∈ Fin (2 + m) ] ¬ j ≔ i
fin-another 0F       = 1F , Ī» ()
fin-another (suc i)  = 0F , Ī» ()

module _ {š’® š‘³ š’¢} {H : Pred š•Œ[ proj₁ š’¢ ] 0ā„“} {H-sg : IsSubgroup š’¢ H}
  (k : WreathIntervalData š’® š‘³ š’¢ H H-sg) where
  open WreathIntervalData k

  -- The wreath representation over a core-free representation is core-free.
  wreath-coreFree : NontrivialCenterless š’® → CoreFree š’¢ H H-sg
    → CoreFree  (š’® ā‰€įµ action)
                (WreathProduct.Diag≀ š’® action)
                (WreathProduct.Diag≀-isSubgroup š’® action)
  wreath-coreFree nc cf = CF.Diag≀-coreFree
    where
    open NontrivialCenterless nc

    -- Core-freeness of H makes the coset action faithful.
    faithful : RightAction.Faithful action
    faithful = ActionKernel.coreFree→faithful š’¢ H H-sg action cosets cf

    module W   = WreathProduct š’® action
    module CF  = W.CoreFreeness _ā‰Ÿ_ fin-another elt elt≉ε centerless faithful

Lemma 3.3: cf-IE properties must have wreath products

The note's Lemma 3.3, by the double application.

The first application turns the given core-free representation of š‘³ into a core-free representation of š‘³ā€² on [D įø  , š’® ≀ š’¢]; the second turns that into a core-free representation of š‘³ā€³ on [D₁ ÅŖ , š’® ≀ ÅŖ] with ÅŖ = š’® ≀ š’¢.

Dualization swaps the two lattice operations, so dualizing twice restores them definitionally, and the second interval isomorphism is an interval isomorphism with š‘³ (no transport is needed) to which cf-IE applies.

Carrier finiteness rides on the entry's own output: the given representation's FiniteAlgebra witness feeds the first application, and the wreath finiteness the entry returns feeds the second.

cfIE-must-have-wreaths :
  āˆ€ {ā„“P} (P : GroupProperty ā„“P) (š‘³ : Lattice) (š’® : Group 0ā„“ 0ā„“)
  → NontrivialCenterless š’®
  → KurzweilWreathInterval š’®
  → cfIE P š‘³
  → (r : CoreFreeRepresentable š‘³)
  → FiniteAlgebra (proj₁ (CoreFreeRepresentable.rep r .grp))
  → Nontrivial š‘³
  → ∃[ š’° ] ∃[ m ] Ī£[ A ∈ RightAction (Fin (2 + m)) š’° ] P (š’® ā‰€įµ A)
cfIE-must-have-wreaths P š‘³ š’® nc kwi cf-ie r fin two =
  š’° , Kā‚‚.degree , Kā‚‚.action , P-holds
  where
  open CoreFreeRepresentable r
  -- First application: a core-free representation of š‘³ā€² on the first wreath.
  k₁ : WreathIntervalData š’® š‘³ (rep .grp) (rep .sub) (rep .isSubgroup)
  k₁ = kwi š‘³ (rep .grp) (rep .sub) (rep .isSubgroup) fin cf (rep .interval-iso) two

  module K₁ = WreathIntervalData k₁

  š’° : Group 0ā„“ 0ā„“
  š’° = š’® ā‰€įµ K₁.action

  cf₁ : CoreFree š’°  (WreathProduct.Diag≀ š’® K₁.action)
                    (WreathProduct.Diag≀-isSubgroup š’® K₁.action)
  cf₁ = wreath-coreFree k₁ nc cf

  -- Second application: a core-free representation of š‘³ā€³ = š‘³ on š’® ≀ š’°.
  kā‚‚ : WreathIntervalData š’® (dualLattice š‘³) š’°
        (WreathProduct.Diag≀ š’® K₁.action)
        (WreathProduct.Diag≀-isSubgroup š’® K₁.action)
  kā‚‚ = kwi (dualLattice š‘³) š’°
        (WreathProduct.Diag≀ š’® K₁.action)
        (WreathProduct.Diag≀-isSubgroup š’® K₁.action)
        K₁.finite cf₁ K₁.interval (nontrivial-dual š‘³ two)

  module Kā‚‚ = WreathIntervalData kā‚‚

  cfā‚‚ : CoreFree (š’® ā‰€įµ Kā‚‚.action)
                 (WreathProduct.Diag≀ š’® Kā‚‚.action)
                 (WreathProduct.Diag≀-isSubgroup š’® Kā‚‚.action)
  cfā‚‚ = wreath-coreFree kā‚‚ nc cf₁

  -- The double dual is definitionally š‘³ at the order level, so cf-IE applies.
  P-holds : P (š’® ā‰€įµ Kā‚‚.action)
  P-holds = cf-ie  (š’® ā‰€įµ Kā‚‚.action)
                   (WreathProduct.Diag≀ š’® Kā‚‚.action)
                   (WreathProduct.Diag≀-isSubgroup š’® Kā‚‚.action)
                   cfā‚‚ Kā‚‚.interval

The omission corollary

The form the RP-2 catalog quotes: a property with no wreath products over some admissible š’® cannot be cf-IE via a lattice with a core-free representation and two distinct elements. Classically: solvability, being alternating or symmetric, and almost simplicity all omit S ≀ ÅŖ for suitable simple S, so none of them is cf-IE by a group-representable lattice.

omits-wreaths→not-cfIE :
  āˆ€ {ā„“P} (P : GroupProperty ā„“P) (š‘³ : Lattice) (š’® : Group 0ā„“ 0ā„“)
  → NontrivialCenterless š’®
  → KurzweilWreathInterval š’®
  → (āˆ€ (š’° : Group 0ā„“ 0ā„“) (m : ā„•) (A : RightAction (Fin (2 + m)) š’°) → ¬ P (š’® ā‰€įµ A))
  → cfIE P š‘³
  → (r : CoreFreeRepresentable š‘³)
  → FiniteAlgebra (proj₁ (CoreFreeRepresentable.rep r .grp))
  → Nontrivial š‘³
  → ⊄
omits-wreaths→not-cfIE P š‘³ š’® nc kwi omits cf-ie r fin two = omits š’° m A holds
  where
  found : ∃[ š’° ] ∃[ m ] Ī£[ A ∈ RightAction (Fin (2 + m)) š’° ] P (š’® ā‰€įµ A)
  found = cfIE-must-have-wreaths P š‘³ š’® nc kwi cf-ie r fin two

  š’° : Group 0ā„“ 0ā„“
  š’° = found .proj₁

  m : ā„•
  m = found .projā‚‚ .proj₁

  A : RightAction (Fin (2 + m)) š’°
  A = found .projā‚‚ .projā‚‚ .proj₁

  holds : P (š’® ā‰€įµ A)
  holds = found .projā‚‚ .projā‚‚ .projā‚‚

The dead-end question, and what Lemma 3.3 says about it

RP-4's question is the n = 2 case of the empty-intersection hunt of RP-3, where the two classes are a property and its negation; it is stated here, in the vacuity-disciplined form (each lattice comes with a core-free representation), and deliberately not asserted: no inhabitant is claimed in either direction.

-- A type representing the dead-end assertion: a property and its negation
-- cannot both be cf-IE via lattices with core-free representations.
cfIE-no-contradictory-Statement : (ā„“P : Level) → Type (lsuc 0ā„“ āŠ” lsuc ā„“P)
cfIE-no-contradictory-Statement ā„“P =
  āˆ€ (P : GroupProperty ā„“P) (š‘³ā‚ š‘³ā‚‚ : Lattice)
  → CoreFreeRepresentable š‘³ā‚ → cfIE P š‘³ā‚
  → CoreFreeRepresentable š‘³ā‚‚ → cfIE (Ī» š’¢ → ¬ P š’¢) š‘³ā‚‚
  → ⊄

What Lemma 3.3 settles. A contradictory pair would have to be jointly wreath-rich; both classes contain wreath products over every admissible š’®. So the note's no-go for plain IE (Lemma 3.2, whose fattening argument destroys core-freeness) cannot be replayed here, and any refutation must separate the two classes by invariants finer than wreath content: the unique minimal normal subgroup, its centralizer, and the permutation action on it that RP-1's Lemma 3.7 provides for parachute representations.

-- A contradictory cf-IE pair is jointly wreath-rich over every admissible š’®.
contradictory-pair-wreaths :
  āˆ€ {ā„“P} (P : GroupProperty ā„“P) (š‘³ā‚ š‘³ā‚‚ : Lattice) (š’® : Group 0ā„“ 0ā„“)
  → NontrivialCenterless š’®
  → KurzweilWreathInterval š’®
  → cfIE P š‘³ā‚
  → (r₁ : CoreFreeRepresentable š‘³ā‚)
  → FiniteAlgebra (proj₁ (CoreFreeRepresentable.rep r₁ .grp))
  → Nontrivial š‘³ā‚
  → cfIE (Ī» š’¢ → ¬ P š’¢) š‘³ā‚‚
  → (rā‚‚ : CoreFreeRepresentable š‘³ā‚‚)
  → FiniteAlgebra (proj₁ (CoreFreeRepresentable.rep rā‚‚ .grp))
  → Nontrivial š‘³ā‚‚
  →  (∃[ š’° ] ∃[ m ] Ī£[ A ∈ RightAction (Fin (2 + m)) š’° ] P (š’® ā‰€įµ A))
     Ɨ (∃[ š’± ] ∃[ l ] Ī£[ B ∈ RightAction (Fin (2 + l)) š’± ] ¬ P (š’® ā‰€įµ B))
contradictory-pair-wreaths P š‘³ā‚ š‘³ā‚‚ š’® nc kwi cf-ie₁ r₁ fin₁ two₁ cf-ieā‚‚ rā‚‚ finā‚‚ twoā‚‚ =
    cfIE-must-have-wreaths P š‘³ā‚ š’® nc kwi cf-ie₁ r₁ fin₁ two₁
  , cfIE-must-have-wreaths (Ī» š’¢ → ¬ P š’¢) š‘³ā‚‚ š’® nc kwi cf-ieā‚‚ rā‚‚ finā‚‚ twoā‚‚

The reduction that places the question in the program's chain.

The parachute statement (C) of FLRP.Enforceable, for families of finite lattices with two big canopies, implies there is no contradictory pair, by instantiating the family at (š‘³ā‚ , š‘³ā‚‚) with properties (P , ¬ P); the single group statement (C) produces would satisfy both. Contrapositively, a contradictory pair refutes (C), hence, through the RP-1 meta-theorem and the PĆ”lfy–PudlĆ”k entry, the FLRP itself. This is the formal content of "the dead-end question sits below statement (C)"; what stands between the two formulations is the finite-presentation transport recorded as open in the RP-1 design note, plus (C)'s three-element side conditions.

-- Statement (C) leaves no room for a contradictory pair on big finite lattices.
statement-C→no-contradictory-pair :
  āˆ€ {ā„“P} → Statement-C ā„“P
  → (P : GroupProperty ā„“P) (š‘³ā‚ š‘³ā‚‚ : FiniteLattice)
  → HasThreeDistinct (toLattice š‘³ā‚) → HasThreeDistinct (toLattice š‘³ā‚‚)
  → cfIE P (toLattice š‘³ā‚) → cfIE (Ī» š’¢ → ¬ P š’¢) (toLattice š‘³ā‚‚)
  → ⊄
statement-C→no-contradictory-pair {ā„“P} stC P š‘³ā‚ š‘³ā‚‚ three₁ threeā‚‚ cf-ie₁ cf-ieā‚‚ =
  (Ps-hold 1F) (Ps-hold 0F)
  where
  family : Fin 2 → FiniteLattice
  family 0F = š‘³ā‚
  family 1F = š‘³ā‚‚

  Ps : Fin 2 → GroupProperty ā„“P
  Ps 0F = P
  Ps 1F = Ī» š’¢ → ¬ P š’¢

  two-all : āˆ€ i → Nontrivial (toLattice (family i))
  two-all 0F = threeDistinct→nontrivial (toLattice š‘³ā‚) three₁
  two-all 1F = threeDistinct→nontrivial (toLattice š‘³ā‚‚) threeā‚‚

  two-big : TwoBigCanopies family
  two-big = 0F , 1F , (Ī» ()) , three₁ , threeā‚‚

  cfs : āˆ€ i → cfIE (Ps i) (toLattice (family i))
  cfs 0F = cf-ie₁
  cfs 1F = cf-ieā‚‚

  joint :
    ∃[ š’¢ ]
      (āˆ€ i → Ps i š’¢)
      Ɨ ( āˆ€ i → ∃[ H ] ∃[ H-sg ] (  CoreFree š’¢ H H-sg
                                    Ɨ IntervalIso š’¢ H H-sg (toLattice (family i)) ) )
  joint = stC 0 family Ps two-all two-big cfs

  Ps-hold : āˆ€ i → Ps i (joint .proj₁)
  Ps-hold = joint .projā‚‚ .proj₁


  1. arXiv:1205.1927 ("the note"), vendored at docs/papers/flrp/ieprops/; Lemma 3.3 (lem:IE-must-have-wreaths) and its proof, which cites the two interval facts to H. Kurzweil, Endliche Gruppen mit vielen Untergruppen, J. reine angew. Math. 356 (1985) 140–160. The design note for this phase is docs/notes/flrp-rp4-wreath.md