{-# OPTIONS --without-K --exact-split #-} open import Data.Product -- Type of Coinductive positivity relations -- See Appendix B of -- "A topological reading of coinductive -- predicates in Dependent Type Theory" module Coinductive.Constructors.⋊-types {A : Set} (I : A → Set) (C : (a : A) → I a → A → Set) (V : A → Set) where postulate ⋊ : A → Set corf : (a : A) (p : ⋊ a) → V a cotr : (a : A) (i : I a) (p : ⋊ a) → Σ A λ b → C a i b × ⋊ b ⋊coind : ∀ {P : A → Set} → (q₁ : ∀ a → P a → V a) → (q₂ : ∀ a i → (p : P a) → Σ A λ b → C a i b × P b) → (a : A) → P a → ⋊ a