Agda-2.3.2.2: test/fail/FakeProjectionsDoNotPreserveGuardedness.agda
-- 2010-10-14
-- {-# OPTIONS -v term:20 #-}
module FakeProjectionsDoNotPreserveGuardedness where
import Common.Level
open import Common.Coinduction
-- Products
infixr 4 _,_
infixr 2 _×_
-- fake product with projections
postulate
_×_ : (A B : Set) → Set
_,_ : {A B : Set}(a : A)(b : B) → A × B
proj₁ : {A B : Set}(p : A × B) → A
proj₂ : {A B : Set}(p : A × B) → B
-- Streams
infixr 5 _∷_
data Stream (A : Set) : Set where
_∷_ : (x : A) (xs : ∞ (Stream A)) → Stream A
mutual
repeat : {A : Set}(a : A) → Stream A
repeat a = a ∷ proj₂ (repeat' a)
repeat' : {A : Set}(a : A) → A × ∞ (Stream A)
repeat' a = a , ♯ repeat a