@@ -676,25 +676,28 @@ To that end, all previous typing judgements :math:`C \vdash \X{prop}` are genera
676
676
677
677
* The :ref: `values <syntax-val >` :math: `\val ^\ast ` must be of type :math: `[t_0 ^\ast ]`.
678
678
679
- * Let :math: `C'` be the same :ref: ` context < context >` as :math: `C`, but with the label :math: `( \LCATCH ~[t^ \ast ])` prepended to the | CLABELS | vector .
679
+ * The label :math: `C. \CLABELS [ 0 ]` must be defined in the context .
680
680
681
- * Under context :math: `C'`,
682
- the instruction sequence :math: `\instr ^\ast ` must be :ref: `valid <valid-instr-seq >` with type :math: `[] \to [t^\ast ]`.
681
+ * Let :math: `(\LCATCH ^?~[t^\ast ])` be the :ref: `label type <syntax-labeltype >` :math: `C.\CLABELS [0 ]`.
682
+
683
+ * Let :math: `C'` be the same :ref: `context <context >` as :math: `C`, but with the first label popped from the |CLABELS | vector.
683
684
684
- * Let :math: `C''` be the same :ref: `context <context >` as :math: `C`, but with the label :math: `[t^\ast ]` prepended to the |CLABELS | vector.
685
+ * Let :math: `C''` be the same :ref: `context <context >` as :math: `C' `, but with the label :math: `( \LCATCH ~ [t^\ast ]) ` prepended to the |CLABELS | vector.
685
686
686
- * Then the compound instruction is valid under context :math: `C''` with type :math: `[] \to [t^\ast ]`.
687
+ * Under context :math: `C''`,
688
+ the instruction sequence :math: `\instr ^\ast ` must be :ref: `valid <valid-instr-seq >` with type :math: `[] \to [t^\ast ]`.
687
689
690
+ * Then the compound instruction is valid with type :math: `[] \to [t^\ast ]`.
688
691
689
692
.. math ::
690
693
\frac {
691
694
S \vdashexternval \EVTAG ~\tagaddr : \ETTAG ~[t_0 ^\ast ]\to []
692
695
\qquad
693
696
(val : t_0 )^\ast
694
697
\qquad
695
- S; C,\CLABELS \,(\LCATCH ~[t^\ast ]) \vdashinstrseq \instr ^\ast : [] \to [t^\ast ]
698
+ S; C' ,\CLABELS \,(\LCATCH ~[t^\ast ]) \vdashinstrseq \instr ^\ast : [] \to [t^\ast ]
696
699
}{
697
- S; C,\CLABELS \,[t^\ast ] \vdashadmininstr \CAUGHTadm \{\tagaddr ~\val ^\ast \}~\instr ^\ast ~\END : [] \to [t^\ast ]
700
+ S; C' ,\CLABELS \,( \LCATCH ^?~ [t^\ast ]) \vdashadmininstr \CAUGHTadm \{\tagaddr ~\val ^\ast \}~\instr ^\ast ~\END : [] \to [t^\ast ]
698
701
}
699
702
700
703
0 commit comments