"""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))")

[((97, 11, 97, 28), 'sympy.polys.monomialtools.InverseOrder', 'InverseOrder', ({(97, 24, 97, 27): 'lex'}, {}), '(lex)', 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'), ((98, 13, 98, 32), 'sympy.polys.monomialtools.InverseOrder', 'InverseOrder', ({(98, 26, 98, 31): 'grlex'}, {}), '(grlex)', 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'), ((106, 8, 106, 72), 'sympy.polys.monomialtools.ProductOrder', 'ProductOrder', ({(106, 21, 106, 45): '(grlex, lambda m: m[:2])', (106, 47, 106, 71): '(grlex, lambda m: m[2:])'}, {}), '((grlex, lambda m: m[:2]), (grlex, lambda m: m[2:]))', 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'), ((117, 4, 117, 45), 'sympy.utilities.pytest.raises', 'raises', ({(117, 11, 117, 21): 'ValueError', (117, 23, 117, 44): '"""monomial_key(\'foo\')"""'}, {}), '(ValueError, "monomial_key(\'foo\')")', False, 'from sympy.utilities.pytest import raises\n'), ((118, 4, 118, 41), 'sympy.utilities.pytest.raises', 'raises', ({(118, 11, 118, 21): 'ValueError', (118, 23, 118, 40): '"""monomial_key(1)"""'}, {}), "(ValueError, 'monomial_key(1)')", False, 'from sympy.utilities.pytest import raises\n'), ((143, 8, 143, 38), 'sympy.polys.monomialtools.Monomial', 'Monomial', ({(143, 17, 143, 26): '(3, 4, 1)', (143, 28, 143, 37): '(x, y, z)'}, {}), '((3, 4, 1), (x, y, z))', 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'), ((144, 8, 144, 38), 'sympy.polys.monomialtools.Monomial', 'Monomial', ({(144, 17, 144, 26): '(1, 2, 0)', (144, 28, 144, 37): '(x, y, z)'}, {}), '((1, 2, 0), (x, y, z))', 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'), ((191, 4, 191, 56), 'sympy.utilities.pytest.raises', 'raises', ({(191, 11, 191, 30): 'ExactQuotientFailed', (191, 32, 191, 55): '"""m/Monomial((5, 2, 0))"""'}, {}), "(ExactQuotientFailed, 'm/Monomial((5, 2, 0))')", False, 'from sympy.utilities.pytest import raises\n'), ((36, 11, 36, 31), 'sympy.polys.monomialtools.monomial_count', 'monomial_count', ({(36, 26, 36, 27): '(2)', (36, 29, 36, 30): '(2)'}, {}), '(2, 2)', 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'), ((37, 11, 37, 31), 'sympy.polys.monomialtools.monomial_count', 'monomial_count', ({(37, 26, 37, 27): '(2)', (37, 29, 37, 30): '(3)'}, {}), '(2, 3)', 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'), ((40, 11, 40, 23), 'sympy.polys.monomialtools.lex', 'lex', ({(40, 15, 40, 22): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((43, 11, 43, 23), 'sympy.polys.monomialtools.lex', 'lex', ({(43, 15, 43, 22): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((43, 27, 43, 39), 'sympy.polys.monomialtools.lex', 'lex', ({(43, 31, 43, 38): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((45, 11, 45, 23), 'sympy.polys.monomialtools.lex', 'lex', ({(45, 15, 45, 22): '(2, 2, 3)'}, {}), '((2, 2, 3))', 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'), ((45, 26, 45, 38), 'sympy.polys.monomialtools.lex', 'lex', ({(45, 30, 45, 37): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((46, 11, 46, 23), 'sympy.polys.monomialtools.lex', 'lex', ({(46, 15, 46, 22): '(1, 3, 3)'}, {}), '((1, 3, 3))', 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'), ((46, 26, 46, 38), 'sympy.polys.monomialtools.lex', 'lex', ({(46, 30, 46, 37): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((47, 11, 47, 23), 'sympy.polys.monomialtools.lex', 'lex', ({(47, 15, 47, 22): '(1, 2, 4)'}, {}), '((1, 2, 4))', 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'), ((47, 26, 47, 38), 'sympy.polys.monomialtools.lex', 'lex', ({(47, 30, 47, 37): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((49, 11, 49, 23), 'sympy.polys.monomialtools.lex', 'lex', ({(49, 15, 49, 22): '(0, 2, 3)'}, {}), '((0, 2, 3))', 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'), ((49, 26, 49, 38), 'sympy.polys.monomialtools.lex', 'lex', ({(49, 30, 49, 37): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((50, 11, 50, 23), 'sympy.polys.monomialtools.lex', 'lex', ({(50, 15, 50, 22): '(1, 1, 3)'}, {}), '((1, 1, 3))', 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'), ((50, 26, 50, 38), 'sympy.polys.monomialtools.lex', 'lex', ({(50, 30, 50, 37): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((51, 11, 51, 23), 'sympy.polys.monomialtools.lex', 'lex', ({(51, 15, 51, 22): '(1, 2, 2)'}, {}), '((1, 2, 2))', 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'), ((51, 26, 51, 38), 'sympy.polys.monomialtools.lex', 'lex', ({(51, 30, 51, 37): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((54, 11, 54, 25), 'sympy.polys.monomialtools.grlex', 'grlex', ({(54, 17, 54, 24): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((57, 11, 57, 25), 'sympy.polys.monomialtools.grlex', 'grlex', ({(57, 17, 57, 24): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((57, 29, 57, 43), 'sympy.polys.monomialtools.grlex', 'grlex', ({(57, 35, 57, 42): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((59, 11, 59, 25), 'sympy.polys.monomialtools.grlex', 'grlex', ({(59, 17, 59, 24): '(2, 2, 3)'}, {}), '((2, 2, 3))', 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'), ((59, 28, 59, 42), 'sympy.polys.monomialtools.grlex', 'grlex', ({(59, 34, 59, 41): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((60, 11, 60, 25), 'sympy.polys.monomialtools.grlex', 'grlex', ({(60, 17, 60, 24): '(1, 3, 3)'}, {}), '((1, 3, 3))', 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'), ((60, 28, 60, 42), 'sympy.polys.monomialtools.grlex', 'grlex', ({(60, 34, 60, 41): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((61, 11, 61, 25), 'sympy.polys.monomialtools.grlex', 'grlex', ({(61, 17, 61, 24): '(1, 2, 4)'}, {}), '((1, 2, 4))', 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'), ((61, 28, 61, 42), 'sympy.polys.monomialtools.grlex', 'grlex', ({(61, 34, 61, 41): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((63, 11, 63, 25), 'sympy.polys.monomialtools.grlex', 'grlex', ({(63, 17, 63, 24): '(0, 2, 3)'}, {}), '((0, 2, 3))', 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'), ((63, 28, 63, 42), 'sympy.polys.monomialtools.grlex', 'grlex', ({(63, 34, 63, 41): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((64, 11, 64, 25), 'sympy.polys.monomialtools.grlex', 'grlex', ({(64, 17, 64, 24): '(1, 1, 3)'}, {}), '((1, 1, 3))', 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'), ((64, 28, 64, 42), 'sympy.polys.monomialtools.grlex', 'grlex', ({(64, 34, 64, 41): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((65, 11, 65, 25), 'sympy.polys.monomialtools.grlex', 'grlex', ({(65, 17, 65, 24): '(1, 2, 2)'}, {}), '((1, 2, 2))', 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'), ((65, 28, 65, 42), 'sympy.polys.monomialtools.grlex', 'grlex', ({(65, 34, 65, 41): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((67, 11, 67, 25), 'sympy.polys.monomialtools.grlex', 'grlex', ({(67, 17, 67, 24): '(2, 2, 3)'}, {}), '((2, 2, 3))', 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'), ((67, 28, 67, 42), 'sympy.polys.monomialtools.grlex', 'grlex', ({(67, 34, 67, 41): '(1, 2, 4)'}, {}), '((1, 2, 4))', 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'), ((68, 11, 68, 25), 'sympy.polys.monomialtools.grlex', 'grlex', ({(68, 17, 68, 24): '(1, 3, 3)'}, {}), '((1, 3, 3))', 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'), ((68, 28, 68, 42), 'sympy.polys.monomialtools.grlex', 'grlex', ({(68, 34, 68, 41): '(1, 2, 4)'}, {}), '((1, 2, 4))', 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'), ((70, 11, 70, 25), 'sympy.polys.monomialtools.grlex', 'grlex', ({(70, 17, 70, 24): '(0, 2, 3)'}, {}), '((0, 2, 3))', 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'), ((70, 28, 70, 42), 'sympy.polys.monomialtools.grlex', 'grlex', ({(70, 34, 70, 41): '(1, 2, 2)'}, {}), '((1, 2, 2))', 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'), ((71, 11, 71, 25), 'sympy.polys.monomialtools.grlex', 'grlex', ({(71, 17, 71, 24): '(1, 1, 3)'}, {}), '((1, 1, 3))', 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'), ((71, 28, 71, 42), 'sympy.polys.monomialtools.grlex', 'grlex', ({(71, 34, 71, 41): '(1, 2, 2)'}, {}), '((1, 2, 2))', 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'), ((74, 11, 74, 27), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(74, 19, 74, 26): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((77, 11, 77, 27), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(77, 19, 77, 26): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((77, 31, 77, 47), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(77, 39, 77, 46): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((79, 11, 79, 27), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(79, 19, 79, 26): '(2, 2, 3)'}, {}), '((2, 2, 3))', 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'), ((79, 30, 79, 46), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(79, 38, 79, 45): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((80, 11, 80, 27), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(80, 19, 80, 26): '(1, 3, 3)'}, {}), '((1, 3, 3))', 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'), ((80, 30, 80, 46), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(80, 38, 80, 45): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((81, 11, 81, 27), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(81, 19, 81, 26): '(1, 2, 4)'}, {}), '((1, 2, 4))', 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'), ((81, 30, 81, 46), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(81, 38, 81, 45): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((83, 11, 83, 27), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(83, 19, 83, 26): '(0, 2, 3)'}, {}), '((0, 2, 3))', 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'), ((83, 30, 83, 46), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(83, 38, 83, 45): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((84, 11, 84, 27), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(84, 19, 84, 26): '(1, 1, 3)'}, {}), '((1, 1, 3))', 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'), ((84, 30, 84, 46), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(84, 38, 84, 45): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((85, 11, 85, 27), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(85, 19, 85, 26): '(1, 2, 2)'}, {}), '((1, 2, 2))', 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'), ((85, 30, 85, 46), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(85, 38, 85, 45): '(1, 2, 3)'}, {}), '((1, 2, 3))', 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'), ((87, 11, 87, 27), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(87, 19, 87, 26): '(2, 2, 3)'}, {}), '((2, 2, 3))', 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'), ((87, 30, 87, 46), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(87, 38, 87, 45): '(1, 2, 4)'}, {}), '((1, 2, 4))', 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'), ((88, 11, 88, 27), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(88, 19, 88, 26): '(1, 3, 3)'}, {}), '((1, 3, 3))', 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'), ((88, 30, 88, 46), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(88, 38, 88, 45): '(1, 2, 4)'}, {}), '((1, 2, 4))', 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'), ((90, 11, 90, 27), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(90, 19, 90, 26): '(0, 2, 3)'}, {}), '((0, 2, 3))', 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'), ((90, 30, 90, 46), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(90, 38, 90, 45): '(1, 2, 2)'}, {}), '((1, 2, 2))', 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'), ((91, 11, 91, 27), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(91, 19, 91, 26): '(1, 1, 3)'}, {}), '((1, 1, 3))', 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'), ((91, 30, 91, 46), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(91, 38, 91, 45): '(1, 2, 2)'}, {}), '((1, 2, 2))', 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'), ((93, 11, 93, 27), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(93, 19, 93, 26): '(0, 1, 1)'}, {}), '((0, 1, 1))', 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'), ((93, 30, 93, 46), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(93, 38, 93, 45): '(0, 0, 2)'}, {}), '((0, 0, 2))', 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'), ((94, 11, 94, 27), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(94, 19, 94, 26): '(0, 3, 1)'}, {}), '((0, 3, 1))', 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'), ((94, 30, 94, 46), 'sympy.polys.monomialtools.grevlex', 'grevlex', ({(94, 38, 94, 45): '(2, 2, 1)'}, {}), '((2, 2, 1))', 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'), ((111, 11, 111, 25), 'sympy.polys.monomialtools.monomial_key', 'monomial_key', ({}, {}), '()', 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'), ((113, 11, 113, 30), 'sympy.polys.monomialtools.monomial_key', 'monomial_key', ({(113, 24, 113, 29): '"""lex"""'}, {}), "('lex')", 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'), ((114, 11, 114, 32), 'sympy.polys.monomialtools.monomial_key', 'monomial_key', ({(114, 24, 114, 31): '"""grlex"""'}, {}), "('grlex')", 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'), ((115, 11, 115, 34), 'sympy.polys.monomialtools.monomial_key', 'monomial_key', ({(115, 24, 115, 33): '"""grevlex"""'}, {}), "('grevlex')", 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'), ((121, 11, 121, 41), 'sympy.polys.monomialtools.monomial_mul', 'monomial_mul', ({(121, 24, 121, 31): '(3, 4, 1)', (121, 33, 121, 40): '(1, 2, 0)'}, {}), '((3, 4, 1), (1, 2, 0))', 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'), ((124, 11, 124, 41), 'sympy.polys.monomialtools.monomial_div', 'monomial_div', ({(124, 24, 124, 31): '(3, 4, 1)', (124, 33, 124, 40): '(1, 2, 0)'}, {}), '((3, 4, 1), (1, 2, 0))', 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'), ((127, 11, 127, 41), 'sympy.polys.monomialtools.monomial_gcd', 'monomial_gcd', ({(127, 24, 127, 31): '(3, 4, 1)', (127, 33, 127, 40): '(1, 2, 0)'}, {}), '((3, 4, 1), (1, 2, 0))', 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'), ((130, 11, 130, 41), 'sympy.polys.monomialtools.monomial_lcm', 'monomial_lcm', ({(130, 24, 130, 31): '(3, 4, 1)', (130, 33, 130, 40): '(1, 2, 0)'}, {}), '((3, 4, 1), (1, 2, 0))', 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'), ((133, 11, 133, 50), 'sympy.polys.monomialtools.monomial_max', 'monomial_max', ({(133, 24, 133, 31): '(3, 4, 5)', (133, 33, 133, 40): '(0, 5, 1)', (133, 42, 133, 49): '(6, 3, 9)'}, {}), '((3, 4, 5), (0, 5, 1), (6, 3, 9))', 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'), ((136, 11, 136, 50), 'sympy.polys.monomialtools.monomial_min', 'monomial_min', ({(136, 24, 136, 31): '(3, 4, 5)', (136, 33, 136, 40): '(0, 5, 1)', (136, 42, 136, 49): '(6, 3, 9)'}, {}), '((3, 4, 5), (0, 5, 1), (6, 3, 9))', 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'), ((139, 11, 139, 45), 'sympy.polys.monomialtools.monomial_divides', 'monomial_divides', ({(139, 28, 139, 35): '(1, 2, 3)', (139, 37, 139, 44): '(4, 5, 6)'}, {}), '((1, 2, 3), (4, 5, 6))', 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'), ((140, 11, 140, 45), 'sympy.polys.monomialtools.monomial_divides', 'monomial_divides', ({(140, 28, 140, 35): '(1, 2, 3)', (140, 37, 140, 44): '(0, 5, 6)'}, {}), '((1, 2, 3), (0, 5, 6))', 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'), ((174, 18, 174, 37), 'sympy.polys.monomialtools.Monomial', 'Monomial', ({(174, 27, 174, 36): '(4, 6, 1)'}, {}), '((4, 6, 1))', 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'), ((175, 18, 175, 37), 'sympy.polys.monomialtools.Monomial', 'Monomial', ({(175, 27, 175, 36): '(2, 2, 1)'}, {}), '((2, 2, 1))', 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'), ((177, 26, 177, 45), 'sympy.polys.monomialtools.Monomial', 'Monomial', ({(177, 35, 177, 44): '(4, 6, 1)'}, {}), '((4, 6, 1))', 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'), ((178, 26, 178, 45), 'sympy.polys.monomialtools.Monomial', 'Monomial', ({(178, 35, 178, 44): '(2, 2, 1)'}, {}), '((2, 2, 1))', 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'), ((180, 23, 180, 42), 'sympy.polys.monomialtools.Monomial', 'Monomial', ({(180, 32, 180, 41): '(1, 2, 0)'}, {}), '((1, 2, 0))', 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'), ((181, 23, 181, 42), 'sympy.polys.monomialtools.Monomial', 'Monomial', ({(181, 32, 181, 41): '(3, 4, 1)'}, {}), '((3, 4, 1))', 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'), ((183, 31, 183, 50), 'sympy.polys.monomialtools.Monomial', 'Monomial', ({(183, 40, 183, 49): '(1, 2, 0)'}, {}), '((1, 2, 0))', 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'), ((184, 31, 184, 50), 'sympy.polys.monomialtools.Monomial', 'Monomial', ({(184, 40, 184, 49): '(3, 4, 1)'}, {}), '((3, 4, 1))', 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'), ((186, 19, 186, 38), 'sympy.polys.monomialtools.Monomial', 'Monomial', ({(186, 28, 186, 37): '(0, 0, 0)'}, {}), '((0, 0, 0))', 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'), ((188, 19, 188, 38), 'sympy.polys.monomialtools.Monomial', 'Monomial', ({(188, 28, 188, 37): '(6, 8, 2)'}, {}), '((6, 8, 2))', 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'), ((189, 19, 189, 38), 'sympy.polys.monomialtools.Monomial', 'Monomial', ({(189, 28, 189, 37): '(9, 12, 3)'}, {}), '((9, 12, 3))', 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'), ((20, 18, 20, 34), 'sympy.polys.monomialtools.monomials', 'monomials', ({(20, 28, 20, 30): '[]', (20, 32, 20, 33): '(0)'}, {}), '([], 0)', 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'), ((21, 18, 21, 34), 'sympy.polys.monomialtools.monomials', 'monomials', ({(21, 28, 21, 30): '[]', (21, 32, 21, 33): '(1)'}, {}), '([], 1)', 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'), ((22, 18, 22, 34), 'sympy.polys.monomialtools.monomials', 'monomials', ({(22, 28, 22, 30): '[]', (22, 32, 22, 33): '(2)'}, {}), '([], 2)', 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'), ((23, 18, 23, 34), 'sympy.polys.monomialtools.monomials', 'monomials', ({(23, 28, 23, 30): '[]', (23, 32, 23, 33): '(3)'}, {}), '([], 3)', 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'), ((25, 18, 25, 35), 'sympy.polys.monomialtools.monomials', 'monomials', ({(25, 28, 25, 31): '[x]', (25, 33, 25, 34): '(0)'}, {}), '([x], 0)', 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'), ((26, 18, 26, 35), 'sympy.polys.monomialtools.monomials', 'monomials', ({(26, 28, 26, 31): '[x]', (26, 33, 26, 34): '(1)'}, {}), '([x], 1)', 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'), ((27, 18, 27, 35), 'sympy.polys.monomialtools.monomials', 'monomials', ({(27, 28, 27, 31): '[x]', (27, 33, 27, 34): '(2)'}, {}), '([x], 2)', 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'), ((28, 18, 28, 35), 'sympy.polys.monomialtools.monomials', 'monomials', ({(28, 28, 28, 31): '[x]', (28, 33, 28, 34): '(3)'}, {}), '([x], 3)', 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'), ((30, 18, 30, 38), 'sympy.polys.monomialtools.monomials', 'monomials', ({(30, 28, 30, 34): '[x, y]', (30, 36, 30, 37): '(0)'}, {}), '([x, y], 0)', 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'), ((31, 18, 31, 38), 'sympy.polys.monomialtools.monomials', 'monomials', ({(31, 28, 31, 34): '[x, y]', (31, 36, 31, 37): '(1)'}, {}), '([x, y], 1)', 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'), ((32, 18, 32, 38), 'sympy.polys.monomialtools.monomials', 'monomials', ({(32, 28, 32, 34): '[x, y]', (32, 36, 32, 37): '(2)'}, {}), '([x, y], 2)', 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'), ((33, 18, 33, 38), 'sympy.polys.monomialtools.monomials', 'monomials', ({(33, 28, 33, 34): '[x, y]', (33, 36, 33, 37): '(3)'}, {}), '([x, y], 3)', 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')]