{-

  Simple categories with families are one approach to modeling the
  judgmental structure of simply typed lambda calculus.

  Definition 9 in https://arxiv.org/abs/1904.00827

-}
module Cubical.Categories.WithFamilies.Simple.Base where


open import Cubical.Data.Sigma

open import Cubical.Categories.Category
open import Cubical.Categories.Limits.Terminal.More
open import Cubical.Categories.Presheaf
open import Cubical.Categories.Presheaf.Constructions

open Category

private
  variable
    ℓC ℓC' ℓT ℓT' ℓD ℓD' ℓS ℓS' : Level
SCwF : (ℓC ℓC' ℓT ℓT' : Level)  Type _
SCwF ℓC ℓC' ℓT ℓT' =
  Σ[ C  Category ℓC ℓC' ]
  Σ[ Ty  Type ℓT ]
  Σ[ Tm  (Ty  Presheaf C ℓT') ]
  Terminal' C ×
  -- "Simple comprehension"
  (∀ A  LocallyRepresentable (Tm A))