Live data from Hacker News

The metaphysical presuppositions of formal logic

edwardfeser.blogspot.com

51–60 of 114 posts

Re: The metaphysical presuppositions of formal logic

#51
post #49
post #47

Earlier quoted context omitted.

I don't know Ruby. In your example, if you're comparing the function itself, it is true that f == f But it's not true if that's function invocation and there are implicit arguments. Applying a function and comparing its definition are of course different. The evaluation strategy must come after we agree whether we're comparing values after invocation or definitions. If it's invocations, the evaluation strategy you pi…

What does it mean to compare a function to itself without evaluating it?

There are many ways of comparing functions.

A straightforward way can be to simply compare the text of the functions, as written in your programming language of choice, in this case Ruby.

Just take the text of both functions, do a diff, and if it says they are the same, they are the same.

Another comparison could be more abstract, since we know there's more than one way to accomplish the same with a programming language: two functions are the same if, given the same input, they produce the same output. You can either prove this by extension, if the number of possible inputs is finite and small, or you can prove it logically. With some languages which enforce purity using types, you can even show two functions are the same just by looking at their signatures, no need to evaluate anything! (this is one advantage of some statically typed languages, by the way!)

> There are no implicit arguments to the function I have in mind. Passing an argument to the function I have in mind is an error.

Yes, there are implicit arguments. You don't see them because they are implicit! A function that returns the moment in time, "now", of course depends on an implicit argument: the current time! How else is it going to know the moment of "now", otherwise? Think about how such a function is implemented.

Re: The metaphysical presuppositions of formal logic

#52
post #48
post #46

Earlier quoted context omitted.

I disagree, that's the thing: "now" is a function that takes one implicit argument: time. So "now" is a trickery to hide the fact you're really saying "now(Ti)", for varying i . I'm not tripping over syntax, but I think you are: You think you're saying A != A When you're really saying A1 != A2 (Or rather now(t0) != now(t1) ) And of course the second form is unsurprising.

You are talking about a different function. The function I am talking about doesn't take any arguments. [1] pry(main)> Time.now(1) ArgumentError: wrong number of arguments (given 1, expected 0)

It doesn't take an explicit argument, but time is definitely an implicit argument of your function; how else do you think the function is implemented?

Re: The metaphysical presuppositions of formal logic

#53
Edward Feser doesn’t seem to me to be genuinely interested in challenging his own presuppositions through metaphysics or philosophy, or in communicating the work of others to a wider audience. If the posts that appear on this site are anything to go by, he seems to specialize in a specious species of polemic and obfuscation designed solely to justify and promulgate his political and religious views. If it lends a sense of purpose to his life, makes him a living or gives him a feeling of self-importance/bolsters his worth among his peers, who am I to criticize? Perhaps it is actually a deep satire with some ulterior motive. As an agnostic, one can only hope that a capital punishment for more catholic thinkers is never re-introduced. https://en.m.wikipedia.org/wiki/Edward_Feser

Re: The metaphysical presuppositions of formal logic

#54
post #9

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...

There are different kinds of "equality", beyond the one you are invoking: 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

[deleted]

Re: The metaphysical presuppositions of formal logic

#55
post #52
post #48

Earlier quoted context omitted.

You are talking about a different function. The function I am talking about doesn't take any arguments. [1] pry(main)> Time.now(1) ArgumentError: wrong number of arguments (given 1, expected 0)

It doesn't take an explicit argument, but time is definitely an implicit argument of your function; how else do you think the function is implemented?

We are talking about function declaration not implementation, right?

The expression A = A can be trivially re-written in another notation as equal(A,A). The reason you don't question the implementation of the equal() function is because it's declared as being true however it's implemented.

So, I declare f() != f() as being true. I also declare that f() takes no arguments. All I am doing is translating (transpiling?) English into Ruby.

"Now is not now" => "Time.now != Time.now"

Talking about function arguments is not even in point. What's the argument to now() in English?

Re: The metaphysical presuppositions of formal logic

#56

Edward Feser doesn’t seem to me to be genuinely interested in challenging his own presuppositions through metaphysics or philosophy, or in communicating the work of others to a wider audience. If the posts that appear on this site are anything to go by, he seems to specialize in a specious species of polemic and obfuscation designed solely to justify and promulgate his political and religious views. If it lends a sen…

So you’ve just ad-hominemed him in a suspiciously suspect subscribed text. And by sheer coincidence, catholicism. Great.

Re: The metaphysical presuppositions of formal logic

#57
post #48
post #46

Earlier quoted context omitted.

I disagree, that's the thing: "now" is a function that takes one implicit argument: time. So "now" is a trickery to hide the fact you're really saying "now(Ti)", for varying i . I'm not tripping over syntax, but I think you are: You think you're saying A != A When you're really saying A1 != A2 (Or rather now(t0) != now(t1) ) And of course the second form is unsurprising.

You are talking about a different function. The function I am talking about doesn't take any arguments. [1] pry(main)> Time.now(1) ArgumentError: wrong number of arguments (given 1, expected 0)

> The function I am talking about doesn't take any arguments.

All impure functions have an implicit dependency on (some subset of) the state of the universe when they execute; in mathematics and logic something with this kind of dependency is typically noted by parameterizing it by time when the actual precise nature of the dependency is outside of the scope of the immediate analysis (because a dependency on the state of the universe at the time of execution is equivalent to a dependency on the time of execution with a hidden function mapping time to state of the universe.)

That impure functions methods are in many programming languages syntactically not distinguished from pure ones does not change the logic here.

That Time.now(at time t0) is distinct from Time.now(at time t1) is... unsurprising, and not an example of A != A in logical terms.

Re: The metaphysical presuppositions of formal logic

#58

Category theory would help them. Yoneda's lemma tells us that elements of collections are uniquely isomorphic to the transformations which create those elements. This explains the butterfly effect where seemingly-unrelated parts of logical statements are causally connected. This post would have had bite 70 years ago, before we had "formally formal" theories of categories which can subsume any possible set theory. But…

Isn't that a bit recursive? Don't you use formal logic in creating category theory? Then using category theory to create formal logic is circular.

Sets are 0-categories, so this critique would also suggest that 0-category theories, set theories, are circular too. But we actually place formal logic before sets, and then use sets to reflectively study formal logic without infinite regress.

This is a version of the general pattern that there are no informal justifications for formal reasoning. Once a person tastes formality, then they can judge for themselves whether to adopt it, but there's no self-sustaining proof statement.

Re: The metaphysical presuppositions of formal logic

#59
It's difficult to engage with the content of the article head-on because it's pretty dense with concepts, but it made me think of two points -

First, when trying to put together a chain of truth-functional syllogisms, if-then logic doesn't really suit the requirements. For propagating boolean truth through the network, digital AND gates are a better fit. If two propositions are false, you really do want the conclusion to be false, not true. If one of the propositions are false, you want the conclusion to be false, regardless of whether the first or second propositions are false. Also, in this case, truth is more an intuitionist concept than a classical concept; where the truth value represents provability - false means "it is false that this conclusion is proven true", not "the semantic meaning of this conclusion is false".

Second, I'm not too familiar with the differences of materialist logic, but it seems that the goal of trying to nail down the semantic meaning of every statement is a goal that will never be met. It seems a more tractable goal to have your machinery reflect the form-validity rather than the content-validity - fully judging the semantic content is something that ultimately is better judged by the people experiencing the content.

Re: The metaphysical presuppositions of formal logic

#60

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...

Spider-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.)

I think I'm about to vomit
Post reply on HN