Передмова і розклад

GAP — система дискретної обчислювальної алгебри з особливим акцентом на теорію груп. GAP надає мову програмування, бібліотеку тисяч функцій, що реалізують алгебраїчні алгоритми, написані мовою GAP, а також великі бібліотеки даних алгебраїчних об’єктів, наприклад, Small Groups Library, яка містить, серед іншого, усі 423 164 062 групи порядку не більше 2000, крім порядку 1024.

Цей урок є вступом до системи GAP. Він зосереджений навколо загальної проблеми пошуку в бібліотеці груп малих порядків (Small Groups Library) цікавих прикладів і контрприкладів. Конкретна дослідницька проблема, в якій ми будемо зацікавлені, полягає в тому, щоб знайти приклади нетривіальних груп, таких, що середній порядок їх елементів є цілим числом.

Урок проведе слухача від роботи в командному рядку GAP та взаємодії з алгебраїчними об’єктами в інтерактивному режимі до збереження коду GAP у файли, створення функцій і регресійних тестів, а потім до виконання систематичного пошуку прикладів або контрприкладів, та розширення системи шляхом додавання власних атрибутів до їснуючих типів обʼєктів.

На цьому шляху слухач ознайомиться з:

  • основними конструкціями мови програмування GAP;

  • способами пошуку необхідної інформації в системі GAP;

  • корисними практиками організації коду GAP для наукових досліджень.

Передумова

Передумови

Урок орієнтований на слухачів, які володіють мінімальною теоретичною підготовкою (принаймні на рівні бакалаврського курсу теорії груп) і бажають дізнатися, як поняття з абстрактної алгебри можна досліджувати за допомогою обчислювальних інструментів. Попередній досвід роботи з GAP не потрібен.

Слухачам достатньо розуміти поняття файлів і каталогів (включаючи домашні та робочі каталоги) і знати, як запустити GAP.

Контрольний список

Підготовка

  1. У Вашому домашньому каталозі створіть новий каталог під назвою avgord.
  2. Запустіть GAP:
  • в Linux і macOS викличте path-to-your-gap-installation/gap-4.X.Y/gap (за потреби відредагуйте шлях);
  • у Windows, викличте GAP через меню Пуск чи ярлик на робочому столі, створений після встановлення GAP.
  1. Змініть поточний каталог на avgord:
  • у Linux та macOS, виконайте команду ChangeDirectoryCurrent("/Users/username/avgord"); (за потреби відредагуйте шлях; не забудьте ввести повний шлях до вашого домашнього каталогу замість ~).
  • у Windows, викличте ChangeDirectoryCurrent("C:/Users/username/avgord"); (за потреби відредагуйте шлях; не забудьте використовувати / замість \);
  1. Переконайтеся, що ваш поточний каталог налаштовано належним чином: викличте DirectoryCurrent(); та перевірте, що виведений шлях вказує на каталог avgord.

Фактичний розклад може дещо відрізнятися залежно від тем і вправ, обраних інструктором.

Windows


Завантажте та запустіть інсталятор для Windows у форматі .exe зі сторінки завантажень GAP. Коли будете вказувати місце інсталяції, зверніть увагу, що шлях не повинен містити пробілів. Наприклад, ви можете встановити GAP 4.X.Y у каталозі C:\gap-4.X.Y (за замовчуванням), D:\gap-4.X.Y чи C:\Math\GAP\gap-4.X.Y, але не встановлюйте його в такий каталог, як, наприклад, C:\Program Files\gap-4.X.Y чи C:\Users\alice\My Documents\gap-4.X.Y.

macOS


В macOS GAP потрібно встановити з вихідного коду, як описано на сторінці завантажень GAP. Завантажте один з архівів, наданих там, розпакуйте його та запустіть ./configure && make у розпакованому каталозі. Потім перейдіть до підкаталогу pkg і виконайте команду ../bin/BuildPackages.sh, щоб запустити скрипт, який встановить більшість пакетів, які потребують компіляції (за умови наявності достатньої кількості бібліотек, заголовків і інструментів).

Крім того, GAP можна також встановити GAP за допомогою Homebrew. Після встановлення Homebrew дотримуйтесь інструкцій для GAP Homebrew tap.

Linux


У Linux GAP потрібно встановити з вихідного коду, як описано на сторінці завантажень GAP. Завантажте один з архівів, наданих там, розпакуйте його та запустіть ./configure && make у розпакованому каталозі. Потім перейдіть до підкаталогу pkg і виконайте команду ../bin/BuildPackages.sh, щоб запустити скрипт, який встановить більшість пакетів, які потребують компіляції (за умови наявності достатньої кількості бібліотек, заголовків і інструментів).