From Wikipedia, the free encyclopedia
This is
the user sandbox of Mrhaandi . A user sandbox is a subpage of the user's
user page . It serves as a testing spot and page development space for the user and is
not an encyclopedia article .
Create or edit your own sandbox here . Other sandboxes: Main sandbox | Template sandbox
Finished writing a draft article? Are you ready to request review of it by an experienced editor for possible inclusion in Wikipedia? Submit your draft for review!
The following table gives an overview over type theoretic concepts that are used in specialized type systems.
The names
M
,
N
,
O
{\displaystyle M,N,O}
range over terms and the names
σ
,
τ
{\displaystyle \sigma ,\tau }
range over types.
The notation
τ
[
α
:=
σ
]
{\displaystyle \tau [\alpha :=\sigma ]}
(resp.
τ
[
x
:=
N
]
{\displaystyle \tau [x:=N]}
) describes the type which results from replacing all occurrences of the type variable
α
{\displaystyle \alpha }
(resp. term variable
x
{\displaystyle x}
) in
τ
{\displaystyle \tau }
by the type
σ
{\displaystyle \sigma }
(resp. term
N
{\displaystyle N}
).
Type notion
Notation
Meaning
Product
σ
×
τ
{\displaystyle \sigma \times \tau }
If
M
{\displaystyle M}
has type
σ
×
τ
{\displaystyle \sigma \times \tau }
, then
M
=
(
N
,
O
)
{\displaystyle M=(N,O)}
is a pair such that
N
{\displaystyle N}
has type
σ
{\displaystyle \sigma }
and
O
{\displaystyle O}
has type
τ
{\displaystyle \tau }
.
Sum
σ
+
τ
{\displaystyle \sigma +\tau }
If
M
{\displaystyle M}
has type
σ
+
τ
{\displaystyle \sigma +\tau }
, then either
M
=
ι
1
(
N
)
{\displaystyle M=\iota _{1}(N)}
is the first injection such that
N
{\displaystyle N}
has type
σ
{\displaystyle \sigma }
, or
M
=
ι
2
(
N
)
{\displaystyle M=\iota _{2}(N)}
is the second injection such that
N
{\displaystyle N}
has type
τ
{\displaystyle \tau }
.
Function
σ
→
τ
{\displaystyle \sigma \to \tau }
If
M
{\displaystyle M}
has type
σ
→
τ
{\displaystyle \sigma \to \tau }
and
N
{\displaystyle N}
has type
σ
{\displaystyle \sigma }
, then the application
M
(
N
)
{\displaystyle M(N)}
has type
τ
{\displaystyle \tau }
.
Intersection
σ
∩
τ
{\displaystyle \sigma \cap \tau }
If
M
{\displaystyle M}
has type
σ
∩
τ
{\displaystyle \sigma \cap \tau }
, then
M
{\displaystyle M}
has type
σ
{\displaystyle \sigma }
and
M
{\displaystyle M}
has type
τ
{\displaystyle \tau }
.
Union
σ
∪
τ
{\displaystyle \sigma \cup \tau }
If
M
{\displaystyle M}
has type
σ
∪
τ
{\displaystyle \sigma \cup \tau }
, then
M
{\displaystyle M}
has type
σ
{\displaystyle \sigma }
or
M
{\displaystyle M}
has type
τ
{\displaystyle \tau }
.
Record
⟨
x
:
τ
⟩
{\displaystyle \langle x:\tau \rangle }
If
M
{\displaystyle M}
has type
⟨
x
:
τ
⟩
{\displaystyle \langle x:\tau \rangle }
, then
M
{\displaystyle M}
has a member
x
{\displaystyle x}
that has type
τ
{\displaystyle \tau }
.
Parametric
∀
α
.
τ
{\displaystyle \forall \alpha .\tau }
If
M
{\displaystyle M}
has type
∀
α
.
τ
{\displaystyle \forall \alpha .\tau }
, then
M
{\displaystyle M}
has type
τ
[
α
:=
σ
]
{\displaystyle \tau [\alpha :=\sigma ]}
for any type
σ
{\displaystyle \sigma }
.
Existential
∃
α
.
τ
{\displaystyle \exists \alpha .\tau }
If
M
{\displaystyle M}
has type
∃
α
.
τ
{\displaystyle \exists \alpha .\tau }
, then
M
{\displaystyle M}
has type
τ
[
α
:=
σ
]
{\displaystyle \tau [\alpha :=\sigma ]}
for some type
σ
{\displaystyle \sigma }
.
Dependent product
(
x
:
σ
)
×
τ
{\displaystyle (x:\sigma )\times \tau }
If
M
{\displaystyle M}
has type
(
x
:
σ
)
×
τ
{\displaystyle (x:\sigma )\times \tau }
, then
M
=
(
N
,
O
)
{\displaystyle M=(N,O)}
is a pair such that
N
{\displaystyle N}
has type
σ
{\displaystyle \sigma }
and
O
{\displaystyle O}
has type
τ
[
x
:=
N
]
{\displaystyle \tau [x:=N]}
.
Dependent function
(
x
:
σ
)
→
τ
{\displaystyle (x:\sigma )\to \tau }
If
M
{\displaystyle M}
has type
(
x
:
σ
)
→
τ
{\displaystyle (x:\sigma )\to \tau }
and
N
{\displaystyle N}
has type
σ
{\displaystyle \sigma }
, then the application
M
(
N
)
{\displaystyle M(N)}
has type
τ
[
x
:=
N
]
{\displaystyle \tau [x:=N]}
.
Dependent intersection [ 1]
(
x
:
σ
)
∩
τ
{\displaystyle (x:\sigma )\cap \tau }
If
M
{\displaystyle M}
has type
(
x
:
σ
)
∩
τ
{\displaystyle (x:\sigma )\cap \tau }
, then
M
{\displaystyle M}
has type
σ
{\displaystyle \sigma }
and
M
{\displaystyle M}
has type
τ
[
x
:=
M
]
{\displaystyle \tau [x:=M]}
.