fact: Fixpoint SemExp `(e : Exp Γ τ) : SemEnv Γ → SemTy τ := match e with | EUnit => λ _, tt | Pair x y => λ se, (SemExp x se, SemExp y se) | Fst p => λ se, fst (SemExp p se) | Snd p => λ se, snd (SemExp p se) | VAR v => SemVar v | LAM e => λ se x, SemExp e (x, se) | APP e1 e2 => λ se, SemExp e1 se (SemExp e2 se) end.
imports: Category.Lib Category.Lib.IList Category.Instance.Lambda.Ty Category.Instance.Lambda.Exp Category.Instance.Lambda.Ren Category.Instance.Lambda.Sub Equations(Equations)