/usr/share/axiom-20170501/src/algebra/UFD.spad is in axiom-source 20170501-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | )abbrev category UFD UniqueFactorizationDomain
++ Description:
++ A constructive unique factorization domain, where
++ we can constructively factor members into a product of
++ a finite number of irreducible elements.
UniqueFactorizationDomain() : Category == SIG where
SIG ==> GcdDomain with
prime? : % -> Boolean
++ prime?(x) tests if x can never be written as the product of two
++ non-units of the ring,
++ x is an irreducible element.
squareFree : % -> Factored(%)
++ squareFree(x) returns the square-free factorization of x
++ such that the factors are pairwise relatively prime
++ and each has multiple prime factors.
squareFreePart : % -> %
++ squareFreePart(x) returns a product of prime factors of
++ x each taken with multiplicity one.
factor : % -> Factored(%)
++ factor(x) returns the factorization of x into irreducibles.
add
squareFreePart x ==
unit(s := squareFree x) * _*/[f.factor for f in factors s]
prime? x == # factorList factor x = 1
|