Back to COMP3161

COMP3161 Glossary

Notation|Terms Alphabetically |Terms By Week

$\land$ \land Logical conjunction.
$\lor$ \lor Logical disjunction
$\Rightarrow$ \Rightarrow Logical implication. Sometimes written with $\supset$ or $\rightarrow$.
$\neg$ \neg Logical negation.
$\top$ \top True, or the "top" element of a lattice or order.
$\bot$ \bot False, or the "bottom" element of a lattice or order.
$\forall$ \forall Universal quantifier
$\exists$ \exists Existential quantifier
$\in$ \in Read "is an element of", i.e. if the left hand side is in the set on the right hand side.
$\longleftrightarrow$ \longleftrightarrow Parsing relation
$\Leftrightarrow$ \Leftrightarrow If and only if
$::=$ ::= Definition of a non-terminal production in Backus-Naur Form.
$\vdash$ \vdash Used for hypothetical derivations and contexts. $A \vdash B$ can be read as $\dfrac{A}{B}$.
$\dfrac{A}{B}$ \dfrac{A}{B} An inference rule.
$\rightarrow$ \rightarrow A function type. Sometimes denotes implication.
$:$ : $e : \tau$ says that $e$ has type $\tau$. Written :: in Haskell, where : means cons.
$\mathbb{N}$ \mathbb{N} The set of natural numbers.
$\mathbb{Z}$ \mathbb{Z} The set of integers.
$\equiv_\alpha$ \equiv_\alpha α-equivalence
$\equiv_{\alpha\beta}$ \equiv_{\alpha\beta} αβ-equivalence
$\equiv_{\alpha\beta\eta}$ \equiv_{\alpha\beta\eta} αβη-equivalence
$e[x := t]$ e[x := t] A substitution, replacing $x$ with $t$ in $e$.
$e[{}^t/_x]$ e[{}^t/_x] A substitution, replacing $x$ with $t$ in $e$.
$e_{\uparrow n}$ e_{\uparrow n} The up-shifting operation, incrementing all de Bruijn indices greater or equal to $n$ in $e$.
$e_1\ e_2$ e_1\ e_2 Function application.
$x.\ t$ x.\ t Binding or abstraction in higher-order abstract syntax.
$\lambda x.\ y$ \lambda x.\ y A λ-abstraction taking the argument $x$ and returning $y$.
$[\![\cdot]\!]$ \llbracket\cdot\rrbracket The function from syntax to semantics in denotational semantics.
$\mapsto$ \mapsto The small-step semantics transition relation
$\Downarrow$ \Downarrow The big-step semantics evaluation relation.
$\stackrel{\star}{\mapsto}$ \stackrel{\star}{\mapsto} The reflexive transitive closure of $\mapsto$.
$\cup$ \cup Set union.
$\cap$ \cap Set intersection.
$\setminus$ \setminus Set subtraction, i.e $A \setminus B$ is all the elements of $A$ which are not in $B$.
$\emptyset$ \emptyset The empty set, the set with no elements.
$\times$ \times Multiplication of numbers, cartesian product or a product type.
$\{ x \}$ \{ x \} Brackets used to indicate construction of a set.
$\{ x\ |\ \psi \}$ \{ x\ |\ \psi \} A set comprehension. The set of all $x$ where $\psi$ holds.
$\subset$ \subset Used to denote strict subset.
$\subseteq$ \subseteq Denotes subset.
$\supset$ \supset Used for strict superset and sometimes implication.
$\supseteq$ \supseteq Used for superset.
$\{ \varphi \}\ s\ \{ \psi \}$ \{ \phi \}\ s\ \{ \psi \} A Hoare triple.
$\leadsto$ \leadsto A useful symbol. Often used to indicate the output of an algorithmic judgement, such as in the TinyImp static semantics.
$\circ$ \circ Used as an operator for function composition. Used as a symbol to denote the empty stack.
$\triangleright$ \triangleright Used in the C-machine and similar to denote a frame on top of a stack.
$\succ$ \succ The mode of the C-machine and E-machine that indicates the machine is evaluating an expression.
$\prec$ \prec The mode of operation for the C-machine and E-machine that indicates that the machine is currently returning a value.
$\mathbb{R}$ \mathbb{R} The set of real numbers.
$\mathcal{O}(f)$ \mathcal{O}(f) The big-O notation.
$\bullet$ \bullet A symbol sometimes used to denote the empty environment.
$\square$ \square A blank square, used to indicate a hole in a one-hole context.
$\mapsto_M$ \mapsto_M The transition relation for the M-machine.
$\mapsto_C$ \mapsto_C The transition relation for the C-machine.
$\mapsto_E$ \mapsto_E The transition relation for the E-machine.
$\langle\!\langle \eta, f.x.\ e \rangle\!\rangle$ \llangle \eta, f.x.\ e \rrangle Notation for a closure.
$\Sigma^\omega$ \Sigma^\omega The set of all behaviours.
$\mathbf{1}$ \mathbf{1} The unit type.
$\texttt{()}$ \texttt{()} Only inhabitant of the unit type.
$\simeq$ \simeq Type isomorphism.
$+$ + Addition or a sum type.
$\mathsf{fst}$ \mathsf{fst} The first elimination form for a product type.
$\mathsf{snd}$ \mathsf{snd} The second elimination form for a product type.
$\mathsf{InL}$ \mathsf{InL} The first introduction form for a sum type.
$\mathsf{InR}$ \mathsf{InR} The second introduction form for a sum type.
$\mathbf{0}$ \mathbf{0} The empty type, the type with no inhabitants.
$\mathbf{rec}\ t.\ \tau$ \mathbf{rec}\ t.\ \tau A recursive type.
$\mathbf{type}\ a.\ e$ \mathbf{type}\ a.\ e Our notation for type abstraction.
$\mu a.\ e$ \mu a.\ e The literature's notation for recursive types.
$\Lambda a.\ e$ \Lambda a.\ e The literature's notation for type abstraction.
$@$ @ Our notation for type application
$\sqsubseteq$ \sqsubseteq $\tau \sqsubseteq \rho$ iff $\rho$ is more general than $\tau$. Also can mean refinement.
$\sim$ \sim Often used to denote unification problems.
$\tau \stackrel{U}{\sim} \rho$ \tau \stackrel{U}{\sim} \rho The unification of $\tau$ and $\rho$, producing unifier $U$.
$\mathrm{FV}(t)$ \mathrm{FV}(t) The set of free variables in a term.
$\mathsf{roll}$ \mathsf{roll} The introduction form for a recursive type.
$\mathsf{unroll}$ \mathsf{unroll} The elimination form for a recursive type.
$\mathsf{pack}$ \mathsf{pack} The introduction form for an existential type.
$\mathsf{open}$ \mathsf{open} The elimination form for an existential type.
$\leq$ \leq A partial order. Often refers to subtyping.
$\Vdash$ \Vdash Showing that an instance constraint is satsfiable from the set of known class instances.