The PascGalois JE program is a multiple document interface (like a word processor) with standard file and window operation facilities. Each of the internal (or child) windows contains all of the information and facilities needed to explore an automaton, as well as some other group theoretic concepts. Each of the options and facilities will be discussed in more detail in their own section. We will simply hit the highlights here to give you a feel for the program's capabilities.
The main window has very little functionality, its main purpose is to simply hold the child windows. There are three menu items in the main window, File, Window and Help. Each of the options in these submenus have a corresponding tool button on the toolbar.
The File menu has options to create a new child window, open a previously saved automaton, save the current automaton information to a file and to exit the program. Note that when you select Save or Save As the only automaton that is saved is the one in the currently selected child window.
The Window menu has tools for tiling, cascading, minimizing and restoring child windows as well as closing the currently selected window, closing all of windows and closing all of the windows except the currently selected window.
The Help menu has options to open this help system or view the About screen. Note that the option to go to the PascGalois home page is only available if you are running this program on a Windows system, and it will attempt to open the default browser on your computer and connect to the internet.
The child window has four tabs: Group, 1-D Automata, 2-D Automata, and Calculator.
The Group tab gives the user a simple but flexible way to select the
group structure they wish to work with. The current program has the
capability of working with Zn, Zn
(under multiplication), Dn, Sn, the Quaternions, Qn
(Generalized Quaternions) and Cn (Dicyclic groups).
The user can also input their own structure by specifying an operation table.
Furthermore, there is an advanced input option that allows the user to use
arbitrary Cartesian products and quotient groups of any of the above
structures. Details about group and element syntax can be found in the
Supported Group Structures & Syntax page in the contents menu.
Under the 1-D Automata tab there are currently five other tabs which allow
the user to input all of the data necessary to create and explore both
finite and infinite one-dimensional automata. The Options tab allows the user
to select between a finite or infinite automata, alignment of the image, the number
of rows, the wrapping style and whether it draws circles or squares.
The Seed tab allows the user to input the seed (or starting point) of the
automaton. The seed can consist of up to 20 rows (or time-steps) and 100
columns. There are facilities for clearing the seed grid, filling the grid with
random group elements, checking the syntax of the elements in the grid and copying
the grid elements to the clipboard in either a text format or LaTeX code.
The Update Rule tab allows the user to alter the way each time-step is created
from the previous time-steps. The program automatically sets the default
update rule to that of Pascal's Triangle, that is, adding the two above to get the
next cell value. So if you never wish to use an update rule other than Pascal's
Triangle you will never need to alter the information on this tab. On the other
hand, if you wish to do some experimentation this tab allows you to input a
general update formula that uses the group operation "*" and powers "^" that are
integer values. You link the automaton position with the update formula through
variable names in the grid. You may also use constants in the formula via a
constant name that you specify in the constants list at the bottom. The program
has facilities for clearing the grid, resetting the rule to Pascal's Triangle,
checking the syntax of the rule, creating, editing and deleting constants,
and copying the update rule to the clipboard as either text or LaTeX code.
The Image tab is the place you will do most of your exploration. It consists
of an image window to the left and a color scheme to the right. The program
allows the user to change element colors, group element colors by sets, subgroups,
and cosets. There are facilities for zooming in and out of the automaton. The user
can copy images and color correspondence to the clipboard or save them as image
files. You can have an unlimited number of different color schemes loaded with the
capability of saving them to files and loading in from files. There are also
facilities for selecting regions of the automaton and displaying element counts
within the region as well as copying or saving these counts or the grid of data as
either text or LaTeX code. For finite automata there is also a facility for
determining the period of the automaton, within the graphed rows. The zooming,
color manipulation and region selection all have undo/redo capabilities.
The Counts/Period tab has some more advanced methods for finding the
period or death of a finite automaton, it also allows the user to do element counts
for row ranges without the need to graph and select the region. When you
just want element counts on rows this is a much faster and memory reducing
way to get them. The program has facilities for displaying, copying and saving
count data as either text or LaTeX code. There is also an element list to the right
that will sum all of the selected element counts with the ability of automatically
selecting subgroups.
Under the 2-D Automata tab there are currently five other tabs which allow
the user to input all of the data necessary to create and explore both
finite and infinite two-dimensional automata. The Options tab allows the user
to select between a finite or infinite automata, the number
of levels graphed, the wrapping style, seed placement, grid size and
whether it draws circles or squares.
The Seed tab allows the user to input the seed (or starting point) of the
automaton. The seed can consist of up to 20 levels (or time-steps) and a
maximum grid size of 100 X 100.
There are facilities for clearing the seed grid, filling the grid with
random group elements, checking the syntax of the elements in the grid and copying
the grid elements to the clipboard in either a text format or LaTeX code.
The Update Rule tab allows the user to alter the way each time-step is created
from the previous time-steps. The program automatically sets the default
update rule to that of one of the standard four-rules. The program offers 11
commonly used default rules as well as the ability to alter these into any update rule
desired within a 100 X 100 grid and a depth of 20 time-steps.
This tab also allows you to input a
general update formula that uses the group operation "*" and powers "^" that are
integer values. You link the automaton position with the update formula through
variable names in the grid. You may also use constants in the formula via a
constant name that you specify in the constants list at the bottom. The program
has facilities for clearing the grid, resetting the rule to any one the 11 built-in presets,
checking the syntax of the rule, creating, editing and deleting constants,
and copying the update rule to the clipboard as either text or LaTeX code.
The image tab is the place you will do most of your visual exploration. It consists of an image window to the left, a color scheme to the right and a level navigation bar at the bottom. The program allows the user to change element colors, and group element colors by sets, subgroups, and cosets. The navigation bar allows the user to select which time-step to view. It has buttons to move to the next and previous time-steps as well as a 10 step jump, reset and a facility to move to any level by specifying its number. The user can copy images and color correspondence to the clipboard or save them as image files. You can have an unlimited number of different color schemes loaded with the capability of saving them to files and loading in from files. You can also copy or save the elements that make up the level or set of levels as either text or LaTeX code.
The program offers a way of viewing the automaton in three dimensions.
The program has a POV-Ray exporter that allows you to
output the automaton as a POV-Ray file and use the freeware ray
tracer POV-Ray to render
the image. No knowledge of POV-Ray programming is necessary.
The Counts/Period tab has some more advanced methods for finding the
period and death of a finite automaton, it also allows the user to do element counts
for level ranges.
The program has facilities for displaying, copying and saving
count data as either text or LaTeX code. There is also an element list to the right
that will sum all of the selected element counts with the ability of automatically
selecting subgroups.
Selecting the POV-Ray output option will create two files, a pov file and an inc file. The pov file contains the setup for the image and the inc file contains a model for the automaton. The inc file never needs to be opened and in many cases it will contain thousands of lines. Use POV-Ray to open the pov file and select run from the toolbar on POV-Ray. It will then render the image and save it as a bitmap file in the same folder as your pov file. If you are on a non-windows system you may need to use a command-line command to render the image. Please consult a POV-Ray manual for details on your implementation.
The exporter also allows the user to create a POV-Ray animation.
One type of animation is a color animation that will produce
an animation of the automaton as it shifts from one color scheme to another.
Another type is a rotation animation
that will rotate the camera around the automaton and you can also combine the two.
For the animation files the program will also
produce an ini file. Load the ini file into POV-Ray and select run. This will produce a series of images on your
hard drive and not a single movie file. You will need another program to paste these images onto a movie file.
There are several freeware programs that will do this and they can be found for most platforms.
The Calculator tab allows the user to do single group operations or take elements
to powers. It also has the ability to switch the order of the elements so the
user can check commutativity quickly. There are also facilities for generating
subgroups and cosets given subgroup generators and coset representatives.
Furthermore, both the subgroups and cosets can be copied and saved as either
text or LaTeX code.