Home

Awesome

This repository contains a framework for reasoning about linear typing contexts in Coq.

The file Monoid.v describes the algebraic structure of partial commutative monoids, which are characterized by the following parts:

Partial commutative monoids satisfy the following laws:

The tactic monoid solves goals of the form a = b, where a and b are made up of PCM constructors and at most one EVar.

The file TypingContext.v describes additional structure on top of PCM's. A typing context "Ctx" with domain "X" and image "A" satisfies:

The tactic validate solves goals of the form is_valid Γ. It is based on the following principles:

We give the following instantiation of the TypingContext type class: