PCF.Types
\begin{code} module PCF.Types where open import Data.Bool.Base using (Bool) open import Agda.Builtin.Nat using (Nat) open import PCF.Domain-Notation using (Domain; _+⊥) -- Syntax data Types : Set where ι : Types -- natural numbers o : Types -- Boolean truthvalues _⇒_ : Types → Types → Types -- functions variable σ τ : Types infixr 1 _⇒_ -- Semantics 𝒟 𝒟 : Types → Domain 𝒟 ι = Nat +⊥ 𝒟 o = Bool +⊥ 𝒟 (σ ⇒ τ) = 𝒟 σ → 𝒟 τ variable x y z : 𝒟 σ \end{code}