Let’s see how it works. We try to define the Russell predicate R thusly:
R(X) = not(X(X))
...and fail. This definition is incomplete. The value of R isn’t defined on all predicates, because we haven’t specified R(R) and can’t compute it from the definition. If we additionally specify R(R) to be True or False, the paradox goes away.
How is it that the paradox “goes away”? If you “additionally specify R(R) to be True or False”, don’t you just go down one or the other of the two cases in Russell’s paradox?
Suppose we decide to specify that R(R) is true. Then, by your definition, not(R(R)) is true. That means that R(R) is false, contrary to our specification. Similarly, if we instead specify that R(R) is false, we are led to conclude that R(R) is true, again contradicting our specification.
The conclusion is that we can’t specify any truth value for R(R). Either truth value leads to a contradiction, so R(R) must be left undefined. Is that what you mean to say?
Suppose we decide to specify that R(R) is true. Then, by your definition not(R(R)) is true.
No, in this case R(X) = not(X(X)) for all X distinct from R, and additionally R(R) is true. This is a perfectly fine, completely defined, non-self-contradictory predicate.
Okay, I see. I see nothing obviously contradictory with this.
From a technical standpoint, the hard part would be to give a useful criterion for when a seemingly-well-formed string does or does not completely define a predicate. The string not(X(X)) seems to be well-formed, but you’re saying that actually it’s just a fragment of a predicate, because you need to add “for X not equal to this predicate”, and then give an addition clause about whether this predicate satisfies itself, to have a completely-defined predicate.
I guess that this was the sort of work that was done in these non-foundational systems that people are talking about.
I guess that this was the sort of work that was done in these non-foundational systems that people are talking about.
No, AFA and similar systems are different. They have no “set of all sets” and still make you construct sets up from their parts, but they give you more parts to play with: e.g. explicitly convert a directed graph with cycles into a set that contains itself.
I didn’t mean that what you propose to do is commensurate with those systems. I just meant that those systems might have addressed the technical issue that I pointed out, but it’s not yet clear to me how you address this issue.
How is it that the paradox “goes away”? If you “additionally specify R(R) to be True or False”, don’t you just go down one or the other of the two cases in Russell’s paradox?
Suppose we decide to specify that R(R) is true. Then, by your definition, not(R(R)) is true. That means that R(R) is false, contrary to our specification. Similarly, if we instead specify that R(R) is false, we are led to conclude that R(R) is true, again contradicting our specification.
The conclusion is that we can’t specify any truth value for R(R). Either truth value leads to a contradiction, so R(R) must be left undefined. Is that what you mean to say?
No, in this case R(X) = not(X(X)) for all X distinct from R, and additionally R(R) is true. This is a perfectly fine, completely defined, non-self-contradictory predicate.
Why is R(X) = not(X(X)) only for R =/= X? In Russell’s version, X should vary over all predicates/sets, meaning when instance X with R, we get
R(R) = ¬R(R)
as per the paradox.
Not sure what your objection is. I introduced the notion of “incompletely defined predicate” to do away with Russell’s version of the predicate.
Okay, I see. I see nothing obviously contradictory with this.
From a technical standpoint, the hard part would be to give a useful criterion for when a seemingly-well-formed string does or does not completely define a predicate. The string not(X(X)) seems to be well-formed, but you’re saying that actually it’s just a fragment of a predicate, because you need to add “for X not equal to this predicate”, and then give an addition clause about whether this predicate satisfies itself, to have a completely-defined predicate.
I guess that this was the sort of work that was done in these non-foundational systems that people are talking about.
No, AFA and similar systems are different. They have no “set of all sets” and still make you construct sets up from their parts, but they give you more parts to play with: e.g. explicitly convert a directed graph with cycles into a set that contains itself.
I didn’t mean that what you propose to do is commensurate with those systems. I just meant that those systems might have addressed the technical issue that I pointed out, but it’s not yet clear to me how you address this issue.