C about.tex 1. About Programming in GAP C methsel.tex 2. Method Selection I 2.0. operation I 2.0. method S 2.1. Operations and Methods S 2.2. Method Installation F 2.2. InstallMethod F 2.2. InstallOtherMethod S 2.3. Applicable Methods and Method Selection S 2.4. Partial Methods F 2.4. TryNextMethod S 2.5. Redispatching F 2.5. RedispatchOnCondition S 2.6. Immediate Methods F 2.6. InstallImmediateMethod S 2.7. Logical Implications F 2.7. InstallTrueMethod S 2.8. Operations and Mathematical Terms I 2.8. overload C create.tex 3. Creating New Objects S 3.1. Creating Categories F 3.1. NewCategory F 3.1. CategoryCollections F 3.1. CategoryFamily S 3.2. Creating Representations F 3.2. NewRepresentation S 3.3. Creating Attributes and Properties F 3.3. NewAttribute F 3.3. NewAttribute F 3.3. NewAttribute!mutable F 3.3. NewAttribute!mutable F 3.3. NewProperty S 3.4. Creating Other Filters F 3.4. NewFilter F 3.4. SetFilterObj F 3.4. ResetFilterObj S 3.5. Creating Operations F 3.5. NewOperation S 3.6. Creating Families F 3.6. NewFamily F 3.6. CollectionsFamily F 3.6. ElementsFamily S 3.7. Creating Types F 3.7. NewType S 3.8. Creating Objects F 3.8. Objectify F 3.8. ObjectifyWithAttributes S 3.9. Component Objects F 3.9. NamesOfComponents S 3.10. Positional Objects S 3.11. Implementing New List Objects S 3.12. Example -- Constructing Enumerators S 3.13. Example -- Constructing Iterators S 3.14. Arithmetic Issues in the Implementation of New Kinds of Lists S 3.15. External Representation F 3.15. ExtRepOfObj F 3.15. ObjByExtRep S 3.16. Mutability and Copying S 3.17. Global Variables in the Library F 3.17. BindGlobal F 3.17. DeclareAttribute F 3.17. DeclareCategory F 3.17. DeclareFilter F 3.17. DeclareProperty F 3.17. DeclareRepresentation F 3.17. DeclareOperation F 3.17. DeclareGlobalFunction F 3.17. InstallGlobalFunction F 3.17. DeclareGlobalVariable F 3.17. InstallValue F 3.17. InstallFlushableValue F 3.17. DeclareSynonym F 3.17. DeclareSynonymAttr F 3.17. FlushCaches S 3.18. Declaration and Implementation Part I 3.18. DeclareRepresentation!belongs to implementation part C intrfc.tex 4. Examples of Extending the System S 4.1. Addition of a Method S 4.2. Extending the Range of Definition of an Existing Operation S 4.3. Enforcing Property Tests S 4.4. Adding a new Operation S 4.5. Adding a new Attribute I 4.5. NewAttribute!example I 4.5. DeclareAttribute!example I 4.5. IsAttributeStoringRep S 4.6. Adding a new Representation I 4.6. NewRepresentation!example I 4.6. DeclareRepresentation!example I 4.6. IsComponentObjectRep I 4.6. IsAttributeStoringRep S 4.7. Components versus Attributes S 4.8. Adding new Concepts S 4.9. Example: M-groups S 4.10. Example: Groups with a word length S 4.11. Example: Groups with a decomposition as semidirect product I 4.11. DeclareAttribute!example S 4.12. Creating Own Arithmetic Objects F 4.12. ArithmeticElementCreator C xtndxmpl.tex 5. An Example -- Residue Class Rings S 5.1. A First Attempt to Implement Elements of Residue Class Rings S 5.2. Why Proceed in a Different Way? S 5.3. A Second Attempt to Implement Elements of Residue Class Rings S 5.4. Compatibility of Residue Class Rings with Prime Fields S 5.5. Further Improvements in Implementing Residue Class Rings C arith.tex 6. An Example -- Designing Arithmetic Operations S 6.1. New Arithmetic Operations vs. New Objects S 6.2. Designing new Multiplicative Objects