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