theotui
A TUI for various topics from theoretical computer science, implemented in Rust with Ratatui.
It aims to help learning these topics by offering simple ways of exploration and experimentation.
Currently the following topics are implemented:
- set theory
- propositional logic
- deterministic finite automata
More will follow.
The core logic, without the TUI part, can be used through the crate theoinf.
set theory
All the usual operations of naive set theory are implemented.
Press F1 to toggle the help next to the editor.
Press F5 to let your terms be evaluated.
propositional logic
All the usual operations of propositional logic are implemented.
Press F1 to toggle the help next to the editor.
Press F5 or Enter to let your formula be evaluated.
The truth table can be filtered with Ctrl-t/Ctrl-f to only show the assignments resulting in true or false.
The CNF and DNF are constructed if possible.
deterministic finite automata (DFA)
A DFA is defined with the usual 5 parts:
Sigma, the alphabetS, the set of statesstart, the starting stateF, the set of accepting statesdelta, the set of state transitions
A single transition is a tuple of 3: (current_state, symbol, next_state)
Press F1 to toggle the help next to the editor.
Press F5 or Enter in the Word input to let your word be checked for acceptance.
Installation
cargo install theotui