<?xml version="1.0" encoding="UTF-8"?>

<!-- 

  title.xml             homalg package documentation

         Copyright (C) 2007-2015, Mohamed Barakat, University of Kaiserslautern
                                  Markus Lange-Hegermann, RWTH-Aachen University

-->
<TitlePage>
  <Title>&homalg;</Title>
  <Subtitle>A homological algebra meta-package for computable Abelian categories</Subtitle>
  <TitleComment>(<E>this manual is still under construction</E>)
    <Br/><Br/>
    
    This manual is best viewed as an <B>HTML</B> document. The latest
    version is available <B>online</B> at: <Br/><Br/>
    
    <URL>http://homalg.math.rwth-aachen.de/~barakat/homalg-project/homalg/chap0.html</URL>
    <Br/><Br/>
    
    An <B>offline</B> version should be included in the documentation
    subfolder of the package.
    
    This package is part of the &homalg;-project:
    <Br/><Br/>
    
    <URL>http://homalg.math.rwth-aachen.de/index.php/core-packages/homalg-package</URL>
  </TitleComment>
  <Version>Version <#Include SYSTEM "../VERSION"></Version>
  <Author>Mohamed Barakat<Alt Only="LaTeX"><Br/></Alt>
    <Address>
      Department of Mathematics, <Br/>
      University of Kaiserslautern, <Br/>
      67653 Kaiserslautern, <Br/>
      Germany
    </Address>
    <Email>barakat@mathematik.uni-kl.de</Email>
    <Homepage>http://www.mathematik.uni-kl.de/&tilde;barakat/</Homepage>
  </Author>
  <Author>Markus Lange-Hegermann<Alt Only="LaTeX"><Br/></Alt>
    <Address>
      Lehrstuhl B für Mathematik,
      RWTH Aachen,
      Templergraben 64,
      52056 Aachen,
      Germany
    </Address>
    <Email>markus.lange.hegermann@rwth-aachen.de</Email>
    <Homepage>http://wwwb.math.rwth-aachen.de/~markus</Homepage>
  </Author>
  <Date>March 2015</Date>
  
  <Copyright>
    &copyright; 2007-2015 by Mohamed Barakat and Markus Lange-Hegermann<P/>
    
    This package may be distributed under the terms and conditions of the
    GNU Public License Version 2.
  </Copyright>
  
<Acknowledgements>
  <Alt Not="Text"><URL Text="Max Neunhöffer">http://www-groups.mcs.st-and.ac.uk/~neunhoef/</URL></Alt>
  <Alt Only="Text">Max Neunhöffer</Alt> not only taught me the
  philosophy of object-oriented programming in &GAP4;, but also to
  what extent this philosophy is still unique among programming
  languages (&see; <Ref Sect="WhyGAP4" Text="Why GAP4?"/>). The slides
  (in German) to his talk in our seminar on 30.10.2006 can be found on
  <URL Text="his
  homepage">http://www-groups.mcs.st-and.ac.uk/~neunhoef/Publications/talks.html</URL>. <P/>

  He, <Alt Not="Text"><URL Text="Frank
  Lübeck">http://www.math.rwth-aachen.de/~Frank.Luebeck/</URL></Alt><Alt Only="Text">Frank
  Lübeck</Alt>, and
  <Alt Not="Text"><URL Text="Thomas
  Breuer">http://www.math.rwth-aachen.de/~Thomas.Breuer/</URL></Alt>
  <Alt Only="Text">Thomas Breuer</Alt> patiently answered trillions of
  specific questions, even those I was too lazy to look up in the
  excellent <Alt Only="HTML"><Ref Chap="Preface" Text="reference manual"
  BookName="Reference"/></Alt><Alt Only="Text">
  programming tutorial</Alt><Alt Only="LaTeX"><URL Text="reference manual">http://www.gap-system.org/Manuals/doc/ref/chap0.html</URL></Alt>.
  
  Without their continuous and tireless help and advice, not only this
  package but the <Alt Only="Text">&homalg; project</Alt> as a whole
  <Alt Not="Text"><URL Text="homalg
  project">http://homalg.math.rwth-aachen.de/</URL></Alt> would
  have remained on my todo list. <P/>
 
  A lot of <Alt Only="HTML"><Ref Text="ideas" Label="intro"/></Alt>
  <Alt Not="HTML">ideas</Alt> that make up this package and the whole
  &homalg; project came out of intensive discussions
  with <Alt Only="Text">Daniel Robertz</Alt>
  <Alt Not="Text"><URL Text="Daniel
  Robertz">http://wwwb.math.rwth-aachen.de/~daniel/</URL></Alt> during
  our early collaboration, where we developed our philosophy of a meta
  package for homological algebra and <Alt Only="Text">implemented</Alt>
  <Alt Not="Text"><URL Text="implemented">http://homalg.math.rwth-aachen.de/maple/</URL></Alt>
  it in &Maple;. <P/>
  
  In the fall of 2007 I began collaborating
  with <Alt Only="Text">Simon Görtzen</Alt>
  <Alt Not="Text"><URL Text="Simon
  Görtzen">http://wwwb.math.rwth-aachen.de/goertzen/</URL></Alt> to
  further pursue and extend these <Alt Only="HTML"><Ref Text="ideas"
  Sect="Ring dictionaries" BookName="Modules"/></Alt>
  <Alt Not="HTML">ideas</Alt> preparing the transition to &GAP4;. With
  his help &homalg; became an extendable multi-package project. <P/>
  
  Max Neunhöffer convinced me to use his wonderful &IO; package to
  start communicating with external computer algebra systems. This was
  crucial to remedy the yet missing support for important rings in
  &GAP;. Max provided the first piece of code to access the computer
  algebra system &Singular;. This was the starting point of the
  packages &HomalgToCAS; and &IO_ForHomalg;, which were further abstracted
  by Simon and myself enabling &homalg; to communicate with virtually any external
  (computer algebra) system. <P/>
  
  <Alt Not="Text"><URL Text="Thomas
  Bächler">http://wwwb.math.rwth-aachen.de/~thomas/</URL></Alt>
  <Alt Only="Text">Thomas Bächler</Alt> wrote the package
  &MapleForHomalg; to directly access &Maple; via its
  &C;-interface. It offers an alternative to the package
  &IO_ForHomalg;, which requires &Maple;'s terminal
  interface <C>cmaple</C>. <P/>
  
  The basic support for &Sage; was added by Simon, and the support for
  &Singular; was initiated by
  <Alt Only="Text">Markus Lange-Hegermann</Alt>
  <Alt Not="Text"><URL Text="Markus
  Lange-Hegermann">http://wwwb.math.rwth-aachen.de/~markus/</URL></Alt>
  and continued by him and Simon, while
  <Alt Only="Text">Markus Kirschmer</Alt>
  <Alt Not="Text"><URL Text="Markus
  Kirschmer">http://www.math.rwth-aachen.de/~Markus.Kirschmer/</URL></Alt>
  contributed the complete support for &MAGMA;. This formed the
  beginning of the &RingsForHomalg; package. Recently, Daniel added
  the support for &Macaulay2;. <P/>
  
  My concerns about how to handle the garbage collection in the
  external computer algebra systems were evaporated with the idea of
  Thomas Breuer using the so-called <Alt Only="Text">weak
  pointers</Alt><Alt Only="LaTeX"><URL Text="weak
  pointers">http://www.gap-system.org/Manuals/doc/ref/chap86.html</URL></Alt>
  <Alt Only="HTML"><Ref Chap="Weak Pointers" Text="weak pointers"
  BookName="Reference"/></Alt> in &GAP4; to keep track of all the
  external objects that became obsolete for &homalg;. This idea took
  shape in a discussion with him and Frank Lübeck and finally found
  its way into the package &HomalgToCAS;. <P/>
  
  My gratitude to all with whom I worked together to develop extension
  packages and those who developed their own packages within the
  &homalg; project (&see; Appendix <Ref Sect="homalg-Project"/>).
  Without their contributions the package &homalg; would have remained
  a core without a body:
  
  <List>
    <Item><URL Text="Thomas Bächler">http://wwwb.math.rwth-aachen.de/~thomas/</URL></Item>
    <Item>Barbara Bremer</Item>
    <Item><URL Text="Thomas Breuer">http://www.math.rwth-aachen.de/~Thomas.Breuer/</URL></Item>
    <Item>Anna Fabiańska</Item>
    <!--
    <Item><URL Text="Anna Fabiańska">http://wwwb.math.rwth-aachen.de/~fabianska/</URL></Item>
    -->
    <Item><URL Text="Simon Görtzen">http://wwwb.math.rwth-aachen.de/goertzen/</URL></Item>
    <Item><URL Text="Markus Kirschmer">http://www.math.rwth-aachen.de/~Markus.Kirschmer/</URL></Item>
    <Item><URL Text="Markus Lange-Hegermann">http://wwwb.math.rwth-aachen.de/~markus/</URL></Item>
    <Item><URL Text="Frank Lübeck">http://www.math.rwth-aachen.de/~Frank.Luebeck/</URL></Item>
    <Item><URL Text="Max Neunhöffer">http://www-groups.mcs.st-and.ac.uk/~neunhoef/</URL></Item>
    <Item><URL Text="Daniel Robertz">http://wwwb.math.rwth-aachen.de/~daniel/</URL></Item>
  </List>
  
  I would also like to thank <Alt Only="Text">Alban Quadrat</Alt>
  <Alt Not="Text"><URL Text="Alban
  Quadrat">http://www-sop.inria.fr/members/Alban.Quadrat/</URL></Alt>
  for supporting the &homalg; project and for all the wonderful
  discussions we had. At several places in the code I was happy to add
  the comment: <Q>I learned this from Alban</Q>.
  
  <Par></Par>
  
  My teacher <Alt Not="Text"><URL Text="Wilhelm
  Plesken">http://wwwb.math.rwth-aachen.de/Mitarbeiter/plesken.php</URL></Alt>
  <Alt Only="Text">Wilhelm Plesken</Alt> remains an inexhaustible source of
  extremely broad and deep knowledge. Thank you for being such a
  magnificent person. <P/>
  
  This manual was created using the GAPDoc package of Max Neunhöffer
  and Frank Lübeck. <P/>

  Last but not least, thanks
  to <E>Miriam</E>, <E>Josef</E>, <E>Jonas</E>, and <E>Irene</E> for
  the endless love and support.
  
  <P/>
  <P/>
  Mohamed Barakat
  
</Acknowledgements>

</TitlePage>
