[See snippets for LaTeX](https://gitlab.stud.idi.ntnu.no/oysteikt/v21-ma0301/-/blob/master/exam_template/.vscode/latex.code-snippets)
[See snippets for Makefile](https://gitlab.stud.idi.ntnu.no/oysteikt/v21-ma0301/-/blob/master/exam_template/.vscode/makefile.code-snippets)
---
### Chrome plugin
#### Chapter 1. 2. 3. Boolean calculator
Automates calculating boolean expression step by step by running the input through https://boolean-algebra.com/
Outputs the resulting set of expressions to either propositional logic, boolean algebra or set operations.
Converts output to LaTeX
- [X] Finished
#### Chapter 4. Induction
Automates proof by induction by running the input through https://wolframalpha.com/
Converts output to LaTeX
- [ ] Finished
#### Chapter 7. Combinatorics
Permutations / Combinations Calculator
Computes permutations and combinations
Outputs to LaTeX
- [X] Finished
---
### Python framework
See examples of what the engine for the exam template can do here: [exam_template_graphics.pdf](http://oysteikt.pages.stud.idi.ntnu.no/v21-ma0301/exam_template_graphics.pdf)
#### Chapter 1. Truthtables (propositional logic)
**Capabilities:**
- [X] Calculate and render truthtable for propositional logic expressions
#### Chapter 3. Sets
**Capabilities:**
- [ ] Calculate and output powersets
#### Chapter 5. Relations
**Capabilities:**
Proofs:
- [X] Check whether relation is reflexive
- [X] Check whether relation is symmetric
- [X] Check whether relation is antisymmetric
- [X] Check whether relation is transitive
- [X] Check whether relation is an equivalence relation
- [X] Check whether relation is a partial order
Graphs:
- [X] Draw a hasse diagram from a partial order
- [X] Draw an graph from any relation
Note: Checking whether a relation has a property in this context means that it goes over every pair of related elements and looks for contradictions. **This program can not prove relation properties algebraically**
#### Chapter 7. Graph theory
**Capabilities:**
Inputs:
- [X] Input a graph from a matrix
- [X] Input a graph from a node/edge list
- [X] Input a complete graph from a node number
Outputs:
- [X] Output a graph to a matrix
- [X] Draw an undirected graph
- [X] Draw a directed graph
- [ ] Find a minimal spanning tree with Kruskals algorithm
#### Chapter 8. Finite state automata
**Capabilities:**
- [X] Draw a finite state machine
- [ ] Output a finite state machine table
- [ ] Calculate input based on a finite state machine