0 | module Libraries.Data.List01.Quantifiers
3 | import Libraries.Data.List01
12 | data All : (0 p : a -> Type) -> List01 ne a -> Type where
14 | (::) : {0 xs : List01 ne a} -> p x -> All p xs -> All p (x :: xs)
18 | pushIn : (xs : List01 ne a) -> (0 _ : All p xs) -> List01 ne $
Subset a p
20 | pushIn (x :: xs) (p::ps) = Element x p :: pushIn xs ps
24 | pullOut : (xs : List01 ne $
Subset a p) -> Subset (List01 ne a) (All p)
25 | pullOut [] = Element [] []
26 | pullOut (Element x p :: xs) = bimap (x ::) (p ::) $
pullOut xs