Trac #17501: Add is_unique_factorization_domain to IntegerMod rings and Polynomial Rings

Right now, there is no `Zmod(k).is_unique_factorization_domain()`
method, while one can test these rings for being field, integral domain,
... The same holds for polynomial rings.

This is motivated by ticket #15790 in which
`is_unique_factorization_domain()' is used.

URL: http://trac.sagemath.org/17501
Reported by: bruno
Ticket author(s): Bruno Grenet
Reviewer(s): Travis Scrimshaw
Trac #7401: Derivative at a point is not translated into Maxima

Alex reported [http://groups.google.cz/group/sage-
support/browse_thread/thread/81b96a7731600ec2] this bug (see the link
for short discussion related to the problem)
{{{
Hi all:

I found some strange behavior in solve that's related to function
composition.  Check out this short example.

----------------------------------------------------------------------
| Sage Version 4.2, Release Date: 2009-10-24                         |
| Type notebook() for the GUI, and license() for information.        |
----------------------------------------------------------------------
sage: var('x,t')
(x, t)
sage: f= function('f',x)
sage: e= {x:exp(t)}
sage: ft= f.subs(e); ft
f(e^t)
sage: Ft = t^2 + ft^2; Ft
t^2 + f(e^t)^2
sage: a= diff(Ft,t); a
2*e^t*f(e^t)*D[0](f)(e^t) + 2*t
sage: solve(a==0,diff(f,x).subs(e))
[D[0](f)(t) == -t*e^(-t)/f(e^t)]

Did you spot the strangeness?  Somehow diff(f,x).subs(e) became diff
(f,x).subs({x:t}) after solving.  Does anybody know how to fix this?

Alex

}}}

URL: http://trac.sagemath.org/7401
Reported by: robert.marik
Ticket author(s): Robert Marik, Nils Bruin
Reviewer(s): Karl-Dieter Crisman, Nils Bruin, Peter Bruin