Feature #107
Recognizing finite fields
Description
The case of polynomials over finite fields can often be handled specially. We must add functions to facilitate the detection of finite fields, and the calculation of their cardinality.
IsFiniteField
-- guess what this does!!cardinality
-- defn is clear for finite fields; what about other (finite) rings?
Any other new functions to be considered?
Related issues
History
#1
Updated by John Abbott over 12 years ago
IsPthPower
IsPthPower2
says whether arg is a P^k-th power (where k is a given arg)PthRoot
computes a P-th rootPthRoot2
computes a P^k-th root
The names of these fns are open to discussion!
PS the PthRoot
can be computed using linear algebra!
#2
Updated by John Abbott about 12 years ago
First impls have been made.
The cardinality is represented by a fn called CardExp
which gives the exponent of p
needed to obtain the cardinality -- this seems to be most useful quantity (and it is trivial to obtain the actual cardinality).
- prime finite field
- zero-dim quotient of polyring over a finite field
A "convoluted" construction which happens to produce a finite field will be declared not a finite field. For example if P
is ZZ[x]
then the quotient P/I
will be declared not a finite field regardless of the value of I
.
#3
Updated by John Abbott about 12 years ago
- % Done changed from 0 to 60
#4
Updated by John Abbott about 12 years ago
I really don't like the name CardExp
-- I think it is too cryptic.
The value it returns is log(cardinality)/log(characteristic), so in some ways LogCard
or LogCardinality
are more meaningful; though I am slightly unhappy that these names do not start Card...
.
Right now I'd say that LogCardinality
is easily the clearest candidate.
What should it do if its arg is not a finite field? Error? Return 0?
Perhaps giving an error is best because (in CoCoALib) it is not really defined for any other sort of ring.
Maybe some clever person in the future will be able to extend the fn to work for algebraic extensions of finite non-fields should there ever be a need.
#5
Updated by John Abbott about 12 years ago
- % Done changed from 60 to 80
IsFiniteField
LogCardinality
IsPthPower
PthRoot
The CoCoALib implementation is still fairly weak e.g. it can recognise only prime finite fields and simple algebraic extensions of them. The problem is due to the lack of ability to test an ideal for being maximal.
I have not yet produced any examples or tests.
#6
Updated by John Abbott about 12 years ago
Where should the documentation go?
#7
Updated by John Abbott about 12 years ago
JAA now believes that he has a decent algorithm for testing a polynomial ideal for maximality. As prerequisite it needs a function to convert a poly into a vector of coeffs WRT to a given PP basis. It also needs univariate poly factorization, but we already have that.
#8
Updated by John Abbott about 12 years ago
Added C5 documentation for IsFiniteField
, LogCardinality
, IsPthPower
and PthRoot
.
JAA wonders whether ExtnDeg
may not be a better name for LogCardinality
. The name is clearer and can be applied more widely (e.g. to algebraic extensions over QQ).
#9
Updated by John Abbott about 12 years ago
Should there also be a fn called PthPower
?
I note that IsPthPower2
and PthRoot2
have become forgotten; perhaps they should be put on hold until a real need for them arises. If we make them then we should also consider PthPower2
. Alternative names could be QthRoot
except that "q" tends to mean the cardinality of the finite field rather than any power of "p".
#10
Updated by Anna Maria Bigatti over 10 years ago
- Target version set to CoCoALib-0.99533 Easter14
#11
Updated by John Abbott about 10 years ago
- Category set to New Function
- Status changed from New to Closed
- Assignee set to John Abbott
- % Done changed from 80 to 100
No problems have arisen in 2 years. In ptic the fns IsPthPower2
and PthRoot2
have not made their absence felt, so I deduce that they are not really needed/useful.
Strictly IsFiniteField
is incomplete (throws NYI in some odd, tricky cases).
Closing anyway.
#12
Updated by Anna Maria Bigatti about 8 years ago
- Related to Feature #898: New function: cardinality of finite field? added
#13
Updated by Anna Maria Bigatti about 8 years ago
Implementation of IsMaximal
for multivariate rings now allows working non-simple extensions.
#14
Updated by Anna Maria Bigatti about 8 years ago
- Related to Feature #899: IsMaximal, IsPrimary for IDEAL (in cocoalib) added
#15
Updated by Anna Maria Bigatti about 8 years ago
- Related to Feature #520: Compute inverse in quotient ring (i.e. division in algebraic extn) added