A set of logical formulas \mathcal F then a proof system is (\mathcal F, \text{Infer}) where \text{Infer} \subseteq \mathcal F^* \times \mathcal F a decidable set of inference steps
Inference step ((P_1, \cdots, P_n), C) \in \text{Infer} by \frac{P_1 \cdots P_n}{C} where P_i are called premises and C the conclusion. An inference step is called an axiom instance when n = 0 (it has no premise). Given a proof system (\mathcal F, \text{Infer}) a proof is finite sequence of inference steps such that, for every inference step, each premise is a conclusion of a previous step.
We say F \in \mathcal F is provable from assumptions (axioms) A iff there exists a derivation from A in \text{Infer} that contains an inference step whose conclusion is F. Denoted by A \vdash_{\text{Infer}} F
For A \subseteq \mathcal F and C \in \mathcal F we say C is a semantic consequence of A iff for every environment e if e \mid= P for all P \in A then e \mid= C. We denote it by A \mid= C.
A step ((P_1, \cdots, P_n), C) \in \text{Infer} is sound iff \{P_1, \cdots, P_n\} \mid= C. A proof system \text{Infer} is sound if every inference rule is sound.
If \text{Infer} is sound then A \vdash_{\text{Infer}}F \implies A \mid= F
A proof system is complete if it derives all formulas we want it to derive.
Consider propositional formulas with \lor, \land, \neg
We call it \text{Infer}_D
A set A of formulas is satisfiable if there exists e such that for every F \in A, e \mid= F.
If A \vdash_{\text{Infer}_D} 0 then A is unsatisfiable.
If a finite set A is unsatisfiable then A \vdash_{\text{Infer}_D} 0.
A propositional literal is either a variable (x) or its negation (\neg x). A clause is a disjunction of literals. We can represent a clause as a finite set of literals. For example a \lor \neg b \lor c is represented as \{a, \neg b, c\}. Zero is represented as an empty clause. A formula is a finite set of clauses interpreted as a conjunction. This is a conjunctive normal form. For example a \land b \land (\neg a \lor \neg b) is represented as A = \{\{a\}, \{b\}, \{\neg a, \neg b\}\}.
If C is a clause then \llbracket C \rrbracket_e = 1 iff there exists a literal L \in C such that \llbracket L \rrbracket_e = 1.
We can represent the case analysis rule from resolution as \frac{C_1 \cup \{x\} \quad C_2 \cup \{\neg x\}}{C_1 \cup C_2}. This is called the clausal resolution rule.
A finite set of clauses A is unsatisfiable iff there exists a derivation of the empty clause from A using clausal resolution.
A unit clause is a clause with exactly one literal. Given a literal L its complement is \bar L defined by \overline x = \neg x, \overline{\neg x} = x. Unit resolution is \frac{C \quad \{L\}}{C \setminus \{\bar L\}}.
Let F and G be formulas and let x \notin FV(F). Then F is equisatisfiable with (x \iff G) \land F[G := x]
Takes as input a set of clauses and determines whether it is satisfiable.