GithubHelp home page GithubHelp logo

coq-course's Introduction

Coq @ Chalmers

Coq course at the Chalmers CSE department, in principle for PhD students.

Disclaimer:

  • This course is not guaranteed to take place. Times, contents and evaluation form are provisional and subject to change.
  • This course is planned as a self-reading course. As such, each person is individually responsible for fulfiling the goals set by the examiner. No assistance is provided beyond what other participants are willing and able to give.

Dates

The course will take place during 2017 LP3 and LP4.

  • Kick-off meeting: Thu 2nd Feb, 3:15pm-5pm, room 6128. Plan, Notes
  • Session 2: Thu 16th Feb, 3:15-5pm, room 6128. Notes
  • Session 3: Thu 2nd Mar, 3:15-5pm, room 6128. Notes
  • Session 4: Thu 16th Mar, 3:15-5pm, room 6128. Notes
  • Session 5: Thu 6th Apr, 3:15-5pm, room 6128. Notes
  • Session 6: Wed 12th Apr, 3:15-5pm, room 4128. Notes

Deliverables

Coq files with solutions to the exercises. Deliverables are uploaded to a separate, private repository.

Prerequisites

Participants are expected to be familiar with a functional language with a rich type system, such as Agda, Haskell or Scala. They should also be able to use induction to prove properties about the natural numbers, or any other inductively defined set.

Course plan

See syllabus.md and plan.md for more details.

Reference material

General reference material for the course.

Books

From Coq at nLab:

  • Benjamin Pierce’s Software Foundations (SF) is probably the most elementary introduction to Coq and functional progamming. The book is written in Coq so you can directly open the source files in CoqIDE and step through them to see what is going on and solve the exercises.

    This book should be good for people with a CS background (and some PL on top of that).

    SF uses Coq for the formalization of programming languages.

  • Adam Chlipala’s Certified Programming with Dependent Types (CPDT) explains more advanced Coq techniques.

    It relies heavily on tactics, which can be an impediment if one actually cares about the proof.

    CPDT uses Coq as a programming language with a rich type system.

  • Mathematical Components by Assia Mahboubi, Enrico Tassi with contributions by Yves Bertot and Georges Gonthier:

    This books targets two classes of public. On one hand newcomers, even the more mathematical inclined ones, find a soft introduction to the programming language of Coq, Gallina, and the Ssreflect proof language. On the other hand accustomed Coq users find a substantial account of the formalization style that made the Mathematical Components library possible.

    Mathcomp focuses on practical math, more on the discrete algebra side (natural and polynomial arithmetic, finite dimensional linear algebra, finite group theory, representations, ... + some finite graph theory).

  • Verified Functional Algorithms by Andrew W. Appel. "Volume 3 of the Software Foundations series".

Comparison between SF, CPDT and Coq’Art.

Tutorials

Fun links

Exercises

Examination

Examiner: Thierry Coquand

Credits: 7.5, but the final decision about how many credits the course gives rests with each participant’s respective examiner.

Full participation is required. This entails attending the meetings, doing the exercises and presenting some of them.

IRC channel

We set up an IRC channel for discussing the course:

##coq@chalmers on freenode

Note that there are two hashes in the channel name.

If you don't want to run your own server for running a client continuously, you can use riot's IRC bridge:

Participants

  • Fabian Ruch
  • Andrea Vezzosi
  • Víctor López Juan
  • Herbert Lange
  • Daniel Schoepe
  • Irene Lobo Valbuena
  • YuTing Chen (jeff)
  • Andreas Lööw
  • Simon Robillard
  • Marco Vassena
  • Simon Huber
  • João Pizani (visiting until 2017-04-07)

The course has started. If you still want to take part, you can add your name to the list of participants by editing this file online and sending in a pull request. Be aware that you might have to work harder in the beginning in order to catch up.

If you have questions, issues or patches, and do not want to use a Github account, you can e-mail [email protected] instead.

Edit this file

coq-course's People

Contributors

airini avatar andreasloow avatar bafain avatar daherb avatar dschoepe avatar emptylambda avatar saizan avatar simhu avatar simonr89 avatar vlopezj 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.