zsyntax-0.2.0.0: Automated theorem prover for the Zsyntax biochemical calculus

Safe HaskellNone
LanguageHaskell2010

Zsyntax.Labelled.Rule.Interface

Synopsis

Documentation

type UCtxt a l = Set (LAxiom a l) Source #

Type of labelled unrestricted contexts, i.e. sets of labelled axioms.

type LCtxt a l = MultiSet (Neutral a l) Source #

Type of labelled neutral contexts, i.e. multisets of neutral labelled formulas.

data LSequent a l Source #

Type of labelled sequents.

Constructors

LS 

Fields

Instances
(Ord a, Ord l) => Subsumable (LSequent a l) Source # 
Instance details

Defined in Zsyntax.Labelled.Rule.Interface

Methods

subsumes :: LSequent a l -> LSequent a l -> Bool Source #

data SubCtxt a Source #

Constructors

SC 

Fields

subCtxtOf :: Ord a => Set a -> Set a -> SubCtxt a Source #

class NeutralKind (k :: FKind) where Source #

Predicate identifying those formula kinds corresponding to neutral formulas.

Methods

decideNeutral :: Either (Dict (k ~ KAtom)) (Dict (k ~ KImpl)) Source #

data Neutral a l Source #

Type of neutral formulas, i.e. all formulas whose formula kind is classified as neutral by NeutralKind.

Constructors

NeutralKind k => N (LFormula k a l) 
Instances
(Eq l, Eq a) => Eq (Neutral a l) Source # 
Instance details

Defined in Zsyntax.Labelled.Rule.Interface

Methods

(==) :: Neutral a l -> Neutral a l -> Bool #

(/=) :: Neutral a l -> Neutral a l -> Bool #

(Ord l, Ord a) => Ord (Neutral a l) Source # 
Instance details

Defined in Zsyntax.Labelled.Rule.Interface

Methods

compare :: Neutral a l -> Neutral a l -> Ordering #

(<) :: Neutral a l -> Neutral a l -> Bool #

(<=) :: Neutral a l -> Neutral a l -> Bool #

(>) :: Neutral a l -> Neutral a l -> Bool #

(>=) :: Neutral a l -> Neutral a l -> Bool #

max :: Neutral a l -> Neutral a l -> Neutral a l #

min :: Neutral a l -> Neutral a l -> Neutral a l #

(Show a, Show l) => Show (Neutral a l) Source # 
Instance details

Defined in Zsyntax.Labelled.Rule.Interface

Methods

showsPrec :: Int -> Neutral a l -> ShowS #

show :: Neutral a l -> String #

showList :: [Neutral a l] -> ShowS #

withMaybeNeutral :: LFormula k a l -> (NeutralKind k => b) -> (LFormula KConj a l -> b) -> b Source #

withNeutral :: (forall k. NeutralKind k => LFormula k a l -> b) -> Neutral a l -> b Source #

switchN :: (LFormula KAtom a l -> b) -> (LFormula KImpl a l -> b) -> Neutral a l -> b Source #

newtype SchemaLCtxt a l Source #

Linear contexts that appear in sequent schemas.

Constructors

SLC (LCtxt a l) 
Instances
(Ord l, Ord a) => Semigroup (SchemaLCtxt a l) Source # 
Instance details

Defined in Zsyntax.Labelled.Rule.Interface

Methods

(<>) :: SchemaLCtxt a l -> SchemaLCtxt a l -> SchemaLCtxt a l #

sconcat :: NonEmpty (SchemaLCtxt a l) -> SchemaLCtxt a l #

stimes :: Integral b => b -> SchemaLCtxt a l -> SchemaLCtxt a l #

data ActCase Source #

Type indicating the possible shapes of an active relation. An active relation has the form

act(delta ; omega ==>_zeta xi)[...] -> gamma' ; delta' -->> res

where either 1. xi is a formula, zeta is a control set, and res is empty, or 2. xi is empty, zeta is empty, and res is a formula.

data SSchema :: * -> * -> ActCase -> * where Source #

Sequent schemas.

data MatchRes :: * -> * -> ActCase -> * where Source #

Pre-sequents to be used as match results.

Constructors

MREmptyGoal :: UCtxt a l -> LCtxt a l -> MatchRes a l FullXiEmptyResult 
MRFullGoal :: UCtxt a l -> LCtxt a l -> ReactionList a -> Opaque a l -> MatchRes a l EmptyXiFullResult 

data ZetaXi :: * -> * -> ActCase -> * where Source #

elemBaseAll :: (Foldable f, Ord a) => f (Opaque a l) -> ElemBase a Source #

lcBase :: Ord a => LCtxt a l -> ElemBase a Source #