>Esta secção basicamente só contém revisão de conceitos. Aconselha-se a ver a coisa rapidamente, porque é só a formalidade de lógica escrita por extenso.
Let $A$ be an assignment and let $F$ be a formula. If $A(F) = 1$, then we say **$F$ holds under assignment**, or **$A$ models $F$.**
We write A $\models F$ iff $A(F)=1$, and $A \not \models F$ iff $A(F) = 0$.
An assignment is a function $A$ : $V_{prop} \implies {0,1}$ , that assigns to every
propositional variable a truth value. An assignment $A$ naturally extends to all formulas, $A$ : **Form** $\implies {0,1}$. The truth value of a formula is computed using **truth tables**:
- Formula $G$ is a subformula of formula F if it occurs syntactically within F
- Formula G is a strict subformula of F if G is a subformula of $F$ and $G \neg = F$
**Basic Equivalences:**
1. $\neg \neg A \equiv A$
2. $A \lor A \equiv A$
3. $A \land A \equiv A$
4. $A \land \neg A \equiv \bot$
5. $A \lor \neg A \equiv \top$
6. $A \lor B \equiv B \lor A$
7. $A \land B \equiv B \land A$
8. $A \land \top \equiv A$
9. $A \lor \top \equiv \top$
10. $A \land \bot \equiv \bot$
11. $A \lor \bot \equiv A$
12. $A \land (B \lor A) \equiv A$
13. $A \land (B \lor C) \equiv (A \land B) \lor (A \land C)$
14. $A \lor (B \land C) \equiv (A \lor B) \land (A \lor C)$
15. $\neg (A \lor B) \equiv \neg A \land \neg B$
16. $\neg (A \land B) \equiv \neg A \lor \neg B$
17. $A \implies B \equiv \neg A \lor B$
18. $A \iff B \equiv (A \implies B) \land (B \implies A)$
# 2. SAT Solvers
- There are several techniques and algorithms for SAT solving.
- Usually SAT solvers receive as input a formula in a specific syntatical format.
- SAT solvers deal with formulas in **conjunctive normal form (CNF)**.
- Most current state-of-the-art SAT solvers are based on the **Davis-Putnam-Logemann-Loveland (DPLL) framework**.
## 2.1 DPLL Framework
The idea is to **incrementally construct an assignment compatible with a CNF**, propagating the implications of the decisions made that are easy to detect and simplifying the clauses.