NotImplemented

A placeholder relation for unspecified compiler passes.

module VerifiedCompilation.NotImplemented where

open import Untyped
open import VerifiedCompilation.Certificate
import Data.Nat using ()

Policy determines whether the certifier should succeed or fail when certifying this relation.

data Policy : Set where
  accept : Policy
  reject : Policy

NotImplemented reject is an empty type, whereas NotImplemented accept has a trivial inhabitant.

data NotImplemented {X} : Policy  (X )  (X )  Set where
  notImplemented :  {M N}  NotImplemented accept M N

certNotImplemented : Certifiable (NotImplemented {0} accept)
certNotImplemented _ _ = proof notImplemented