packages feed

Agda-2.3.2.2: test/succeed/Issue383b.agda

-- Andreas, 2011-05-09
-- {-# OPTIONS -v tc.inj:40 -v tc.meta:30 #-}
module Issue383b where

postulate
  Σ  : (A : Set) → (A → Set) → Set
  U  : Set
  El : U → Set

mutual

  data Ctxt : Set where
    _▻_ : (Γ : Ctxt) → (Env Γ → U) → Ctxt

  Env : Ctxt → Set
  Env (Γ ▻ σ) = Σ (Env Γ) λ γ → El (σ γ)

postulate
  Δ : Ctxt
  σ : Env Δ → U
  δ : U → Env (Δ ▻ σ)

data Foo : (Γ : Ctxt) → (U → Env Γ) → Set where
  foo : Foo _ δ

-- WORKS NOW;  OLD COMPLAINT:
-- Agda does not solve or simplify the following constraint. Why? Env
-- is constructor-headed.
--
-- _40 := δ  if  [(Σ (Env Δ) (λ γ → El (σ γ))) =< (Env _39) : Set]