Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

What C# can do for studying Finite Groups, quotient groups, semi-direct products, homomorphisms, automorphisms group, characters table, minimalistic rings and fields manipulations, polynomials factoring, fields extensions and many more...

License

NotificationsYou must be signed in to change notification settings

aidevnn/FastGoat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What C# can do for studying Finite Groups, abelians or not, quotient groups, direct products or semi-direct products, homomorphisms, automorphisms group, with minimalistic manipulations for rings, fields, numbers, polynomials factoring, field extensions, algebraics numbers and many more...

Example

Searching semi-direct product$C_7 \rtimes C_3$ in$\textbf{S}_7$

GlobalStopWatch.Restart();vars7=newSn(7);vara=s7[(1,2,3,4,5,6,7)];varallC3=s7.Where(p=>(p^3)==s7.Neutral()).ToArray();varb=allC3.First(p=>Group.GenerateElements(s7,a,p).Count()==21);GlobalStopWatch.Stop();Console.WriteLine("|S7|={0}, |{{b in S7 with b^3 = 1}}| = {1}",s7.Count(),allC3.Count());Console.WriteLine("First Solution |HK| = 21 : h = {0} and k = {1}",a,b);Console.WriteLine();varh=Group.Generate("H",s7,a);varg21=Group.Generate("G21",s7,a,b);DisplayGroup.Head(g21);DisplayGroup.Head(g21.Over(h));GlobalStopWatch.Show("Group21");

will output

|S7|=5040, |{b in S7 with b^3 = 1}| = 351First Solution |HK| = 21 : h = [(1 2 3 4 5 6 7)] and k = [(2 3 5)(4 7 6)]|G21| = 21Type        NonAbelianGroupBaseGroup   S7|G21/H| = 3Type        AbelianGroupBaseGroup   G21/HGroup           |G21| = 21NormalSubGroup  |H| = 7# Group21 Time:113 ms

Another Example

Comparing the previous results with the group presented by$\langle (a,\ b) \ | \ a^7=b^3=1,\ a^2=bab^{-1} \rangle$

GlobalStopWatch.Restart();varwg=newWordGroup("a7, b3, a2 = bab-1");GlobalStopWatch.Stop();DisplayGroup.Head(wg);varn=Group.Generate("<a>",wg,wg["a"]);DisplayGroup.Head(wg.Over(n));GlobalStopWatch.Show($"{wg}");Console.WriteLine();

will produce

|WG[a,b]| = 21Type        NonAbelianGroupBaseGroup   WG[a,b]|WG[a,b]/<a>| = 3Type        AbelianGroupBaseGroup   WG[a,b]/<a>Group           |WG[a,b]| = 21NormalSubGroup  |<a>| = 7# WG[a,b] Time:42 ms

Semidirect product using group action

Another way for the previous example

GlobalStopWatch.Restart();varc7=newCn(7);varc3=newCn(3);varg21=Group.SemiDirectProd(c7,c3);GlobalStopWatch.Stop();varn=Group.Generate("N",g21,g21[1,0]);DisplayGroup.HeadSdp(g21);DisplayGroup.Head(g21.Over(n));GlobalStopWatch.Show("Group21");

will output

|C7 x: C3| = 21Type        NonAbelianGroupBaseGroup    C7 x C3NormalGroup  |C7| = 7ActionGroup  |C3| = 3Action FaithFullg=0 y(g) = (0->0, 1->1, 2->2, 3->3, 4->4, 5->5, 6->6)g=1 y(g) = (0->0, 1->2, 2->4, 3->6, 4->1, 5->3, 6->5)g=2 y(g) = (0->0, 1->4, 2->1, 3->5, 4->2, 5->6, 6->3)|(C7 x: C3)/N| = 3Type        AbelianGroupBaseGroup   (C7 x: C3)/NGroup           |C7 x: C3| = 21NormalSubGroup  |N| = 7# Group21 Time:1 ms

Matrix form of the group$C_7 \rtimes C_3$

Expressing the group$C_7 \rtimes C_3$ in$\textbf{GL}(2,\mathbb{F}_7)$

vargl27=FG.GL2p(7);varg21mat=Group.IsomorphicSubgroup(gl27,g21);DisplayGroup.HeadGenerators(g21mat);

will output

|C7 x: C3| = 21Type        NonAbelianGroupBaseGroup   GL(2,7)SuperGroup  |GL(2,7)| = 2016Generators of C7 x: C3gen1 of order 3[2, 0][0, 1]gen2 of order 7[1, 1][0, 1]

Characters Table

Displaying characters table for the group$C_7 \rtimes C_3$ in$\textbf{S}_7$

FG.CharacterTable(g21).DisplayCells();

will output

|C7 x: C3| = 21Type        NonAbelianGroupBaseGroup   C7 x C3[Class      1   3a   3b              7a              7b][ Size      1    7    7               3               3][                                                      ][  Ꭓ.1      1    1    1               1               1][  Ꭓ.2      1   ξ3  ξ3²               1               1][  Ꭓ.3      1  ξ3²   ξ3               1               1][  Ꭓ.4      3    0    0  -1/2 - 1/2·I√7  -1/2 + 1/2·I√7][  Ꭓ.5      3    0    0  -1/2 + 1/2·I√7  -1/2 - 1/2·I√7]All i,                 Sum[g](Xi(g)Xi(g^−1)) = |G|      : TrueAll i <> j,            Sum[g](Xi(g)Xj(g^−1)) =  0       : TrueAll g, h in Cl(g),     Sum[r](Xr(g)Xr(h^−1)) = |Cl(g)|  : TrueAll g, h not in Cl(g), Sum[r](Xr(g)Xr(h^−1)) =  0       : True

Polynomial with Galois group

Computing Galois Group of irreductible polynomial$P=X^7-8X^5-2X^4+16X^3+6X^2-6X-2$ fromGroupName website

Ring.DisplayPolynomial=MonomDisplay.StarCaret;varx=FG.QPoly('X');varP=x.Pow(7)-8*x.Pow(5)-2*x.Pow(4)+16*x.Pow(3)+6*x.Pow(2)-6*x-2;// GroupNames websiteGaloisApplicationsPart2.GaloisGroupChebotarev(P,details:true);

will output

f = X^7 - 8*X^5 - 2*X^4 + 16*X^3 + 6*X^2 - 6*X - 2Disc(f) = 1817487424 ~ 2^6 * 73^4#1   P = 3 shape (7)#2   P = 5 shape (1, 3, 3)#3   P = 7 shape (7)#4   P = 11 shape (1, 3, 3)#5   P = 13 shape (1, 3, 3)#6   P = 17 shape (7)#7   P = 19 shape (1, 3, 3)#8   P = 23 shape (1, 3, 3)#9   P = 29 shape (1, 3, 3)#10  P = 31 shape (1, 3, 3)actual types    [(7), 3]    [(1, 3, 3), 7]expected types    [(7), 6]    [(1, 3, 3), 14]    [(1, 1, 1, 1, 1, 1, 1), 1]Distances    { Name = F_21(7) = 7:3, order = 21, dist = 0.6666666666666664 }    { Name = F_42(7) = 7:6, order = 42, dist = 8.8 }    { Name = L(7) = L(3,2), order = 168, dist = 25.6 }    { Name = A7, order = 2520, dist = 380 }    { Name = S7, order = 5040, dist = 538.6666666666666 }P = X^7 - 8*X^5 - 2*X^4 + 16*X^3 + 6*X^2 - 6*X - 2Gal(P) = F_21(7) = 7:3|F_21(7) = 7:3| = 21Type        NonAbelianGroupBaseGroup   S7SuperGroup  |Symm7| = 5040

Illustration

DisplayGroup.HeadElementsCayleyGraph(g21,gens:[g21["a"],g21["b-1"]]);

will output

Cayley graph Group C7x:C3

Galois Theory

Galois Group of polynomial$P = X^5 + X^4 - 4X^3 - 3X^2 + 3X + 1$

Ring.DisplayPolynomial=MonomDisplay.StarCaret;varx=FG.QPoly('X');varP=x.Pow(5)+x.Pow(4)-4*x.Pow(3)-3*x.Pow(2)+3*x+1;varroots=IntFactorisation.AlgebraicRoots(P,details:true);vargal=GaloisTheory.GaloisGroup(roots,details:true);DisplayGroup.AreIsomorphics(gal,FG.Abelian(5));

will output

[...]f = X^5 + X^4 - 4*X^3 - 3*X^2 + 3*X + 1 with f(y) = 0Square free norm : Norm(f(X + 2*y)) = x^25 - 5*x^24 - 98*x^23 + 503*x^22 + 3916*x^21 - 20988*x^20 - 82808*x^19 + 476245*x^18 + 1001759*x^17 - 6482223*x^16 - 6888926*x^15 + 55077950*x^14 + 23535811*x^13 - 295014199*x^12 - 8852570*x^11 + 984611573*x^10 - 207998384*x^9 - 1981105500*x^8 + 676565912*x^7 + 2253157335*x^6 - 871099834*x^5 - 1278826318*x^4 + 467945878*x^3 + 268636799*x^2 - 89574789*x + 1746623         = (x^5 - x^4 - 26*x^3 + 47*x^2 + 47*x - 1) * (x^5 - x^4 - 26*x^3 + 25*x^2 + 91*x - 67) * (x^5 - x^4 - 26*x^3 + 25*x^2 + 157*x - 199) * (x^5 - x^4 - 26*x^3 - 19*x^2 + 113*x + 131) * (x^5 - x^4 - 4*x^3 + 3*x^2 + 3*x - 1)X^5 + X^4 - 4*X^3 - 3*X^2 + 3*X + 1 = (X + y^4 + y^3 - 3*y^2 - 2*y + 1) * (X - y^4 + 4*y^2 - 2) * (X - y^3 + 3*y) * (X - y^2 + 2) * (X - y)Are equals TruePolynomial P = X^5 + X^4 - 4*X^3 - 3*X^2 + 3*X + 1Factorization in Q(α)[X] with P(α) = 0    X - α    X - α^2 + 2    X - α^3 + 3*α    X + α^4 + α^3 - 3*α^2 - 2*α + 1    X - α^4 + 4*α^2 - 2|Gal( Q(α)/Q )| = 5Type        AbelianGroupBaseGroup   S5Elements(1)[1] = [](2)[5] = [(1 2 5 3 4)](3)[5] = [(1 3 2 4 5)](4)[5] = [(1 4 3 5 2)](5)[5] = [(1 5 4 2 3)]Gal( Q(α)/Q ) IsIsomorphicTo C5 : True

Computing$\bf{Gal}(\mathbb{Q}(\sqrt{2}, \sqrt{3})/\mathbb{Q})=\mathbf{C_2}\times\mathbf{C_2}$

Ring.DisplayPolynomial=MonomDisplay.Caret;varx=FG.QPoly('X');var(X, _)=FG.EPolyXc(x.Pow(2)-2,'a');var(minPoly,a0,b0)=IntFactorisation.PrimitiveElt(X.Pow(2)-3);varroots=IntFactorisation.AlgebraicRoots(minPoly);Console.WriteLine("Q(√2, √3) = Q(α)");vargal=GaloisTheory.GaloisGroup(roots,details:true);DisplayGroup.AreIsomorphics(gal,FG.Abelian(2,2));

will output

Q(√2, √3) = Q(α)Polynomial P = X^4 - 10*X^2 + 1Factorization in Q(α)[X] with P(α) = 0    X + α    X - α    X + α^3 - 10*α    X - α^3 + 10*α|Gal( Q(α)/Q )| = 4Type        AbelianGroupBaseGroup   S4Elements(1)[1] = [](2)[2] = [(1 2)(3 4)](3)[2] = [(1 3)(2 4)](4)[2] = [(1 4)(2 3)]Gal( Q(α)/Q ) IsIsomorphicTo C2 x C2 : True

With$\alpha^4-2 = 0,\ \bf{Gal}(\mathrm{Q}(\alpha, \mathrm{i})/\mathrm{Q}) = \mathbf{D_4}$

Ring.DisplayPolynomial=MonomDisplay.Caret;varx=FG.QPoly('X');var(X,i)=FG.EPolyXc(x.Pow(2)+1,'i');var(minPoly, _, _)=IntFactorisation.PrimitiveElt(X.Pow(4)-2);varroots=IntFactorisation.AlgebraicRoots(minPoly);Console.WriteLine("With α^4-2 = 0, Q(α, i) = Q(β)");vargal=GaloisTheory.GaloisGroup(roots,primEltChar:'β',details:true);DisplayGroup.AreIsomorphics(gal,FG.Dihedral(4));

will output

With α^4-2 = 0, Q(α, i) = Q(β)Polynomial P = X^8 + 4*X^6 + 2*X^4 + 28*X^2 + 1Factorization in Q(β)[X] with P(β) = 0    X + β    X - β    X + 5/12*β^7 + 19/12*β^5 + 5/12*β^3 + 139/12*β    X + 5/24*β^7 - 1/24*β^6 + 19/24*β^5 - 5/24*β^4 + 5/24*β^3 - 13/24*β^2 + 127/24*β - 29/24    X + 5/24*β^7 + 1/24*β^6 + 19/24*β^5 + 5/24*β^4 + 5/24*β^3 + 13/24*β^2 + 127/24*β + 29/24    X - 5/24*β^7 - 1/24*β^6 - 19/24*β^5 - 5/24*β^4 - 5/24*β^3 - 13/24*β^2 - 127/24*β - 29/24    X - 5/24*β^7 + 1/24*β^6 - 19/24*β^5 + 5/24*β^4 - 5/24*β^3 + 13/24*β^2 - 127/24*β + 29/24    X - 5/12*β^7 - 19/12*β^5 - 5/12*β^3 - 139/12*β|Gal( Q(β)/Q )| = 8Type        NonAbelianGroupBaseGroup   S8Elements(1)[1] = [](2)[2] = [(1 2)(3 8)(4 7)(5 6)](3)[2] = [(1 3)(2 8)(4 6)(5 7)](4)[2] = [(1 4)(2 6)(3 7)(5 8)](5)[2] = [(1 5)(2 7)(3 6)(4 8)](6)[2] = [(1 8)(2 3)(4 5)(6 7)](7)[4] = [(1 6 8 7)(2 4 3 5)](8)[4] = [(1 7 8 6)(2 5 3 4)]Gal( Q(β)/Q ) IsIsomorphicTo D8 : True

Illustration

Polynomial P=X^2-5 with Galois Group C5x:C4

References

ALGÈBRE T1Daniel Guin, Thomas Hausberger.ALGÈBRE T1 Groupes, corps et théorie de Galois.EDP Sciences.All Chapters.

Algebra (3rd ed.)Saunders MacLane, Garrett Birkhoff.Algebra (3rd ed.).American Mathematical Society.Chapter XII.2 Groups extensions.

A Course on Finite GroupsH.E. Rose.A Course on Finite Groups.Springer. 2009.All Chapters. Web Sections, Web Chapters.

A Course on Finite GroupsH.E. Rose.A Course on Finite Groups.Web Sections, Web Chapters and Solution Appendix.Springer. 2009.Chapter 13. Representation and Character Theory.

GroupNamesTim Dokchitser.Group Names.Beta

GAP2022The GAP Group.GAP -- Groups, Algorithms, and Programming.Version 4.12.0; 2022.

Paper (pdf)Ken Brown.Mathematics 7350.Cornell University.The Todd–Coxeter procedure

Conway polynomialsFrank Lübeck.Conway polynomials for finite fieldsOnline data

AECFAlin Bostan, Frédéric Chyzak, Marc Giusti, Romain Lebreton, Grégoire Lecerf, Bruno Salvy, Éric Schost.Algorithmes Efficaces en Calcul Formel.Édition web 1.1, 2018Chapitre IV Factorisation des polynômes.

hal-01444183Xavier CarusoComputations with p-adic numbers. Journées Nationales de Calcul Formel, In press,Les cours du CIRM. 2017.Several implementations of p-adic numbers

Algebraic FactoringBarry TragerAlgebraic Factoring and Rational Function Integration.Laboratory for Computer Science, MIT. 1976.Norms and Algebraic Factoring

Bases de GröbnerJean-Charles FaugereRésolution des systèmes polynômiaux en utilisant les bases de Gröbner.INRIA (POLSYS) / UPMC / CNRS/ LIP6.(JNCF) 2015

Ideals, Varieties, and AlgorithmsDavid A. Cox, John Little, Donal O’SheaIdeals, Varieties, and Algorithms.Springer. 4th Edition. 2015.Chapter 5. Polynomial and Rational Functions on a Variety

CharaktertheorieJun.-Prof. Dr. Caroline LassueurCharacter Theory of Finite Groups.TU Kaiserslautern, SS2020.Chapter 6. Induction and Restriction of Characters

WikipediaWikipedia.The Free Encyclopedia.Many algorithms and proofs

WolframCloudWolfram Research.WOLFRAM CLOUD Integrated Access to Computational Intelligence2023 Wolfram Research, Inc.

Pari/GPThe PARI Group.PARI/GP Number Theory-oriented Computer Algebra System.Bordeaux.Version 2.15.x; 2020-2022.

milneFTMilne, James S.Fields and Galois Theory.Ed web v5.10, 2022.Chapter 4. Computing Galois Groups.

ChatGPTOpenAI.ChatGPTAugust 3, 2023Version3.5Free Research Preview.

fplllThe FPLLL development team.A lattice reduction librarymay2021Version 5.4.1

arbF.JohanssonArb a C library for arbitrary-precision ball arithmeticjune2022Version 2.23

milneCFTMilne, James S.Class Field Theory.Ed web v4.03, 2020.Chapter 2. The Cohomology of Groups.

Cohomology of Finite GroupsAlejandro Adem, R. James Milgram.Cohomology of Finite Groups Springer.Second Edition 2004.Chapter 1. Group Extensions, Simple Algebras and Cohomology

arXiv:math/0010134Florentin Smarandache, PhD Associate Professor Chair of Department of Math & SciencesINTEGER ALGORITHMS TO SOLVE DIOPHANTINE LINEAR EQUATIONS AND SYSTEMS.University of New Mexico nov 2007.

RSW1999Iain Raeburn, Aidan Sims, and Dana P.WilliamsTWISTED ACTIONS AND OBSTRUCTIONS IN GROUP COHOMOLOGY.Germany, March 8–12, 1999.

A000001OEIS.The On-Line Encyclopedia of Integer Sequences.A000001 Number of groups of order n.

relatorsJohn J. CANNON.Construction of defining relators for finite groups.Department of Pure Mathematics, University of Sydney.Discrete Mathematics 5 (1973), North-Holland Publishing Company.Construction of defining relators for finite groups. p105-129

generatorsGLnqD.E.Taylor.Pairs of Generators for Matrix Groups.Department of Pure MathematicsThe University of SydneyAustralia 2006.arXiv:2201.09155v1

Groups and Symmetries From Finite Groups to Lie GroupsYvette Kosmann-Schwarzbach, Stephanie Frank SingerGroups and Symmetries From Finite Groups to Lie Groups.Springer. 2th Edition. 2022.Chapter 2. Representations of Finite Groups

Algorithms in Invariant TheoryBernd Sturmfels.Algorithms in Invariant TheorySecond edition.2008 Springer-Verlag/Wien.Chapter2 Invariant theory of finite groups.

ntbv2Victor Shoup.A Computational Introduction to Number Theory and Algebra.Second edition.December 2008 Cambridge University Press.New York UniversityChapter20 Algorithms for finite fields.

pslqm2David H. Bailey.The two-level multipair PSLQ algorithm.May 2, 2024PSLQM2.

SymPyMeurer A, Smith CP, Paprocki M, Čertík O, Kirpichev SB, Rocklin M, Kumar A,Ivanov S, Moore JK, Singh S, Rathnayake T, Vig S, Granger BE, Muller RP,Bonazzi F, Gupta H, Vats S, Johansson F, Pedregosa F,Curry MJ, Terrel AR,Roučka Š, Saboo A, Fernando I, Kulal S, Cimrman R, Scopatz A.(2017) SymPy:symbolic computing in Python.PeerJ Computer Science 3:e103Version 1.12; 2023.

LMFDBThe LMFDB Collaboration.The L-functions and modular forms database.2024.

Reg05Oded Regev.On Lattices, Learning with Errors, Random Linear Codes, and Cryptography.May 22, 2005LWE.

BGV11Zvika Brakerski, Craig Gentry, and Vinod Vaikuntanathan.Fully Homomorphic Encryption without Bootstrapping.2011BGV.

KDE+21Andrey Kim, Maxim Deryabin, Jieun Eom, Rakyong Choi, Yongwoo Lee, Whan Ghang, and Donghoon Yoo.General Bootstrapping Approach for RLWE-based Homomorphic Encryption.September 27, 2021, Suwon.Republic of KoreaSamsung Advanced Institute of TechnologyKDE+21.

SageMathThe Sage Developers.SageMath, the Sage Mathematics Software System.Version 10.4, 2024.

GHS12Craig Gentry, Shai Halevi, Nigel P. Smart.Homomorphic Evaluation of the AES Circuit.January 3, 2015GHS12.

About

What C# can do for studying Finite Groups, quotient groups, semi-direct products, homomorphisms, automorphisms group, characters table, minimalistic rings and fields manipulations, polynomials factoring, fields extensions and many more...

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

    Languages


    [8]ページ先頭

    ©2009-2025 Movatter.jp