Paid Undergraduate Internships with the Open Logic Project in Calgary, Summer 2016

We have openings, through a Canadian agency called MITACS, for advanced undergraduate students with a background in logic, philosophy, or computer science from Australia, Brazil, France, China, India, Mexico, Saudi Arabia, Tunisia, or Vietnam to come to Calgary for 12 weeks over the northern summer of 2016 (i.e. May-Aug). There are two openings, one to develop additional content for the Open Logic Text, and one for a programming-savvy student to add to and improve the open source collaborative authoring tools the OLP (and other projects) use. The internships are fully funded (travel, accommodation, living expenses); an information brochure is available on the site. The deadline to apply is September 24.

Unfortunately the way the site is set up we can’t link directly to the projects, but if interested folk go to the MITACS internship site and (somewhat counter-intuitively) choose “Start your application” they will be sent to an interface where they can choose the “projects” tab and search them (select “University of Calgary” as the university to narrow the search, and use “Logic ” (with trailing space) and “Open Source”, respectively, in the keyword field).  The two project descriptions follow.

Applications of Logic in Philosophy

The internship is located in the area of formal logic, especially as applied in philosophy and computer science. Propositional and predicate logic form a basis of theories of deduction, and formal models of various structures. Metalogic concerns the mathematical investigation of systems of logic, the relation between semantics and proof theory, and the theory of logical structures. Important limitative results delineate the expressive power of logical systems. These systems and their extensions (modal logic, intuitionistic logic) play an important role in some philosophical debates, especially in the philosophy of science and mathematics. Formal logic has many important applications in computer science and analytic philosophy, especially in philosophy of language, of mathematics, and of science. The Open Logic Project aims to develop and make available a textbook of topics in intermediate logic aimed at advanced undergraduate and graduate students in philosophy and computer science which develops these applications. They include background theory of use in philosophical applications such as modal logic, second-order logic, non-classical logic, model theory, and proof theory, as well as specific applications of these topics in philosophy. Examples of the latter are modal logics as models of knowledge, belief, or metaphysicsal reasoning; proof-theoretic semantics and Montague semantics in the philosophy of language; Craig’s axiomatization theorem or the Ramseyfication of a theory in the philosophy of science, Putnam’s model theoretic argument and Skolem’s theorem in meta-semantics; applications of many-valued logic in vagueness; intuitionism; interpretations of Gödel’s theorems in the philosophy of language. These are example topics; the intern will select a specific topic in consultation with the faculty supervisor.

The student will conduct independent research on one or more applications of logic to philosophy. This includes collecting primary research literature as well as other sources (lecture notes, presentations). The main result of the internship will be a contribution to the Open Logic Project in the form of a chapter or two on this application. This will require synthesizing the collected research and presenting it in a uniform, systematic format. The contribution will be prepared under supervision and will be reviewed and edited by other Open Logic Project collaborators.

The student should have a solid background in formal logic past a first course, e.g., know Gödel’s completeness theorem, the compactness and Löwenheim-Skolem theorem, or a background in non-classical logic. Interest and background in at least one of the potential areas of application is an asset (philosophy of mathematics, philosophy of science, philosophical logic). Knowledge of the LaTeX text preparation system is desirable but can be acquired during the internship.

Open Source Tools for Collaborative Authoring

Collaborative authoring of complex texts, such as entire books, in mathematics-heavy fields are a challenge. They require the use of de-facto standard scientific typesetting languages such as LaTeX. Complex collaborations are facilitated in software engineering projects using revision control systems such as Git. Using git for LaTeX project is a flexible, efficient, and cost-effective way to facilitate collaborative authoring of complex scientific texts such, and has been used for a number of large-scale projects such as the Open Logic Project or the Homotopy Type Theory project. During the internship, the student will work on software solutions to improve the effectiveness of this approach. Challenges faced include the lack of good tools to convert LaTeX code to semantic markup, to automatically provide text in multiple formats; contribution metrics for Git’s revision control system (e.g., compute contributor statistics based on words written instead of lines of code); and adapting software engineering tools for continuous integration to the collaborative authoring model.

The student intern will develop collaborative authoring tools on the basis of LaTeX and Git. This may include new package bindings for the LaTeXML conversion system; development of scripts to automate publication of LaTeX projects using Continuous Integration (CI) tools; and development of tools to facilitate using Git for text-based projects, such as a tool to generate contributor statistics based not on lines of code but on number of words.

Experience in using LaTeX, and elementary LaTeX programming, are required. To adapt conversion tools, coding experience in relevant programming languages is required, e.g., LaTeXML requires knowledge of Perl, and pandoc requires knowledge of Haskell. For adapting open source revision control systems, knowledge of Unix shell scripting, Git, CI tools, Make, and scripting languages are useful.