October 03, 2025
The operations to be performed by a quantum computer are almost invariably given in the form of a quantum circuit (see e.g. [1]). This is a well-defined language with universally agreed semantics: there is no ambiguity about the unitaries and measurement operations that a quantum circuit diagram denotes.
In the final stage of compilation, a quantum circuit must be translated into the input signals accepted by the quantum hardware itself. For a quantum computer based on superconducting qubits, this will be a sequence of microwave control pulses to be sent to the various input channels [2]. A pulse schedule gives a full specification for which pulse should be applied to which channel at what time.
There are languages for describing these pulse schedules, including OpenPulse [3] and graphical languages such as quantum circuits augmented with ‘stretchy delays’. However these languages do not yet have formal semantics. If we want, for example, a formally verified quantum compiler, then we require a language for specifying pulse schedules that can be given precisely defined semantics.
In this paper, we propose such a language as a graded modal type theory [4] named PSTT (Pulse Schedule Type Theory). Graded modals type theories are type systems where each variable is annotated with a parameter or grade. These can be used to represent, for example, resource usage, where the grade denotes how many times a given resource may be used; or privacy levels, whether a resource is private or public [5]. In this paper, we use the grades to represent timing information: a variable \(x :^50 Q_1\) will represent a state of qubit \(Q_1\) that will exist 50 nanoseconds in the future, and a variable \(y :^{-75} Q_2\) will represent a state of qubit \(Q_2\) that existed 75 nanoseconds in the past.
Using this type theory, it is only possible to specify complete pulse schedules; it is not possible to write a pulse schedule in which two different inputs are applied to the same qubit simultaneously, nor one in which there is a ‘gap’ (we must either specify a pulse to be applied to a qubit, or specify that there is a delay).
We give the syntax for the type theory, prove some metatheoretic properties, and describe the semantics in terms of category theory. We show that the input signals to a quantum chip, and the trajectories of a quantum chip (states over time), both form models of the theory. We also give a syntatic model, prove that it is initial, and hence show soundness and completeness for the judgemental equalities.
The syntax of the system is parametrised by a set of constants representing the quantum chip that the pulse schedule will be applied to.
A quantum chip is specified by:
a finite set \(\mathcal{Q}\) of qubits (or qubit labels);
a set \(\mathcal{G}\) of gates \(G\), to each of which we assign a finite tuple of distinct qubits \((q_1, \ldots, q_n)\) that the gate acts on, and a duration \(d\) which is a natural number (the duration of the gate in nanoseconds). We say that a gate \(G\) is an \(n\)-qubit gate
We consider the "same" gate acting on two different qubits to be two different gates; thus for example we could have a Hadamard gate \(H_1\) that acts on \((q_1)\), and a Hadamard gate \(H_2\) that acts on \((q_2)\). It is possible that \(H_1\) and \(H_2\) will have different durations (this is in fact what we expect, since \(q_1\) and \(q_2\) probably have different frequencies).
Two implementations of the same unitary on the same qubits are counted as two different gates. They could have different durations.
The set of gates can be infinite. If we have an implementation \(R_X(\theta)\) of X-rotation through an angle \(\theta\) for any \(\theta \in [0, 2 \pi]\), then we count this as a countably infinite set of gates.
We use natural numbers for durations instead of real numbers simply because, for implementation, it is useful to be able to compare durations for exact equality. Nothing would be lost in this paper if we allowed durations to be any non-negative real number.
Let \(d\) range over integers, the grades or durations.
The syntax of the theory is given by the following grammar: \[\begin{align} \text{Type}\;& A,B & ::=\;&1 \mid q \mid A \otimes B \mid \boxed{d} A \\ \text{Context}\;& \Gamma & ::=\;& [] \mid \Gamma, x :^d A \\ \text{Term}\;& s,t & ::=\;& x \mid * \mid \operatorname{let}* = s \operatorname{in}t \mid G(t_1, \ldots, t_n) \mid (s,t) \\ & & \mid\;& \operatorname{let}(x,y) = s \operatorname{in}t \mid \text{box}\;d\;t \mid \text{let box}\;d\;x = s \text{ in } t \\ \text{Judgement}\;& \mathcal{J} & ::=\;& \Gamma \vdash t : A \mid \Gamma \vdash s = t : A \end{align}\] where \(q\) is any qubit and \(G\) is an \(n\)-qubit gate.
We write \(d + \Gamma\) for the result of increasing every grade in the context \(\Gamma\) by \(d\). E.g. \(100 + (x :^{50} q_1, y :^{75} q_2) \equiv (q :^{150} q_1, y :^{175} q_2)\)
We write \(\Gamma, \Delta\) for the concatenation of contexts \(\Gamma\) and \(\Delta\). Whenever we do this, we assume that their variables are disjoint.
The operator \(+\) binds more tightly than \(,\). That is, \(d + \Gamma, \Delta\) means \((d + \Gamma), \Delta\).
The rules of deduction of the system are given in Figure 1
None
Figure 1: Rules of Deduction for PSTT.
We have rules establishing that judgemental equality is reflexive, symmetric, transative, and a congruence for each of the primite constructors, plus:
Beta Rules
Eta Rules
Note we do not have \(t = *\) for \(t : 1\). (If \(t\) represents a process that takes time \(> 0\) then it is not semantically equal to \(*\).)
Commuting Conversions
In any linear type theory we need judgemental equality rules for commuting conversions. Here is the full list. Each one should be given as a rule of deduction with premises that ensure both sides are well-typed, but the premises are omitted here.
\[\begin{align} (\text{let}\;* = s \text{ in let}\;* = t \text{ in } u) & = (\text{let}\;* = \text{let}\;* = s \text{ in } t \text{ in } u) \\ (\text{let}\;* = s \text{ in let}\;* = t \text{ in } u) & = (\text{let}\;* = t \text{ in let}\;* = s \text{ in } u) \\ (\text{let} \;* = s \text{ in } G(t_1, \ldots, t_n)) & = G(t_1, \ldots, t_{i-1},\text{let}\;* = s \text{ in } t_i,t_{i+1}, \ldots, t_n) \\ (\text{let}\;* = s \text{ in } (t,u)) & = (\text{let}\;* = s \text{ in } t, u) \\ (\text{let}\;* = s \text{ in } (t,u)) & = (t, \text{let}\;* = s \text{ in } u) \\ (\text{let}\;* = s \text{ in let}\;(x,y) = t \text{ in } u) & = (\text{let}\;(x,y) = \text{let}\;* = s \text{ in } t \text{ in } u) \\ (\text{let}\;* = s \text{ in let}\;(x,y) = t \text{ in } u) & = (\text{let}\;(x,y) = t \text{ in let}\;* = s \text{ in } u) \\ (\text{let}\;* = s \text{ in box}\;d\;t) & = \text{box}\;d (\text{let}\;* = s \text{ in } t) \\ (\text{let}\;* = s \text{ in let box}\;d\;x = t \text{ in } u) & = (\text{let box}\;d\;x = \text{let}\;* = s \text{ in } t \text{ in } u) \\ (\text{let}\;* = s \text{ in let box}\;d\;x = t \text{ in } u) & = (\text{let box}\;d\;x = t \text{ in let}\;* = s \text{ in } u) \\ (\text{let}\;(x,y) = s \text{ in let}\;* = t \text{ in } u) & = (\text{let}\;* = \text{let}\;(x,y) = s \text{ in } t \text{ in } u) \\ (\text{let}\;(x,y) = s \text{ in let}\;* = t \text{ in } u) & = (\text{let}\;* = t \text{ in let}\;(x,y) = s \text{ in } u) \\ (\text{let} \;(x,y) = s \text{ in } G(t_1, \ldots, t_n)) & = G(t_1, \ldots, t_{i-1}, \text{let}\;(x,y) = s \text{ in } t_i, t_{i+1}, \ldots, t_n) \\ (\text{let}\;(x,y) = s \text{ in } (t,u)) & = (\text{let}\;(x,y) = s \text{ in } t, u) \\ (\text{let}\;(x,y) = s \text{ in } (t,u)) & = (t, \text{let}\;(x,y) = s \text{ in } u) \\ (\text{let}\;(x,y) = s \text{ in let}\;(z,w) = t \text{ in } u) & = (\text{let}\;(z,w) = \text{let}\;(x,y) = s \text{ in } t \text{ in } u) \\ (\text{let}\;(x,y) = s \text{ in let}\;(z,w) = t \text{ in } u) & = (\text{let}\;(z,w) = t \text{ in let}\;(x,y) = s \text{ in } u) \\ (\text{let}\;(x,y) = s \text{ in box}\;d\;t) & = \text{box}\;d (\text{let}\;(x,y) = s \text{ in } t) \\ (\text{let}\;(x,y) = s \text{ in let box}\;d\;z = t \text{ in } u) & = (\text{let box}\;d\;z = \text{let}\;(x,y) = s \text{ in } t \text{ in } u) \\ (\text{let}\;(x,y) = s \text{ in let box}\;d\;z = t \text{ in } u) & = (\text{let box}\;d\;z = t \text{ in let}\;(x,y) = s \text{ in } u) \\ (\text{let}\;\text{box}\;d\;z = s \text{ in let}\;* = t \text{ in } u) & = (\text{let}\;* = \text{let}\;\text{box}\;d\;z = s \text{ in } t \text{ in } u) \\ (\text{let}\;\text{box}\;d\;z = s \text{ in let}\;* = t \text{ in } u) & = (\text{let}\;* = t \text{ in let}\;\text{box}\;d\;z = s \text{ in } u) \\ (\text{let} \;\text{box}\;d\;z = s \text{ in } G(t_1, \ldots, t_n)) & = G(t_1, \ldots, t_{i-1}, \text{let}\;\text{box}\;d\;z = s \text{ in } t_i, t_{i+1}, \ldots, t_n) \\ (\text{let}\;\text{box}\;d\;z = s \text{ in } (t,u)) & = (\text{let}\;\text{box}\;d\;z = s \text{ in } t, u) \\ (\text{let}\;\text{box}\;d\;z = s \text{ in } (t,u)) & = (t, \text{let}\;\text{box}\;d\;z = s \text{ in } u) \\ (\text{let}\;\text{box}\;d\;z = s \text{ in let}\;(x,y) = t \text{ in } u) & = (\text{let}\;(x,y) = \text{let}\;\text{box}\;d\;z = s \text{ in } t \text{ in } u) \\ (\text{let}\;\text{box}\;d\;z = s \text{ in let}\;(x,y) = t \text{ in } u) & = (\text{let}\;(x,y) = t \text{ in let}\;\text{box}\;d\;z = s \text{ in } u) \\ (\text{let}\;\text{box}\;d\;z = s \text{ in box}\;d\;t) & = \text{box}\;d (\text{let}\;\text{box}\;d\;z = s \text{ in } t) \\ (\text{let}\;\text{box}\;d\;z = s \text{ in let box}\;d\;x = t \text{ in } u) & = (\text{let box}\;d\;x = \text{let}\;\text{box}\;d\;z = s \text{ in } t \text{ in } u) \\ (\text{let}\;\text{box}\;d\;z = s \text{ in let box}\;d\;x = t \text{ in } u) & = (\text{let box}\;d\;x = t \text{ in let}\;\text{box}\;d\;z = s \text{ in } u) \end{align}\]
Proposition 1. If \(\Gamma \vdash t : A\) then the free variables in \(t\) are exactly the variables in \(\Gamma\), each of which occurs free exactly once in \(t\).
Proof. Easy induction on derivations. 0◻ ◻
Proposition 2 (Substitution). The following rule of deduction is admissible:
Proof. We prove the following form is admissible:
The proof is by induction on the derivation of \(\Delta_1, x :^d A, \Delta_2 \vdash t : B\). All cases are simple. 0◻ ◻
Proposition 3. If \(\Gamma \vdash s = t : A\) then \(\Gamma \vdash s : A\) and \(\Gamma \vdash t : A\).
Proof. Easy induction on the derivation of \(\Gamma \vdash s = t : A\), using Substitution. ◻
Proposition 4 (Functionality). The following rule of deduction is admissible:
Proof. We prove the following slightly more general form admissible:
The proof is by induction on the derivation of \(\Delta_1, x :^d A, \Delta_2 \vdash t : B\). ◻
Proposition 5. The following rules of deduction are admissible.
Definition 6 (Model). A model of the theory consists of a symmetric monoidal category \((\mathcal{C}, \otimes, I)\) together with a symmetric monoidal action \(\odot : \mathbb{Z} \times \mathcal{C} \rightarrow \mathcal{C}\); that is, a bifunctor (considering \((\mathbb{Z},+)\) as a discrete monoidal category) together with:
a natural isomorphism \(\lambda_A : A \cong 0 \odot A\), the unitor
a natural isomorphism \(\mu_{cdA} : c \odot (d \odot A) \cong (c + d) \odot A\), the multiplicator
such that:
for each \(d \in \mathbb{Z}\), the functor \(d \odot - : \mathcal{C} \rightarrow \mathcal{C}\) is a strong monoidal functor
\(\mu_{0dA} = \lambda_{d \odot A}^{-1}\) and \(\mu_{c0A} = c \odot \lambda_A^{-1}\)
and the following diagram commutes:
\[\begin{tikzcd} m \odot (n \odot (p \odot A)) \arrow[r] \arrow[d] & (m + n) \odot (p \odot A) \arrow[d] \\ m \odot ((n + p) \odot A) \arrow[r] & (m + n + p) \odot A \end{tikzcd}\]
The model is strict iff each \(\lambda_A\) and \(\mu_{cdA}\) is an identity.
A model of a quantum chip consists of a model of the theory together with:
for every qubit \(q\), an object \([[q]] \in \mathcal{C}\)
for every gate \(G\) on qubits \((q_1, \ldots, q_n)\) with duration \(d\), a morphism \[[[G]] : -d \odot \left([[q_1]] \otimes \cdots \otimes [[q_n]] \right) \rightarrow [[q_1]] \otimes \cdots \otimes [[q_n]]\]
Definition 7. Let \(\mathcal{C}\) and \(\mathcal{D}\) be models of the theory.
A strict homomorphism \(F : \mathcal{C} \rightarrow \mathcal{D}\) is a strict symmetric monoidal functor such that everything commutes.
A homomorphism \(F : \mathcal{C} \rightarrow \mathcal{D}\) is a strong monoidal functor such that everything commutes.
Given a model, we define:
For every type \(A\), an object \([[A]]\) \[\begin{align} [[1]] & = I \\ [[q_1]] & = Q_1 \\ [[q_2]] & = Q_2 \\ [[A \otimes B]] & = [[A]] \otimes [[B]] \\ [[ \boxed{d} A]] & = d \odot [[A]] \end{align}\]
For every context \(\Gamma\), an object \([[\Gamma]]\) \[\begin{align} [[ [] ]]& = I \\ [[ \Gamma, x :^d A]] & = [[\Gamma]] \otimes (d \odot [[A]]) \end{align}\]
For every term \(t\) such that \(\Gamma \vdash t : A\), a morphism \([[t]] : [[\Gamma]] \rightarrow [[A]]\) \[\begin{align} [[ x :^0 A \vdash x : A]] & = I \otimes (0 \cdot A) \cong A \\ [[ \vdash * : 1 ]] & = \mathrm{id}_I \\ [[ d + \Gamma, \Delta \vdash \text{let } * = s \text{ in } t : A]] & = \end{align}\]
For every gate \(G\) on \((q_1, ldots, q_n)\) with duration \(d\), we have: \[[[ - d + \Gamma \vdash G(t_1, \ldots, t_n) : q_1 \otimes \cdots \otimes q_n ]] =\]
\[[[ \Gamma, \Delta \vdash (s,t) : A \otimes B ]] = [[ s ]] \otimes [[ t ]] : [[ \Gamma ]] \otimes [[ \Delta ]] \rightarrow [[ A ]] \otimes [[ B ]]]\]
\[[[ d + \Gamma, \Delta \vdash \text{let } (x,y) = s \text{ in } t : C ]] =\]
We can prove the following results about all models:
Proposition 8. \[[[\Gamma, \Delta]] \cong [[\Gamma]] \otimes [[\Delta]]\]
Proof. This follows simply because \[\begin{align} & [[ x_1 :^{d_1} A_1, \ldots, x_m :^{d_m} A_m, y_1 :^{e_1} B_1, \ldots, y_n :^{e_n} B_n ]] \\ = & [[ x_1 :^{d_1} A_1, \ldots, x_m :^{d_m} A_m ]] \otimes [[y_1 :^{e_1} B_1, \ldots, y_n :^{e_n} B_n ]] \\ = & (d_1 \odot [[A_1]]) \otimes \cdots \otimes (d_m \odot [[A_m]]) \otimes (e_1 \odot [[B_1]] \otimes \cdots \otimes e_n \odot [[B_n]]) \end{align}\] ◻
Proposition 9. If \(\Gamma \vdash s : A\) and \(x :^d A, \Delta \vdash t : B\) then \([[ t[x:=s] ]]\) is equal to the morphism \[(d \odot [[\Gamma]]) \otimes [[\Delta]] \stackrel{d \odot [[s]]}{\rightarrow} (d \odot [[A]]) \otimes [[\Delta]] \stackrel{[[t]]}{\rightarrow} [[B]]\]
Proof. A straightforward induction on the derivation of \(x :^d A, \Delta \vdash t : B\). ◻
Proposition 10. If \(\Gamma \vdash s = t : A\) then \([[s]] = [[t]] : [[\Gamma]] \rightarrow [[A]]\).
Proof. Induction on the proof of \(\Gamma \vdash s = t : A\), making use of the previous proposition. ◻
Example 1. We show how we can make the inputs to a quantum chip into a model of the type theory.
Consider a quantum chip with a set of qubits \(\mathcal{Q}\). For simplicity in this example, we shall assume that there is exactly one input channel \(c_q\) associated with each qubit \(q\); it should be clear how to adapt the model to a more complicated situation. The input to \(c_q\) is specified as a function \(c_q(t)\) giving a real number \(c_q(t)\) (the amplitude of the pulse applied on channel \(c_q\)) for every time \(t\)
Define the model \(\mathcal{M}\) as follows.
The objects of \(\mathcal{M}\) are all sequences of pairs of the form \(((d_1,q_1), \ldots, (d_n,q_n))\) where \(d\) is an integer and \(q_1\), …, \(q_n\) are distinct qubits.
A morphism \(c ((d_1, q_1), \ldots, (d_m, q_m)) \rightarrow ((e_1, q_1'), \ldots, (e_n, q_n'))\) exists only if \(m = n\) and \(q_i = q_i'\) for all \(i\) and \(d_i \leq e_i\) for all \(i\), in which case it is a sequence of \(n\) functions \(c_{q_i}\), each of which is an input signal \(c_{q_i} : [d_i,e_i) \rightarrow \mathbb{R}\) specifying the signal to be sent to channel \(c_{q_i}\) from time \(d_i\) to time \(e_i\).
Composition is simply concatenation of signals.
The tensor unit is the empty sequence \(()\).
The tensor multiplication is defined on objects by \[((d_1, q_1), \ldots, (d_m,q_m)) \otimes ((d_{m+1}, q_{m+1}), \ldots, (d_n, q_n)) = ((d_1, q_1), \ldots, (d_n, q_n))\] and on morphisms in the obvious way.
The action \(\odot\) is defined by: \[\begin{align} d \odot ((d_1, q_1), \ldots, (d_n, q_n)) & = ((d + d_1, q_1), \ldots, (d + d_n, q_n)) \\ (d \odot c)_{q_i}(t) & = c_{q_i}(t - d) \end{align}\]
This is a strict model.
Assuming now we have given to us (e.g. by the manufacturer of the chip) a pulse sequence \([[G]] : -d \odot \left([[q_1]] \otimes \cdots \otimes [[q_n]] \right) \rightarrow [[q_1]] \otimes \cdots \otimes [[q_n]]\) for every native gate \(G\), the interpretation function above \([[\;]]\) will give us the input signals for the hardware from any expression in our type theory.
Let \(\mathbf{Syntax}\) be the model with:
objects all types
morphisms from \(A\) to \(B\) all pairs \((x,t)\) such that \(x : A \vdash t : B\) quotiented by \(\alpha\)-conversion: \[(x :^0 A \vdash t : B) = (y :^0 A \vdash t[x:=y] : B) \qquad (y \notin FV(t))\] and definitional equality: if \(x : A \vdash s = t : B\) then \[(x :^0 A \vdash s : B) = (x :^0 A \vdash t : B)\]
the identity on \(A\) is \((x :^0 A \vdash x : A)\)
composition is given by substitution: \[(y : B \vdash t : C) \circ (x : A \vdash s : B) = (x : A \vdash t[y:=s] : C)\]
The tensor product \(\otimes\) maps types \(A\) and \(B\) to \(A \otimes B\), and acts on morphisms by \[(x :^0 A \vdash s : B) \otimes (y :^0 C \vdash t : D) = (z :^0 A \otimes C \vdash \text{let } (x,y) = z \text{ in } (s,t) : B \otimes D\]
The unit is \(I\)
The associator is \[x :^0 A \otimes (B \otimes C) \vdash \text{let } (a,y) = x \text{ in let } (b,c) = y \text{ in } ((a,b),c) : (A \otimes B) \otimes C\]
The left unitor is \[x :^0 A \vdash (*,x) : 1 \otimes A\]
The right unitor is \[x :^0 A \vdash (x,*) : A \otimes 1\]
\(d \odot A\) is \(\boxed{d} A\).
The action of \(\odot\) on morphisms is given by: \[d \odot (x :^0 A \vdash t : B) = (y :^0 \boxed{d} A \vdash \text{let box } d\;x = y \text{ in box } d\;t : \boxed{d} B)\]
The morphism \(I \rightarrow d \odot I\) is given by \[x :^0 I \vdash \text{box } d\;x : \boxed{d} I\] with inverse \[x :^0 \boxed{d} 1 \vdash \text{let box } d\;y = x \text{ in let } * = y \text{ in } * : 1\]
The morphism \(d \odot A \otimes d \odot B \rightarrow d \odot (A \otimes B)\) is given by \[x :^0 \boxed{d} A \otimes \boxed{d} B \vdash \text{let } (y,z) = x \text{ in let box } d\;a = y \text{ in let box } d\;b = z \text{ in box } d\;(a,b) : \boxed{d} (A \otimes B)\] with inverse \[x :^0 \boxed{d} (A \otimes B) \vdash \text{let box } d\;y = x \text{ in let } (a,b) = y \text{ in } (\text{box}\;d\;a, \text{box}\;d\;b) : \boxed{d} A \otimes \boxed{d} B\]
The morphism \(\lambda_A : A \rightarrow 0 \odot A\) is \[x :^0 A \vdash \text{box } 0\;x : \boxed{0} A\] with inverse \[x :^0 \boxed{0} A \vdash \text{let box } 0\;y = x \text{ in } y : A\]
The morphism \(\mu_{cdA} : c \odot (d \odot A) \rightarrow (c + d) \odot A\) is \[x :^0 \boxed{c} \boxed{d} A \vdash \text{let box } c\;y = x \text{ in let box } d\;z = y \text{ in box } (c + d) z : \boxed{c+d} A\] with inverse \[x :^0 \boxed{c+d} A \vdash \text{let box } (c + d)\;y = x \text{ in box }c\;(\text{box}\;d y) : \boxed{c} \boxed{d} A\]
Proposition 11. "The syntax interprets itself" — that is, if \(x :^0 A \vdash t : B\), then \[[[ x :^0 A \vdash t : B]] = (x,t) : [[A]] \rightarrow [[B]]\]
Proof. Define the projections \[x :^d A_1 \otimes \cdots \otimes A_n\] We then prove the more general result: \[\begin{align} & [[x_1 :^{d_1} A_1, \ldots, x_n :^{d_n} A_n \vdash t : B]] \\ = & (x :^0 \boxed{d_1} A_1 \otimes \cdots \otimes \boxed{d_n} A_n \vdash \\ & \;\text{let } (y_1, \ldots, y_n) = x \text{ in}\\ & \;\text{let box } d_1\;y_1' = y_1 \text{ in } \cdots \text{ in let box } d_n\;y_n' = y_n \\ & \;\text{ in } t[x_1 := y_1', \ldots, x_n := y_n']) \end{align}\] The proof is by induction on the derivation of \(x_1 :^{d_1} A_1, \ldots, x_n :^{d_n} A_n \vdash t : B\). ◻
Theorem 12. \(\mathbf{Syntax}\) is the initial object in the category of models and strict homomorphisms. The unique morphism \(\mathbf{Syntax} \rightarrow \mathbf{M}\) is \([[\;]]\), i.e. it maps \(\Gamma\) to \([[\Gamma]]\), \((t_1, \ldots, t_n)\) to \([[t_1]] \otimes \cdots \otimes [[t_n]]\), etc.
For any model \(\mathcal{M}\), this morphism is also the unique homomorphism up to natural isomorphism.
Proof. It is straightforward to prove that \([[\;]]\) is a strict homomorphism. To prove it is unique, we construct for any homomorphism \(F : \mathbf{Syntax} \rightarrow \mathbf{M}\) a canonical isomorphism \(\phi_A : FA \cong [[A]]\) (which will be identity if \(F\) is strict), and then prove that it commutes with \(Ft\) and \([[t]]\) for any typable term \(t\). ◻
Corollary 13 (Completeness). Let \(\Gamma \vdash s : A\) and \(\Gamma \vdash t : A\). Then the following are equivalent:
\(\Gamma \vdash s = t : A\)
\([[s]] = [[t]]\) in \(\mathbf{Syntax}\).
\([[s]] = [[t]]\) in every model.
We have given a graded modal type theory that can be used for specifying the pulse schedules for a quantum chip, as shown by our two ‘concrete’ models. Using this type theory, we have a static guarantee that a pulse schedule is complete — there are no overlapping inputs or gaps in the schedule.
For future work, we intend to use this type theory as the basis for a formally verified quantum compiler.