Copyright | (c) Reed Mullanix 2019 |
---|---|
License | BSD-style |
Maintainer | reedmullanix@gmail.com |
Safe Haskell | None |
Language | Haskell2010 |
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 usethrowError
to abort the computation with a provided errors
- The state type.m
- The base monad.a
- The return value. This to make
a monad, and will always beTacticT
'()'
TacticT | |
|
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 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 # | |
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 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 # | |
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.2.0.0-2c8JRgW6Bhs8bC5T1tIgRK" 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 #
Nothing
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
RuleT | |
|
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 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 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.2.0.0-2c8JRgW6Bhs8bC5T1tIgRK" True) (C1 (MetaCons "RuleT" PrefixI True) (S1 (MetaSel (Just "unRuleT") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (ProofStateT ext a err s m jdg)))) |