You're reading the public-facing archive of the Category Theory Zulip server.
To join the server you need an invite. Anybody can get an invite by contacting Matteo Capucci at name dot surname at gmail dot com.
For all things related to this archive refer to the same person.
In another thread, John Baez gave this proof:
John Baez said:
is true if and only if implies . Suppose . Then is always false. A false statement implies anything, so in this case implies for any set . Thus for any set .
I was hoping to try and understand it a little better in this thread...hopefully learning a little bit about logic in the process.
It starts off by saying " is true". I recently learned about the concept of a "proposition", which to my understanding is roughly something we can try to prove, or can assign a truth value to. Since we are assigning a truth value, maybe we have a proposition here: ?
Except, it seems like this is impossible to prove (or disprove) as we have not specified what and are yet (besides being sets). So perhaps is not a proposition?
Instead, is implicitly a "propositional function"? By propositional function, I believe is meant a function that maps elements of a set to propositions (is this related to something called a "predicate"?). In this case, I would worry about what the domain of this function is, as the collection of all (pairs of) sets is not a set, as far as I understand it.
Anyways, any clarification so far would be much appreciated!
Hey David, something that might help with clarifying this is that we are setting up to prove the statement only in the case of . That's the rules of the game we are playing right now with proving the statement -- we are not proving the general form of but rather only . In that way, we avoid Russell's paradox which is what I think you may have been alluding to.
Jacob Zelko said:
Hey David, something that might help with clarifying this is that we are setting up to prove the statement only in the case of . That's the rules of the game we are playing right now with proving the statement -- we are not proving the general form of but rather only . In that way, we avoid Russell's paradox which is what I think you may have been alluding to.
I was wanting to work up to considering this statement: is true if and only if implies . I believe this statement is true for any sets and .
I guess I get a little confused by talking about how is true for some choices of and and not for others, and was trying to think how that might be formalized. I was wondering if one could consider a function that takes in choices for and and then tells us if is true... but I'm not sure if the domain of this function makes sense!
I suppose I'm trying to understand truth tables a little better. Googling "truth table implication" gives us images like this:
implication truth table
This looks to me like and might sometimes be true and sometimes be false, corresponding to different rows of the table here... and I'm wondering if that means that and are both functions that spit out truth values. (e.g. " has four legs" is true at ="a tiger" and is false at ="an ostrich").
Or maybe I'm just overcomplicating things here and this truth table is only meant to be applied to statements having a fixed truth value? If so, I'm curious how to talk about implication in the context of statements about variables, which can have a varying truth value depending on the value of the variable.
I hope that at least partially clarifies the nature of my confusion!
David Egolf said:
this truth table is only meant to be applied to statements having a fixed truth value?
Yes, that's the goal of this table.
David Egolf said:
If so, I'm curious how to talk about implication in the context of statements about variables, which can have a varying truth value depending on the value of the variable.
If and are statements about variables which can be either true or false then you can say that , in English "A logically entails B" if for every truth values of we find that has the truth value using this table.
thus means "each time A is true, then B is true".
When we say that implies in mathematics, it is almost always in the sense . But mathematicians often write to signify this because we don't want to go into formal logic and it's customary to do this.
is a proposition provided that and are sets. The context should make it clear what and refer to. Maybe they are variables, maybe they are sets with some fixed definitions. Or maybe they are sets defined in terms of some other variables.
From context, " is true if and only if implies " really means "For all sets and , ..." so here and are variables.
If you like, and aren't deterred by size issues, you can introduce "the function that sends two sets , to the proposition ". But I think it's more confusing than helpful to try to understand itself as this function.
@David Egolf - since mathematical logic of a traditional sort was my first love, I usually tend to think of my proofs as things that could be formalized in first-order logic, also known as predicate logic. This is a widely used framework for making math rigorous. It was developed by people like Boole and Peirce and Frege and Peano and Russell and Whitehead and Hilbert and Bernays and Goedel.
A lot of people here are experts in more modern approaches, but first-order logic is definitely worth knowing, because from 1920 to 2000, and probably even today, most logicians will instantly resort to it if you ask questions like "what sort of thing is ""?" It's a noble tradition and an excellent background for newer things like category theory and type theory and homotopy type theory. These newer things often rebel against classical first-order logic in various ways, but I think it's hard to understand these newer things without understanding what they're rebelling against!
If you read the linked article on first-order logic you'll learn about technical terms like 'variables', 'functions', 'terms', 'predicates', 'formulas', and so on.
In this setup, X and Y are variables, is a binary predicate, and is a formula with 2 free variables, and .
Something like " if and only if implies " is a more complicated formula, and it's an informal way of saying
This is again a formula with 2 free variables, and . But I was implicitly claiming it's true for all and , i.e.
This is a formula with no free variables, also known as a "sentence".
This sentence could be an axiom of set theory in some version of set theory phrased in first-order logic. In any event, few people doing set theory in first-order logic would be upset by you asserting this sentence.
You could look up the ZFC axioms in a book on mathematical to see some widely used axioms for set theory, but most (classical) mathematicians just have a sense for what kinds of sentences you can assert about and as part of a proof, without anyone objecting. Many of them would call this formula
the "definition" of .
I'll poke my nose in for just a bit. John just said that the last formula he wrote down can be regarded as the definition of the subset relation. One important thing to realize about definitions is that they are always declaration of "if and only if" type. For example, if a set is empty, then by definition [of empty set], has no elements. And conversely, if a set has no elements, then by definition is empty.
This can be a very convenient thing to remember when first learning how to construct proofs. In mathematics, we refer to and refer back to definitions all the time, even when we don't explicitly say so. Students who are just learning the art of constructing proofs should get into the habit of, early and often, mentioning when a definition is being invoked ("This means, by definition of blank, that..."), to make clear to themselves the overwhelmingly important role they play in mathematics and mathematical proof.
The formal content of mathematics pretty much boils down to definitions, axioms, statements of propositions (I'm including theorems, lemmas, corollaries, etc.), and proofs of propositions.
Another word that's come up here is "variable". Deploying variables is another thing that students need to learn to do, but it's usually something that's not taught too well. Roughly speaking, you could think of a variable as an "indefinite pronoun". Good practice is, whenever you introduce a variable in the course of a proof, say what type of thing refers to. Is supposed to be a real number, or an integer, or a subset of some other set, or what? All mathematics takes place within contexts, and declaring which context an introduced variable belongs to greatly aids clarity. (Mathematicians don't follow this practice as much as they should!)
Variables are also intimately tied with logical quantification, which has to do with correct handling of the phrases "for all" and "there exists". After you learn the bedrock of how propositional logic works, which governs the use of words "and", "or", "not", "implies" -- something that is typically taught by referring to truth tables, and something most students experience as relatively easy -- the next step is seeing how all this interacts with logical quantifiers. This takes a little more time for students than the propositional calculus.
An instructive exercise to cut your teeth on is to go through, in fine-grained detail, something like this. "Let be subsets of a domain . Prove that ." Everything I've mentioned above comes into play: the definition of equality of sets, which is defined in terms of subset inclusion. This in turn involves universal quantification, which in turn involves introducing a variable and knowing how to deal with it correctly. Also, the definitions of union and intersection of sets, and the way in which the proof systematically reduces the proposition down to an analogous "distributive law" in propositional logic.
Since you may be learning all this stuff on your own, you'll need to get hold of a textbook. The late great Gian-Carlo Rota once upheld the Schaum's Outline Series of mathematical texts. These have hundreds and hundreds of worked problems and they will get you into a subject fast. And they are cheap; look for used copies online. The only way to learn how to do proofs is to do a ton of them, but at least by the looks of it, there are a lot of people here willing to help.
Jean-Baptiste Vienney said:
If and are statements about variables which can be either true or false then you can say that , in English "A logically entails B" if for every truth values of we find that has the truth value using this table.
This is helpful! I've seen that symbol before, but I've never been clear on exactly what it means.
If we write the truth value of for a specific value of as and similarly for , then if I understand you correctly, I think we have .
This reminds me a little how we can define addition of functions point by point: . Although this seems a bit different, as still takes on a variety of values, while I think has a fixed value of either true or false once we pick and .
John Baez said:
If you read the linked article on first-order logic you'll learn about technical terms like 'variables', 'functions', 'terms', 'predicates', 'formulas', and so on.
Thanks for linking that article. I'll take a look and hopefully it will help make this all a bit clearer.
Todd Trimble said:
Since you may be learning all this stuff on your own, you'll need to get hold of a textbook. The late great Gian-Carlo Rota once upheld the Schaum's Outline Series of mathematical texts. These have hundreds and hundreds of worked problems and they will get you into a subject fast. And they are cheap; look for used copies online. The only way to learn how to do proofs is to do a ton of them, but at least by the looks of it, there are a lot of people here willing to help.
Thanks for mentioning the possible exercise on subsets (I may give it a spin in a bit!). And thanks for mentioning that series of texts! Solutions are incredibly helpful for self studying, so it is exciting to learn that there is a whole series of books that provide many worked problems! I'm amazed I didn't know about this series before.
I do find wikipedia articles like the one mentioned above to be helpful references, but usually after I've mostly learned a topic from elsewhere. So this is very helpful!
John Baez said:
In this setup, X and Y are variables, is a binary predicate, and is a formula with 2 free variables, and .
Figuring out what a "predicate" is seems like a place to start. The wikipedia article says "A predicate takes an entity or entities in the domain of discourse and evaluates to true or false." However, further on, it says that "If P is an n-ary predicate symbol and are terms then is a formula." So, maybe predicates actually generate "formulas", not truth values. I'm unsure, though, if the term "predicate symbol" refers to predicates or to something different - like a variable that stands for an arbitrary unspecified predicate.
Looking at the book "Categorical Logic and Type Theory" by Jacobs, the author defines a category to organize predicates on a set. The objects are pairs of sets where . Jacobs says "we consider as a predicate on a type , and write for to emphasise that an element may be understood as a free variable in ".
Although Jacobs is using the word "type" here, which I'm not sure I want to explore yet, this seems to suggest that a predicate distinguishes certain entities in a given context. (Possibly distinguishing entities that produce a true proposition when inserted into a statement with variables?) Beyond that, this description leaves me a bit confused when attempting to connect it to the above discussion on predicates referring to Wikipedia.
"Practical Foundations For Programming Languages" provides: "A judgment states that one or more abstract binding trees have a property or stand in some relation to one another. The property or relation itself is called a judgment form, and the judgment that an object or objects have that property or stand in that relation is said to be an instance of that judgment form. A judgment form is also called a predicate, and the objects constituting an instance are its subjects."
It seems here that a predicate (also called a "judgement form") describes some kind of property of or relation between "abstract binding trees", which I think are certain formal sentences that can include the introduction of variables. But this feels a bit vague!
Well, I feel a little bit like I'm swimming in a sea of different definitions with an unclear relationship to one another! And I don't feel like I understand any one of the definitions... It's possible that starting by trying to understand what "predicate" means isn't a fruitful approach. Perhaps I need to understand some simpler concepts first to better understand these descriptions provided by the above sources.
Well, I feel a little bit like I'm swimming in a sea of different definitions with an unclear relationship to one another!
That's inevitable, because you're just beginning to learn logic - and in logic, like any other important subject, there are many different approaches, with different conventions. People have been working on logic at least since Aristotle, after all.
So, instead of running around, reading a bit here and a bit there, and hoping that it all adds up to a coherent picture, it's probably better to get a really good textbook on first-order logic - something that doesn't cut any corners - and learn that approach. After you learn one approach you will be able to see how other approaches, which often different in only minor ways, map on to the approach you know.
But other approaches are more dramatically different. Trying to read about modern categorical approaches like Categorical Logic and Type Theory at the same time as traditional approaches like in the Wikipedia article First-order logic sounds like a recipe for disaster to me.
It's sort of like you're just starting to learn music theory and you're reading books on Indian ragas and classical counterpoint at the same time.
Picking one really good textbook sounds like a great approach to me! I'm all for avoiding disaster.. :upside_down:
Do you still recommend "Mathematical Introduction to Logic" by Enderton? I was also just now taking a look at a book by Carnap "Introduction to Symbolic Logic and its Applications".
I recommend Enderton, which I know. I don't know Carnap's book, but as a philosopher he may be fun to read yet more confusing.
John Baez said:
I recommend Enderton, which I know. I don't know Carnap's book, but as a philosopher he may be fun to read yet more confusing.
Awesome, I will give Enderton a try!
When I was in high school in Virginia I took some math courses at George Washington University in DC, and one was on logic. We used Mathematical Logic by Kleene. I just took at look at the book again, and I still think it's good.
So I recommend that, but I've also looked at Enderton's book and that seems good too.
David Egolf said:
Figuring out what a "predicate" is seems like a place to start.
Yes, and their treatment of predicates might be a good way to judge different books on classical first-order logic.
The Wikipedia article says "A predicate takes an entity or entities in the domain of discourse and evaluates to true or false."
That of course is just preliminary chat, sort of like when a piano player noodles around a bit before the actual tune. It's important throughout math, but especially in foundations of mathematics, to distinguish between chat designed to give you the rough feel of a concept, and the actual serious stuff.
Since this article hadn't already rigorously defined "entity", "domain of discourse", "true", or "false", this can be nothing but chat. Don't take it too seriously.
However, further on, it says that "If P is an n-ary predicate symbol and are terms then is a formula." So, maybe predicates actually generate "formulas", not truth values.
This is more like serious stuff. But I do recommend a textbook written by an licensed logician, rather than a Wikipedia article written by a team of random people. The former is more likely to present a single well-thought-out framework.
I'm unsure, though, if the term "predicate symbol" refers to predicates or to something different - like a variable that stands for an arbitrary unspecified predicate.
Here's some preliminary chat that may help:
In traditional mathematical logic we often start out with syntax - symbols written on the page. So, in first-order logic a predicate is an actual letter like this:
We can call it a "predicate symbol" if we want to thump our fist on the table and get you to stop asking what it "means" - it's just a symbol.
In first-order logic we tend to assume we have a countably infinite list of 1-ary predicates at our disposal, maybe
and then a countably infinite list of 2-ary predicates, maybe
and so on for 3-ary and 4-ary etc. forever. It doesn't really matter what they're called as long as we're completely clear about our choice!
So those are predicates, and then comes the question of what you're allowed to do with them... I will let a textbook explain that, but you've probably already seen that we have a countably infinite list of 'variables', say
and if we have a 5-ary predicate we're allowed to write an expression involving it and 5 variables, like
So for example when I wrote something above like
in the setup I'm talking about now, the symbol is really short for some 2-ary predicate, maybe for all I know, and and are 2 variables: maybe a fun shorthand for and . If so, the above expression is just a user-friendly way of writing
This sort of thing is an example of a 'formula', but there are many other ways to build up formulas, like
I'm just telling you a bit of a story that goes on for pages; when it's done you know what a 'sentence' is, and what's a 'proof' of a sentence from a list of sentences called 'axioms'.
This is handy to know, because if you ask traditional mathematicians what they're doing when they're writing a proof in English, they will often say they're writing some stuff that could in principle be translated into a proof in first-order logic.
Whether they could actually do it is open to question, and whether they even should be able to do it is also controversial. But anyway, that's a common attitude, so it's good to know what the game actually is, here.
Since this is a category theory discussion forum, some people must be thinking it's weird that I'm urging you to learn this 'traditional' approach to logic, called first-order logic, and in particular classical first-order logic.
It's sort of like I'm telling you to learn common practice harmony from a textbook that treats Bach as an exemplar, when the cool kids are all playing jazz.... or creating electropop on their digital audio workstations using MIDI.
But since you and especially @Jacob Zelko are wanting to learn a lot of math, much of it written by 'traditional' mathematicians rather than category theorists, I think it's good to understand the approach to logic that implicitly underlies their writing - even if they only nod to it without deeply understanding it.
It may not be worth getting too deep into classical first-order logic, but I'm really glad that I did early on. It's not very complicaed, and after I learned it I knew one carefully designed formal setup that was precise enough to program into a computer (if I wanted to, but I didn't) and also expressive enough to handle most of the math I ran into.
These days there are slicker approaches - but folks like Whitehead and Hilbert and Goedel and von Neumann and lots of logicians even now use classical first-order logic.
Thanks for writing that all out! It is interesting and helpful!
John Baez said:
But since you and especially Nathanael Arkor are wanting to learn a lot of math, much of it written by 'traditional' mathematicians rather than category theorists, I think it's good to understand the approach to logic that implicitly underlies their writing - even if they only nod to it without deeply understanding it.
I think perhaps you meant to tag someone else (though I certainly have much to learn mathematically :grinning_face_with_smiling_eyes:).
Ulp. I'm terrible at names, which is why I named my kids and .
I meant @Jacob Zelko. Almost the same thing, right? Zelko, Arkor? :blushing:
Hehe, thanks for the ping and yea! Both have 5 letters, share an "o" and and "k", and are great sounding! :wink: Thanks for looping me back into the conversation -- will get caught up here!
You two should team up - you could cover mathematics from A to Z!