{- Jesper Cockx, 26-05-2014
   Issue 1023
-}

{-# OPTIONS --without-K #-}

module TerminationAndUnivalence where

data _≡_ {a} {A : Set a} (x : A) : A → Set a where
  refl : x ≡ x

J : ∀ {a b} {A : Set a} {x : A} (P : (y : A) → x ≡ y → Set b) →
    (p : P x refl) {y : A} (e : x ≡ y) → P y e
J P p refl = p

data ⊥ : Set where

data WOne : Set where
  wrap : (⊥ → WOne) → WOne

FOne = ⊥ → WOne

f : WOne → FOne
f x ()

g : FOne → WOne
g x = wrap (λ ())

postulate iso : WOne ≡ FOne

noo : (X : Set) → (WOne ≡ X) → X → ⊥
noo .WOne refl (wrap x) = noo FOne iso x

absurd : ⊥
absurd = noo FOne iso (λ ())
