cryptol-2.3.0: Cryptol: The Language of Cryptography

Copyright(c) 2015-2016 Galois, Inc.
LicenseBSD3
Maintainercryptol@galois.com
Stabilityprovisional
Portabilityportable
Safe HaskellSafe
LanguageHaskell98

Cryptol.TypeCheck.Solver.Numeric.Interval

Description

An interval interpretation of types.

Synopsis

Documentation

typeInterval :: Map TVar Interval -> Type -> Interval Source

Only meaningful for numeric types

propInterval :: Map TVar Interval -> Prop -> [(TVar, Interval)] Source

What we learn about variables from a single prop.

data Interval Source

Constructors

Interval 

Fields

iLower :: Nat'

lower bound (inclusive)

iUpper :: Maybe Nat'

upper bound (inclusive) If there is no upper bound, than all *natural* numbers.

iDisjoint :: Interval -> Interval -> Bool Source

Returns True when the intervals definitely overlap, and False otherwise.

iIntersect :: Interval -> Interval -> Maybe Interval Source

Intersect two intervals, yielding a new one that describes the space where they overlap. If the two intervals are disjoint, the result will be Nothing.

iAny :: Interval Source

Any value

iAnyFin :: Interval Source

Any finite value

iConst :: Nat' -> Interval Source

Exactly this value