GithubHelp home page GithubHelp logo

type-theory-study-group-2015's Introduction

Type Theory Study Group 2015

Overview

An online study group, open to all, dedicated to learning Type Theory.

The initial plan is to read Bob Harper's, Practical Foundations of Programming Languages, 2nd Edition. This book is only available as an online draft.

Why learn type theory?

Formal languages, ways of writing down symbols which hold together in such a way to embody meaning, sit at the core of much of mathematics, programming, and language broadly. To give formal language a meaning is to translate the symbols and their collections into meaning within a domain such that the laws of the language reflect meaning in the domain. A type [theory] is a formal language in its own right, but one designed to reflect meaning from the domain of other formal languages (statically) and, therefore, in studying them we can learn a lot about what governs formal languages generally.

It turns out that this idea provides benefits in mathematics and programming languages. In mathematics, the technique of types has given rise to several alternative foundations to mathematics of interest for philosophical and aesthetic reasons, if nothing else. In programming languages, the technique of types gives rise to several (but not all) forms of static analysis of code fragments useful to describe and guide the logic of the program under constructions.

Studying type theory is to understand the techniques of types and can be a foundation for studying mathematical foundations in type theory or for better understanding (or even creating) programming languages which are amenable to and analyzed by systems of types. It also has a transformative effect on understanding formal languages, on working within them, and on wielding logics.

-- Joseph Abrahamson

Next meeting
  • When: November 13th, 6 pm EST
  • Where: Google Hangouts
  • Material: Ch 1 and 2 of PFPL
  • Discussion Leaders: Joseph Abrahamson, Danny Gratzer, and Craig Stuntz
Connect with us
Local study groups
  • PLATYPUS (Programming Languages And Types - Yet Perfectly Understandable - in Sydney) meets weekly in Sydney, Australia.
Other resources
Proposed future topics
  • Abstract Syntax Trees / Abstract Binding Trees
  • The Untyped Lambda Calculus / Operational Semantics
  • The Simply Typed Lambda Calculus / Progress and Preservation
  • Propositions as Types / Proofs as Programs
  • System F / Parametricity
  • Martin-Löf's Extensional Type Theory / Constructive Mathematics and Computer Programming
  • Identity Types / Proofs of Equality in Martin-Löf's Intensional Type Theory
  • Topological Spaces as Types / Points as Programs
  • Intensional Proofs of Equality as Paths between Spaces
  • Proofs of Equality of Equalities as Synthetic Homotopies
  • Homotopy Type Theory / Higher Inductive Types / Univalence
  • Canonicity for Homotopy Type Theory / Current Issues
  • Higher Dimensional Type Theories with Canonicity / Bob Harper & Dan Licata's Two Dimensional Type Theory
  • Martin-Löf's (Equational) Logical Framework and the Monomorphic Theory of Sets
  • The Edinburgh Logical Framework / "Mechanizing Metatheory in a Logical Framework"
  • Categorical Semantics of Type Theories / Connection to Category Theory Study Group

type-theory-study-group-2015's People

Contributors

jonsterling avatar markfarrell avatar pushcx avatar steshaw avatar thsutton avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.