Introduction KASH 3 GiANT End

Recent Developments in KASH
Osmanbey Uzunkol
Institut für Mathematik
Technische Universität Berlin

Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT End

Overview History Architecture

Overview

KANT

Computational Algebraic Number Theory(C-Library)

KASH

KANT Shell(GAP 3 with extensions)

QaoS

Query algebraic objects System(Database)

GiANT

Graphical Algebraic Number Theory(Graphical User Interface)

Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT End

Overview History ArchitectureHistory

1987

KANT V1 (Fortran Library)

1992

KANT V2 (C Library), built on the Cayley platform

1994

KANT V4 (C Library), built on the Magma platform

1995

KASH 1.0 (KANT Shell), based on GAP 3

1996

KASH 1.7, Database for number fields

1999

KASH 2.1

2004

KASH 2.4, WWW Database, webkash

2005

KASH 3, graphical user interface GiANT, QaoS Databases

Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT End

Overview History Architecture

Architecture

KASH
GAP 3 Shell
KASH Libraries(GAP 3 Libraries)
KANT V4
Magma platform
MPFR

Osmanbey Uzunkol

GMP

Recent Developments in KASH

Introduction KASH 3 GiANT End

Overview History Architecture

Architectureqaos.math.
tu-berlin.de

KASH
GAP 3 Shell
KASH Libraries

Apache(GAP 3 Libraries)
KANT V4

QaoS
Databases

Magma platform

PostgreSQL

MPFROsmanbey Uzunkol

GMP

Recent Developments in KASH

Introduction KASH 3 GiANT End

Overview History Architecture

Architecture

GiANT GUIKASH

Java 2GAP 3 Shell
KASH Libraries(GAP 3 Libraries)
KANT V4
Magma platform
MPFR

Osmanbey Uzunkol

GMP

Recent Developments in KASH

Introduction KASH 3 GiANT End

Features Help Types Methods Extended Objects Example

KASH 3 – Features
Number Fields
Integral Bases
Galois Groups up to Degree 23
Unit Groups
Class Groups
Class Fields

Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT EndFeatures Help Types Methods Extended Objects Example

KASH 3 – Features
Number Fields
Function Fields
Finite and Infinite Maximal Orders
Unit Groups
Riemann Roch Spaces
Divisor Class Groups

Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT EndFeatures Help Types Methods Extended Objects Example

KASH 3 – Features
Number Fields
Function Fields
Local Fields
p-adic Fields
Laurent Series
Polynomial Factorization[Unit Groups]

Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT End

Features Help Types Methods Extended Objects Example

KASH 3 – Features
Number Fields
Function Fields
Local Fields
Diophantine Equations
Norm Equations
Thue Equations
Unit Equations

Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT End

Features Help Types Methods Extended Objects Example

KASH 3 Help SystemFeatures
Inline documentation
Represented as KASH records
Help system written in the shell
Handbooks and tutorials arecompiled from the same source(Inline Documentation)
HTML and print version via XML
outputInline help with complex searchpatterns

Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT End

Features Help Types Methods Extended Objects Example

KASH 3 Help System
Features
Search Patterns

Inline documentation
Represented as KASH records

Full Text (?*)

Help system written in the shell

Name (?)

Handbooks and tutorials arecompiled from the same source(Inline Documentation)

Substring ofName (?!)

HTML and print version via XML
outputInline help with complex searchpatterns

Osmanbey Uzunkol

Input Signature(?(type))
Output Types(?->type)

Recent Developments in KASH

Introduction KASH 3 GiANT End

Features Help Types Methods Extended Objects Example

Documentation Entries

Kinds of Documentation Entries
Keyword
Type
Function
Constant
Statement
Reference

Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT End

Features Help Types Methods Extended Objects Example

Documentation Entries

Kinds of Documentation Entries
Keyword
Type
Function
Constant
Statement
Reference

Documentation Record Entries
Name, Signature
ExamplesCross References
Authors
Literature References

Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT End

Features Help Types Methods Extended Objects Example

KASH 3 Help Example

kash% ?!Type

1108: DecompositionType(<ord^num> O, <elt-ord^rat> p) -> <seq()>3243: Types
3277: NewType(<string> newtype, <elt-ord^rat> level) -> <type>
3279: ShowTypes()
3280: Type(<any> obj) -> <type>
3299: type
kash% ?3280

Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT End

Features Help Types Methods Extended Objects Example

KASH 3 Help Example
kash% ?3280#ab84be: FUNCTION (3280)
Type(<any> obj) -> <type>
PURPOSE:
Returns the type of ’obj’. If ’obj’ is extended, i.e., it is arecord with a ’base’ component, then the type of the base component
is returned. If ’obj’ is a record with a ’type’ component ’obj.type’
is returned.
EXAMPLE:
Type(3);
SEE ALSO:
3243: Types
3277: NewType(<string> newtype, <elt-ord^rat> level) -> <type>
3450: record
Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT End

Features Help Types Methods Extended Objects Example

KASH 3 – Types

Goals and Constraints
Matching of Datatypes from C-Library
Representation of Categories
Easy Type Matching for Overloading
User Defined Types

Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT End

Features Help Types Methods Extended Objects Example

KASH 3 Type System
Modular Types[elt−] halgebraic structurei^hspecifier i[ / h. . . i]

Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT End

Features Help Types Methods Extended Objects Example

KASH 3 Type System
Modular Types[elt−] halgebraic structurei^hspecifier i[ / h. . . i]

Examples
atoms for algebraic structure
atoms for specifieralg, fld, ord, . . .
fun, num, pol, . . .

Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT End

Features Help Types Methods Extended Objects Example

KASH 3 Type System
Modular Types[elt−] halgebraic structurei^hspecifier i[ / h. . . i]

Examples
atoms for algebraic structure
atoms for specifierfld^funord^num
elt-ord^num
alg^pol/fld^num

alg, fld, ord, . . .
fun, num, pol, . . .

Type of Function Fields
Type of Orders of Number Fields
Type of Algebraic Integers
Type of Polynomial Algebras over Number Fields
Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT End

Features Help Types Methods Extended Objects Example

KASH 3 – Methods
Type Matching
any matches any atomloc (local) matches ser (power series) or pad (p-adic)

Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT End

Features Help Types Methods Extended Objects Example

KASH 3 – Methods
Type Matching
any matches any atomloc (local) matches ser (power series) or pad (p-adic)

Exampleselt-any^num
elt-ord^locmatches the type of algebraic integers and numbers
matches elt-ord^pad, elt-ord^serOsmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT EndFeatures Help Types Methods Extended Objects Example

KASH 3 – Methods
Type Matching
any matches any atomloc (local) matches ser (power series) or pad (p-adic)

Exampleselt-any^num
elt-ord^loc

matches the type of algebraic integers and numbers
matches elt-ord^pad, elt-ord^serMethods
InstallMethod(documentation record, function)
installs function as a method with name and signature given by thedocumentation record.
Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT EndFeatures Help Types Methods Extended Objects Example

KASH 3 – Extended Objects

Records with .base Entry
Records are treated like their .base component by methods andinternal functions.

Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT End

Features Help Types Methods Extended Objects Example

KASH 3 – Extended Objects

Records with .base Entry
Records are treated like their .base component by methods andinternal functions.
Other Special Record Entries.nn-th generator of a structure.typesets the type of a record.operations (as in GAP) for overloading of:+, -, *, /, ^, in, mod, Print.extn
for multiple return values.

Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT EndFeatures Help Types Methods Extended Objects Example

InstallMethod(rec(name := "Map",
kind := "FUNCTION",
sin := [[any,"D"],[any,"C"],[func,"phi"]],sou := [[map()]],
short:= "Create a map with domain ’D’ and codomain ’C’ "+"from the function ’phi’. ",see := [DocHash("Composition(map(),map())")]),
function(domain,codomain,phi)
return rec( base := phi,domain := domain,codomain := codomain,type := map(Type(domain),Type(codomain)),operations := rec(Print:= __Print_map, \*:=Composition));
end);
Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT End

Features Help Types Methods Extended Objects Example

InstallMethod(rec(name := "Composition",kind := "FUNCTION",
sin := [[map(),"phi"],[map(),"psi"]],sou := [[map()]],
short:= "The composition ’phi*psi’ of the maps ’phi’ and ’psi’.",ex:= ["add5 := Map(Z,Z,function(a) return a+5; end);"+"add5; add5(2); add10 := Composition(add5,add5); add10(2);"],
see := [DocHash("Map(any,any,func)")]),function(phi,psi)
return rec( base := function(a) return phi(psi(a)); end,
domain := Domain(psi),
codomain := Codomain(phi),
type := map(Type(Domain(psi)),Type(Codomain(phi))),
operations := rec(Print := __Print_map, \*:=Composition));end);
Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT EndFeatures Help Types Methods Extended Objects Example

kash% add5 := Map(Z,Z,function(a) return a+5; end);
Mapping from ord^rat: Z to ord^rat: Z
kash% add5(2);7kash% add10 := add5*add5;
Mapping from ord^rat: Z to ord^rat: Z
kash% add10(2);12Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT End

GiANT

GiANT – Graphical Algorithmic Number Theory
written by Aneesh Karve

Evolution of Computer Algebra Systems
LibrariesKANT→→Shells
KASH→→

Graphical User Interfaces
GiANT

GiANT is a Desktop Environment for working with Number Fields

Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT End

GiANT

GiANT – Graphical Algorithmic Number Theory
written by Aneesh Karve

Evolution of Computer Algebra Systems
Libraries
KANT→→Shells
KASH→→

Graphical User Interfaces
GiANT

GiANT is a Desktop Environment for working with Number Fields
Desktop shows Towers of Field Extensions
Moving of Elements, Ideals, and Polynomials by Drag & Drop
Arithmetic with Elements, Ideals, and PolynomialsComputation of Invariants
Architecture: KASH 2.5, Java 2
Osmanbey Uzunkol

Recent Developments in KASH

Introduction KASH 3 GiANT End

KASH can be downloaded from:http://www.math.tu-berlin.de/∼kant

GiANT is released under the GPL, see:
http://giantsystem.sourceforge.net

Thank You

Osmanbey Uzunkol

Recent Developments in KASH