open import Agda.Primitive renaming (Set to Type)
open import Data.Product
open import Relation.Binary.PropositionalEquality
Let us represent programs from inputs I
to outputs O
as simple functions I → O
, and assume we have a specialiser:
a program that partially evaluates another program applied to the "static" part of its input.