Groups, Algorithms, Programming - a System for Computational Discrete Algebra

GAP
Free
Offline
http://www-gap.mcs.st-and.ac.uk/

GAP is a system for computational discrete algebra, with particular emphasis on Computational Group Theory. GAP provides a programming language, a library of thousands of functions implementing algebraic algorithms written in the GAP language as well as large data libraries of algebraic objects.