Agda-2.3.0: A dependently typed functional programming language and proof assistant

Agda.TypeChecking.Substitute

Synopsis

Documentation

class Apply t whereSource

Apply something to a bunch of arguments. Preserves blocking tags (application can never resolve blocking).

Methods

apply :: t -> Args -> tSource

piApply :: Type -> Args -> TypeSource

The type must contain the right number of pis without have to perform any reduction.

abstractArgs :: Abstract a => Args -> a -> aSource

type Substitution = [Term]Source

Substitutions.

class Subst t whereSource

Substitute a term for the nth free variable.

Methods

substs :: Substitution -> t -> tSource

substUnder :: Nat -> Term -> t -> tSource

subst :: Subst t => Term -> t -> tSource

class Raise t whereSource

Add k to index of each open variable in x.

Methods

raiseFrom :: Nat -> Nat -> t -> tSource

renameFrom :: Nat -> (Nat -> Nat) -> t -> tSource

raise :: Raise t => Nat -> t -> tSource

rename :: Raise t => (Nat -> Nat) -> t -> tSource

data TelV a Source

Constructors

TelV (Tele (Arg a)) a 

Instances

Functor TelV 
Typeable1 TelV 
(Eq a, Raise a) => Eq (TelV a) 
Data a => Data (TelV a) 
(Ord a, Raise a) => Ord (TelV a) 
Show a => Show (TelV a) 

telePi_ :: Telescope -> Type -> TypeSource

Everything will be a pi.

dLub :: Sort -> Abs Sort -> SortSource

Dependent least upper bound, to assign a level to expressions like forall i -> Set i.

dLub s1 i.s2 = omega if i appears in the rigid variables of s2.

absApp :: Subst t => Abs t -> Term -> tSource

Instantiate an abstraction

absBody :: Raise t => Abs t -> tSource

mkAbs :: (Raise a, Free a) => String -> a -> Abs aSource

reAbs :: (Raise a, Free a) => Abs a -> Abs aSource