コード例 #1
0
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
コード例 #2
0
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()