1
------------------------------------------------------------------------
3
------------------------------------------------------------------------
5
{-# OPTIONS --universe-polymorphism #-}
10
open import Relation.Nullary
12
-- The family of W-types.
14
data W {a b} (A : Set a) (B : A → Set b) : Set (a ⊔ b) where
15
sup : (x : A) (f : B x → W A B) → W A B
19
head : ∀ {a b} {A : Set a} {B : A → Set b} →
23
tail : ∀ {a b} {A : Set a} {B : A → Set b} →
24
(x : W A B) → B (head x) → W A B
27
-- If B is always inhabited, then W A B is empty.
29
inhabited⇒empty : ∀ {a b} {A : Set a} {B : A → Set b} →
31
inhabited⇒empty b (sup x f) = inhabited⇒empty b (f (b x))