| Simplify | |
|---|---|
| Formula | Rewrites to |
| P <~> Q | (P | Q) & (~P | ~Q) |
| P <=> Q | (P => Q) & (Q => P) |
| P => Q | ~P | Q |
| Move negations in | |
|---|---|
| Formula | Rewrites to |
| ~∀X P | ∃X ~P |
| ~∃X P | ∀X ~P |
| ~(P & Q) | (~P | ~Q) |
| ~(P | Q) | (~P & ~Q) |
| ~~P | P |
| Move quantifiers out | |
|---|---|
| Formula | Rewrites to |
| ∀X P & Q | ∀X (P & Q) |
| ∃X P & Q | ∃X (P & Q) |
| Q & ∀X P | ∀X (Q & P) |
| Q & ∃X P | ∃X (Q & P) |
| ∀X P | Q | ∀X (P | Q) |
| ∃X P | Q | ∃X (P | Q) |
| Q | ∀X P | ∀X (Q | P) |
| Q | ∃XP | ∃X (Q | P) |
| Skolemize | |
|---|---|
| Formula | Rewrites to |
| Initially | Set γ = {} |
| ∀X P | P and set γ = γ ∪ {X} |
| ∃X P | P[X/x(γ)] where x is a new Skolem functor. |
| Distribute disjunctions | |
|---|---|
| Formula | Rewrites to |
| P | (Q & R) | (P | Q) & (P | R) |
| (Q & R) | P | (Q | P) & (R | P) |
| Convert to CNF | |
|---|---|
| Formula | Rewrites to |
| P1 & ... & Pn | {P1,...,Pn} |