Copyright | (c) Sirui Lu 2021-2024 |
---|---|
License | BSD-3-Clause (see the LICENSE file) |
Maintainer | siruilu@cs.washington.edu |
Stability | Experimental |
Portability | GHC only |
Safe Haskell | None |
Language | Haskell2010 |
Grisette.Internal.SymPrim.Prim.Model
Contents
Description
Synopsis
- newtype SymbolSet (knd :: SymbolKind) = SymbolSet {
- unSymbolSet :: HashSet (SomeTypedSymbol knd)
- type ConstantSymbolSet = SymbolSet 'ConstantKind
- type AnySymbolSet = SymbolSet 'AnyKind
- newtype Model = Model {}
- data ModelValuePair t = (TypedAnySymbol t) ::= t
- equation :: TypedAnySymbol a -> Model -> Maybe (Term Bool)
- evalTerm :: SupportedPrim a => Bool -> Model -> HashSet SomeTypedConstantSymbol -> Term a -> Term a
Documentation
newtype SymbolSet (knd :: SymbolKind) Source #
Set of symbols.
Check SymbolSetOps
for operations, and
SymbolSetRep
for manual constructions.
Constructors
SymbolSet | |
Fields
|
Instances
type ConstantSymbolSet = SymbolSet 'ConstantKind Source #
Set of constant symbols. Excluding unintepreted functions.
type AnySymbolSet = SymbolSet 'AnyKind Source #
Set of any symbols.
Constructors
Model | |
Fields |
Instances
Binary Model Source # | |||||
Serial Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model | |||||
Serialize Model Source # | |||||
NFData Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model | |||||
Monoid Model Source # | |||||
Semigroup Model Source # | |||||
Generic Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Associated Types
| |||||
Show Model Source # | |||||
Eq Model Source # | |||||
PPrint Model Source # | |||||
Hashable Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model | |||||
Lift Model Source # | |||||
ModelOps Model AnySymbolSet TypedAnySymbol Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods emptyModel :: Model Source # isEmptyModel :: Model -> Bool Source # modelContains :: TypedAnySymbol a -> Model -> Bool Source # valueOf :: TypedAnySymbol t -> Model -> Maybe t Source # insertValue :: TypedAnySymbol t -> t -> Model -> Model Source # exceptFor :: AnySymbolSet -> Model -> Model Source # exceptFor' :: TypedAnySymbol t -> Model -> Model Source # restrictTo :: AnySymbolSet -> Model -> Model Source # | |||||
ModelRep (ModelValuePair t) Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildModel :: ModelValuePair t -> Model Source # | |||||
ModelRep (ModelSymPair ct st) Model Source # | |||||
Defined in Grisette.Internal.SymPrim.ModelRep Methods buildModel :: ModelSymPair ct st -> Model Source # | |||||
(ModelRep a Model, ModelRep b Model) => ModelRep (a, b) Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildModel :: (a, b) -> Model Source # | |||||
(ModelRep a Model, ModelRep b Model, ModelRep c Model) => ModelRep (a, b, c) Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildModel :: (a, b, c) -> Model Source # | |||||
(ModelRep a Model, ModelRep b Model, ModelRep c Model, ModelRep d Model) => ModelRep (a, b, c, d) Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildModel :: (a, b, c, d) -> Model Source # | |||||
(ModelRep a Model, ModelRep b Model, ModelRep c Model, ModelRep d Model, ModelRep e Model) => ModelRep (a, b, c, d, e) Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildModel :: (a, b, c, d, e) -> Model Source # | |||||
(ModelRep a Model, ModelRep b Model, ModelRep c Model, ModelRep d Model, ModelRep e Model, ModelRep f Model) => ModelRep (a, b, c, d, e, f) Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildModel :: (a, b, c, d, e, f) -> Model Source # | |||||
(ModelRep a Model, ModelRep b Model, ModelRep c Model, ModelRep d Model, ModelRep e Model, ModelRep f Model, ModelRep g Model) => ModelRep (a, b, c, d, e, f, g) Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildModel :: (a, b, c, d, e, f, g) -> Model Source # | |||||
(ModelRep a Model, ModelRep b Model, ModelRep c Model, ModelRep d Model, ModelRep e Model, ModelRep f Model, ModelRep g Model, ModelRep h Model) => ModelRep (a, b, c, d, e, f, g, h) Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildModel :: (a, b, c, d, e, f, g, h) -> Model Source # | |||||
type Rep Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model type Rep Model = D1 ('MetaData "Model" "Grisette.Internal.SymPrim.Prim.Model" "grisette-0.11.0.0-HndeEPlDvvDHSETLw6O8c" 'True) (C1 ('MetaCons "Model" 'PrefixI 'True) (S1 ('MetaSel ('Just "unModel") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HashMap SomeTypedAnySymbol ModelValue)))) |
data ModelValuePair t Source #
A type used for building a model by hand.
>>>
buildModel ("x" ::= (1 :: Integer), "y" ::= True) :: Model
Model {x -> 1 :: Integer, y -> true :: Bool}
Constructors
(TypedAnySymbol t) ::= t |
Instances
Show t => Show (ModelValuePair t) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Model Methods showsPrec :: Int -> ModelValuePair t -> ShowS # show :: ModelValuePair t -> String # showList :: [ModelValuePair t] -> ShowS # | |
ModelRep (ModelValuePair t) Model Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildModel :: ModelValuePair t -> Model Source # |
equation :: TypedAnySymbol a -> Model -> Maybe (Term Bool) Source #
Given a typed symbol and a model, return the equation (symbol = value) encoded in the model.
evalTerm :: SupportedPrim a => Bool -> Model -> HashSet SomeTypedConstantSymbol -> Term a -> Term a Source #
Evaluate a term in the given model.
Orphan instances
(ModelRep a Model, ModelRep b Model) => ModelRep (a, b) Model Source # | |
Methods buildModel :: (a, b) -> Model Source # | |
(ModelRep a Model, ModelRep b Model, ModelRep c Model) => ModelRep (a, b, c) Model Source # | |
Methods buildModel :: (a, b, c) -> Model Source # | |
(ModelRep a Model, ModelRep b Model, ModelRep c Model, ModelRep d Model) => ModelRep (a, b, c, d) Model Source # | |
Methods buildModel :: (a, b, c, d) -> Model Source # | |
(ModelRep a Model, ModelRep b Model, ModelRep c Model, ModelRep d Model, ModelRep e Model) => ModelRep (a, b, c, d, e) Model Source # | |
Methods buildModel :: (a, b, c, d, e) -> Model Source # | |
(ModelRep a Model, ModelRep b Model, ModelRep c Model, ModelRep d Model, ModelRep e Model, ModelRep f Model) => ModelRep (a, b, c, d, e, f) Model Source # | |
Methods buildModel :: (a, b, c, d, e, f) -> Model Source # | |
(ModelRep a Model, ModelRep b Model, ModelRep c Model, ModelRep d Model, ModelRep e Model, ModelRep f Model, ModelRep g Model) => ModelRep (a, b, c, d, e, f, g) Model Source # | |
Methods buildModel :: (a, b, c, d, e, f, g) -> Model Source # | |
(ModelRep a Model, ModelRep b Model, ModelRep c Model, ModelRep d Model, ModelRep e Model, ModelRep f Model, ModelRep g Model, ModelRep h Model) => ModelRep (a, b, c, d, e, f, g, h) Model Source # | |
Methods buildModel :: (a, b, c, d, e, f, g, h) -> Model Source # |