HORIZON HASKELLDocslts/ghc-9.14.x6d5fdfd2026-10-12Search packagesCtrl K
Theme: |

GHC 9.14.1 · lts/ghc-9.14.x · 6d5fdfd · 2026-10-12

ModuleAgda-2.8.0.2Haskell2010

Agda.TypeChecking.Substitute.Class

Contents
  1. Application
  2. Abstraction
  3. Substitution and shifting/weakening/strengthening
  4. Identity instances
  5. Explicit substitutions
  6. Functions on abstractions
Synopsis
  • PackageAgda-2.8.0.2
  • Exports40
  • LanguageHaskell2010
  • LicenceMIT
  • SourceClass.hs

Application

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.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Apply ClauseDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Apply SortDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Apply TermDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Apply CompiledClausesDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Apply DefinitionDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Apply DefnDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Apply DisplayTermDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Apply ExtLamInfoDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Apply FunctionInverseDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Apply NumGeneralizableArgsDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Apply PrimFunDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Apply ProjLamsDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Apply ProjectionDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Apply RewriteRuleDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Apply SystemDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Apply PermutationDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Apply [NamedArg (Pattern' a)]Defined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan

    Make sure we only drop variable patterns.

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

Abstraction

classclass Abstract t where

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

Methods

Instances25Abstract, …
  • Abstract ClauseDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Abstract SortDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Abstract TelescopeDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Abstract TermDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Abstract TypeDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Abstract CompiledClausesDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Abstract DefinitionDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Abstract DefnDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Abstract FunctionInverseDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Abstract NumGeneralizableArgsDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Abstract PrimFunDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Abstract ProjLamsDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Abstract ProjectionDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Abstract RewriteRuleDefined in Agda-2.8.0.2 · 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.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Abstract PermutationDefined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Abstract [Polarity]Defined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Abstract [Occurrence]Defined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Abstract a => Abstract (Case a)Defined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Abstract a => Abstract (WithArity a)Defined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Abstract t => Abstract (Maybe t)Defined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Abstract t => Abstract [t]Defined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • DoDrop a => Abstract (Drop a)Defined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Abstract v => Abstract (Map k v)Defined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan
  • Abstract v => Abstract (HashMap k v)Defined in Agda-2.8.0.2 · Agda.TypeChecking.Substitute · orphan

Substitution and shifting/weakening/strengthening

classclass DeBruijn (SubstArg a) => Subst a where

Apply a substitution.

Associated types

Methods

Instances61Subst, …
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).

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

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, Δ

Functions on abstractions

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.