Ejemplo n.º 1
0
def test_sig_key():
    s1 = sig((0, ) * 3, 2)
    s2 = sig((1, ) * 3, 4)
    s3 = sig((2, ) * 3, 2)

    assert sig_key(s1, lex) > sig_key(s2, lex)
    assert sig_key(s2, lex) < sig_key(s3, lex)
Ejemplo n.º 2
0
def test_is_rewritable_or_comparable():
    # from katsura4 with grlex
    R, x, y, z, t = ring("x,y,z,t", QQ, grlex)

    p = lbp(sig((0, 0, 2, 1), 2), R.zero, 2)
    B = [
        lbp(
            sig((0, 0, 0, 1), 2),
            QQ(2, 45) * y**2 + QQ(1, 5) * y * z + QQ(5, 63) * y * t +
            z**2 * t + QQ(4, 45) * z**2 + QQ(76, 35) * z * t**2 -
            QQ(32, 105) * z * t + QQ(13, 7) * t**3 - QQ(13, 21) * t**2, 6)
    ]

    # rewritable:
    assert is_rewritable_or_comparable(Sign(p), Num(p), B) is True

    p = lbp(sig((0, 1, 1, 0), 2), R.zero, 7)
    B = [
        lbp(
            sig((0, 0, 0, 0), 3),
            QQ(10, 3) * y * z + QQ(4, 3) * y * t - QQ(1, 3) * y + 4 * z**2 +
            QQ(22, 3) * z * t - QQ(4, 3) * z + 4 * t**2 - QQ(4, 3) * t, 3)
    ]

    # comparable:
    assert is_rewritable_or_comparable(Sign(p), Num(p), B) is True
Ejemplo n.º 3
0
def test_lbp_sub():
    R, x, y, z, t = ring('x y z t', ZZ, lex)

    p1 = lbp(sig((0, ) * 4, 3), R.zero, 12)
    p2 = lbp(sig((0, ) * 4, 4), R.zero, 13)

    assert lbp_sub(p1, p2) == lbp_sub(p2, p1) == p1
Ejemplo n.º 4
0
def test_lbp_key():
    R, x, y, z, t = ring("x,y,z,t", ZZ, lex)

    p1 = lbp(sig((0, ) * 4, 3), R.zero, 12)
    p2 = lbp(sig((0, ) * 4, 4), R.zero, 13)
    p3 = lbp(sig((0, ) * 4, 4), R.zero, 12)

    assert lbp_key(p1) > lbp_key(p2)
    assert lbp_key(p2) < lbp_key(p3)
Ejemplo n.º 5
0
def test_lbp_key():
    R,  *_ = ring('x y z t', ZZ, lex)

    p1 = lbp(sig((0,) * 4, 3), R.zero, 12)
    p2 = lbp(sig((0,) * 4, 4), R.zero, 13)
    p3 = lbp(sig((0,) * 4, 4), R.zero, 12)

    assert lbp_key(p1) > lbp_key(p2)
    assert lbp_key(p2) < lbp_key(p3)
Ejemplo n.º 6
0
def test_is_rewritable_or_comparable():
    # from katsura4 with grlex
    R,  _, y, z, t = ring('x y z t', QQ, grlex)

    p = lbp(sig((0, 0, 2, 1), 2), R.zero, 2)
    B = [lbp(sig((0, 0, 0, 1), 2), 2*y**2/45 + y*z/5 + 5*y*t/63 + z**2*t + 4*z**2/45 + 76*z*t**2/35 - 32*z*t/105 + 13*t**3/7 - 13*t**2/21, 6)]

    # rewritable:
    assert is_rewritable_or_comparable(Sign(p), Num(p), B) is True

    p = lbp(sig((0, 1, 1, 0), 2), R.zero, 7)
    B = [lbp(sig((0, 0, 0, 0), 3), 10*y*z/3 + 4*y*t/3 - y/3 + 4*z**2 + 22*z*t/3 - 4*z/3 + 4*t**2 - 4*t/3, 3)]

    # comparable:
    assert is_rewritable_or_comparable(Sign(p), Num(p), B) is True
Ejemplo n.º 7
0
def test_f5_reduce():
    # katsura3 with lex
    R, x, y, z = ring('x y z', QQ, lex)

    F = [(((0, 0, 0), 1), x + 2 * y + 2 * z - 1, 1),
         (((0, 0, 0), 2), 6 * y**2 + 8 * y * z - 2 * y + 6 * z**2 - 2 * z, 2),
         (((0, 0, 0), 3), 10 * y * z / 3 - y / 3 + 4 * z**2 - 4 * z / 3, 3),
         (((0, 0, 1), 2), y + 30 * z**3 - 79 * z**2 / 7 + 3 * z / 7, 4),
         (((0, 0, 2), 2), z**4 - 10 * z**3 / 21 + z**2 / 84 + z / 84, 5)]

    cp = critical_pair(F[0], F[1], R)
    s = s_poly(cp)

    assert f5_reduce(s, F) == (((0, 2, 0), 1), R.zero, 1)

    s = lbp(sig(Sign(s)[0], 100), Polyn(s), Num(s))
    assert f5_reduce(s, F) == s
Ejemplo n.º 8
0
def test_f5_reduce():
    # katsura3 with lex
    R, x, y, z = ring("x,y,z", QQ, lex)

    F = [(((0, 0, 0), 1), x + 2 * y + 2 * z - 1, 1),
         (((0, 0, 0), 2), 6 * y**2 + 8 * y * z - 2 * y + 6 * z**2 - 2 * z, 2),
         (((0, 0, 0), 3),
          QQ(10, 3) * y * z - QQ(1, 3) * y + 4 * z**2 - QQ(4, 3) * z, 3),
         (((0, 0, 1), 2), y + 30 * z**3 - QQ(79, 7) * z**2 + QQ(3, 7) * z, 4),
         (((0, 0, 2), 2),
          z**4 - QQ(10, 21) * z**3 + QQ(1, 84) * z**2 + QQ(1, 84) * z, 5)]

    cp = critical_pair(F[0], F[1], R)
    s = s_poly(cp)

    assert f5_reduce(s, F) == (((0, 2, 0), 1), R.zero, 1)

    s = lbp(sig(Sign(s)[0], 100), Polyn(s), Num(s))
    assert f5_reduce(s, F) == s