-- Values and primitive operations; environments.
module V1.Value where
open import Library
open import V1.WellTypedSyntax
-- Well-typed values.
Val : Type → Set
Val int = ℤ
Val bool = Boolean
instance
PrintVal : ∀ {t} → Print (Val t)
print {{PrintVal {int} }} i = print {{PrintInt}} i
print {{PrintVal {bool}}} b = print {{PrintBoolean}} b
-- Semantics of operations.
-- Boolean negation.
bNot : Boolean → Boolean
bNot true = false
bNot false = true
-- Greater-than on integers.
iGt : (i j : ℤ) → Boolean
iGt i j = case i Integer.<= j of λ where
false → true
true → false