{-# OPTIONS --without-K --two-level #-}

module 2LTT_C.Types.W-type where

open import 2LTT_C.Primitive

data WW {l1 l2 : Level}(A : UU l1) (B : A  UU l2) : UU (l1  l2)  where
  sup : (a : A)  ((B a  WW A B)  WW A B)

WW-ind : {l1 l2 l3 : Level}(A : UU l1) (B : A  UU l2) (Y : WW {l1} {l2} A B  UU l3) 
                            ((a : A) (f : B (a)  WW {l1} {l2} A B)
                            (h : ((b : B (a))  Y (f (b))))  Y (sup a f)) 
                            ((s : WW A B)  Y s)
WW-ind {l1} {l2} {l3} A B Y X (sup a g) = X a g  b  WW-ind {l1} {l2} {l3} A B Y X (g b))