The Congruence package provides
functions to construct several types of canonical congruence subgroups in
SL_2(Z), and also intersections of a finite number of such subgroups.
Furthermore, it implements the algorithm for generating Farey symbols for
congruence subgroups and using them to produce a system of independent
generators for these subgroups.