Ted Sider: Logic for Philosophy

A year and a half ago, Andy Arana and I organized a session at the Pacific APA about logic and philosophy graduate education. One of the panelists was Ted Sider, who spoke about what kinds of logic he thought a philosophy grad student should know. He’s been teaching a course on exactly that, i.e., a “logic literacy” course for philosophers. His notes for that course have morphed into a book draft, and the book will eventually come out with OUP. The draft of Logic for Philosophy is available online. It covers propositional and first-order classical logic, many-valued and intuitionistic logics, modal logics, and counterfactuals. I haven’t read it all, but I’m lecturing more-or-less from Ch. 8 (on counterfactuals) in my modal logic class today–and that chapter was very helpful! So go and have a look and send comments and suggestions to Ted.

PS: The materials from the APA session have disappeared. I’m working on it.

Carnap: The Programming Language

An addition to the list of programming languages named after logicians (e.g., Gödel, Haskell, Curry): Carnap

The Carnap Programming Language

Process oriented programming: shared data structures and the concurrent processes that act upon them.

Carnap is a general purpose programming language for the next generation of many-core devices, many many-core systems and their applications. It introduces a process oriented programming model that allows programmers to separate the concerns of data structures and the concurrent processes that act upon them.

The primitive process of a Carnap program is called an action. An action determines a local or shared state. Actions are assembled by construction to form the component processes of a program. Programs consist of concurrent processes that construct and interact via logically shared data structures and resources called Contexts.

In this way the application programmer is able to separate concerns, reasoning separately about the two primary aspects of Carnap programs: potentially large scale data structures and the concurrent processes that act upon them.

Contexts are named, type associative and statically typed.

Two system level contexts allow concurrent access to SQL databases and any system that will respond to a standard universal resource identifier (URI). Concurrency control is provided by the Carnap primitives (initial implementations will include a File Server, PostgreSQL and Apache 2.0).

The primary goal of Carnap is to ease the general purpose programming of applications that can utilize the concurrency of future many-core and many many-core systems.” The Carnap Programming Language Manual

Carnap is Open Source and freely available to the research community.

CSLI Lecture Notes online and free

CSLI Lecture Notes are now part of the Stanford Medieval and Modern Thought Digitization Project. That means books such as Unger’s Cut-elimination, Normalization, and the Theory of Proofs, Troelstra’s Lectures on Linear Logic, Aczel’s Non-well-founded Sets, van Benthem’s Manual of Intensional Logic, and Goldblatt’s Logics of Time and Computation are now available online and for free. (HT: Shawn)