-
Notifications
You must be signed in to change notification settings - Fork 0
Noncommutative_Algebra
Our (lofty) goal will be to enable the computation of Hom(M,N) for a pair of (right) modules over a connected graded algebra.
Here are some items on the To-do list:
The following is my outline for getting to Hom(M,N) as quickly as possible. There are lots of little side things to do to make modules useful, but Hom is apparently just a bunch of kernel calculations.
- Create the NCModule and NCModuleElement types
A module will be given either by an NCMatrix of generators or an NCMatrix of relations with assigned degrees. At least initially, Andy votes to have an option that defaults to "right" but also can be "left" or "bimodule". (If a module is given by generators, we'll need to compute the relations in order to get Hom)
- Create the NCModuleMap type
- Define ncMap (NCRightModule, NCRightModule, List)
- Hom(M,N) is computed (as a vector space, to a certain degree) using repeated kernel calculations viz. Boehm's Algorithms 6.3.1 and 6.5.1 (http://www.mathematik.uni-kl.de/\~boehm/lehre/1213\_CA/ca.pdf)
I think the bulk of this code could be done as soon as 1 is done, but in the end we'll want elements of Hom(M,N) to have the type of NCModuleMap.
Short list of other things:
- Define NCRingElement * NCModuleElement
- Homology of a pair of maps
- Any method whose only argument is an NCRingMap will probably need an analogous version for NCModuleMap. I'm especially thinking of //, @@, ambient, isHomogeneous, and isWellDefined
- Tensor product of algebras (with user-specifiable R-matrix)
- Bimodules (modules over A \tensor A^op) will require some special handling
- Operations on modules (shifts, twist by ring automorphism, quotients)
- Left and right and two-sided ideals should be compatible with module operations
- NCChainComplex type
- Compute Ext^i(M,N) to specified internal degree. (This can probably be done as soon as Hom is done.)
- Yoneda products
Mac OS X (Mountain Lion)
- Install and configure
Xcode
1- In Xcode Preferences -> Downloads -> Command Line Tools, check the box for command line tools
- Install
MacPorts
2 - In a terminal, type
sudo port install clisp
to installclisp
- Download and install
bergman
3:- Untar bergman to your desired directory
- navigate to the directory
/scripts/clisp/unix
and./mkbergman -auto
- Edit NCAlgebra.m2 to include your bergman path
- Put bergman on your path (for example,
ln path-to-bergman desired-path-to-bergman
)
Linux/Unix
- Install
clisp
- Download and install
bergman
- Untar bergman to your desired directory
- navigate to the directory
/scripts/clisp/unix
and./mkbergman -auto
- Edit NCAlgebra.m2 to include your bergman path
- Put bergman on your path (for example,
ln path-to-bergman desired-path-to-bergman
)
Windows
- Partition your hard disk and install a linux distribution.
Both M2 and bergman will run on Windows, but we don't know how to make them communicate (please contact us if you figure out how to do this!)
Monday:
- implemented subquotient algorithm (Boehm's Algorithm 6.3.1)
Tuesday:
- created NCChainComplex type
- implemented res(NCMatrix), betti(NCChainComplex)
Wednesday:
- integer shift implemented for NCMatrix
- implemented homologyAsCokernel(NCMatrix,NCMatrix)
- implemented free products, q-tensor products, and enveloping algebra
Thursday:
- discussed Anick resolution & implementation strategy
Friday:
- implemented digraph(NCGroebnerBasis) (useful for the Anick resolution)
- created NCModule type
-
Home
- Introduction
- Macaulay2 Contribution Guides
- Macaulay2 Workshop Guides
-
Macaulay2 Internals
- Building Macaulay2 from source
- Components of Macaulay2
- Case Studies
- Web servers
- Other
- Frequently Asked Questions
- Road map