| Copyright | (c) Reed Mullanix 2019 |
|---|---|
| License | BSD-style |
| Maintainer | reedmullanix@gmail.com |
| Safe Haskell | None |
| Language | Haskell2010 |
Refinery.Tactic.Internal
Description
WARNING
This module is considered internal, and can change at any given time.
Synopsis
- newtype TacticT jdg ext err s m a = TacticT {
- unTacticT :: StateT jdg (ProofStateT ext ext err s m) a
- tactic :: (jdg -> ProofStateT ext ext err s m (a, jdg)) -> TacticT jdg ext err s m a
- proofState :: TacticT jdg ext err s m a -> jdg -> ProofStateT ext ext err s m (a, jdg)
- mapTacticT :: Monad m => (m a -> m b) -> TacticT jdg ext err s m a -> TacticT jdg ext err s m b
- class Monad m => MonadRule jdg ext m | m -> jdg, m -> ext where
- subgoal :: jdg -> m ext
- newtype RuleT jdg ext err s m a = RuleT {
- unRuleT :: ProofStateT ext a err s m jdg
Documentation
newtype TacticT jdg ext err s m a Source #
A is a monad transformer that performs proof refinement.
The type variables signifiy:TacticT
jdg- The goal type. This is the thing we are trying to construct a proof of.ext- The extract type. This is what we will recieve after running the tactic.err- The error type. We can usethrowErrorto abort the computation with a provided errors- The state type.m- The base monad.a- The return value. This to makea monad, and will always beTacticT'()'
Constructors
| TacticT | |
Fields
| |
Instances
| Monad m => MonadState s (TacticT jdg ext err s m) Source # | |
| MonadReader env m => MonadReader env (TacticT jdg ext err s m) Source # | |
| Monad m => MonadError err (TacticT jdg ext err s m) Source # | |
Defined in Refinery.Tactic.Internal Methods throwError :: err -> TacticT jdg ext err s m a # catchError :: TacticT jdg ext err s m a -> (err -> TacticT jdg ext err s m a) -> TacticT jdg ext err s m a # | |
| MFunctor (TacticT jdg ext err s :: (Type -> Type) -> Type -> Type) Source # | |
| MonadTrans (TacticT jdg ext err s) Source # | |
Defined in Refinery.Tactic.Internal | |
| Functor m => Monad (TacticT jdg ext err s m) Source # | |
Defined in Refinery.Tactic.Internal | |
| Functor m => Functor (TacticT jdg ext err s m) Source # | |
| Functor m => Applicative (TacticT jdg ext err s m) Source # | |
Defined in Refinery.Tactic.Internal Methods pure :: a -> TacticT jdg ext err s m a # (<*>) :: TacticT jdg ext err s m (a -> b) -> TacticT jdg ext err s m a -> TacticT jdg ext err s m b # liftA2 :: (a -> b -> c) -> TacticT jdg ext err s m a -> TacticT jdg ext err s m b -> TacticT jdg ext err s m c # (*>) :: TacticT jdg ext err s m a -> TacticT jdg ext err s m b -> TacticT jdg ext err s m b # (<*) :: TacticT jdg ext err s m a -> TacticT jdg ext err s m b -> TacticT jdg ext err s m a # | |
| MonadIO m => MonadIO (TacticT jdg ext err s m) Source # | |
Defined in Refinery.Tactic.Internal | |
| Monad m => Alternative (TacticT jdg ext err s m) Source # | |
Defined in Refinery.Tactic.Internal | |
| Monad m => MonadPlus (TacticT jdg ext err s m) Source # | |
| MonadThrow m => MonadThrow (TacticT jdg ext err s m) Source # | |
Defined in Refinery.Tactic.Internal | |
| MonadCatch m => MonadCatch (TacticT jdg ext err s m) Source # | |
| (Monoid jdg, Show a, Show jdg, Show err, Show ext, Show (m (ProofStateT ext ext err s m (a, jdg)))) => Show (TacticT jdg ext err s m a) Source # | |
| Generic (TacticT jdg ext err s m a) Source # | |
| type Rep (TacticT jdg ext err s m a) Source # | |
Defined in Refinery.Tactic.Internal type Rep (TacticT jdg ext err s m a) = D1 (MetaData "TacticT" "Refinery.Tactic.Internal" "refinery-0.3.0.0-Fdcu2SHDGUb4nunxmlwjIU" True) (C1 (MetaCons "TacticT" PrefixI True) (S1 (MetaSel (Just "unTacticT") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (StateT jdg (ProofStateT ext ext err s m) a)))) | |
tactic :: (jdg -> ProofStateT ext ext err s m (a, jdg)) -> TacticT jdg ext err s m a Source #
Helper function for producing a tactic.
proofState :: TacticT jdg ext err s m a -> jdg -> ProofStateT ext ext err s m (a, jdg) Source #
Helper function for deconstructing a tactic.
mapTacticT :: Monad m => (m a -> m b) -> TacticT jdg ext err s m a -> TacticT jdg ext err s m b Source #
Map the unwrapped computation using the given function
class Monad m => MonadRule jdg ext m | m -> jdg, m -> ext where Source #
Minimal complete definition
Nothing
Methods
subgoal :: jdg -> m ext Source #
Create a subgoal, and return the resulting extract.
subgoal :: (MonadTrans t, MonadRule jdg ext m1, m ~ t m1) => jdg -> m ext Source #
Create a subgoal, and return the resulting extract.
Instances
| MonadRule jdg ext m => MonadRule jdg ext (ExceptT env m) Source # | |
Defined in Refinery.Tactic.Internal | |
| MonadRule jdg ext m => MonadRule jdg ext (StateT env m) Source # | |
Defined in Refinery.Tactic.Internal | |
| MonadRule jdg ext m => MonadRule jdg ext (ReaderT env m) Source # | |
Defined in Refinery.Tactic.Internal | |
| Monad m => MonadRule jdg ext (RuleT jdg ext err s m) Source # | |
Defined in Refinery.Tactic.Internal | |
newtype RuleT jdg ext err s m a Source #
A is a monad transformer for creating inference rules.RuleT
Constructors
| RuleT | |
Fields
| |
Instances
| Monad m => MonadRule jdg ext (RuleT jdg ext err s m) Source # | |
Defined in Refinery.Tactic.Internal | |
| Monad m => MonadState s (RuleT jdg ext err s m) Source # | |
| MonadReader r m => MonadReader r (RuleT jdg ext err s m) Source # | |
| Monad m => MonadError err (RuleT jdg ext err s m) Source # | |
Defined in Refinery.Tactic.Internal Methods throwError :: err -> RuleT jdg ext err s m a # catchError :: RuleT jdg ext err s m a -> (err -> RuleT jdg ext err s m a) -> RuleT jdg ext err s m a # | |
| MFunctor (RuleT jdg ext err s :: (Type -> Type) -> Type -> Type) Source # | |
| MonadTrans (RuleT jdg ext err s) Source # | |
Defined in Refinery.Tactic.Internal | |
| Monad m => Monad (RuleT jdg ext err s m) Source # | |
Defined in Refinery.Tactic.Internal | |
| Functor m => Functor (RuleT jdg ext err s m) Source # | |
| Monad m => Applicative (RuleT jdg ext err s m) Source # | |
Defined in Refinery.Tactic.Internal Methods pure :: a -> RuleT jdg ext err s m a # (<*>) :: RuleT jdg ext err s m (a -> b) -> RuleT jdg ext err s m a -> RuleT jdg ext err s m b # liftA2 :: (a -> b -> c) -> RuleT jdg ext err s m a -> RuleT jdg ext err s m b -> RuleT jdg ext err s m c # (*>) :: RuleT jdg ext err s m a -> RuleT jdg ext err s m b -> RuleT jdg ext err s m b # (<*) :: RuleT jdg ext err s m a -> RuleT jdg ext err s m b -> RuleT jdg ext err s m a # | |
| MonadIO m => MonadIO (RuleT jdg ext err s m) Source # | |
Defined in Refinery.Tactic.Internal | |
| (Show jdg, Show err, Show a, Show (m (ProofStateT ext a err s m jdg))) => Show (RuleT jdg ext err s m a) Source # | |
| Generic (RuleT jdg ext err s m a) Source # | |
| type Rep (RuleT jdg ext err s m a) Source # | |
Defined in Refinery.Tactic.Internal type Rep (RuleT jdg ext err s m a) = D1 (MetaData "RuleT" "Refinery.Tactic.Internal" "refinery-0.3.0.0-Fdcu2SHDGUb4nunxmlwjIU" True) (C1 (MetaCons "RuleT" PrefixI True) (S1 (MetaSel (Just "unRuleT") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (ProofStateT ext a err s m jdg)))) | |