nom-0.1.0.0: src/Language/Nominal/Properties/NameSetSpec.hs
module Language.Nominal.Properties.NameSetSpec
where
import qualified Data.List.Extra as L
import Test.QuickCheck
import Language.Nominal.Name
import Language.Nominal.NameSet
-- import Language.Nominal.Properties.SpecUtilities
-- ns disjoint ns', if apart
prop_supp_apart :: [Name Bool] -> [Name Bool] -> Property
prop_supp_apart ns ns' = (take 4 ns `apart` take 4 ns') ==> take 4 ns `L.disjoint` take 4 ns' -- restrict length so tests don't give up
-- ns disjoint ns' iff apart, if triv labels
prop_supp_apart_atom :: [Name ()] -> [Name ()] -> Bool
prop_supp_apart_atom ns ns' = (ns `apart` ns') == ns `L.disjoint` ns'
{-- supp([[a]]) = supp(unions [a])
prop_supp_unions :: [[Name Int]] -> Bool
prop_supp_unions l = supp (S.unions --}