Expander2 is a flexible multi-purpose workbench for interactive term rewriting, graph transformation, theorem proving, constraint solving, flow graph analysis and other procedures that build up proofs or other symbolic derivations. Moreover, tailor-made interpreters display terms and formulas as two-dimensional structures ranging from trees and rooted graphs to a variety of pictorial representations such as tables, matrices, alignments, partitions and fractals.
Expander2 is implemented in O'Haskell, an extension of Haskell that admits object-oriented reactive programming and provides an interface to Tcl/Tk for GUI programming.
In Expander3, the special O'Haskell constructs are replaced by more or less equivalent "native" Haskell features and the GUI part is based on GTK+ instead of Tcl/Tk.
For compiling and installing Expander the following tools are needed:
- stack
- Gtk+3
Follow the installation guide here.
Download with Homebrew here.
Linux
Most Linux distributions already have Gtk+ installed. Often development packages are needed. Visit official download page for more information. For Debian/Ubuntu:
$ apt install libgtk-3-dev
Mac
The official download page recommends to use jhbuild (see also GTK for Mac OS). Homebrew is a good alternative.
$ brew install gtk+3
$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
The last command is needed everytime the Expander3 package is build.
Windows Needs stack to be installed.
stack setup
stack exec -- pacman -Syuu
stack exec -- pacman -S pkg-config mingw-w64-x86_64-gtk3 mingw-w64-x86_64-toolchain base-devel git
Install expander with:
git clone https://github.com/jokusi/expander.git
cd expander
stack build
Run expander with:
stack exec expander
Update expander with:
git pull
stack build
src
source code
app
main function for expander and hilbs executables
data/style
files for layout and design