Safe Haskell | None |
---|---|
Language | Haskell2010 |
Functions for abstracting terms over other terms.
Synopsis
- abstractType :: Type -> Term -> Type -> TCM Type
- piAbstractTerm :: ArgInfo -> Term -> Type -> Type -> TCM Type
- piAbstract :: Arg (Term, EqualityView) -> Type -> TCM Type
- class IsPrefixOf a where
- isPrefixOf :: a -> a -> Maybe Elims
- abstractTerm :: Type -> Term -> Type -> Term -> TCM Term
- class AbsTerm a where
- swap01 :: TermSubst a => a -> a
- class EqualSy a where
Documentation
piAbstractTerm :: ArgInfo -> Term -> Type -> Type -> TCM Type Source #
piAbstractTerm NotHidden v a b[v] = (w : a) -> b[w]
piAbstractTerm Hidden v a b[v] = {w : a} -> b[w]
piAbstract :: Arg (Term, EqualityView) -> Type -> TCM Type Source #
piAbstract (v, a) b[v] = (w : a) -> b[w]
For the inspect idiom, it does something special: @piAbstract (v, a) b[v] = (w : a) {w' : Eq a w v} -> b[w]
For rewrite
, it does something special:
piAbstract (prf, Eq a v v') b[v,prf] = (w : a) (w' : Eq a w v') -> b[w,w']
class IsPrefixOf a where Source #
isPrefixOf u v = Just es
if v == u
.applyE
es
isPrefixOf :: a -> a -> Maybe Elims Source #
Instances
IsPrefixOf Elims Source # | |
Defined in Agda.TypeChecking.Abstract | |
IsPrefixOf Term Source # | |
Defined in Agda.TypeChecking.Abstract | |
IsPrefixOf Args Source # | |
Defined in Agda.TypeChecking.Abstract |
class AbsTerm a where Source #
Instances
AbsTerm PlusLevel Source # | |
AbsTerm Level Source # | |
AbsTerm Sort Source # | |
AbsTerm Type Source # | |
AbsTerm Term Source # | |
AbsTerm a => AbsTerm [a] Source # | |
Defined in Agda.TypeChecking.Abstract | |
AbsTerm a => AbsTerm (Maybe a) Source # | |
AbsTerm a => AbsTerm (Arg a) Source # | |
AbsTerm a => AbsTerm (Elim' a) Source # | |
(TermSubst a, AbsTerm a) => AbsTerm (Abs a) Source # | |
AbsTerm a => AbsTerm (Dom a) Source # | |
(AbsTerm a, AbsTerm b) => AbsTerm (a, b) Source # | |
Defined in Agda.TypeChecking.Abstract |
Equality of terms for the sake of with-abstraction.
class EqualSy a where Source #
Instances
EqualSy ArgInfo Source # | Ignore origin and free variables. |
EqualSy PlusLevel Source # | |
EqualSy Level Source # | |
EqualSy Sort Source # | |
EqualSy Type Source # | Ignores sorts. |
EqualSy Term Source # | |
EqualSy a => EqualSy [a] Source # | |
Defined in Agda.TypeChecking.Abstract | |
EqualSy a => EqualSy (Arg a) Source # | Ignores irrelevant arguments and modality. (And, of course, origin and free variables). |
EqualSy a => EqualSy (Elim' a) Source # | |
(Subst a, EqualSy a) => EqualSy (Abs a) Source # | Ignores |
EqualSy a => EqualSy (Dom a) Source # | Ignore the tactic. |