A propositional directed acyclic graph (PDAG) is a
data structure
In computer science, a data structure is a data organization, management, and storage format that is usually chosen for Efficiency, efficient Data access, access to data. More precisely, a data structure is a collection of data values, the rel ...
that is used to represent a
Boolean function
In mathematics, a Boolean function is a function whose arguments and result assume values from a two-element set (usually , or ). Alternative names are switching function, used especially in older computer science literature, and truth function ...
. A Boolean function can be represented as a rooted,
directed acyclic graph
In mathematics, particularly graph theory, and computer science, a directed acyclic graph (DAG) is a directed graph with no directed cycles. That is, it consists of vertices and edges (also called ''arcs''), with each edge directed from one v ...
of the following form:
* Leaves are labeled with
(true),
(false), or a Boolean variable.
* Non-leaves are
(logical and),
(logical or) and
(logical not).
*
- and
-nodes have at least one child.
*
-nodes have exactly one child.
Leaves labeled with
(
) represent the constant Boolean function which always evaluates to 1 (0). A leaf labeled with a Boolean variable
is interpreted as the assignment
, i.e. it represents the Boolean function which evaluates to 1 if and only if
. The Boolean function represented by a
-node is the one that evaluates to 1, if and only if the Boolean function of all its children evaluate to 1. Similarly, a
-node represents the Boolean function that evaluates to 1, if and only if the Boolean function of at least one child evaluates to 1. Finally, a
-node represents the complementary Boolean function its child, i.e. the one that evaluates to 1, if and only if the Boolean function of its child evaluates to 0.
PDAG, BDD, and NNF
Every
binary decision diagram (BDD) and every
negation normal form (NNF) are also a PDAG with some particular properties. The following pictures represent the Boolean function
:
{, align="center"
, -
,

,

,
See also
*
Data structure
In computer science, a data structure is a data organization, management, and storage format that is usually chosen for Efficiency, efficient Data access, access to data. More precisely, a data structure is a collection of data values, the rel ...
*
Boolean satisfiability problem
In logic and computer science, the Boolean satisfiability problem (sometimes called propositional satisfiability problem and abbreviated SATISFIABILITY, SAT or B-SAT) is the problem of determining if there exists an interpretation that satisfies ...
*
Proposition
In logic and linguistics, a proposition is the meaning of a declarative sentence. In philosophy, "meaning" is understood to be a non-linguistic entity which is shared by all sentences with the same meaning. Equivalently, a proposition is the no ...
References
* M. Wachter & R. Haenni, "Propositional DAGs: a New Graph-Based Language for Representing Boolean Functions", KR'06, 10th International Conference on Principles of Knowledge Representation and Reasoning, Lake District, UK, 2006.
* M. Wachter & R. Haenni, "Probabilistic Equivalence Checking with Propositional DAGs", Technical Report iam-2006-001, Institute of Computer Science and Applied Mathematics, University of Bern, Switzerland, 2006.
* M. Wachter, R. Haenni & J. Jonczy, "Reliability and Diagnostics of Modular Systems: a New Probabilistic Approach", DX'06, 18th International Workshop on Principles of Diagnosis, PeƱaranda de Duero, Burgos, Spain, 2006.
Graph data structures
Directed graphs
Boolean algebra