A(x) is a predicate logic formula. A is a property (predicate), x is a variable. ∃!A(x) would mean that exactly one x exists which has the property A.
First thing that comes up is: ∃x( A(x) ∧ ∀y( A(y) → (x=y) ),
where y is a variable, but my assignment forbids the use of functional symbols such as =.
How do I rewrite this without using any functional symbols? Only the use of →, ⇔, ¬, ∨, ∧, ∃, ∀, variables, formula A(x) and brackets are allowed.
My idea was to simply write this: ∃x( A(x) ∧ ∀y( A(y) → (A(x)⇔A(y)) )
not sure if it's correct, though.
Thank you in advance.
By the way, the question is not a duplicate, as I'm trying to rewrite this without the use of =.
You could possibly write it out in second order logic, encoding the following:
$$\forall B~(|A| \ge 0) \land ((A \cup B = \emptyset) \lor (A \subseteq B))$$
If $A$ is empty, then $|A| \ge 0$ fails.
If $|A| = 1$ then $\forall B$ can be partitioned into two cases,
If $|A| > 1$, then presumably there is a $B$ where $|A \cup B| = 1$ and $A \not \subseteq B$, such as $A = \{X, Y\}$ and $B = \{X\}$. So the proposition doesn't hold.
So the proposition only holds when $|A| = 1$, and always holds when $|A| = 1$. Encoded it is:
$$\exists ! x~A(x) \equiv \forall B()~\bigg(\exists y ~ A(y) \land \bigg(\bigg(\forall z ~ \lnot A(z) \lor \lnot B(z)\bigg) \lor \bigg(\forall w ~ A(w) \implies B(w)\bigg)\bigg)\bigg)$$