packages feed

equational-reasoning-0.7.0.3: README.md

Agda-style Equational Reasoning in Haskell by Data Kinds
=========================================================
[![Build Status](https://travis-ci.org/konn/equational-reasoning-in-haskell.svg)](https://travis-ci.org/konn/equational-reasoning-in-haskell) [![Hackage](https://img.shields.io/hackage/v/equational-reasoning.svg)](https://hackage.haskell.org/package/equational-reasoning)

What is this?
--------------
This library provides means to prove equations in Haskell.
You can prove equations in Agda's EqReasoning like style.

See blow for an example:

```haskell
plusZeroL :: SNat m -> Zero :+: m :=: m
plusZeroL SZero = Refl
plusZeroL (SSucc m) =
  start (SZero %+ (SSucc m))
    === SSucc (SZero %+ m)    `because`   plusSuccR SZero m
    === SSucc m               `because`   succCongEq (plusZeroL m)

```

It also provides some utility functions to use an induction.

For more detail, please read source codes!


TODOs
------

* Automatic generation for induction schema for any inductive types.