In Metamath, definitions are just axioms with a certain form, asserting the biconditional of two propositions (where one side involves a new syntax construction). In
set.mm, exists is defined as follows:
wex $a wff E. x ph $.
df-ex $a |- ( E. x ph <-> -. A. x -. ph )
The first axiom states that "E. x ph" is a valid wff expression whenever x is a set variable and ph is a wff expression. (This is called a "syntax axiom".) The second axiom is the "definition", and asserts that the wff "E. x ph <-> -. A. x -. ph" is provable, where "<->" has its usual meaning as the biconditional propositional connective. (In fact, even the biconditional is a definition, but we can't use it to introduce itself - you might find df-bi interesting to see how we circumvent this.) If we didn't have the second axiom, "E. x ph" would still be usable where wffs are expected, we just wouldn't know anything about its "value".
The critical difference between NF and F/ has to do with how they handle equivalent propositions. NF is not closed under equivalence of expressions, but F/ is. That is, |- ( ph <-> ps ) implies |- ( F/ x ph <-> F/ x ps ) but not |- ( NF x ph <-> NF x ps ). If we had the latter, we could deduce from |- ( x = x <-> y = y ) to |- ( NF x x = x <-> NF x y = y ), show that x is not free in y = y, and thus deduce that x is not free in x = x. This is exactly where F/ diverges from "not free" in the conventional sense - we are comfortable asserting |- F/ x x = x because the dependence on x is inessential, since we can swap it out for an equivalent proposition that doesn't have an x in it.
If we want to say that we are allowed to deduce |- NF x E. x ph from |- NF x -. A. x -. ph, because this is the "definition" of E., but not allow transferring |- NF x y = y to |- NF x x = x, we need a way of distinguishing these two cases. One way to do so is to introduce a new primitive operation "<->df", which asserts that this is a definitional equality, not merely an equivalence of expressions. (This is a very common technique in intentional type theory.) It would have the following axioms:
|- ( ph <->df ps ) => |- ( ph <-> ps )
|- ( ph <->df ps ) => |- NF x ps => NF x ph
In particular, <->df is not symmetric, and there is no way to prove a definitional equality, so the only definitional equalities will be coming from the axioms, and you can only deduce the not-free constructors from definiens to definiendum.
You might also notice that $d x ph is a syntactic constraint, not a propositional function, and you may wonder if the claims I have made for NF cannot also be applied for $d. Why not have a provable assertion |- DV x ph or |- DV x y which has the same meaning as $d x ph or $d x y? We would need to introduce a lot of axioms, one for every syntax constructor, saying something like
|- DV x y => |- DV x ph => DV x E. y ph
but it could be done. As a matter of fact, for two set variables DV x y turns out to be a propositional function, and is equivalent to the wff "-. A. x x = y", which you will sometimes find referred to as a "distinctor".
Norm investigated exactly this possibility a while back, and he ran into problems with the buildup of distinctor assumptions. I have a different way to phrase the problem. There is a rule in Metamath, built right into the foundations, that says that for any finite collection of variables, and for any type, there is a variable of that type that is ($d) distinct from all of them. This implies that the supply of object variables that the metavariables range over is infinite, which accords with most presentations of logic. (The actual place where this rule is invoked is the fact that any additional variables introduced in a proof (dummy variables), together with any $d pairs they participate in, are forgotten outside the confines of that proof.) Without this rule, one is saddled with a potential paucity of variables in the object language - the theorems being asserted look like "if there are at least five different variables v_0,...,v_4, then A. x A. y ph implies A. y A. x ph" or some such.
Unfortunately, there is a sense in which Norm's problem is provably impossible to overcome. If the language had no $d's, then all substitutions would be valid. If |- ph(x) has a proof with intermediate steps mentioning the variable y, then by substituting y for x uniformly throughout the proof we get a proof of |- ph(x) which does not mention y, so all dummy variables are eliminable, and no proof can depend on them essentially. Since we know that some theorems cannot be proven without dummy variables (this is due to Andreka IIRC), this hypothetical system cannot suffice for FOL.
Mario