Easy installation

drag Gap.app
to the Applications folder

Gap.app supports a built-in copy of GAP. Install a full version of GAP by dragging Gap.app to the Applications folder, just like you'd install any other macOS application. You can also make the included GAP available for Terminal.app!

(Requires a supporting edition of Gap.app.)

Updated for the latest version of GAP

GAP logo

Gap.app now supports the latest versions of GAP, with all of their improvements. Faster algorithms, more functionality, and more GAP packages are readily available.

Documentation and help at your fingertips

Gap.app's help viewer Gap.app's built-in help viewer lets you conveniently browse and view the documentation for GAP and its packages. The responsive styling of help is readable and looks good at a broad range of screen widths and in either dark or light mode.

?help

GAP help searches (the results of GAP commands like '?command') are presented in the same help viewer window, with a familiar interface.

A better GAP command window experience

The GAP command window gives a polished and Mac-like experience. The usual shortcut keys for text-editing function as normal. Hit either the TAB or F5 key to popup up a menu with the completions of the keyword you're typing. Clearing lines with carriage returns and backspaces works. Keyboard shortcuts such as Control-C or Control-D still do just as you‘d expect.

GAP command window

VT100 color

Gap.app recognizes and has limited support for VT100/ANSI/ncurses color codes.

HTML output

Gap.app allows GAP to output simple HTML with a special window command. Display properly formatted mathematics equations, or print beautiful matrices. This feature is still in testing, and may evolve.

Click here for a GAP source file demonstrating HTML output and its possibilities.
Or watch a video showing and talking through the HTML output demonstration.

Browse and search command history

Browsing command history

Hit Shift-↑ to popup a window with all the GAP commands that you've entered. Easily browse your command history.

Searching

From the popup window, typing the beginning of a command line will search the list. Gap.app will take you to the most recent match, and will bold the matching portion on all commands.

Graphical support

Gap.app is fully compatible with programs written for xgap (by Frank Celler and Max Neunhöffer). It automatically loads the xgap library on startup (when available).

Subgroup lattice of A4

Subgroup lattices

Use the  GraphicSubgroupLattice  GAP command to view and interact with the subgroup lattice of a group. Several samples of how to use GraphicSubgroupLattice are found in the Examples menu, along with a simple puzzle game.

Just like in xgap, you can right-click (or Control-click) any subgroup in the diagram to get a summary of its properties, such as its size or index.

Save and restore GAP sessions

Gap.app allows saving and restoring GAP sessions with the File | Save Session menu item. Restore the session later by double-clicking it in Finder, or with File | Open Session.

Save Session menu

Workplace, windows, and log

A saved GAP session includes the GAP workspace, with all your GAP variables and functions. Gap.app also saves much more: all your open subgroup lattices, inspectors, and other GAP windows; the full command history; even your current input line is saved.

Compression

Saved GAP sessions are compressed to conserve disk space automatically. The compression is done in a background process, so you can get right back to work.

Command window preferences

Command preferences panel

Gap.app now has additional preferences to control the appearance and behavior of the GAP command window. Hide or show certain gap> prompts or other technical details, adjust text size, or even have GAP display in a "Dark mode" type style.

See memory usage in real time

Memory usage information panel

A Memory Usage Info window lets you see how much memory GAP has available and allocated. It also gives the full details of GAP's memory management system (‘Gasman’). You can easily monitor the memory usage of your computations in real time.