Eingabe: CNF F, 
Ausgabe: Belegung b mit 
b  F oder UNSAT.
 F oder UNSAT.
DPLL(b)     (verwendet Keller für Entscheidungspunkte):
  
  
- (success) falls 
b  F, dann Ausgabe b und halt. F, dann Ausgabe b und halt.
- (backtrack) falls F eine b-Konfliktklausel enthält, dann:
    
- falls Keller leer, dann Ausgabe UNSAT und halt.
- sonst 
v : = pop() und 
DPLL(b< v∪{(v, 1)}.
    
 dabei ist b< v die Belegung vor decide(v)
- (propagate) falls F eine b-Unitklausel l enthält: 
DPLL(b∪{(l, 1)}).
- (decide) sonst wähle 
v  domb, push(v),
    und 
DPLL(b∪{(v, 0)}). domb, push(v),
    und 
DPLL(b∪{(v, 0)}).
2014-07-06