Tensor Canonicalization diofant.combinatorics.tensor_can canonicalize double_coset_can_rep get_symmetric_group_sgs bsgs_direct_product