Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Borel x
- borel :: Ord x => [Interval x] -> Borel x
- intervalSet :: Ord x => Borel x -> Set (Interval x)
- empty :: Ord x => Borel x
- singleton :: Ord x => Interval x -> Borel x
- null :: Borel x -> Bool
- insert :: Ord x => Interval x -> Borel x -> Borel x
- whole :: Ord x => Borel x
- cutout :: Ord x => Interval x -> Borel x -> Borel x
- member :: Ord x => x -> Borel x -> Bool
- notMember :: Ord x => x -> Borel x -> Bool
- union :: Ord x => Borel x -> Borel x -> Borel x
- unions :: Ord x => [Borel x] -> Borel x
- difference :: Ord x => Borel x -> Borel x -> Borel x
- symmetricDifference :: Ord x => Borel x -> Borel x -> Borel x
- complement :: Ord x => Borel x -> Borel x
- intersection :: Ord x => Borel x -> Borel x -> Borel x
- intersections :: Ord x => [Borel x] -> Borel x
- hull :: Ord x => Borel x -> Maybe (Interval x)
Documentation
The Borel
sets on a type are the sets generated by its open intervals.
It forms a Heyting
algebra with union
as join and intersection
as meet,
and a Ring
with symmetricDifference
as addition and intersection
as
multiplication (and complement
as negation). In fact the algebra is Boolean
as the operation x
.==>
y = complement
x \/
y
It is a monoid that is convenient for agglomerating
groups of intervals, such as for calculating the overall timespan
of a group of events. However, it is agnostic of
how many times each given point has been covered.
To keep track of this data, use Layers
.
Instances
Ord x => Eq (Borel x) Source # | |
Ord x => Ord (Borel x) Source # | |
(Ord x, Show x) => Show (Borel x) Source # | |
Generic (Borel x) Source # | |
Ord x => Semigroup (Borel x) Source # | |
Ord x => Monoid (Borel x) Source # | |
(Ord x, Lattice x) => Heyting (Borel x) Source # | |
(Ord x, Lattice x) => Lattice (Borel x) Source # | |
(Ord x, Lattice x) => BoundedJoinSemiLattice (Borel x) Source # | |
Defined in Data.Interval.Borel | |
(Ord x, Lattice x) => BoundedMeetSemiLattice (Borel x) Source # | |
Defined in Data.Interval.Borel | |
Ord x => One (Borel x) Source # | |
(Ord x, Lattice x) => Semiring (Borel x) Source # | |
(Ord x, Lattice x) => Ring (Borel x) Source # | |
Defined in Data.Interval.Borel | |
type Rep (Borel x) Source # | |
Defined in Data.Interval.Borel | |
type OneItem (Borel x) Source # | |
Defined in Data.Interval.Borel |
difference :: Ord x => Borel x -> Borel x -> Borel x Source #
Remove all intervals of the second set from the first.
symmetricDifference :: Ord x => Borel x -> Borel x -> Borel x Source #
Take the symmetric difference of two Borel
sets.
complement :: Ord x => Borel x -> Borel x Source #
Take the Borel
set consisting of each point not in the given one.
intersection :: Ord x => Borel x -> Borel x -> Borel x Source #
Take the intersection of two Borel
sets.