[Show and Tell] Formally Verifying Foundational Computational Group Theory in Lean 4: Operational Schreier-Sims & Backtrack Partitions (Phase 2, Release v0.2.0) #6624
Closed
pCwOrM
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Hello GAP Community,
Following our initial port of modular residue arithmetic, we are pleased to present Phase 2 (Release v0.2.0) of our formal verification initiative: Operational Computational Group Theory and Backtrack Combinatorics in Lean 4 / Mathlib.
Clarifying the Scope: Algorithm Verification vs. Kernel Emulation
In mathematical software verification, there are two distinct objectives:
Our work focuses rigorously on (2). Rather than relying on non-constructive transfer, Phase 2 implements and machine-checks the executable computational group theory procedures and inductive invariants that form the backbone of GAP's permutation group engine.
What Has Been Formalized in Release v0.2.0
1. Stabiliser Chains & Schreier-Sims Sifting (
lib/stbc.gi, GAP-0299)RequestProject.Gap.Library.Stbclib/stbc.gi(Heiko Theißen & Ákos Seress)GAP.Stbc.StabLevel: Models each level of a stabiliser chain with base pointGAP.Stbc.StabChain: The hierarchical tower of stabiliserssiftOneLevel:siftFull/siftedPermutation.membershipTestKnownBase.extendSchreierPoint.siftOneLevel_fixes_basePoint: Proves that single-level sifting strictly fixes the base pointsiftFull_fixes_all_basePoints: Proves that full sifting fixes every base point in the base sequencesiftedPermutation_mem_subgroup_iff: Proves invariant preservation during coset reduction.membershipTestKnownBase_sound: Proves soundness of the BSGS membership decision procedure.membershipTestKnownBase_iff_mem: Soundness and completeness equivalence:membershipTestKnownBase chain g = true ↔ g ∈ G.extendSchreierPoint_invariant: Machine-checks transversal tree invariant preservation under orbit extension.2. Ordered Partitions & Cell Refinement for Backtrack Search (
lib/partitio.gi, GAP-0332)RequestProject.Gap.Library.Partitiolib/partitio.gi(Heiko Theißen)OrderedPartition: Partition of domainsplitCellByPred: Core cell refinement operation underlying GAP'sSplitCellandIsolatePoint.splitCellByPred_disjoint: Machine-checks that cell splitting yields mutually disjoint subcells.splitCellByPred_union: Proves exact element conservation (subcells partition the original cell).splitCellByPred_length_sum: Proves cardinality conservationmem_splitCellByPred_iff: Exact predicate-driven membership equivalence.3. Cyclotomic Extension Rings$\mathbb{Z}/n\mathbb{Z}(\varepsilon_m)$ (
lib/zmodnze.gi, GAP-0332)RequestProject.Gap.Library.Zmodnzelib/zmodnze.gi(Alexander Konovalov)Fin m → GAP.ZModnZObj nwith convolution group-ring multiplicationmulOp.card_eq):4. Constructive Modular Inverses via Extended Euclidean GCD (
lib/zmodnz.gi, GAP-0331)RequestProject.Gap.Library.Zmodnzlib/zmodnz.gi(Thomas Breuer)isUnitExecand constructiveinverseOpExecvia Extended GCD (Nat.gcdABézout coefficients).inverseOpExec_correct: Proves that wheneverisUnitExec a = true,inverseOpExec aproduces a concrete inverse satisfying exact modular multiplication with 0 non-constructive choice.Axiomatic Purity Audit
Every single theorem across the 4 modules has been audited with
#print axioms:[propext, Classical.choice, Quot.sound]).sorry/admit: 0@[implemented_by]: 0Independent Verification Instructions
Anyone can independently clone and machine-check the proofs:
git clone https://github.com/pCwOrM/gap-lean4-port.git cd gap-lean4-port lake build RequestProjectWe hope this provides a rigorous, concrete bridge between computational group theory algorithms and modern interactive theorem proving. Feedback and mathematical discussion from the GAP community are warmly welcomed!
Best regards,
Volkan Dagli & Family (@pCwOrM)
ITouch Systems Formal Verification Lab
All reactions