Boolean grammar
Boolean grammars, introduced by , are a class of formal grammars studied in formal language theory. They extend the basic type of grammars, the context-free grammars, with conjunction and negation operations. Besides these explicit operations, Boolean grammars allow implicit disjunction represented by multiple rules for a single nonterminal symbol, which is the only logical connective expressible in context-free grammars. Conjunction and negation can be used, in particular, to specify intersection and complement of languages. An intermediate class of grammars known as conjunctive grammars allows conjunction and disjunction, but not negation. The rules of a Boolean grammar are  of the form formula_1 where formula_2 is a nonterminal, formula_3 and formula_4, ..., formula_5, formula_6, ..., formula_7 are strings formed of symbols in formula_8 and formula_9. Informally, such a rule asserts that every string formula_10 over formula_8 that satisfies each of the syntactical conditions represented by formula_4, ..., formula_5 and none of the syntactical conditions represented by formula_6, ..., formula_7 therefore satisfies the condition defined by formula_2. There exist several formal definitions of the language generated by a Boolean grammar. They have one thing in common: if the grammar is represented as a system of language equations with union, intersection, complementation and concatenation, the  languages generated by the grammar must be the solution of this system. The semantics differ in details, some define the languages using language equations, some draw upon ideas from the field of logic programming. However, these nontrivial issues of formal definition are mostly irrelevant for practical considerations, and one can construct grammars according to the given informal semantics. The practical properties of the model are similar to those of conjunctive grammars, while the descriptional capabilities are further improved. In particular, some practically useful properties inherited from context-free grammars, such as efficient parsing algorithms, are retained, see . Boolean grammar Boolean