Project

General

Profile

Feature #273

Package for Polynomial Algebra Homomorphisms

Added by John Abbott over 11 years ago. Updated over 9 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
CoCoA-5 function: new
Target version:
Start date:
12 Nov 2012
Due date:
% Done:

100%

Estimated time:
50.00 h
Spent time:

Description

Giulia Bianco is studying the implementation of various operations on homomorphisms of polynomial algebras.

The relevant section in R&K vol 1 is 3.6 (page 225)

2014-07 search the manual for ? preimage


Related issues

Related to CoCoA-5 - Support #242: CoCoA-5 Projects for students (e.g. crediti F and tesi)In Progress2012-09-28

Related to CoCoALib - Bug #190: Subtle ref count bug for poly rings (via CoeffEmbeddingHom)Closed2012-06-19

Related to CoCoALib - Feature #587: port to CoCoALib: Homomorphism pkg (ker, IsInjective, IsSurjective..)Closed2014-07-14

Related to CoCoA-5 - Design #1128: HomomorphismFns.cpkg5 no longer needed?Closed2017-11-24

History

#1 Updated by John Abbott over 11 years ago

Giulia will do "by hand" some of the examples from Robbiano's book so that she better understands what are the difficulties in using CoCoA-5 when tackling this task.

Next meeting: Monday 19th Nov at 14:45.

#2 Updated by John Abbott over 11 years ago

  • Status changed from New to In Progress

Giulia has done 4 examples.

For next time she will convert the code in the solutions into various functions (e.g. ker, preimage, ...)

Next meeting Monday 26th November at 14:45.

#3 Updated by John Abbott over 11 years ago

Giulia has converted her code into functions. The code performs some sanity checks on the arguments, but she was unaware of CoCoA-5's error throwing mechanism. JAA suggested a better way to structure the code.

For next time she will:
  • modify the code to use CoCoA-5's error mechanism
  • restructure the functions to perform sanity checks in an initial block
  • devise test suites for all the functions (aiming for 100% coverage)

#4 Updated by John Abbott over 11 years ago

  • % Done changed from 0 to 10

#5 Updated by John Abbott over 11 years ago

  • % Done changed from 10 to 20

Giulia showed her restructured code: generally very good, just a few minor criticisms were made.

For next time, she will modify the code in the light of the criticisms.
Where appropriate she will add brief documentation to the test cases (explaining what special characeristics that particular test case has).
She will also start looking at the problem of extending applicability to the case of quotients of polynomial rings.

Next meeting is scheduled for Monday 2012-12-10 at 15:00.

#6 Updated by John Abbott over 11 years ago

Giulia has finished the implementations for the easy case (polynomial algebras). There was some discussion of IsInImage and PreImage which are essentially the same internally; what should PreImage do when the element supplied does not lie in the image? (error? return something strange? return 0?)

For next week, Giulia will do by hand some examples with quotients of polynomial algebras, with a view to starting on the implementations for them.

PS JAA registered just 1 hour of work because we forgot to discuss how much time Giulia had spent working since last time.

#7 Updated by John Abbott over 11 years ago

  • % Done changed from 20 to 30

Giulia has done several examples in quotients of polynomial algebras.
She had various questions (mostly related to functions which we hadn't documented). We believe we have answered every doubt she had.

For next time she will convert the steps used in the examples into functions (as she did for the simpler case of homs between polynomial algebras).

I am counting 6 hours: 2 not registered last time, 3 hours' work, and 1 hour meeting.

#8 Updated by John Abbott about 11 years ago

Giulia has produced a first version of the code for phi: R/I --> S/J.
For next time she will:
  • change the ring name Q into RS;
  • use TEST_ASSERT to check that the results obtained are correct;
  • construct some examples using different representatives for quot-ring elements,
    and check that the result obtained remains the same;
  • remove redundant zero gens from the kernel;
  • find examples where the kernel has a repeated non-zero generator, and think of
    a way to eliminate duplicate generators;
  • consider how to handle the case where only one ring is a quotient
    (without duplicating lots of code).

#9 Updated by John Abbott about 11 years ago

Questions:

What names should we use? Why does ker have such a long name & the others not?

-- (1) KerAffAlgebraHom
-- (2) IsInjective
-- (3) IsSurjective
-- (4) IsInImage
-- (5) PreImage

Giulia will:
  • make CheckAffAlgebraHom cleaner & simpler
  • split IsSurjective into internal/external fns
  • make PreImage internal; add 2 external fns IsInImage, & PreImage which gives error if value is not in the image.
  • use TEST_ASSERT with PreImage via Phi(PreImage(x)) = x
  • added a test combining PreImage with ker
  • rename Kerfuffle to ker
  • look into extending the theory to homomorphisms of modules (?!?), and maybe try an example or two by "hand"

#10 Updated by John Abbott about 11 years ago

  • Assignee set to Giulia Bianco
  • Target version set to CoCoA-5.1.0 Easter14
  • % Done changed from 30 to 70

Giulia has dealt with most points from last time.

  • fix the code so that it works again (after JAA "improved" it)
  • change names of CheckAffAlgebraHom1
  • consistent use of prefix/suffix to indicate the classes to which the fns belong
  • look into extending the theory to homomorphisms of modules (?!?), and maybe try an example or two by "hand"

#11 Updated by John Abbott about 11 years ago

Giulia has:
  • finished the code for aff alg homs
  • written doc
  • tried to do an example computation with modules, but C5 lacks some necessary fns (e.g. syz for moduleelems).

Still waiting for final decision regarding naming convention (suffix).

For next time she will:
  • proceed with some examples with modules (as soon as syz becomes available).

#12 Updated by John Abbott almost 11 years ago

  • % Done changed from 70 to 90
Giulia has done:
  • not much (because the module impl had too many holes)
For next time she will:
  • proceed with Tutorial 32 (kernel presentation, image presentation, pullback?)
  • after finishing the simplest case, she will look at quotients of modules (simulating them where necessary)

Next meeting: Giulia will tell us when she has made enough progress.

#13 Updated by John Abbott over 10 years ago

  • Status changed from In Progress to Closed
  • % Done changed from 90 to 100

Giulia has implemented Gens_Ker_Hom_Mod, Pres_Im_Hom_Mod, Pres_Ker_Hom_Mod.

She encountered a few problems in CoCoA -- resolved or added to redmine.

#14 Updated by John Abbott about 10 years ago

  • Status changed from Closed to Resolved

ADD this code as a CoCoA-5 package (or reimpl in CoCoALib).

#15 Updated by John Abbott almost 10 years ago

JAA must give Anna Giulia's code!

#16 Updated by John Abbott almost 10 years ago

I've sent the files -- they ought to be translated into english...

#17 Updated by John Abbott almost 10 years ago

  • Target version changed from CoCoA-5.1.0 Easter14 to CoCoA-5.1.1 Seoul14

#18 Updated by Anna Maria Bigatti over 9 years ago

- cleaned up into a package
- tests included in Makefile
- documentation still missing (should be just a minor fix of the old cocoa-4 package)

bug on reference count for rings resurfaced here.
I kept it under control cleaning up all "temporary" homomorphisms and/or saving the "temoprary" rings into a record together with the homomorphism.

#19 Updated by Anna Maria Bigatti over 9 years ago

  • Status changed from Resolved to Feedback

checked in documentation.
Next step (new issue): port it into cocoalib.

#20 Updated by Anna Maria Bigatti over 9 years ago

  • Subject changed from Polynomial Algebra Homomorphisms to Package for Polynomial Algebra Homomorphisms

#21 Updated by Anna Maria Bigatti over 9 years ago

  • Status changed from Feedback to Closed

#22 Updated by John Abbott over 6 years ago

  • Related to Design #1128: HomomorphismFns.cpkg5 no longer needed? added

Also available in: Atom PDF