This program is a calculator for the multi-dimensional Thompson groups Vn. More detailed documentation is available
is on Github as Javadoc (http://github.com/romwell/nvTrees).
Author: Roman Kogan; contact: romwell@gmail.com
Instructions for usage: type a string to evaluate and hit Enter. Use scrollbars on the left to control zoom and scale;
the boxes on the right contain command history and list of variables. Clicking on a variable name or a command in the
history box brings it up in the command line.
Usage examples (note: type the expressions exactly - extra spaces may be a problem):
Define the generators of the Thompson group F:
X0={11000,10100,1 2 3}
X1={1011000,1010100,1 2 3 4}
Multiplication (left action, corresponding to function composition X0 o X1)
X0*X1
Inverse
!X0
X0^-1
Power
X0^(-3)
Conjugation
X1^(X0^-1)
X1^X0
Commutator
X1#X0
Growth (note the single space!)
growth [A,B,3]
Cyclic permutation as an element of V
X={1100100,1100100,2 3 4 1}
Baker's map as an element of 2V
X={100,200,1 2}
Do something with the result of last operation
ans^2
Application commands:
\save Saves session to default filename ~default.nvt
\save fname Saves session to fname.nvt
\load Loads session from default filename ~default.nvt (this happens at the start of the program if the file exists)
\load fname Loads session from fname.nvt : loads history and re-runs it
\qload Quick load from ~default.nvt: loads history and variable values; doesn't re-run history
\qload fname Quick load from fname.nvt: loads history and variable values; doesn't re-run history
\clear Clear screen
\reset Resets the program
\pattern Enables or disables pattern display
Expression Commmands:
expression Evaluates the expression and displays it
X=expression Evaluates the expression and assigns it to a variable X
Expression may contain the following:
ans The result of last calculation is stored here
x={treepair format string} See treepair format below
(any expression involving Ex.: $((A#!B)^(C*D))
parentheses, variables and
operators)
Unary operators:
! inverse
$ reduced form
@ left-side-to-grid form
Binary Operators:
* multiplication A*B (left action, corresponding to function composition A o B)
^ conjugation B*A*B^-1
^ power A^integer
# commutator A*B*A^-1*B^-1
Other commands:
growth Computes the growth function of a group generated by a given list of elements
Syntax: growth[x1, x2, x3,..,xk, n]
where x1, x2, ..., xk are variables previously defined, and n is a positive integer
-->computes the size of balls of sizes 1,2,3,..,n
semi Same syntax and usage as growth, but computes growth of the semigroup instead.
Tree Pair Format:
random N C Random tree pair with N leaves in dimension C (labels are in 1,2,...C)
left_tree,right_tree,permutation See Tree format below for left_tree, right_tree.
See Permutation format below for permutation
right_tree can be replaced with “same”, then the right tree
will be made the same as the left tree.
left_tree,right_tree A tree pair (left_tree, right_tree) with identity permutation
Tree format:
random N C Random tree with N leaves in dimension C (labels are in 1,2,...C)
DFS of the tree as a sring Values at nodes: colors; values at leaves: 0.
Example: 10200 corresponds to the tree
1
/ \
0 2
/ \
0 0
Permutation format:
permutation of numbers from 1 to n Ex.: 1 5 4 2 7 6 3 is a permutation of numbers from 1 to 7
random Random permutation
id Identity permutation
Most of the code was written as a part of Collin Bleak's REU in 2008.