packages feed

liquidhaskell-0.8.0.0: tests/pos/T819A.hs

import Language.Haskell.Liquid.ProofCombinators 

import Prelude hiding ((++))

{-@ LIQUID "--exactdc"        @-}
{-@ LIQUID "--no-termination" @-}

{-@ data List  a = Emp  @-}
data List a = Emp 


{-@ infixr ++ @-}

{-@ reflect ++ @-}
Emp ++ ys = ys


{-@ assocPf :: xs:_ -> ys:_  -> { (xs ++ ys) == ys  } @-}
assocPf :: List a -> List a  -> Proof 

assocPf Emp ys
  =   (Emp ++ ys) 
  ==. ys 
  *** QED