http://satassociation.org/tutorials.html
For people that asked me some links to easily learn the basics of Python, please check the material from the following UniTN course: https://disi.unitn.it/~passerini/teaching/2021-2022/sci-pro/index.html. In particular, the material about "Complex statements"are really useful for our course (List Comprehension and the various loops).
- Getting started with SAT solving
- Dimacs and SMT-LIB format
- Encoding circuits and checking equivalence
- From real tasks to SAT models: sorting people, cracking codes
- Getting started with pysmt
- Solving logic puzzles
- Solving Sudoku
- Solving Nonogram
- Functionalities: Incrementality and UNSAT cores
- Using SMT-LIB: different data types
- Solving logic puzzles using SMT
- Solving geometric tasks
- SAT/SMT functionalities: AllSAT/ALLSMT
- Using BitVectors and Arrays
- Uninterpreted vs interpreted functions
- OptiMathSAT: defining cost functions and different types of optimizations
- Optimization of graph shortest paths
- MaxSAT/MaxSMT
- The importance of PseudoBoolean for SMT
- Multi-objective optimization
- Minmax/maxmin
- Simulation of exam exercise: pseudo-Booleans and linear combinations
- Introduction to nuXmv
- nuXmv: the adder circuit
- Encode programs using nuXmv
- Checking mutual exclusion using nuXmv
- Chemical reactions using nuXmv