
During my semester off, I became interested mathematical logic, especially how it connects to computer science. To that end, I decided to take Berkeley’s Philosophy 142: Philosophical Logic (taught by the very cool author of pandoc). I was hoping the course would me help locate my fuzzy ideas about math, logic, and computer science within the established ideas of philosophy. After four weeks of the course, I did get some answers, but I also got the sense that the bulk of the course content didn’t really align with my motivations for taking the course. Also, the problem sets were kind of killing me while trying to handle my other courses. Here are some of the clues I got related to the questions I’m interested in:
- Fitch-style natural deduction proofs look suspiciously like environment diagrams (or Pyagrams). Why? Is a function in a programming language (or even in a mathematical context) kind of like a proof?
- Use and mention… are things that are important. This is basically the idea that we want to avoid the apparent contradiction in sentences like “Boston is a city. Boston is a six-letter word.” by adding quotes around “Boston” to indicate we are referring to a name and not the object labeled by the name. This feels suspiciously like quoting expressions in Lisp, and the section on use and mention in the textbook even includes a footnote about Lisp.
- Schema and quasi-quotations feel a lot like macros… (hence the name “Scheme” for the programming language?). My understanding is that a “schema” is something that is like an axiom of your language, but doesn’t actually exist in your language, rather it exists in the meta language. As an example, I could say “Whenever you have a true formula ‘p’ and a true formula ‘q’, you may write down ‘p ^ q'”. That instruction isn’t really part of my language, it’s a sentence that exists outside my language that tells me something about my language. So it’s a schema, not an axiom. Similarly, a quasi-quotation allows you to selectively substitute values into a quoted expression, kind of like a macro in Lisp.
- First order logic cannot express a non-standard model of arithmetic (I think?).
- Consider the following riddle: There exists a population of people on an island. Everyone on this island loves exactly one person, all love is unrequited, and there is one person whom no one loves. What is the size of the population? I think this riddle describes the natural numbers. Love is precedence. Everyone precedes exactly one person, and that person does not precede them. No one precedes 0.
- A lot of problems in math and science can be formulated as trying to find a model for a sentence, and models are easily formulated in terms of set theory. This makes me think I ought to study some set theory.
- A proof system can be sound, complete, both, or neither. I’d like to know how you can prove that a system is any of those.
I think I would have enjoyed the course more if it touched more on the topics I’m interested in, but it was my perception that it was instead going to catalog the different ways that philosophy is used in logic and the different types of logics out there. Even though I’m dropping the class, I’d like to still keep in mind the questions and clues I’ve outlined above. I’m hoping that by writing them here, I’ll hold myself accountable to continue looking for answers.
