Safe Haskell | None |
---|---|
Language | Haskell2010 |
Various type systems as PTS.
This module isn't re-exported by Language.PTS.
Consistent
Simply typed lambda calculus, \(\lambda^\to\).
\[ \mathcal{S} = \star, \square \qquad \mathcal{A} = \star : \square \qquad \mathcal{R} = (\star, \star, \star) \]
>>>
prettyPut $ specificationDoc STLCStar
𝓢: ⋆, □ 𝓐: ⋆ : □ 𝓡: (⋆,⋆,⋆)
Instances
Bounded STLC Source # | |
Enum STLC Source # | |
Eq STLC Source # | |
Show STLC Source # | |
PrettyPrec STLC Source # | |
HasBox STLC Source # | |
Defined in Language.PTS.Systems | |
Specification STLC Source # | |
System F, \(\lambda2\).
\[ \mathcal{S} = \star, \square \qquad \mathcal{A} = \star : \square \qquad \mathcal{R} = (\star, \star, \star), (\square, \star, \star) \]
>>>
prettyPut $ specificationDoc SysFStar
𝓢: ⋆, □ 𝓐: ⋆ : □ 𝓡: (⋆,⋆,⋆), (□,⋆,⋆)
Instances
Bounded SystemF Source # | |
Enum SystemF Source # | |
Defined in Language.PTS.Systems succ :: SystemF -> SystemF Source # pred :: SystemF -> SystemF Source # toEnum :: Int -> SystemF Source # fromEnum :: SystemF -> Int Source # enumFrom :: SystemF -> [SystemF] Source # enumFromThen :: SystemF -> SystemF -> [SystemF] Source # enumFromTo :: SystemF -> SystemF -> [SystemF] Source # enumFromThenTo :: SystemF -> SystemF -> SystemF -> [SystemF] Source # | |
Eq SystemF Source # | |
Show SystemF Source # | |
PrettyPrec SystemF Source # | |
HasBox SystemF Source # | |
Defined in Language.PTS.Systems | |
Specification SystemF Source # | |
data HindleyMilner Source #
Hindley-Milner as PTS.
HindleyMilner
is a truncated MartinLof
: with only two universes.
\[ \mathcal{S} = M, P \qquad \mathcal{A} = M : P \qquad \mathcal{R} = (M,M,M), (P,M,P), (P,P,P) \]
>>>
prettyPut $ specificationDoc HMMono
𝓢: M, P 𝓐: M : P 𝓡: (M,M,M), (P,M,P), (P,P,P)
Instances
Calculus of Constructions, \(\lambda C\).
\[ \mathcal{S} = \star, \square \qquad \mathcal{A} = \star : \square \qquad \mathcal{R} = (\star, \star, \star), (\square, \star, \star), (\star, \square, \square), (\square, \square, \square) \]
>>>
prettyPut $ specificationDoc CoCStar
𝓢: ⋆, □ 𝓐: ⋆ : □ 𝓡: (⋆,⋆,⋆), (⋆,□,□), (□,⋆,⋆), (□,□,□)
Martin-Löf type system.
\[ \mathcal{S} = \mathbb{N} \qquad \mathcal{A} = n : n + 1; n \in \mathbb{N} \qquad \mathcal{R} = (n, m, \max n\, m); n, m \in \mathbb{N} \]
>>>
prettyPut $ specificationDoc (star_ :: MartinLof)
𝓢: 𝓤, 𝓤₁, 𝓤₂ 𝓐: 𝓤 : 𝓤₁, 𝓤₁ : 𝓤₂, 𝓤₂ : 𝓤₃ 𝓡: (𝓤,𝓤,𝓤), (𝓤,𝓤₁,𝓤₁), (𝓤₁,𝓤,𝓤₁), (𝓤₁,𝓤₁,𝓤₁), (𝓤,𝓤₂,𝓤₂), (𝓤₂,𝓤,𝓤₂), (𝓤₁,𝓤₂,𝓤₂), (𝓤,𝓤₃,𝓤₃), (𝓤₃,𝓤,𝓤₃), ...
Instances
Enum MartinLof Source # | |
Defined in Language.PTS.Systems succ :: MartinLof -> MartinLof Source # pred :: MartinLof -> MartinLof Source # toEnum :: Int -> MartinLof Source # fromEnum :: MartinLof -> Int Source # enumFrom :: MartinLof -> [MartinLof] Source # enumFromThen :: MartinLof -> MartinLof -> [MartinLof] Source # enumFromTo :: MartinLof -> MartinLof -> [MartinLof] Source # enumFromThenTo :: MartinLof -> MartinLof -> MartinLof -> [MartinLof] Source # | |
Eq MartinLof Source # | |
Show MartinLof Source # | |
PrettyPrec MartinLof Source # | |
HasTriangle MartinLof Source # | |
Defined in Language.PTS.Systems | |
HasBox MartinLof Source # | |
Defined in Language.PTS.Systems | |
Specification MartinLof Source # | |
λHOL
\[ \begin{align} \mathcal{S} &= \star, \square, \triangle \newline \mathcal{A} &= \star : \square, \square : \triangle \newline \mathcal{R} &= (\star, \star, \star), (\square, \star, \star), (\square, \square, \square), (\triangle, \star, \star) \end{align} \]
The $(triangle, star, star)$ is an extension rule.
>>>
prettyPut $ specificationDoc HOLStar
𝓢: ⋆, □, △ 𝓐: ⋆ : □, □ : △ 𝓡: (⋆,⋆,⋆), (□,⋆,⋆), (□,□,□), (△,⋆,⋆)
Inconsistent
data LambdaStar Source #
\(\lambda^\star\) system.
Inconsistent.
\[ \mathcal{S} = \star \qquad \mathcal{A} = \star : \star \qquad \mathcal{R} = (\star, \star, \star) \]
>>>
prettyPut $ specificationDoc LambdaStar
𝓢: ⋆ 𝓐: ⋆ : ⋆ 𝓡: (⋆,⋆,⋆)
Instances
System U, \(\lambda U\).
Inconsistent.
\[ \begin{align} \mathcal{S} &= \star, \square, \triangle \newline \mathcal{A} &= \star : \square, \square : \triangle \newline \mathcal{R} &= (\star, \star, \star), (\square, \star, \star), (\square, \square, \square), (\triangle, \star, \star), (\triangle, \square, \square) \end{align} \]
>>>
prettyPut $ specificationDoc SysUStar
𝓢: ⋆, □, △ 𝓐: ⋆ : □, □ : △ 𝓡: (⋆,⋆,⋆), (□,⋆,⋆), (□,□,□), (△,⋆,⋆), (△,□,□)
Instances
Bounded SystemU Source # | |
Enum SystemU Source # | |
Defined in Language.PTS.Systems succ :: SystemU -> SystemU Source # pred :: SystemU -> SystemU Source # toEnum :: Int -> SystemU Source # fromEnum :: SystemU -> Int Source # enumFrom :: SystemU -> [SystemU] Source # enumFromThen :: SystemU -> SystemU -> [SystemU] Source # enumFromTo :: SystemU -> SystemU -> [SystemU] Source # enumFromThenTo :: SystemU -> SystemU -> SystemU -> [SystemU] Source # | |
Eq SystemU Source # | |
Show SystemU Source # | |
PrettyPrec SystemU Source # | |
HasTriangle SystemU Source # | |
Defined in Language.PTS.Systems | |
HasBox SystemU Source # | |
Defined in Language.PTS.Systems | |
Specification SystemU Source # | |