lukaszcz / coinduction

A Coq plugin to help with proofs by coinduction.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Coinduction (dev) plugin for Coq 8.10

Installation

Run make followed by make install.

Usage

To load the plugin:

From Coinduction Require Import Coinduction.

Available commands:

command description
CoInduction Starts a coinductive proof of a lemma.
peek t Forces a cofixpoint reduction in t.
peek_eq A tactic to automatically prove lemmas about unfoldings of cofixpoint definitions.
Declare_peek I This command must be invoked before using the peek and peek_eq tactics with terms having the coinductive type I.

Some examples are given in the examples directory. For examples with the peek and peek_eq tactics see examples/practical.v.

To compile the examples you need to install CoqHammer reconstruction tactics.

Because CoqHammer tactics sometimes perform unnecessary forward reasoning followed by case analysis, they occasionally produce proofs that do not satify the "weak case restriction", which makes our translation fail. To reduce the probability of this happening, use the "c-variants" of the tactics: cauto, csimpl and ccrush. See examples/tutorial.v.

Papers

Łukasz Czajka, First-order guarded coinduction in Coq, ITP 2019

About

A Coq plugin to help with proofs by coinduction.

License:GNU Lesser General Public License v2.1


Languages

Language:OCaml 93.6%Language:Coq 5.4%Language:Makefile 0.9%