Can first order logic be defined on the domain of existing and non-existing objects? Within the First Order Logic we can make statements like this:
$\forall x : [[A(x) \wedge B(x)] \lor [\lnot D(x)]]$
Which, in plain language, means that for all $x$ the specified condition is true. If we think of $x$ as "objects", then we can say that for any "existing" object the considered condition returns true. This also means, that for any "imaginary" object (which can also be "existing" or "not-existing") for which the condition return false, we can say that this object does not exist. In other words, if object exists, the condition returns true, and if condition returns false, then the object does not exist.
Now I wonder if we can use the language of the First Order Logic to formulate the following statement (for some given "condition"): If, for an "imaginary" object, the condition returns true,  then this object is guarantied to exist. This also would mean that, if an object does not exist, the condition should always return false.
To make it more clear, we can formulate it in terms of sets.
In the first example (that I have expressed using FOL), the defined set (let's call it $C$) contains the set of real / existing objects (let's call it $R$): $R \subseteq C$. As a consequence, all the existing / real objects satisfy the condition (belong to the set $C$) and, if condition is not satisfied, then an object does not exist (does not belong to $R$).
In the second example, I want to use the language of FOL to describe a situation in which the set defined by the condition ($C$) is a subset of the real objects ($R$): $C \subseteq R$. As I have already mentioned, it would mean that any object from the set $C$ is guarantied to exist (belong to the set $R$) and if an object does not exist than it also does not belong to $C$.
The existential operator ($\exists$) unfortunately does not solve my problem since it states that overlap between the set $R$ and set $C$ is not equal to zero (which is not exactly the same as what I want to say).
 A: In first-order logic proper, this can be handled by tweaking the language a bit.

*

*We add to the language we're considering a new distinguished unary predicate symbol $Real$. We think of this as describing the collection of objects which exist.


*As usual, existential and universal quantifiers range over the whole domain, but we can bound existential quantifiers to $Real$ if we so choose as "$\exists x(Real(x)\wedge ...)$ and "$\forall x\in Real(...)$," respectively. So for example $$\mbox{Everything which exists has property $P$}$$ would be expressed as $$\forall x(Real(x)\rightarrow P(x))$$ and $$\mbox{Everything which has property $P$ exists}$$ would be expressed as $$\forall x(P(x)\rightarrow Real(x)).$$
The point is that all your distinction between "existent"/"nonexistent" objects is really doing is partitioning a broad universe (of "all objects" in some sense) into two pieces, and we can forget the fancy language of existence and just talk about such a partition.

Alternatively, we could replace first-order logic with a close relative more suited, at least philosophically, to the idea of nonexistent objects. Free logic is the standard candidate in this context. But per the above, we can translate appropriately between free logic and standard first-order logic; the distinction is one of form rather than essential expressivity.
