1 | initial version |

There is a dedicated method for that for polynomials other than boolean in Sage.

Sadly it is not available for boolean polynomials, for a silly reason:
they lack a `dict`

method that would return a dictionary whose
keys would be monomials and values would be coefficients.

I opened Sage Trac ticket 31198 for that.

The workaround is to write a small function to achieve that.

```
def as_poly(p, z):
r"""
Print `p` as a polynomial in `z`
"""
a = p / z
c = p - a*z
print(f'({a})*{z} + ({c})')
```

Usage:

```
sage: P = BooleanPolynomialRing(8, 'x')
sage: x = P.gens()
sage: p = x[1] * x[2] + x[1] * x[3] * x[5] + x[3] + x[7] * x[2]
sage: p
x1*x2 + x1*x3*x5 + x2*x7 + x3
sage: as_poly(p, x[1])
(x2 + x3*x5)*x1 + (x2*x7 + x3)
```

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.