Copyright | (c) 2015-2016 Galois Inc. |
---|---|
License | BSD3 |
Maintainer | cryptol@galois.com |
Stability | provisional |
Portability | portable |
Safe Haskell | Safe |
Language | Haskell2010 |
An interval interpretation of types.
Synopsis
- typeInterval :: Map TVar Interval -> Type -> Interval
- tvarInterval :: Map TVar Interval -> TVar -> Interval
- data IntervalUpdate
- updateInterval :: (TVar, Interval) -> Map TVar Interval -> IntervalUpdate
- computePropIntervals :: Map TVar Interval -> [Prop] -> IntervalUpdate
- propInterval :: Map TVar Interval -> Prop -> [(TVar, Interval)]
- data Interval = Interval {}
- ppIntervals :: Map TVar Interval -> Doc
- ppInterval :: Interval -> Doc
- iIsExact :: Interval -> Maybe Nat'
- iIsFin :: Interval -> Bool
- iIsPosFin :: Interval -> Bool
- iOverlap :: Interval -> Interval -> Bool
- iIntersect :: Interval -> Interval -> Maybe Interval
- iAny :: Interval
- iAnyFin :: Interval
- iConst :: Nat' -> Interval
- iAdd :: Interval -> Interval -> Interval
- iMul :: Interval -> Interval -> Interval
- iExp :: Interval -> Interval -> Interval
- iMin :: Interval -> Interval -> Interval
- iMax :: Interval -> Interval -> Interval
- iSub :: Interval -> Interval -> Interval
- iDiv :: Interval -> Interval -> Interval
- iMod :: Interval -> Interval -> Interval
- iCeilDiv :: Interval -> Interval -> Interval
- iCeilMod :: Interval -> Interval -> Interval
- iWidth :: Interval -> Interval
- iLenFromThenTo :: Interval -> Interval -> Interval -> Interval
Documentation
data IntervalUpdate Source #
Instances
Show IntervalUpdate Source # | |
Defined in Cryptol.TypeCheck.Solver.Numeric.Interval showsPrec :: Int -> IntervalUpdate -> ShowS # show :: IntervalUpdate -> String # showList :: [IntervalUpdate] -> ShowS # |
updateInterval :: (TVar, Interval) -> Map TVar Interval -> IntervalUpdate Source #
computePropIntervals :: Map TVar Interval -> [Prop] -> IntervalUpdate Source #
propInterval :: Map TVar Interval -> Prop -> [(TVar, Interval)] Source #
What we learn about variables from a single prop.
ppInterval :: Interval -> Doc Source #