Project

General

Profile

Feature #107

Recognizing finite fields

Added by John Abbott over 12 years ago. Updated about 8 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
New Function
Start date:
19 Mar 2012
Due date:
% Done:

100%

Estimated time:
5.00 h
Spent time:

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

Related to CoCoALib - Feature #69: p-th rootClosed2011-12-20

Related to CoCoALib - Feature #898: New function: cardinality of finite field?In Progress2016-06-27

Related to CoCoALib - Feature #899: IsMaximal, IsPrimary for IDEAL (in cocoalib)Closed2016-06-27

Related to CoCoALib - Feature #520: Compute inverse in quotient ring (i.e. division in algebraic extn)Closed2014-04-04

History

#1 Updated by John Abbott over 12 years ago

Other functions which finite fields should offer:
  • IsPthPower
  • IsPthPower2 says whether arg is a P^k-th power (where k is a given arg)
  • PthRoot computes a P-th root
  • PthRoot2 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).

Only obvious cases of finite fields are recognised:
  • 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
I have made the following fns available in CoCoA-5:
  • 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

Also available in: Atom PDF