- #1
honestrosewater
Gold Member
- 2,142
- 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.
[tex]\exists ! x (Px) \equiv (\exists x (Px)) \wedge (\forall x \forall y ((Px \wedge Py) \implies x=y))[/tex]
Negate the whole statement twice [tex](\neg (\neg p) \equiv p)[/tex]:
[tex]\neg (\neg (\exists x (Px)) \wedge (\forall x \forall y ((Px \wedge Py) \implies x=y))))[/tex]
Distribute the inner negation [tex](\neg (p \wedge q) \equiv \neg p \vee \neg q)[/tex]:
[tex]\neg (\neg (\exists x (Px)) \vee \neg(\forall x \forall y ((Px \wedge Py) \implies x=y)))[/tex]
Substitute the negated existential [tex](\neg (\exists x (Px)) \equiv \forall x (\neg Px))[/tex]:
[tex]\neg (\forall x (\neg Px) \vee \neg(\forall x \forall y ((Px \wedge Py) \implies x=y)))[/tex]
For example, in writing the following, I spent a ridiculous amount of time double-checking my parentheses.
[tex]\exists ! x (Px) \equiv (\exists x (Px)) \wedge (\forall x \forall y ((Px \wedge Py) \implies x=y))[/tex]
Negate the whole statement twice [tex](\neg (\neg p) \equiv p)[/tex]:
[tex]\neg (\neg (\exists x (Px)) \wedge (\forall x \forall y ((Px \wedge Py) \implies x=y))))[/tex]
Distribute the inner negation [tex](\neg (p \wedge q) \equiv \neg p \vee \neg q)[/tex]:
[tex]\neg (\neg (\exists x (Px)) \vee \neg(\forall x \forall y ((Px \wedge Py) \implies x=y)))[/tex]
Substitute the negated existential [tex](\neg (\exists x (Px)) \equiv \forall x (\neg Px))[/tex]:
[tex]\neg (\forall x (\neg Px) \vee \neg(\forall x \forall y ((Px \wedge Py) \implies x=y)))[/tex]