Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- type UId o = Metavar (Exp o) (RefInfo o)
- data HintMode
- data EqReasoningConsts o = EqReasoningConsts {}
- data EqReasoningState
- data RefInfo o
- = RIEnv {
- rieHints :: [(ConstRef o, HintMode)]
- rieDefFreeVars :: Nat
- rieEqReasoningConsts :: Maybe (EqReasoningConsts o)
- | RIMainInfo {
- riMainCxtLength :: Nat
- riMainType :: HNExp o
- riMainIota :: Bool
- | RIUnifInfo [CAction o] (HNExp o)
- | RICopyInfo (ICExp o)
- | RIIotaStep Bool
- | RIInferredTypeUnknown
- | RINotConstructor
- | RIUsedVars [UId o] [Elr o]
- | RIPickSubsvar
- | RIEqRState EqReasoningState
- | RICheckElim Bool
- | RICheckProjIndex [ConstRef o]
- = RIEnv {
- type MyPB o = PB (RefInfo o)
- type MyMB a o = MB a (RefInfo o)
- type Nat = Int
- data MId
- data Abs a = Abs MId a
- data ConstDef o = ConstDef {}
- data DeclCont o
- type Clause o = ([Pat o], MExp o)
- data Pat o
- type ConstRef o = IORef (ConstDef o)
- data Elr o
- getVar :: Elr o -> Maybe Nat
- getConst :: Elr o -> Maybe (ConstRef o)
- data Sort
- = Set Nat
- | UnknownSort
- | Type
- data Exp o
- dontCare :: Exp o
- type MExp o = MM (Exp o) (RefInfo o)
- data ArgList o
- type MArgList o = MM (ArgList o) (RefInfo o)
- data WithSeenUIds a o = WithSeenUIds {}
- type HNExp o = WithSeenUIds (HNExp' o) o
- data HNExp' o
- data HNArgList o
- data ICArgList o
- type ICExp o = Clos (MExp o) o
- data Clos a o = Clos [CAction o] a
- type CExp o = TrBr (ICExp o) o
- data TrBr a o = TrBr [MExp o] a
- data CAction o
- type Ctx o = [(MId, CExp o)]
- type EE = IO
- detecteliminand :: [Clause o] -> Maybe Nat
- detectsemiflex :: ConstRef o -> [Clause o] -> IO Bool
- categorizedecl :: ConstRef o -> IO ()
- class MetaliseOKH t where
- metaliseOKH :: t -> IO t
- metaliseokh :: MExp o -> IO (MExp o)
- class ExpandMetas t where
- expandMetas :: t -> IO t
- addtrailingargs :: Clos (MArgList o) o -> ICArgList o -> ICArgList o
- closify :: MExp o -> CExp o
- sub :: MExp o -> CExp o -> CExp o
- subi :: MExp o -> ICExp o -> ICExp o
- weak :: Weakening t => Nat -> t -> t
- class Weakening t where
- doclos :: [CAction o] -> Nat -> Either Nat (ICExp o)
- freeVars :: FreeVars t => t -> Set Nat
- class FreeVars t where
- freeVarsOffset :: Nat -> t -> Set Nat
- rename :: Renaming t => (Nat -> Nat) -> t -> t
- class Renaming t where
- renameOffset :: Nat -> (Nat -> Nat) -> t -> t
Documentation
type UId o = Metavar (Exp o) (RefInfo o) Source #
Unique identifiers for variable occurrences in unification.
data EqReasoningConsts o Source #
data EqReasoningState Source #
Instances
Show EqReasoningState Source # | |
Defined in Agda.Auto.Syntax showsPrec :: Int -> EqReasoningState -> ShowS show :: EqReasoningState -> String showList :: [EqReasoningState] -> ShowS | |
Eq EqReasoningState Source # | |
Defined in Agda.Auto.Syntax (==) :: EqReasoningState -> EqReasoningState -> Bool (/=) :: EqReasoningState -> EqReasoningState -> Bool |
The concrete instance of the blk
parameter in Metavar
.
I.e., the information passed to the search control.
RIEnv | |
| |
RIMainInfo | |
| |
RIUnifInfo [CAction o] (HNExp o) | |
RICopyInfo (ICExp o) | |
RIIotaStep Bool | |
RIInferredTypeUnknown | |
RINotConstructor | |
RIUsedVars [UId o] [Elr o] | |
RIPickSubsvar | |
RIEqRState EqReasoningState | |
RICheckElim Bool | |
RICheckProjIndex [ConstRef o] |
Instances
Abstraction with maybe a name.
Different from Agda, where there is also info whether function is constant.
Instances
Conversion MOT a b => Conversion MOT (Abs a) (Abs b) Source # | |
Lift t => Lift (Abs t) Source # | |
Unify t => Unify (Abs t) Source # | |
ExpandMetas t => ExpandMetas (Abs t) Source # | |
Defined in Agda.Auto.Syntax expandMetas :: Abs t -> IO (Abs t) Source # | |
FreeVars t => FreeVars (Abs t) Source # | |
Defined in Agda.Auto.Syntax | |
MetaliseOKH t => MetaliseOKH (Abs t) Source # | |
Defined in Agda.Auto.Syntax metaliseOKH :: Abs t -> IO (Abs t) Source # | |
Renaming t => Renaming (Abs t) Source # | |
Defined in Agda.Auto.Syntax | |
Replace t u => Replace (Abs t) (Abs u) Source # | |
type UnifiesTo (Abs t) Source # | |
Defined in Agda.Auto.CaseSplit | |
type ReplaceWith (Abs t) (Abs u) Source # | |
Defined in Agda.Auto.CaseSplit |
Constant signatures.
Constant definitions.
PatConApp (ConstRef o) [Pat o] | |
PatVar String | |
PatExp | Dot pattern. |
PatProj (ConstRef o) | Projection pattern. |
Head of application (elimination).
Agsy's internal syntax.
App | |
Lam Hiding (Abs (MExp o)) | Lambda with hiding information. |
Pi (Maybe (UId o)) Hiding Bool (MExp o) (Abs (MExp o)) |
|
Sort Sort | |
AbsurdLambda Hiding | Absurd lambda with hiding information. |
Instances
type MExp o = MM (Exp o) (RefInfo o) Source #
"Maybe expression": Expression or reference to meta variable.
ALNil | No more eliminations. |
ALCons Hiding (MExp o) (MArgList o) | Application and tail. |
ALProj (MArgList o) (MM (ConstRef o) (RefInfo o)) Hiding (MArgList o) | proj pre args, projfcn idx, tail |
ALConPar (MArgList o) | Constructor parameter (missing in Agda). Agsy has monomorphic constructors. Inserted to cover glitch of polymorphic constructor applications coming from Agda |
Instances
Conversion TOM Args (MM (ArgList O) (RefInfo O)) Source # | |
Lift (ArgList o) Source # | |
LocalTerminationEnv (MArgList o) Source # | |
Defined in Agda.Auto.CaseSplit | |
Unify (ArgList o) Source # | |
Trav (ArgList o) Source # | |
ExpandMetas (ArgList o) Source # | |
Defined in Agda.Auto.Syntax expandMetas :: ArgList o -> IO (ArgList o) Source # | |
FreeVars (ArgList o) Source # | |
Defined in Agda.Auto.Syntax | |
MetaliseOKH (ArgList o) Source # | |
Defined in Agda.Auto.Syntax metaliseOKH :: ArgList o -> IO (ArgList o) Source # | |
Renaming (ArgList o) Source # | |
Defined in Agda.Auto.Syntax | |
Replace (ArgList o) (ArgList o) Source # | |
Refinable (ArgList o) (RefInfo o) Source # | |
type UnifiesTo (ArgList o) Source # | |
Defined in Agda.Auto.CaseSplit | |
type Block (ArgList o) Source # | |
Defined in Agda.Auto.SearchControl | |
type ReplaceWith (ArgList o) (ArgList o) Source # | |
Defined in Agda.Auto.CaseSplit |
data WithSeenUIds a o Source #
type HNExp o = WithSeenUIds (HNExp' o) o Source #
Head-normal form of ICArgList
. First entry is exposed.
Q: Why are there no projection eliminations?
Lazy concatenation of argument lists under explicit substitutions.
Entry of an explicit substitution.
An explicit substitution is a list of CAction
s.
This is isomorphic to the usual presentation where
Skip
and Weak
would be constructors of exp. substs.
detecteliminand :: [Clause o] -> Maybe Nat Source #
detectsemiflex :: ConstRef o -> [Clause o] -> IO Bool Source #
categorizedecl :: ConstRef o -> IO () Source #
class MetaliseOKH t where Source #
metaliseOKH :: t -> IO t Source #
Instances
MetaliseOKH t => MetaliseOKH (Abs t) Source # | |
Defined in Agda.Auto.Syntax metaliseOKH :: Abs t -> IO (Abs t) Source # | |
MetaliseOKH (ArgList o) Source # | |
Defined in Agda.Auto.Syntax metaliseOKH :: ArgList o -> IO (ArgList o) Source # | |
MetaliseOKH (Exp o) Source # | |
Defined in Agda.Auto.Syntax metaliseOKH :: Exp o -> IO (Exp o) Source # | |
MetaliseOKH t => MetaliseOKH (MM t a) Source # | |
Defined in Agda.Auto.Syntax metaliseOKH :: MM t a -> IO (MM t a) Source # |
metaliseokh :: MExp o -> IO (MExp o) Source #
class ExpandMetas t where Source #
expandMetas :: t -> IO t Source #
Instances
ExpandMetas t => ExpandMetas (Abs t) Source # | |
Defined in Agda.Auto.Syntax expandMetas :: Abs t -> IO (Abs t) Source # | |
ExpandMetas (ArgList o) Source # | |
Defined in Agda.Auto.Syntax expandMetas :: ArgList o -> IO (ArgList o) Source # | |
ExpandMetas (Exp o) Source # | |
Defined in Agda.Auto.Syntax expandMetas :: Exp o -> IO (Exp o) Source # | |
ExpandMetas t => ExpandMetas (MM t a) Source # | |
Defined in Agda.Auto.Syntax expandMetas :: MM t a -> IO (MM t a) Source # |
class FreeVars t where Source #
freeVarsOffset :: Nat -> t -> Set Nat Source #
Instances
FreeVars t => FreeVars (Abs t) Source # | |
Defined in Agda.Auto.Syntax | |
FreeVars (ArgList o) Source # | |
Defined in Agda.Auto.Syntax | |
FreeVars (Elr o) Source # | |
Defined in Agda.Auto.Syntax | |
FreeVars (Exp o) Source # | |
Defined in Agda.Auto.Syntax | |
FreeVars t => FreeVars (MM t a) Source # | |
Defined in Agda.Auto.Syntax | |
(FreeVars a, FreeVars b) => FreeVars (a, b) Source # | |
Defined in Agda.Auto.Syntax freeVarsOffset :: Nat -> (a, b) -> Set Nat Source # |
class Renaming t where Source #
Instances
Renaming (CSPatI o) Source # | |
Defined in Agda.Auto.CaseSplit | |
Renaming t => Renaming (HI t) Source # | |
Defined in Agda.Auto.CaseSplit | |
Renaming t => Renaming (Abs t) Source # | |
Defined in Agda.Auto.Syntax | |
Renaming (ArgList o) Source # | |
Defined in Agda.Auto.Syntax | |
Renaming (Elr o) Source # | |
Defined in Agda.Auto.Syntax | |
Renaming (Exp o) Source # | |
Defined in Agda.Auto.Syntax | |
Renaming t => Renaming (MM t a) Source # | |
Defined in Agda.Auto.Syntax | |
(Renaming a, Renaming b) => Renaming (a, b) Source # | |
Defined in Agda.Auto.Syntax |