| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
Language.PTS.Systems
Contents
Description
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 Methods 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 Methods 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𝓢: ⋆ 𝓐: ⋆ : ⋆ 𝓡: (⋆,⋆,⋆)
Constructors
| 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 Methods 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 # | |