This repository contains various code used around 2018 to demonstrate methods developed for my (Bjørnar Luteberget) Ph.D. thesis. It's is a somewhat complicated mix of Rust and Haskell code and shell scripts, so the project is a bit hard to build at this point, in 2024.
Check out the documentation with examples.
This repository contains the following programs:
- docs - HTML documentation and examples with interactive visualizations (compile with mdbook)
- rolling - a simple train simulator written in Rust
- railperfcheck - performance specification checker for railways written in Haskell (based on the rolling simulator, minisat, and satplus)
- gridvis - graph layout solver in railway style written in Haskell for the infrastructure format in rolling (based on minisat and satplus)
- rollingrailml - convert railML 2.x files into rolling infrastructure model. Can also derive routes from infrastructure. (Rust)
- Install Rust tools version >= 1.24
- Install
mdbook
version0.1.8
(cargo install mdbook --version 0.1.8
) - Install Haskell compiler and package tool
- Install Haskell packages
cabal install megaparsec
andcabal install cmdargs
- Put satplus in subfolder of
railperfcheck
andgridvis
directories - Run
make
. - Open
docs/book/index.html
in web browser