summaryrefslogtreecommitdiff
path: root/src/spec_analysis.mli
blob: 731bd822fa77d7518e19f96ce8a242b3399eb1b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
open Ast
open Util
open Big_int
open Type_internal

type typ = Type_internal.t

(*Returns the declared default order of a set of definitions, defaulting to Inc if no default is provided *)
val default_order : tannot defs -> order

(*Determines if the first typ is within the range of the the second typ, 
  using the constraints provided when the first typ contains variables. 
  It is an error for second typ to be anything other than a range type
  If the first typ is a vector, then determines if the max representable 
  number is in the range of the second; it is an error for the first typ
  to be anything other than a vector, a range, an atom, or a bit (after
  suitable unwrapping of abbreviations, reg, and registers). 
*)
val is_within_range: typ -> typ -> nexp_range list -> triple
val is_within_machine64 : typ -> nexp_range list -> triple