honestrosewater
Gold Member
- 2,133
- 6
I'm trying to find the clearest, most efficient notation for predicate logic. I especially want to avoid being bogged down in parentheses or other grouping symbols, but, of course, not at the expense of clarity or consistency. Has anyone found a happy medium?
For example, in writing the following, I spent a ridiculous amount of time double-checking my parentheses.
\exists ! x (Px) \equiv (\exists x (Px)) \wedge (\forall x \forall y ((Px \wedge Py) \implies x=y))
Negate the whole statement twice (\neg (\neg p) \equiv p):
\neg (\neg (\exists x (Px)) \wedge (\forall x \forall y ((Px \wedge Py) \implies x=y))))
Distribute the inner negation (\neg (p \wedge q) \equiv \neg p \vee \neg q):
\neg (\neg (\exists x (Px)) \vee \neg(\forall x \forall y ((Px \wedge Py) \implies x=y)))
Substitute the negated existential (\neg (\exists x (Px)) \equiv \forall x (\neg Px)):
\neg (\forall x (\neg Px) \vee \neg(\forall x \forall y ((Px \wedge Py) \implies x=y)))
For example, in writing the following, I spent a ridiculous amount of time double-checking my parentheses.
\exists ! x (Px) \equiv (\exists x (Px)) \wedge (\forall x \forall y ((Px \wedge Py) \implies x=y))
Negate the whole statement twice (\neg (\neg p) \equiv p):
\neg (\neg (\exists x (Px)) \wedge (\forall x \forall y ((Px \wedge Py) \implies x=y))))
Distribute the inner negation (\neg (p \wedge q) \equiv \neg p \vee \neg q):
\neg (\neg (\exists x (Px)) \vee \neg(\forall x \forall y ((Px \wedge Py) \implies x=y)))
Substitute the negated existential (\neg (\exists x (Px)) \equiv \forall x (\neg Px)):
\neg (\forall x (\neg Px) \vee \neg(\forall x \forall y ((Px \wedge Py) \implies x=y)))