presburger-0.4: Cooper's decision procedure for Presburger arithmetic.

Data.Integer.Presburger.HOAS

Synopsis

Documentation

class Quant t Source

Instances

Quant Formula 
Quant t => Quant (Term -> t) 

data Term Source

Terms of Presburger arithmetic. Term are created by using the Num class. WARNING: Presburger arithmetic only supports multiplication by a constant, trying to create invalid terms will result in a run-time error. A more type-safe alternative is to use the '(.*)' operator.

Instances

Eq Term 
Num Term 
Show Term 
PP Term 
Quant t => Quant (Term -> t) 

is_constant :: Term -> Maybe IntegerSource

Check if a term is a constant (i.e., contains no variables). If so, then we return the constant, otherwise we return Nothing.

class PP a whereSource

Methods

pp :: a -> DocSource

Instances

PP Env 
PP Term 
PP Conn 
PP Formula 
SignPP p => PP (NormProp p) 
SignPP p => PP (Prop p) 
PP p => PP (Form p)