HORIZON HASKELLDocslts/ghc-9.10.xc74966e2026-09-27Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · c74966e · 2026-09-27

ModuleAgda-2.7.0.1Haskell2010

Agda.TypeChecking.Substitute.Class

  • 4 types
  • 3 classes
  • 32 values
  • PackageAgda-2.7.0.1
  • Exports39
  • LanguageHaskell2010
  • LicenceMIT
  • SourceClass.hs

Application

3 declarations
classclass Apply t where
#

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

Methods

Instances32Apply, …
  • Apply BraveTermDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply ClauseDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply SortDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply TermDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply CompiledClausesDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply DefinitionDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply DefnDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply DisplayTermDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply ExtLamInfoDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply FunctionInverseDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply NumGeneralizableArgsDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply PrimFunDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply ProjLamsDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply ProjectionDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply RewriteRuleDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply SystemDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply PermutationDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply [NamedArg (Pattern' a)]Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan

    Make sure we only drop variable patterns.

  • Apply [Polarity]Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply [Occurrence]Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply a => Apply (Case a)Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply a => Apply (WithArity a)Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply t => Apply (Blocked t)Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply t => Apply (Maybe t)Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply t => Apply (Maybe t)Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply t => Apply [t]Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • TermSubst a => Apply (Tele a)Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • DoDrop a => Apply (Drop a)Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply v => Apply (Map k v)Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Apply v => Apply (HashMap k v)Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • (Apply a, Apply b) => Apply (a, b)Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • (Apply a, Apply b, Apply c) => Apply (a, b, c)Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
valueapplys :: Apply t => t -> [Term] -> t
#

Apply to some default arguments.

valueapply1 :: Apply t => t -> Term -> t
#

Apply to a single default argument.

Abstraction

1 declaration
classclass Abstract t where
#

(abstract args v) apply args --> v[args].

Methods

Instances25Abstract, …
  • Abstract ClauseDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Abstract SortDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Abstract TelescopeDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Abstract TermDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Abstract TypeDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Abstract CompiledClausesDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Abstract DefinitionDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Abstract DefnDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Abstract FunctionInverseDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Abstract NumGeneralizableArgsDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Abstract PrimFunDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Abstract ProjLamsDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Abstract ProjectionDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Abstract RewriteRuleDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan

    tel ⊢ (Γ ⊢ lhs ↦ rhs : t) becomes tel, Γ ⊢ lhs ↦ rhs : t) we do not need to change lhs, rhs, and t since they live in Γ. See 'Abstract Clause'.

  • Abstract SystemDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Abstract PermutationDefined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Abstract [Polarity]Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Abstract [Occurrence]Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Abstract a => Abstract (Case a)Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Abstract a => Abstract (WithArity a)Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Abstract t => Abstract (Maybe t)Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Abstract t => Abstract [t]Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • DoDrop a => Abstract (Drop a)Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Abstract v => Abstract (Map k v)Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan
  • Abstract v => Abstract (HashMap k v)Defined in Agda-2.7.0.1 · Agda.TypeChecking.Substitute · orphan

Substitution and shifting/weakening/strengthening

10 declarations
classclass DeBruijn (SubstArg a) => Subst a where
#

Apply a substitution.

Associated types

Methods

Instances56Subst, …
valueraise :: Subst a => Nat -> a -> a
#

Raise de Bruijn index, i.e. weakening

valuesubstUnder :: Subst a => Nat -> SubstArg a -> a -> a
#

Replace what is now de Bruijn index 0, but go under n binders. substUnder n u == subst n (raise n u).

valueisNoAbs :: (Free a, Subst a) => Abs a -> Maybe a
#

Checks whether the variable bound by the abstraction is actually used, and, if not, returns the term within, strengthened to live in the context outside the abstraction. See also isBinderUsed.

Identity instances

newtypenewtype NoSubst t a
#

Wrapper for types that do not contain variables (so applying a substitution is the identity). Useful if you have a structure of types that support substitution mixed with types that don't and need to apply a substitution to the full structure.

Constructors

Instances6Functor, Generic, NFData, Subst, Rep, SubstArg

Explicit substitutions

18 declarations
valuesingletonS :: DeBruijn a => Int -> a -> Substitution' a
#

To replace index n by term u, do applySubst (singletonS n u). Γ, Δ ⊢ u : A --------------------------------- Γ, Δ ⊢ singletonS |Δ| u : Γ, A, Δ

valueinplaceS :: EndoSubst a => Int -> a -> Substitution' a
#

Single substitution without disturbing any deBruijn indices. Γ, A, Δ ⊢ u : A --------------------------------- Γ, A, Δ ⊢ inplace |Δ| u : Γ, A, Δ

valueparallelS :: DeBruijn a => [a] -> Substitution' a
#
       Γ ⊢ reverse vs : Δ
     -----------------------------
       Γ ⊢ parallelS vs ρ : Γ, Δ
  

Note the Γ in Γ, Δ.

Functions on abstractions

6 declarations
valuelazyAbsApp :: Subst a => Abs a -> SubstArg a -> a
#

Instantiate an abstraction. Lazy in the term, which allow it to be IMPOSSIBLE in the case where the variable shouldn't be used but we cannot use noabsApp. Used in Apply.