Exercise logic.propositional.dnf
Description
Proposition to DNF
Derivation
(~r /\ ~(~(q /\ ~q) /\ ~(~q /\ p)) /\ ~~(~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T)) || (~~~~~~q /\ ~(~(q /\ ~q) /\ ~(~q /\ p)) /\ ~~(~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T))
⇒ logic.propositional.compland(~r /\ ~(~F /\ ~(~q /\ p)) /\ ~~(~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T)) || (~~~~~~q /\ ~(~(q /\ ~q) /\ ~(~q /\ p)) /\ ~~(~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T))
⇒ logic.propositional.compland(~r /\ ~(~F /\ ~(~q /\ p)) /\ ~~(~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T)) || (~~~~~~q /\ ~(~F /\ ~(~q /\ p)) /\ ~~(~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T))
⇒ logic.propositional.notfalse(~r /\ ~(T /\ ~(~q /\ p)) /\ ~~(~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T)) || (~~~~~~q /\ ~(~F /\ ~(~q /\ p)) /\ ~~(~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T))
⇒ logic.propositional.notfalse(~r /\ ~(T /\ ~(~q /\ p)) /\ ~~(~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T)) || (~~~~~~q /\ ~(T /\ ~(~q /\ p)) /\ ~~(~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T))
⇒ logic.propositional.notnot(~r /\ ~(T /\ ~(~q /\ p)) /\ ~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T) || (~~~~~~q /\ ~(T /\ ~(~q /\ p)) /\ ~~(~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T))
⇒ logic.propositional.notnot(~r /\ ~(T /\ ~(~q /\ p)) /\ ~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T) || (~~~~q /\ ~(T /\ ~(~q /\ p)) /\ ~~(~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T))
⇒ logic.propositional.notnot(~r /\ ~(T /\ ~(~q /\ p)) /\ ~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T) || (~~q /\ ~(T /\ ~(~q /\ p)) /\ ~~(~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T))
⇒ logic.propositional.notnot(~r /\ ~(T /\ ~(~q /\ p)) /\ ~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T) || (q /\ ~(T /\ ~(~q /\ p)) /\ ~~(~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T))
⇒ logic.propositional.notnot(~r /\ ~(T /\ ~(~q /\ p)) /\ ~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T) || (q /\ ~(T /\ ~(~q /\ p)) /\ ~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T)
⇒ logic.propositional.truezeroand(~r /\ ~(T /\ ~(~q /\ p)) /\ ~(~(q /\ ~q) /\ ~(~q /\ p))) || (q /\ ~(T /\ ~(~q /\ p)) /\ ~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T)
⇒ logic.propositional.compland(~r /\ ~(T /\ ~(~q /\ p)) /\ ~(~F /\ ~(~q /\ p))) || (q /\ ~(T /\ ~(~q /\ p)) /\ ~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T)
⇒ logic.propositional.notfalse(~r /\ ~(T /\ ~(~q /\ p)) /\ ~(T /\ ~(~q /\ p))) || (q /\ ~(T /\ ~(~q /\ p)) /\ ~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T)
⇒ logic.propositional.idempand(~r /\ ~(T /\ ~(~q /\ p))) || (q /\ ~(T /\ ~(~q /\ p)) /\ ~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T)
⇒ logic.propositional.truezeroand(~r /\ ~~(~q /\ p)) || (q /\ ~(T /\ ~(~q /\ p)) /\ ~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T)
⇒ logic.propositional.notnot(~r /\ ~q /\ p) || (q /\ ~(T /\ ~(~q /\ p)) /\ ~(~(q /\ ~q) /\ ~(~q /\ p)) /\ T)
⇒ logic.propositional.truezeroand(~r /\ ~q /\ p) || (q /\ ~(T /\ ~(~q /\ p)) /\ ~(~(q /\ ~q) /\ ~(~q /\ p)))
⇒ logic.propositional.compland(~r /\ ~q /\ p) || (q /\ ~(T /\ ~(~q /\ p)) /\ ~(~F /\ ~(~q /\ p)))
⇒ logic.propositional.notfalse(~r /\ ~q /\ p) || (q /\ ~(T /\ ~(~q /\ p)) /\ ~(T /\ ~(~q /\ p)))
⇒ logic.propositional.idempand(~r /\ ~q /\ p) || (q /\ ~(T /\ ~(~q /\ p)))
⇒ logic.propositional.truezeroand(~r /\ ~q /\ p) || (q /\ ~~(~q /\ p))
⇒ logic.propositional.notnot(~r /\ ~q /\ p) || (q /\ ~q /\ p)
⇒ logic.propositional.compland(~r /\ ~q /\ p) || (F /\ p)
⇒ logic.propositional.falsezeroand(~r /\ ~q /\ p) || F
⇒ logic.propositional.falsezeroor~r /\ ~q /\ p