"""Tests for tools and arithmetics for monomials of distributed polynomials. """

from sympy.polys.monomialtools import (
    monomials, monomial_count,
    monomial_key, lex, grlex, grevlex,
    monomial_mul, monomial_div,
    monomial_gcd, monomial_lcm,
    monomial_max, monomial_min,
    monomial_divides,
    Monomial,
    InverseOrder, ProductOrder
)

from sympy.polys.polyerrors import ExactQuotientFailed

from sympy.abc import a, b, c, x, y, z
from sympy.utilities.pytest import raises

def test_monomials():
    assert sorted(monomials([], 0)) == [1]
    assert sorted(monomials([], 1)) == [1]
    assert sorted(monomials([], 2)) == [1]
    assert sorted(monomials([], 3)) == [1]

    assert sorted(monomials([x], 0)) == [1]
    assert sorted(monomials([x], 1)) == [1, x]
    assert sorted(monomials([x], 2)) == [1, x, x**2]
    assert sorted(monomials([x], 3)) == [1, x, x**2, x**3]

    assert sorted(monomials([x, y], 0)) == [1]
    assert sorted(monomials([x, y], 1)) == [1, x, y]
    assert sorted(monomials([x, y], 2)) == [1, x, y, x**2, y**2, x*y]
    assert sorted(monomials([x, y], 3)) == [1, x, y, x**2, x**3, y**2, y**3, x*y, x*y**2, y*x**2]

def test_monomial_count():
    assert monomial_count(2, 2) == 6
    assert monomial_count(2, 3) == 10

def test_lex_order():
    assert lex((1,2,3)) == (1,2,3)
    assert str(lex) == 'lex'

    assert lex((1,2,3)) == lex((1,2,3))

    assert lex((2,2,3)) > lex((1,2,3))
    assert lex((1,3,3)) > lex((1,2,3))
    assert lex((1,2,4)) > lex((1,2,3))

    assert lex((0,2,3)) < lex((1,2,3))
    assert lex((1,1,3)) < lex((1,2,3))
    assert lex((1,2,2)) < lex((1,2,3))

def test_grlex_order():
    assert grlex((1,2,3)) == (6, (1,2,3))
    assert str(grlex) == 'grlex'

    assert grlex((1,2,3)) == grlex((1,2,3))

    assert grlex((2,2,3)) > grlex((1,2,3))
    assert grlex((1,3,3)) > grlex((1,2,3))
    assert grlex((1,2,4)) > grlex((1,2,3))

    assert grlex((0,2,3)) < grlex((1,2,3))
    assert grlex((1,1,3)) < grlex((1,2,3))
    assert grlex((1,2,2)) < grlex((1,2,3))

    assert grlex((2,2,3)) > grlex((1,2,4))
    assert grlex((1,3,3)) > grlex((1,2,4))

    assert grlex((0,2,3)) < grlex((1,2,2))
    assert grlex((1,1,3)) < grlex((1,2,2))

def test_grevlex_order():
    assert grevlex((1,2,3)) == (6, (-3,-2,-1))
    assert str(grevlex) == 'grevlex'

    assert grevlex((1,2,3)) == grevlex((1,2,3))

    assert grevlex((2,2,3)) > grevlex((1,2,3))
    assert grevlex((1,3,3)) > grevlex((1,2,3))
    assert grevlex((1,2,4)) > grevlex((1,2,3))

    assert grevlex((0,2,3)) < grevlex((1,2,3))
    assert grevlex((1,1,3)) < grevlex((1,2,3))
    assert grevlex((1,2,2)) < grevlex((1,2,3))

    assert grevlex((2,2,3)) > grevlex((1,2,4))
    assert grevlex((1,3,3)) > grevlex((1,2,4))

    assert grevlex((0,2,3)) < grevlex((1,2,2))
    assert grevlex((1,1,3)) < grevlex((1,2,2))

    assert grevlex((0,1,1)) > grevlex((0,0,2))
    assert grevlex((0,3,1)) < grevlex((2,2,1))

def test_InverseOrder():
    ilex = InverseOrder(lex)
    igrlex = InverseOrder(grlex)

    assert ilex((1,2,3)) > ilex((2, 0, 3))
    assert igrlex((1, 2, 3)) < igrlex((0, 2, 3))
    assert str(ilex) == "ilex"
    assert str(igrlex) == "igrlex"

def test_ProductOrder():
    P = ProductOrder((grlex, lambda m: m[:2]), (grlex, lambda m: m[2:]))
    assert P((1, 3, 3, 4, 5)) > P((2, 1, 5, 5, 5))
    assert str(P) == "ProductOrder(grlex, grlex)"

def test_monomial_key():
    assert monomial_key() == lex

    assert monomial_key('lex') == lex
    assert monomial_key('grlex') == grlex
    assert monomial_key('grevlex') == grevlex

    raises(ValueError, "monomial_key('foo')")
    raises(ValueError, "monomial_key(1)")

def test_monomial_mul():
    assert monomial_mul((3,4,1), (1,2,0)) == (4,6,1)

def test_monomial_div():
    assert monomial_div((3,4,1), (1,2,0)) == (2,2,1)

def test_monomial_gcd():
    assert monomial_gcd((3,4,1), (1,2,0)) == (1,2,0)

def test_monomial_lcm():
    assert monomial_lcm((3,4,1), (1,2,0)) == (3,4,1)

def test_monomial_max():
    assert monomial_max((3,4,5), (0,5,1), (6,3,9)) == (6,5,9)

def test_monomial_min():
    assert monomial_min((3,4,5), (0,5,1), (6,3,9)) == (0,3,1)

def test_monomial_divides():
    assert monomial_divides((1,2,3), (4,5,6)) is True
    assert monomial_divides((1,2,3), (0,5,6)) is False

def test_Monomial():
    m = Monomial((3, 4, 1), (x, y, z))
    n = Monomial((1, 2, 0), (x, y, z))

    assert m.as_expr() == x**3*y**4*z
    assert n.as_expr() == x**1*y**2

    assert m.as_expr(a, b, c) == a**3*b**4*c
    assert n.as_expr(a, b, c) == a**1*b**2

    assert m.exponents == (3, 4, 1)
    assert m.gens == (x, y, z)

    assert n.exponents == (1, 2, 0)
    assert n.gens == (x, y, z)

    assert m == (3, 4, 1)
    assert n != (3, 4, 1)
    assert m != (1, 2, 0)
    assert n == (1, 2, 0)

    assert m[0] == m[-3] == 3
    assert m[1] == m[-2] == 4
    assert m[2] == m[-1] == 1

    assert n[0] == n[-3] == 1
    assert n[1] == n[-2] == 2
    assert n[2] == n[-1] == 0

    assert m[:2] == (3, 4)
    assert n[:2] == (1, 2)

    assert m*n == Monomial((4, 6, 1))
    assert m/n == Monomial((2, 2, 1))

    assert m*(1, 2, 0) == Monomial((4, 6, 1))
    assert m/(1, 2, 0) == Monomial((2, 2, 1))

    assert m.gcd(n) == Monomial((1, 2, 0))
    assert m.lcm(n) == Monomial((3, 4, 1))

    assert m.gcd((1, 2, 0)) == Monomial((1, 2, 0))
    assert m.lcm((1, 2, 0)) == Monomial((3, 4, 1))

    assert m**0 == Monomial((0, 0, 0))
    assert m**1 == m
    assert m**2 == Monomial((6, 8, 2))
    assert m**3 == Monomial((9,12, 3))

    raises(ExactQuotientFailed, "m/Monomial((5, 2, 0))")

[((2975, 2992), 'sympy.polys.monomialtools.InverseOrder', 'InverseOrder', (['lex'], {}), '(lex)\n', (2987, 2992), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((3006, 3025), 'sympy.polys.monomialtools.InverseOrder', 'InverseOrder', (['grlex'], {}), '(grlex)\n', (3018, 3025), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((3219, 3283), 'sympy.polys.monomialtools.ProductOrder', 'ProductOrder', (['(grlex, lambda m: m[:2])', '(grlex, lambda m: m[2:])'], {}), '((grlex, lambda m: m[:2]), (grlex, lambda m: m[2:]))\n', (3231, 3283), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((3576, 3617), 'sympy.utilities.pytest.raises', 'raises', (['ValueError', '"""monomial_key(\'foo\')"""'], {}), '(ValueError, "monomial_key(\'foo\')")\n', (3582, 3617), False, 'from sympy.utilities.pytest import raises\n'), ((3622, 3659), 'sympy.utilities.pytest.raises', 'raises', (['ValueError', '"""monomial_key(1)"""'], {}), "(ValueError, 'monomial_key(1)')\n", (3628, 3659), False, 'from sympy.utilities.pytest import raises\n'), ((4321, 4351), 'sympy.polys.monomialtools.Monomial', 'Monomial', (['(3, 4, 1)', '(x, y, z)'], {}), '((3, 4, 1), (x, y, z))\n', (4329, 4351), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((4360, 4390), 'sympy.polys.monomialtools.Monomial', 'Monomial', (['(1, 2, 0)', '(x, y, z)'], {}), '((1, 2, 0), (x, y, z))\n', (4368, 4390), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((5537, 5589), 'sympy.utilities.pytest.raises', 'raises', (['ExactQuotientFailed', '"""m/Monomial((5, 2, 0))"""'], {}), "(ExactQuotientFailed, 'm/Monomial((5, 2, 0))')\n", (5543, 5589), False, 'from sympy.utilities.pytest import raises\n'), ((1202, 1222), 'sympy.polys.monomialtools.monomial_count', 'monomial_count', (['(2)', '(2)'], {}), '(2, 2)\n', (1216, 1222), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1239, 1259), 'sympy.polys.monomialtools.monomial_count', 'monomial_count', (['(2)', '(3)'], {}), '(2, 3)\n', (1253, 1259), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1300, 1314), 'sympy.polys.monomialtools.lex', 'lex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (1303, 1314), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1365, 1379), 'sympy.polys.monomialtools.lex', 'lex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (1368, 1379), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1381, 1395), 'sympy.polys.monomialtools.lex', 'lex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (1384, 1395), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1406, 1420), 'sympy.polys.monomialtools.lex', 'lex', (['(2, 2, 3)'], {}), '((2, 2, 3))\n', (1409, 1420), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1421, 1435), 'sympy.polys.monomialtools.lex', 'lex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (1424, 1435), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1445, 1459), 'sympy.polys.monomialtools.lex', 'lex', (['(1, 3, 3)'], {}), '((1, 3, 3))\n', (1448, 1459), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1460, 1474), 'sympy.polys.monomialtools.lex', 'lex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (1463, 1474), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1484, 1498), 'sympy.polys.monomialtools.lex', 'lex', (['(1, 2, 4)'], {}), '((1, 2, 4))\n', (1487, 1498), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1499, 1513), 'sympy.polys.monomialtools.lex', 'lex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (1502, 1513), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1524, 1538), 'sympy.polys.monomialtools.lex', 'lex', (['(0, 2, 3)'], {}), '((0, 2, 3))\n', (1527, 1538), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1539, 1553), 'sympy.polys.monomialtools.lex', 'lex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (1542, 1553), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1563, 1577), 'sympy.polys.monomialtools.lex', 'lex', (['(1, 1, 3)'], {}), '((1, 1, 3))\n', (1566, 1577), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1578, 1592), 'sympy.polys.monomialtools.lex', 'lex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (1581, 1592), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1602, 1616), 'sympy.polys.monomialtools.lex', 'lex', (['(1, 2, 2)'], {}), '((1, 2, 2))\n', (1605, 1616), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1617, 1631), 'sympy.polys.monomialtools.lex', 'lex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (1620, 1631), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1666, 1682), 'sympy.polys.monomialtools.grlex', 'grlex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (1671, 1682), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1742, 1758), 'sympy.polys.monomialtools.grlex', 'grlex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (1747, 1758), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1760, 1776), 'sympy.polys.monomialtools.grlex', 'grlex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (1765, 1776), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1787, 1803), 'sympy.polys.monomialtools.grlex', 'grlex', (['(2, 2, 3)'], {}), '((2, 2, 3))\n', (1792, 1803), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1804, 1820), 'sympy.polys.monomialtools.grlex', 'grlex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (1809, 1820), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1830, 1846), 'sympy.polys.monomialtools.grlex', 'grlex', (['(1, 3, 3)'], {}), '((1, 3, 3))\n', (1835, 1846), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1847, 1863), 'sympy.polys.monomialtools.grlex', 'grlex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (1852, 1863), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1873, 1889), 'sympy.polys.monomialtools.grlex', 'grlex', (['(1, 2, 4)'], {}), '((1, 2, 4))\n', (1878, 1889), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1890, 1906), 'sympy.polys.monomialtools.grlex', 'grlex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (1895, 1906), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1917, 1933), 'sympy.polys.monomialtools.grlex', 'grlex', (['(0, 2, 3)'], {}), '((0, 2, 3))\n', (1922, 1933), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1934, 1950), 'sympy.polys.monomialtools.grlex', 'grlex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (1939, 1950), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1960, 1976), 'sympy.polys.monomialtools.grlex', 'grlex', (['(1, 1, 3)'], {}), '((1, 1, 3))\n', (1965, 1976), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1977, 1993), 'sympy.polys.monomialtools.grlex', 'grlex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (1982, 1993), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2003, 2019), 'sympy.polys.monomialtools.grlex', 'grlex', (['(1, 2, 2)'], {}), '((1, 2, 2))\n', (2008, 2019), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2020, 2036), 'sympy.polys.monomialtools.grlex', 'grlex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (2025, 2036), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2047, 2063), 'sympy.polys.monomialtools.grlex', 'grlex', (['(2, 2, 3)'], {}), '((2, 2, 3))\n', (2052, 2063), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2064, 2080), 'sympy.polys.monomialtools.grlex', 'grlex', (['(1, 2, 4)'], {}), '((1, 2, 4))\n', (2069, 2080), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2090, 2106), 'sympy.polys.monomialtools.grlex', 'grlex', (['(1, 3, 3)'], {}), '((1, 3, 3))\n', (2095, 2106), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2107, 2123), 'sympy.polys.monomialtools.grlex', 'grlex', (['(1, 2, 4)'], {}), '((1, 2, 4))\n', (2112, 2123), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2134, 2150), 'sympy.polys.monomialtools.grlex', 'grlex', (['(0, 2, 3)'], {}), '((0, 2, 3))\n', (2139, 2150), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2151, 2167), 'sympy.polys.monomialtools.grlex', 'grlex', (['(1, 2, 2)'], {}), '((1, 2, 2))\n', (2156, 2167), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2177, 2193), 'sympy.polys.monomialtools.grlex', 'grlex', (['(1, 1, 3)'], {}), '((1, 1, 3))\n', (2182, 2193), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2194, 2210), 'sympy.polys.monomialtools.grlex', 'grlex', (['(1, 2, 2)'], {}), '((1, 2, 2))\n', (2199, 2210), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2247, 2265), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (2254, 2265), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2332, 2350), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (2339, 2350), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2352, 2370), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (2359, 2370), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2381, 2399), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(2, 2, 3)'], {}), '((2, 2, 3))\n', (2388, 2399), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2400, 2418), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (2407, 2418), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2428, 2446), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(1, 3, 3)'], {}), '((1, 3, 3))\n', (2435, 2446), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2447, 2465), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (2454, 2465), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2475, 2493), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(1, 2, 4)'], {}), '((1, 2, 4))\n', (2482, 2493), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2494, 2512), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (2501, 2512), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2523, 2541), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(0, 2, 3)'], {}), '((0, 2, 3))\n', (2530, 2541), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2542, 2560), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (2549, 2560), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2570, 2588), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(1, 1, 3)'], {}), '((1, 1, 3))\n', (2577, 2588), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2589, 2607), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (2596, 2607), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2617, 2635), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(1, 2, 2)'], {}), '((1, 2, 2))\n', (2624, 2635), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2636, 2654), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(1, 2, 3)'], {}), '((1, 2, 3))\n', (2643, 2654), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2665, 2683), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(2, 2, 3)'], {}), '((2, 2, 3))\n', (2672, 2683), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2684, 2702), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(1, 2, 4)'], {}), '((1, 2, 4))\n', (2691, 2702), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2712, 2730), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(1, 3, 3)'], {}), '((1, 3, 3))\n', (2719, 2730), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2731, 2749), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(1, 2, 4)'], {}), '((1, 2, 4))\n', (2738, 2749), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2760, 2778), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(0, 2, 3)'], {}), '((0, 2, 3))\n', (2767, 2778), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2779, 2797), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(1, 2, 2)'], {}), '((1, 2, 2))\n', (2786, 2797), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2807, 2825), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(1, 1, 3)'], {}), '((1, 1, 3))\n', (2814, 2825), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2826, 2844), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(1, 2, 2)'], {}), '((1, 2, 2))\n', (2833, 2844), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2855, 2873), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(0, 1, 1)'], {}), '((0, 1, 1))\n', (2862, 2873), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2874, 2892), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(0, 0, 2)'], {}), '((0, 0, 2))\n', (2881, 2892), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2902, 2920), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(0, 3, 1)'], {}), '((0, 3, 1))\n', (2909, 2920), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((2921, 2939), 'sympy.polys.monomialtools.grevlex', 'grevlex', (['(2, 2, 1)'], {}), '((2, 2, 1))\n', (2928, 2939), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((3422, 3436), 'sympy.polys.monomialtools.monomial_key', 'monomial_key', ([], {}), '()\n', (3434, 3436), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((3456, 3475), 'sympy.polys.monomialtools.monomial_key', 'monomial_key', (['"""lex"""'], {}), "('lex')\n", (3468, 3475), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((3494, 3515), 'sympy.polys.monomialtools.monomial_key', 'monomial_key', (['"""grlex"""'], {}), "('grlex')\n", (3506, 3515), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((3536, 3559), 'sympy.polys.monomialtools.monomial_key', 'monomial_key', (['"""grevlex"""'], {}), "('grevlex')\n", (3548, 3559), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((3697, 3731), 'sympy.polys.monomialtools.monomial_mul', 'monomial_mul', (['(3, 4, 1)', '(1, 2, 0)'], {}), '((3, 4, 1), (1, 2, 0))\n', (3709, 3731), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((3776, 3810), 'sympy.polys.monomialtools.monomial_div', 'monomial_div', (['(3, 4, 1)', '(1, 2, 0)'], {}), '((3, 4, 1), (1, 2, 0))\n', (3788, 3810), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((3855, 3889), 'sympy.polys.monomialtools.monomial_gcd', 'monomial_gcd', (['(3, 4, 1)', '(1, 2, 0)'], {}), '((3, 4, 1), (1, 2, 0))\n', (3867, 3889), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((3934, 3968), 'sympy.polys.monomialtools.monomial_lcm', 'monomial_lcm', (['(3, 4, 1)', '(1, 2, 0)'], {}), '((3, 4, 1), (1, 2, 0))\n', (3946, 3968), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((4013, 4058), 'sympy.polys.monomialtools.monomial_max', 'monomial_max', (['(3, 4, 5)', '(0, 5, 1)', '(6, 3, 9)'], {}), '((3, 4, 5), (0, 5, 1), (6, 3, 9))\n', (4025, 4058), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((4101, 4146), 'sympy.polys.monomialtools.monomial_min', 'monomial_min', (['(3, 4, 5)', '(0, 5, 1)', '(6, 3, 9)'], {}), '((3, 4, 5), (0, 5, 1), (6, 3, 9))\n', (4113, 4146), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((4193, 4231), 'sympy.polys.monomialtools.monomial_divides', 'monomial_divides', (['(1, 2, 3)', '(4, 5, 6)'], {}), '((1, 2, 3), (4, 5, 6))\n', (4209, 4231), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((4247, 4285), 'sympy.polys.monomialtools.monomial_divides', 'monomial_divides', (['(1, 2, 3)', '(0, 5, 6)'], {}), '((1, 2, 3), (0, 5, 6))\n', (4263, 4285), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((5052, 5071), 'sympy.polys.monomialtools.Monomial', 'Monomial', (['(4, 6, 1)'], {}), '((4, 6, 1))\n', (5060, 5071), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((5090, 5109), 'sympy.polys.monomialtools.Monomial', 'Monomial', (['(2, 2, 1)'], {}), '((2, 2, 1))\n', (5098, 5109), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((5137, 5156), 'sympy.polys.monomialtools.Monomial', 'Monomial', (['(4, 6, 1)'], {}), '((4, 6, 1))\n', (5145, 5156), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((5183, 5202), 'sympy.polys.monomialtools.Monomial', 'Monomial', (['(2, 2, 1)'], {}), '((2, 2, 1))\n', (5191, 5202), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((5227, 5246), 'sympy.polys.monomialtools.Monomial', 'Monomial', (['(1, 2, 0)'], {}), '((1, 2, 0))\n', (5235, 5246), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((5270, 5289), 'sympy.polys.monomialtools.Monomial', 'Monomial', (['(3, 4, 1)'], {}), '((3, 4, 1))\n', (5278, 5289), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((5322, 5341), 'sympy.polys.monomialtools.Monomial', 'Monomial', (['(1, 2, 0)'], {}), '((1, 2, 0))\n', (5330, 5341), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((5373, 5392), 'sympy.polys.monomialtools.Monomial', 'Monomial', (['(3, 4, 1)'], {}), '((3, 4, 1))\n', (5381, 5392), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((5413, 5432), 'sympy.polys.monomialtools.Monomial', 'Monomial', (['(0, 0, 0)'], {}), '((0, 0, 0))\n', (5421, 5432), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((5473, 5492), 'sympy.polys.monomialtools.Monomial', 'Monomial', (['(6, 8, 2)'], {}), '((6, 8, 2))\n', (5481, 5492), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((5512, 5532), 'sympy.polys.monomialtools.Monomial', 'Monomial', (['(9, 12, 3)'], {}), '((9, 12, 3))\n', (5520, 5532), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((536, 552), 'sympy.polys.monomialtools.monomials', 'monomials', (['[]', '(0)'], {}), '([], 0)\n', (545, 552), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((579, 595), 'sympy.polys.monomialtools.monomials', 'monomials', (['[]', '(1)'], {}), '([], 1)\n', (588, 595), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((622, 638), 'sympy.polys.monomialtools.monomials', 'monomials', (['[]', '(2)'], {}), '([], 2)\n', (631, 638), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((665, 681), 'sympy.polys.monomialtools.monomials', 'monomials', (['[]', '(3)'], {}), '([], 3)\n', (674, 681), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((709, 726), 'sympy.polys.monomialtools.monomials', 'monomials', (['[x]', '(0)'], {}), '([x], 0)\n', (718, 726), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((753, 770), 'sympy.polys.monomialtools.monomials', 'monomials', (['[x]', '(1)'], {}), '([x], 1)\n', (762, 770), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((800, 817), 'sympy.polys.monomialtools.monomials', 'monomials', (['[x]', '(2)'], {}), '([x], 2)\n', (809, 817), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((853, 870), 'sympy.polys.monomialtools.monomials', 'monomials', (['[x]', '(3)'], {}), '([x], 3)\n', (862, 870), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((913, 933), 'sympy.polys.monomialtools.monomials', 'monomials', (['[x, y]', '(0)'], {}), '([x, y], 0)\n', (922, 933), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((960, 980), 'sympy.polys.monomialtools.monomials', 'monomials', (['[x, y]', '(1)'], {}), '([x, y], 1)\n', (969, 980), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1013, 1033), 'sympy.polys.monomialtools.monomials', 'monomials', (['[x, y]', '(2)'], {}), '([x, y], 2)\n', (1022, 1033), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n'), ((1083, 1103), 'sympy.polys.monomialtools.monomials', 'monomials', (['[x, y]', '(3)'], {}), '([x, y], 3)\n', (1092, 1103), False, 'from sympy.polys.monomialtools import monomials, monomial_count, monomial_key, lex, grlex, grevlex, monomial_mul, monomial_div, monomial_gcd, monomial_lcm, monomial_max, monomial_min, monomial_divides, Monomial, InverseOrder, ProductOrder\n')]