Disjunctive logic programs are declarative rule-based specifications in logic programming where the head, or conclusion, of a rule can contain a disjunction of multiple atoms rather than being restricted to a single atom. By permitting alternative outcomes to be expressed directly within a rule, these programs provide a natural mechanism for modeling incomplete information, uncertainty, and non-deterministic choice. Widely utilized in answer set programming under stable model semantics, disjunctive logic programs offer greater expressive power than standard normal logic programs, enabling the formalization and solving of complex computational problems that reside at higher levels of the polynomial hierarchy.