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
mdbookversion0.1.8(cargo install mdbook --version 0.1.8) - Install Haskell compiler and package tool
- Install Haskell packages
cabal install megaparsecandcabal install cmdargs - Put satplus in subfolder of
railperfcheckandgridvisdirectories - Run
make. - Open
docs/book/index.htmlin web browser