{-# OPTIONS --without-K #-}
module IK.Norm.Base where
open import Data.Unit    using (⊤ ; tt)
open import Data.Product using (Σ ; _×_ ; _,_)
open import IK.Norm.NbE.Model
open import IK.Norm.NbE.Reification
open import IK.Term
-------------------------
-- Normalization function
-------------------------
-- retraction of interpretation
quot : (Sub'- Γ →̇ Tm'- a) → Nf Γ a
quot f = reify (f idₛ')
-- normalization function
norm : Tm Γ a → Nf Γ a
norm t = quot (eval t)
----------------------------------
-- Normalization for substitutions
----------------------------------
-- (simply "do everything pointwise")
-- retraction of evalₛ
quotₛ : Sub'- Γ →̇ Nfₛ- Γ
quotₛ {[]}     tt         = []
quotₛ {Γ `, _} (s , x)    = (quotₛ s) `, (reify x)
quotₛ {Γ #}    (lock s e) = lock (quotₛ s) e
-- normalization function, for substitutions
normₛ : Sub Δ Γ → Nfₛ Δ Γ
normₛ s = quotₛ (evalₛ s idₛ')
Generated from commit 2fd14c996b195ef101dff8919e837907ca0a08aa.