What is logic?
aeon.co
aeon.co
Model theory is good here in that it studies the connection between logical language and more "physical" models. Some of these models can give a relatable account for what a logic "means". For instance, Boolean logic correspond with set operations and therefore we can use that correspondence to portray a meaning for statements in Boolean-like logics.
Intuitionistic logic is an interesting one if you're not familiar with it. It can be seen as the logic of working with "demonstrations", building and analyzing them. For instance, if I have an object "X" such that witnessing it immediately convinces someone of the truth of "1+1=2", and if I have a whole collection of such items, then intuitionistic logic talks about how to compose and decompose collections of these things. Another interesting operation is "not" such that "not X" is a tool for using any X you happen to have to show that the world is inconsistent. This acts as a refutation of the existence of values like X!
This differs from set-like logics because, for instance, "not (not X)" is not the same as X: being able to show that if you had (a way to prove the world inconsistent if you had an X) you could show the world as inconsistent... it's a far cry away from actually having an X!
Intuitionistic logic is interesting for two reasons. First, it models communication and persuasion by being an algebra of "persuasive items" like X. Second, it's "constructive" and thus works similarly to how programming languages express things through their creation.
It's the same thing with even the most basic "translation problems" that kids in schools learn. They're armed with arithmetic and high-school algebra so they get arithmetic and high-school algebra "real world" scenarios to analyze.
At higher levels its the same. The problems are just harder and the patterns aren't necessarily given to you. Sometimes, oftentimes, nobody even knows what they are.
I also read the book 'Gödel's Proof' a long time ago, before I had much familiarity with pure math, and remember it describing a very interesting sort of 'architecture' that Gödel had put together—but I left still wondering about any applications other than producing the incompleteness theorems. Maybe I'd get more out of it now though...
I'm curious what shift it caused for you, if you don't mind saying.
Note that I'm mostly talking about the book's first half (about incompleteness and canons and whatnot). The second half (ants, etc) struck me as much more dated.
https://www.amazon.com/Godels-Theorem-Simplified-Harry-Gensl...
There are implicit and explicit forms of it.
The implicit form is something our brains do automatically and is a consequence of its structure. Perhaps the way it models things intrinsically does not allow for what we would call contradicting statements (though it contains many separate models which if unified would contain contradictions); then, the space of desirable implications is narrowed by a motivation to find a certain kind of implication (i.e. there is typically a goal when engaging in reasoning—we aren't often indifferently interested in all implications) combined with the fact that contradictions aren't allowed. It seems like implications are usually discovering that some entity belongs to a class it wasn't previously known to belong to, at which point it inherits the attributes of other things in that class.
The explicit forms seem like attempts to model the implicit form in mathematical language, in order to bring logical processes more under control of conscious thought, or 'executive function' (plus reasoning on paper extends working memory). It seems possible that with the 'correct' formulation, a logic could viewed as a theoretical science describing properties of the structure of the human brain that give rise to reasoning.
The assuptions => theorm structure is an artificial abstraction over a very different logic process. Symbolic logic is a framework for mechanical validation, rather then anything like how people actually do logic.
Right, there was an issue with labeling justification 'logic'. An interesting point, but not as interesting as the title of this story—which I prefer to discuss :)
I was getting at the general process of inference making in the human brain (not even conscious inference making necessarily), which I see as the real root of all the different things we call logic.
Contradictions suggest that you don't have a complete picture
Also, those interested in the fallout of Russell's paradox are encouraged to look into Lesniewski's mereology (this is a topic that occurs in my master's thesis where I attempted to formalize the structure of Aristotelian living things mereologically using many-sorted logic). In short, Lesniewski held that the axiomatic set theory of the day betrayed the intuitions of naive set theory and resulted in paradoxes. He attempted to dispense with the these paradoxes by proposing a formal system known as mereology that replaced the primitive element relation in set theory with the parthood relation (other relations can be defined in terms of parthood, e.g., overlap, disjoint, proper/improper parthood depending on which one you assume, and vice versa). Link: https://plato.stanford.edu/entries/lesniewski/
True that, but were/are there alternatives? Difficult to say.
Of course, you could say the exact same thing for programming languages (after all, what do programmers do if not "simply working with special symbols, not with ordinary words"? And isn't this the primary criticism of programming brought by people who find it distasteful -- that expressing their fuzzy intuitions in a precise enough manner for the computer feels like a pointless exercise in frustration?)
Really, the only difference between the proponents of mathematical logic over informal prose in the early 20th century and the proponents of programming languages over informal prose today is that computers obviate the problem with fuzzy thinking and fuzzier exposition. The philosopher or mathematician could hand-wave about their holes in their arguments, but the programmer can only hand-wave so much the uselessness of his unexecutable pseudo-code.
The golden standard would be a form of speech that is natural and ordinary, but also avoids misleading, omitting, and eliding essential details.
In other words, a language that is formal enough to be parsed, checked, and generated by a proof assistant program. But also natural enough to be read as if it's prose written by a native speaker of a natural language.
I'm of the opinion that such a golden standard does not exist, and so we're forever doomed to incremental improvement.
The Curry-Howard correspondence is an important idea that's a specific instance of this, showing a direct relationship between specific kinds of logic and specific kinds of typed programming languages, but I think it's useful to think about programming languages that don't correspond to well-studied logical systems in a similar way.
This helps explain why the study of programming languages—and especially programming language theory—isn't really about programming languages: it's more about abstraction and reasoning in general. It's deeper than you'd suspect from the name. I'd go so far as saying that programming language theory is less a theory of programming languages and more a general theory of computation from a language point of view, as compared to "normal" theoretical CS.
programming languages and
formal logics are ultimately
instances of the same general
idea.
That's deeply questionable. The CH-correspondence breaks down as soon as you your computation includes non-termination, concurrency, timing, distribution etc. Classical logic doesn't really have wholly convincing CH-correspondences either.It seems to me that constructive proofs are a special class of programs, and fall under the purview of programming language, but not the other way around.
There's some connection between classical logics and concurrency, though it's hard to get at. You can use callcc to implement threads, and Getzen's classical sequent calculus has multiple conclusions.
Here is a PHD thesis that uses modal logic to model distributed code in a CH fashion: http://www.cs.cmu.edu/~tom7/papers/modal-types-for-mobile-co...
Classical logic is perfectly modeled with callcc, which has the type Peirce's Law, and allows one to write terms with the types of the law of excluded middle or Double Negation Elimination.
Non termination is modeled as false:
That means the CH correspondence is not interesting. If all non-terminating processes are falsity, types say nothing whatsoever of interest (from a specifiation and verification point of view) about non-terminating computation.The T. Murphy PhD doesn't deal with distribution because it lacks the key feature of distribution which is partial failure.
As far as I'm aware the work on modelling double negation by call/cc doesn't actually provide a 1-to-1 correspondence between programs and proofs. I've forgotten the details but I think only some programs come out being proofs.
No it doesn't. Each of those features leads to a different logic. You can even reason about the composition of logics via category theory to see how various features interact with each other.
> Classical logic doesn't really have wholly convincing CH-correspondences either.
Sure it does, first class continuations: http://www.cl.cam.ac.uk/~tgg22/publications/popl90.pdf
I suppose you have the right to remain unconvinced.
can even reason about the composition of logics
I'm not aware of a fully fledged approach to logical composition that tells me an interesting story about the combination of logics that arise in computation, I know that people work on this, but as far as I can see, this work is far from finished. Please point to papers if you know more than that. first class continuations
As far as I'm aware, Griffin's work, which was a stroke of genius, does not provide a 1-to-1 correspondence between classical proofs and programs. That's why even today, 1/4 of a century later, people work on CH for classical logic.The approach I have in mind about composition of logics is the theory of pseudodistributive laws: http://dl.acm.org/citation.cfm?id=2612113
It's kind of cutting edge and has only yet been applied to a few situations, but it seems to be the correct notion of composing type theoretic (and hence logical) structures in compatible ways. Another approach I like that is strictly logical is Nuel Belnap's display logic, which characterizes a ridiculously broad range of logics and proves a general cut elimination theorem for them. The relationship between the categorical approach and the display logic approach is not entirely clear yet.
In any case, the CH correspondence is a rich and very active area of research. Just because we haven't nailed it down exactly yet doesn't mean it's broken! Our current understanding is a shadow of a much deeper concept.
If you are broadening what you mean by CH, then fair enough, but it's shifting the argument.
This, of course, is annoying for almost all communication, particularly when we want to use fuzzy, hard to define terms. Languages are useful because you can pretty heavily butcher the syntax, but still be understood. (And arguably, that fuzziness is what drives new thoughts.)
That may be the case. If our brain is only capable of forming self-consistent schemas (consider how it reacts when encountering new facts that contradict existing schemas: https://en.wikipedia.org/wiki/Cognitive_dissonance), then the world's apparent consistency may only be a consequence of our contemplating it through the human brain. (To be clear though, it's consistency within single schemas—not between, where contradictions abound.)
> If so, then: a. things are not what they are; b. things can be and not be at the same time
Can someone be a hero and not be a hero at the same time? I think there are some subtleties to this issue arising from the nature of language. Certainly at our scale (i.e. not quantum scales—although even there I don't really think 'real' inconsistency is happening, but it's less clear cut) a certain kind of consistency has very strong empirical support (it's probably our best supported hypothesis!), so it would be adaptive for us to build models of the world that would reflect that property—but this doesn't mean we've hit on something deep about the nature of reality.
I will have to think on the points you raise.
All of this IIRC.
This is based on type theory (and has a model in set theory), but isn't as powerful as the logics used in Coq and similar theorem provers (the Calculus of (Inductive) Constructions).
You might be interested in metamath: http://us.metamath.org/, which lists the axioms used in its largest body of work: http://us.metamath.org/mpegif/mmset.html#axioms
https://en.wikipedia.org/wiki/Zermelo%E2%80%93Fraenkel_set_t...
https://www.amazon.com/Probability-Theory-E-T-Jaynes/dp/0521...
If you look at the Mizar mathematical library you will find a formalization of Bayes Rule using plain FOL.
In fact, one of my Logic II (an intermediate logic class) exercises was formalizing a version of Bayes' rule in classic first-order logic.
I would add that Frege, Russell and Whitehead did not just want to logicize mathematics. They thought that reality itself followed this logic, and so were doing metaphysics. The later Wittgenstein is a decisive refutation of this idea, and this is a key reason logic has gone out of fashion.
(Just my opinion. Agree or disagree. That's cool.)
Could be used in reasoning or computer programming.
"reality", whatever it is, has no such requirement that it can be expressed in unambiguous statements.
Not the OP, but you could say that no "language" exists outside of "reality", and stretching it further you could also say that all types of languages (formal, mathematical, artificial/computer), including the associated "rules", are social constructs which depend heavily on the time and place of their "existence", i.e. on "reality".
Until we meet some quantum-like entity which might "talk" to us from outside the boundaries of this physical Universe we're doomed to be solipsistic: we construct "abstractions" that are meant to distance us from "reality" only to find out in the end that "reality" was behind those "abstractions" all along.
WTF am I reading?