Fork channel

Create a new channel as a copy of main.

Rename channel

Rename main to:

Delete channel

Delete main? This cannot be undone.

Alphabet.idr
module Data.Alphabet

import Control.SUSY
import Control.Total
import Data.SUSY

export
(Super a, Super b) => Super (a,b) where
    deg (x, y) = deg x + deg y

export
[SL] (Letter a, Ord b) => Ord (a,b) where
    compare (x, xx) (y, yy) with (compare x y)
      _ | EQ with (deg x)
          _ | Boson = compare xx yy
          _ | Fermion = contra $ compare xx yy
      _ | t = t

(Letter a, AntiSym b) => AntiSym (a,b) using SL where
    antisym (x, xx) (y, yy) with (compare x y) proof p
      _ | LT = rewrite antisym y x in rewrite p in Refl
      _ | EQ with (deg x) proof pp
        _ | Boson = rewrite antisym y x in rewrite p in rewrite sym $ degeq x y {p=p} in rewrite pp in antisym xx yy
        _ | Fermion = rewrite antisym y x in rewrite p in rewrite sym $ degeq x y {p=p} in rewrite pp in rewrite antisym xx yy in Refl
      _ | GT = rewrite antisym y x in rewrite p in Refl