8 ms·
This seems too vague to me, like a lot of philosophical posts out there. > For example, if it is true that Aunt May believes that Spider-Man fights crime, then
by continuational 5y ago
This seems too vague to me, like a lot of philosophical posts out there.
> For example, if it is true that Aunt May believes that Spider-Man fights crime, then even though Spider-Man = Peter Parker, it does not follow that Aunt May believes that Peter Parker fights crime.
If you can't substitute Peter Parker for Spider-Man, then they are by definition not equal...
- ukj 5y agoThere are different kinds of "equality", beyond the one you are invoking: https://ncatlab.org/nlab/show/equality#DifferentKinds https://ncatlab.org/nlab/show/equality#DifferentKinds The most obvious example of A != A being true I can think of is the evaluation of this expression in any programming language: Time.now == Time.now
- practal 5y agoGood example why programming and logic are related, but not the same.
- ukj 5y agoYes well.. Any two objects are the same, except for their differences. Any two objects are different, except for their similarities. "Sameness" and "difference" are abstract assertions. So in saying that you are doing programming; or maybe I am doing fuzzy logic. From my perspective it seems like you are evaluating this expression: same?(Logic, Programming) -> False But a different Oracle machine might produce a different answer :)
- joshuak 5y agoThese are imperative commands to execute, as apposed to a declarative statement comparing a value to itself. You can’t switch between symbolic representations to use the meaning of one to make statements about the other because the meaning of the symbols also switch.
- ukj 5y agoSo you are telling me that I can't choose to declare that A = A is false? Telling me what I can and can't do is an imperative statement...
- joshuak 5y agoYou certainly may define your own symbology. But if you want to communicate with others you’ll need to agree on your symbology. In the common mathematical understanding A != A is defined as a false statement. In any example that one can contemplate it would become a true statement then you are replacing one of the ‘A’ symbols with something that is not ‘A’ in your mind. Which is to say you are using the wrong symbols to represent the idea you intend to communicate.
- ukj 5y agoIndeed I want to communicate with others, but I do not insist on communicating with Mathematicians in particular. I want to communicate with anybody who wants to talk to me about the nature of time. And when we converse about time I want to be able to say the obvious: now is not now. If we get more serious about this time business we might even want to formally express that: A != A If anybody insist that the above is false then they can exclude themselves from any formal or informal conversation about time on the basis of incomensurability of our paradigms
- joshuak 5y agoThe above is a false statement because if we say A is "true" then the statement becomes "true != true" which is obviously a false statement. In fact if we put anything in the place of A the results are the same. If, however, you wish to communicate the evaluation of a function such as "now()", then you would express that as two invocations of that function now() != now() or t != t' or simply A != B So simply using 'A' to mean things not exclusively 'A' is unnecessarily ambiguous. This makes it not only useless for communication between people but also makes it useless for forming any meaningful conclusions. Failure to be completely expressive about a paradigm is not itself a paradigm. Its just faulty reasoning.
- logical_proof 5y agoI think you just made an equivocation as those Time.now’s are not the same A = Time.now A != Time.now A == A Just because Time.now looks like the same symbol it is not as it is an impure function that never returns the same result.
- ukj 5y agoWe are not talking about the same computation. What you think I mean is [1]. What I actually mean is [2]. [1] pry(main)> eval("a != a") NameError: undefined local variable or method `a' for main:Object from (pry):1:in `eval' [2] pry(main)> eval("Time.now != Time.now") => true I am not assigning the function to a variable - I am lazy-evaluating it. It's not equivocation because [2] is expressed exactly the same way in English. Now is not now. It is trivially true. When I use a word, Humpty Dumpty said in rather a scornful tone, it means just what I choose it to mean — neither more nor less
- the_af 5y agoI disagree, because in both programming languages and in natural language, "now" is not a constant: it's a function that returns a different value depending on when it's called. While the syntax is "now", what you're really saying is now(Ti) for some i. So the sentence, in both natural language and most programming languages becomes: now(T0) != now(T1) Which is easier to understand, with all arguments made explicit. Now, some "clever" programming language might automatically translate this from now != now To a := now(T0) a != a Which will be surprising to the programmer in most cases (but might be what's desired in others). The important thing is that "now" is not a comstant, but a function.
- ukj 5y agoYes! "Now" is not a constant. It's a function. It's a function that takes no arguments. It's also a function that can be lazy-evaluated. f() != f() A != A You seem to be agreeing with me but your response to me starts with the English phrase "I disagree".
- deleted 5y ago[deleted]
- tgv 5y agoIn this case, that doesn't matter. What matters is if Aunt May knows or believes that Peter Parker is Spider Man. The equation "Spider-Man = Peter Parker" may be true in the example, but that doesn't mean much. Imagine that we could only think true thoughts...
- gjm11 5y agoPeter Parker = Spider-Man, but "Peter Parker" != "Spider-Man". It may or may not be true that 12345x54321 = 670592745. (I either put in the correct number there, or changed one digit in the middle at random.) Let's suppose I didn't change it, and that you haven't yet checked. Then those two things are, really truly, equal -- they are two names for the exact same number -- but you don't know that they are equal. So the _meanings_ of "12345x54321" and "670592745" are not exactly the same, even though if "=" belongs anywhere it belongs between those things. Philosophers call the thing that's the same the "extension" and the thing that's different the "intension" (not to be confused with "intention" which is an ordinary non-technical word). Sometimes you can safely substitute one thing for another whenever the extensions match -- e.g., when doing algebra. Sometimes you can't -- e.g., when talking about someone's beliefs. I am not a fan of Edward Feser and I think this article is pretty wrongheaded, but there isn't anything specifically wrong with what he says about Peter Parker and Spider-Man.
- tgflynn 5y agoMy impression of this as a programmer is that if one is modelling a system in which different people may have different beliefs then one must design the model accordingly, otherwise there will be bugs. But that doesn't mean there's anything wrong with logic itself. Whatever model you come up with is still going to be based on classical logic so at some point you still need to assume that that remains valid in order to do anything at all. And I've never heard of a case where this could fail, at least not within the finite worlds one can in practice model.
- TheOtherHobbes 5y agoSpider-Man is a subclass of Peter Parker with a different API and an added "fights_crime" method. Aunt May has not been given the documentation that explains this, which is probably an intern's fault. Metaphysically Peter Parker, Spider-Man, Aunt May, and the intern are all mocks anyway. So you can't use them for anything real. (Except maybe entertainment, distraction, and metacognition.)
- lisper 5y agoI wrote my master's thesis on this exact topic back in 1989. The answer IMHO (which is due to Bertrand Russel [1]) is that the correct rendering of "Aunt May believes that spider man fights crime" is not BELIEVES(AUNT-MAY, FIGHTS-CRIME(SPIDER-MAN)), it is EXISTS(X): BELIEVES(AUNT-MAY, FIGHTS-CRIME(X)) AND BELIEVES(AUNT-MAY, NAME-OF(X, "SPIDER-MAN")) and then you can also throw in BELIEVES(AUNT-MAY, NOT(NAME-OF(X, "PETER-PARKER"))) if you like. [1] https://en.wikipedia.org/wiki/Theory_of_descriptions https://en.wikipedia.org/wiki/Theory_of_descriptions
- gjm11 5y agoI think this is wrong, because it can happen that Aunt May believes "Spider-Man fights crime" (she's read lots of newspaper articles saying so) without there being any specific entity that she believes to be Spider-Man. That is, these two things are different: EXISTS(X): BELIEVES(AUNT-MAY, FIGHTS-CRIME(X)) AND BELIEVES(AUNT-MAY, NAME-OF(X, "SPIDER-MAN")) and BELIEVES(AUNT-MAY, EXISTS(X): FIGHTS-CRIME(X) AND NAME-OF(X, "SPIDER-MAN")), and the second seems to me like a better translation of "Aunt May believes that Spider-Man fights crime", at least for some of the states of affairs you might summarize with that sentence.
- lisper 5y agoYou are exactly right. The natural language version is ambiguous. c.f.: "Aunt May believes that Santa Claus fights crime." Philosophers actually argue about things like this, not so much for Santa Claus fighting crime, but whether e.g. "Santa Claus has a beard" is true or false.
- mannykannot 5y agoIndeed, but the issue here is not whether Peter Parker is identical with Spider-Man, but whether two beliefs are the same. The conventional way of looking at it is that talking about what people believe or feel, rather than how the world is (putting aside the complication that this is a fictional character!) creates an "intensional context", in which the substitutability of one name or noun phrase for another is not a given, even if they designate the same thing. For materialists, it is not difficult to see that the brain of Aunt May believing only "Spider-Man fights crime" would be in a different state than if she also believed "Peter Parker fights crime", as going from the former to the latter would require some physical change.
- ukj 5y ago>If you can't substitute Peter Parker for Spider-Man, then they are by definition not equal... This is too reductionist. Can you substitute Peter Parker(before the lab accident) for Spider-Man ?
- ta988 5y agoNope, and that's why many logical systems are talking about what is at a given time and fail in practice. There are logical systems that take time into account to solve those issues (look at something called referent tracking).
- ukj 5y agoI am aware ;) The question was calculated. It's obvious that you can't substitute Peter Parker (before the accident) for Spider-man. The Mathematical idea of equality-as-substitution ignores time. Which is why I called it "reductionist" https://en.wikipedia.org/wiki/Becoming_(philosophy) https://en.wikipedia.org/wiki/Becoming_(philosophy)
- ta988 5y agoMathematics have other ways to talk about equivalence than just equality that allow to handle such cases though.
- ukj 5y agoYeah, but there's an epistemic/cultural issue at play. There's an entire thread below where Mathematicians are aggressively objecting to me demonstrating some of those alternative notions to the point of calling the realizations of my designs "wrong" even though the reification is equivalent to the design. But in the extreme case you can also construct universes which only speak of inequalities (total order) as a rejection of the identity axiom. In that universe Peter Parker and Spider Man are different entities, and so what you can and can't say about them is entirely down to judgment. The most important question is WHY do you want to say anything about anything and who do you want to say it to? It's difficult to encode any information in language without knowing who is going to be decoding it.