Clarification on "learning clauses" in the DPLL algorithm

I'm having trouble understanding the idea of ​​learning conflict clauses, in particular, I can't understand why the clause we “ learned '' & # 39; & # 39 ; is substantially new (that is, the clauses database does not already contain it, nor any subset of it). Here's what Knuth says in his book:

enter description of image here

I can understand why the clauses database does not have a subset of $ c & # 39; $ it contains $ overline {l & # 39;} $ (because $ overline {l & # 39;} $ would have been forced (i.e. propagated per unit) to a level below $ d $), but what contradicts the existence of a clause, say, $ overline {b_1} lor overline {b_2} $?

Algorithms – Can non-fractional DPLL steps be considered regular?

In computer science, the Davis – Putnam – Logemann – Loveland (DPLL) algorithm is a complete search algorithm, based on backtracking, which makes it possible to decide on the satisfiability of propositional logic formulas in conjunctive normal form, c & # 39; that is, to solve the CNF-SAT problem.

I wonder if it is possible to detect a non-case-separated DPLL step on CNFs with the help of a finite automaton.

To begin, I think it is possible to describe a CNF as a regular using the following alphabet:

{A, L, R ,, ∨, ¬ }


  • A is a propositional variable
  • The is an opening parenthesis
  • R is a closing parentheses

Etc …

Since it is possible to show a CNF as a normal language, I think it should be possible to let a finite automaton detect tautologies, propagate the unit
clauses, or delete clauses with pure literals.

So, I think my question boils down to 3 points:

  1. Can a tautological clause in an NCF be considered regular?
  2. Can a pure literal in an NCF be considered a regular?
  3. Can a unit clause in an NCF be considered a regular customer?

I appreciate all the answers, but can you justify your reasoning so that I can understand. (Apologies if this is off topic)