<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def are_symmetrically_equivalent(self, sites1, sites2, symm_prec=1e-3):
 """ Given two sets of PeriodicSites, test if they are actually symmetrically equivalent under this space group. Useful, for example, if you want to test if selecting atoms 1 and 2 out of a set of 4 atoms are symmetrically the same as selecting atoms 3 and 4, etc. One use is in PartialRemoveSpecie transformation to return only symmetrically distinct arrangements of atoms. Args: sites1 ([Site]):
 1st set of sites sites2 ([Site]):
 2nd set of sites symm_prec (float):
 Tolerance in atomic distance to test if atoms are symmetrically similar. Returns: (bool):
 Whether the two sets of sites are symmetrically equivalent. """

        def in_sites(site):
            for test_site in sites1:
                if test_site.is_periodic_image(site, symm_prec, False):
                    return True
            return False

        for op in self:
            newsites2 = [PeriodicSite(site.species,
                                      op.operate(site.frac_coords),
                                      site.lattice) for site in sites2]
            for site in newsites2:
                if not in_sites(site):
                    break
            else:
                return True
        return False