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.