| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
Agda.Auto.CaseSplit
Synopsis
- abspatvarname :: String
 - costCaseSplitVeryHigh :: Cost
 - costCaseSplitHigh :: Cost
 - costCaseSplitLow :: Cost
 - costAddVarDepth :: Cost
 - data HI a = HI Hiding a
 - drophid :: [HI a] -> [a]
 - type CSPat o = HI (CSPatI o)
 - type CSCtx o = [HI (MId, MExp o)]
 - data CSPatI o
 - type Sol o = [(CSCtx o, [CSPat o], Maybe (MExp o))]
 - caseSplitSearch :: forall o. IORef Int -> Int -> [ConstRef o] -> Maybe (EqReasoningConsts o) -> Int -> Cost -> ConstRef o -> CSCtx o -> MExp o -> [CSPat o] -> IO [Sol o]
 - caseSplitSearch' :: forall o. (Cost -> CSCtx o -> MExp o -> ([Nat], Nat, [Nat]) -> IO (Maybe (MExp o))) -> Int -> Cost -> ConstRef o -> CSCtx o -> MExp o -> [CSPat o] -> IO [Sol o]
 - infertypevar :: CSCtx o -> Nat -> MExp o
 - class Replace o t u | t u -> o where
 - replace :: Replace o t u => Nat -> Nat -> MExp o -> t -> u
 - betareduce :: MExp o -> MArgList o -> MExp o
 - concatargs :: MArgList o -> MArgList o -> MArgList o
 - replacep :: forall o. Nat -> Nat -> CSPatI o -> MExp o -> CSPat o -> CSPat o
 - type Assignments o = [(Nat, Exp o)]
 - class Unify o t | t -> o where
 - unify :: Unify o t => t -> t -> Maybe (Assignments o)
 - notequal :: Unify o t => Nat -> Nat -> t -> t -> IO Bool
 - unifyVar :: Nat -> Exp o -> StateT (Assignments o) Maybe ()
 - unifyexp :: MExp o -> MExp o -> Maybe [(Nat, MExp o)]
 - class Lift t where
 - lift :: Lift t => Nat -> t -> t
 - removevar :: CSCtx o -> MExp o -> [CSPat o] -> [(Nat, MExp o)] -> (CSCtx o, MExp o, [CSPat o])
 - findperm :: [MExp o] -> Maybe [Nat]
 - freevars :: FreeVars t => t -> [Nat]
 - applyperm :: [Nat] -> CSCtx o -> MExp o -> [CSPat o] -> (CSCtx o, MExp o, [CSPat o])
 - ren :: [Nat] -> Nat -> Int
 - seqctx :: CSCtx o -> CSCtx o
 - depthofvar :: Nat -> [CSPat o] -> Nat
 - class LocalTerminationEnv a where
- sizeAndBoundVars :: a -> (Sum Nat, [Nat])
 
 - localTerminationEnv :: [CSPat o] -> ([Nat], Nat, [Nat])
 - localTerminationSidecond :: ([Nat], Nat, [Nat]) -> ConstRef o -> MExp o -> EE (MyPB o)
 - getblks :: MExp o -> IO [Nat]
 
Documentation
Instances
| Renaming t => Renaming (HI t) Source # | |
Defined in Agda.Auto.CaseSplit  | |
| LocalTerminationEnv a => LocalTerminationEnv (HI a) Source # | |
Defined in Agda.Auto.CaseSplit  | |
Constructors
| CSPatConApp (ConstRef o) [CSPat o] | |
| CSPatVar Nat | |
| CSPatExp (MExp o) | |
| CSWith (MExp o) | |
| CSAbsurd | |
| CSOmittedArg | 
Instances
| Renaming (CSPatI o) Source # | |
Defined in Agda.Auto.CaseSplit  | |
| LocalTerminationEnv (CSPatI o) Source # | |
Defined in Agda.Auto.CaseSplit  | |
caseSplitSearch :: forall o. IORef Int -> Int -> [ConstRef o] -> Maybe (EqReasoningConsts o) -> Int -> Cost -> ConstRef o -> CSCtx o -> MExp o -> [CSPat o] -> IO [Sol o] Source #
caseSplitSearch' :: forall o. (Cost -> CSCtx o -> MExp o -> ([Nat], Nat, [Nat]) -> IO (Maybe (MExp o))) -> Int -> Cost -> ConstRef o -> CSCtx o -> MExp o -> [CSPat o] -> IO [Sol o] Source #
type Assignments o = [(Nat, Exp o)] Source #
class Unify o t | t -> o where Source #
Methods
unify' :: t -> t -> StateT (Assignments o) Maybe () Source #
notequal' :: t -> t -> ReaderT (Nat, Nat) (StateT (Assignments o) IO) Bool Source #
removevar :: CSCtx o -> MExp o -> [CSPat o] -> [(Nat, MExp o)] -> (CSCtx o, MExp o, [CSPat o]) Source #
class LocalTerminationEnv a where Source #
Speculation: Type class computing the size (?) of a pattern and collecting the vars it introduces
Instances
| LocalTerminationEnv a => LocalTerminationEnv [a] Source # | |
Defined in Agda.Auto.CaseSplit  | |
| LocalTerminationEnv (MArgList o) Source # | |
Defined in Agda.Auto.CaseSplit  | |
| LocalTerminationEnv (MExp o) Source # | |
Defined in Agda.Auto.CaseSplit  | |
| LocalTerminationEnv (CSPatI o) Source # | |
Defined in Agda.Auto.CaseSplit  | |
| LocalTerminationEnv a => LocalTerminationEnv (HI a) Source # | |
Defined in Agda.Auto.CaseSplit  | |
| (LocalTerminationEnv a, LocalTerminationEnv b) => LocalTerminationEnv (a, b) Source # | |
Defined in Agda.Auto.CaseSplit  | |