def seminormal_test(n): """ Runs a variety of tests to verify that the construction of the seminormal basis works as desired. The numbers appearing are Theorems in James and Kerber's 'Representation Theory of the Symmetric Group'. EXAMPLES:: sage: from sage.combinat.symmetric_group_algebra import seminormal_test sage: seminormal_test(3) True """ for part in partition.Partitions_n(n): for tab in StandardTableaux(part): #3.1.10 if not e(tab) * (1 / kappa(part)) - e_hat(tab) == 0: raise ValueError, "3.1.10 - %s" % tab #3.2.12.2 value = e(tab) * epsilon(tab, 1) * e(tab) - e(tab) * (kappa(part)) if value != 0: print value raise ValueError, "3.2.12.2 - %s" % tab for tab2 in StandardTableaux(part): #3.2.8 1 if e_ik(tab, tab2) - e(tab) * pi_ik( tab, tab2) * e(tab2) * (1 / kappa(part)) != 0: raise ValueError, "3.2.8.1 - %s, %s" % (tab, tab2) #3.2.8.1 if e(tab) * e_ik(tab, tab2) - e_ik(tab, tab2) * (kappa(part)) != 0: raise ValueError, "3.2.8.2 - %s, %s" % (tab, tab2) if tab == tab2: continue if tab.last_letter_lequal(tab2): #3.1.20 if e(tab2) * e(tab) != 0: raise ValueError, "3.1.20 - %s, %s" % (tab, tab2) if e_hat(tab2) * e_hat(tab) != 0: raise ValueError, "3.1.20 - %s, %s" % (tab, tab2) return True
def kappa(alpha): r""" Returns `\kappa_\alpha` which is n! divided by the number of standard tableaux of shape `\alpha`. EXAMPLES:: sage: from sage.combinat.symmetric_group_algebra import kappa sage: kappa(Partition([2,1])) 3 sage: kappa([2,1]) 3 """ try: n = alpha.size() except AttributeError: n = sum(alpha) return factorial(n)/StandardTableaux(alpha).cardinality()