From 93741445655e63ef1b846d8636afff1651931ba6 Mon Sep 17 00:00:00 2001 From: Yuri Tatishchev Date: Tue, 14 Apr 2026 15:41:29 -0700 Subject: [PATCH] lab14: impl typing rules --- lab14/typed-semantics.pdf | 2085 +++++++++++++++++++++++++------------ lab14/typed-semantics.typ | 86 +- 2 files changed, 1472 insertions(+), 699 deletions(-) diff --git a/lab14/typed-semantics.pdf b/lab14/typed-semantics.pdf index 0af14b4..43b21a7 100644 --- a/lab14/typed-semantics.pdf +++ b/lab14/typed-semantics.pdf @@ -4,8 +4,8 @@ 1 0 obj << /Type /Pages - /Count 2 - /Kids [137 0 R 139 0 R] + /Count 3 + /Kids [193 0 R 195 0 R 197 0 R] >> endobj @@ -23,7 +23,7 @@ endobj /Parent 2 0 R /Next 4 0 R /Title (Operational Semantics Rules) - /Dest 135 0 R + /Dest 191 0 R >> endobj @@ -32,7 +32,7 @@ endobj /Parent 2 0 R /Prev 3 0 R /Title (Typing Rules) - /Dest 136 0 R + /Dest 192 0 R >> endobj @@ -46,39 +46,32 @@ endobj /Strong /Span /Em /Span >> - /K [8 0 R] + /K [9 0 R] /ParentTree << - /Nums [0 6 0 R 1 7 0 R] + /Nums [0 6 0 R 1 7 0 R 2 8 0 R] >> - /ParentTreeNextKey 2 + /ParentTreeNextKey 3 >> endobj 6 0 obj -[108 0 R 107 0 R 105 0 R 105 0 R 105 0 R 105 0 R 105 0 R 105 0 R 105 0 R 105 0 R 105 0 R 105 0 R 102 0 R 100 0 R 100 0 R 100 0 R 100 0 R 100 0 R 100 0 R 97 0 R 95 0 R 95 0 R 95 0 R 95 0 R 95 0 R 95 0 R 95 0 R 95 0 R 95 0 R 95 0 R 92 0 R 90 0 R 90 0 R 90 0 R 90 0 R 90 0 R 90 0 R 87 0 R 85 0 R 85 0 R 85 0 R 85 0 R 85 0 R 85 0 R 85 0 R 85 0 R 85 0 R 85 0 R 82 0 R 80 0 R 80 0 R 80 0 R 80 0 R 77 0 R 75 0 R 75 0 R 75 0 R 75 0 R 75 0 R 75 0 R 75 0 R 75 0 R 72 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 70 0 R 67 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 65 0 R 62 0 R 60 0 R 60 0 R 60 0 R 60 0 R 60 0 R 60 0 R 60 0 R 60 0 R 60 0 R 60 0 R 60 0 R 57 0 R 55 0 R 55 0 R 55 0 R 55 0 R 55 0 R 55 0 R 55 0 R 55 0 R 55 0 R 55 0 R 55 0 R 55 0 R 55 0 R 55 0 R 55 0 R 55 0 R 55 0 R 55 0 R 52 0 R 50 0 R 50 0 R 50 0 R 50 0 R 50 0 R 50 0 R 50 0 R 50 0 R 50 0 R 50 0 R 50 0 R 50 0 R 50 0 R 50 0 R 50 0 R 50 0 R 50 0 R 50 0 R 47 0 R 45 0 R 45 0 R 45 0 R 45 0 R 45 0 R 45 0 R 45 0 R 45 0 R 45 0 R 45 0 R 45 0 R 45 0 R 45 0 R 45 0 R 45 0 R 45 0 R 42 0 R 40 0 R 40 0 R 40 0 R 40 0 R 40 0 R 40 0 R 40 0 R 40 0 R 40 0 R 40 0 R] +[164 0 R 163 0 R 161 0 R 161 0 R 161 0 R 161 0 R 161 0 R 161 0 R 161 0 R 161 0 R 161 0 R 161 0 R 158 0 R 156 0 R 156 0 R 156 0 R 156 0 R 156 0 R 156 0 R 153 0 R 151 0 R 151 0 R 151 0 R 151 0 R 151 0 R 151 0 R 151 0 R 151 0 R 151 0 R 151 0 R 148 0 R 146 0 R 146 0 R 146 0 R 146 0 R 146 0 R 146 0 R 143 0 R 141 0 R 141 0 R 141 0 R 141 0 R 141 0 R 141 0 R 141 0 R 141 0 R 141 0 R 141 0 R 138 0 R 136 0 R 136 0 R 136 0 R 136 0 R 133 0 R 131 0 R 131 0 R 131 0 R 131 0 R 131 0 R 131 0 R 131 0 R 131 0 R 128 0 R 126 0 R 126 0 R 126 0 R 126 0 R 126 0 R 126 0 R 126 0 R 126 0 R 126 0 R 126 0 R 126 0 R 126 0 R 126 0 R 126 0 R 126 0 R 126 0 R 126 0 R 126 0 R 126 0 R 126 0 R 126 0 R 126 0 R 126 0 R 126 0 R 126 0 R 126 0 R 123 0 R 121 0 R 121 0 R 121 0 R 121 0 R 121 0 R 121 0 R 121 0 R 121 0 R 121 0 R 121 0 R 121 0 R 118 0 R 116 0 R 116 0 R 116 0 R 116 0 R 116 0 R 116 0 R 116 0 R 116 0 R 116 0 R 116 0 R 116 0 R 113 0 R 111 0 R 111 0 R 111 0 R 111 0 R 111 0 R 111 0 R 111 0 R 111 0 R 111 0 R 111 0 R 111 0 R 111 0 R 111 0 R 111 0 R 111 0 R 111 0 R 111 0 R 111 0 R 108 0 R 106 0 R 106 0 R 106 0 R 106 0 R 106 0 R 106 0 R 106 0 R 106 0 R 106 0 R 106 0 R 106 0 R 106 0 R 106 0 R 106 0 R 106 0 R 106 0 R 106 0 R 106 0 R 103 0 R 101 0 R 101 0 R 101 0 R 101 0 R 101 0 R 101 0 R 101 0 R 101 0 R 101 0 R 101 0 R 101 0 R 101 0 R 101 0 R 101 0 R 101 0 R 101 0 R 98 0 R 96 0 R 96 0 R 96 0 R 96 0 R 96 0 R 96 0 R 96 0 R 96 0 R 96 0 R 96 0 R] endobj 7 0 obj -[37 0 R 34 0 R 35 0 R 34 0 R 34 0 R 31 0 R 28 0 R 28 0 R 29 0 R 28 0 R 28 0 R 28 0 R 28 0 R 25 0 R 23 0 R 23 0 R 23 0 R 23 0 R 23 0 R 23 0 R 23 0 R 23 0 R 23 0 R 23 0 R 20 0 R 17 0 R 18 0 R 17 0 R 17 0 R 14 0 R 12 0 R 12 0 R 12 0 R 12 0 R 12 0 R 12 0 R 12 0 R 12 0 R 12 0 R 12 0 R 12 0 R 12 0 R 12 0 R 12 0 R 9 0 R] +[93 0 R 90 0 R 91 0 R 90 0 R 90 0 R 87 0 R 84 0 R 84 0 R 85 0 R 84 0 R 84 0 R 84 0 R 84 0 R 81 0 R 79 0 R 79 0 R 79 0 R 79 0 R 79 0 R 79 0 R 79 0 R 79 0 R 79 0 R 79 0 R 76 0 R 73 0 R 74 0 R 73 0 R 73 0 R 70 0 R 68 0 R 68 0 R 68 0 R 68 0 R 68 0 R 68 0 R 68 0 R 68 0 R 68 0 R 68 0 R 68 0 R 68 0 R 68 0 R 68 0 R 65 0 R 64 0 R 62 0 R 62 0 R 62 0 R 59 0 R 57 0 R 57 0 R 57 0 R 54 0 R 52 0 R 52 0 R 52 0 R 49 0 R 47 0 R 47 0 R 47 0 R 44 0 R 42 0 R 42 0 R 42 0 R 42 0 R 42 0 R 42 0 R 42 0 R 39 0 R 37 0 R 37 0 R 37 0 R 37 0 R 37 0 R 37 0 R 37 0 R 34 0 R 32 0 R 32 0 R 32 0 R 32 0 R 32 0 R 32 0 R 32 0 R 29 0 R 27 0 R 27 0 R 27 0 R 27 0 R 27 0 R 27 0 R 27 0 R 27 0 R 27 0 R 27 0 R 27 0 R 27 0 R 27 0 R 27 0 R 27 0 R 27 0 R 27 0 R 27 0 R 27 0 R 27 0 R 27 0 R 27 0 R 27 0 R 27 0 R 27 0 R 24 0 R 22 0 R 22 0 R 22 0 R 22 0 R 22 0 R 22 0 R 22 0 R 22 0 R 22 0 R 22 0 R 22 0 R 22 0 R 22 0 R 22 0 R 22 0 R 22 0 R] endobj 8 0 obj -<< - /Type /StructElem - /S /Document - /P 5 0 R - /K [108 0 R 103 0 R 98 0 R 93 0 R 88 0 R 83 0 R 78 0 R 73 0 R 68 0 R 63 0 R 58 0 R 53 0 R 48 0 R 43 0 R 38 0 R 32 0 R 26 0 R 21 0 R 15 0 R 10 0 R 9 0 R] ->> +[19 0 R 17 0 R 17 0 R 17 0 R 17 0 R 17 0 R 17 0 R 17 0 R 14 0 R 12 0 R 12 0 R 12 0 R 12 0 R 12 0 R 12 0 R 12 0 R] endobj 9 0 obj << /Type /StructElem - /S /H2 - /P 8 0 R - /T (Typing Rules) - /K [44] - /Pg 139 0 R + /S /Document + /P 5 0 R + /K [164 0 R 159 0 R 154 0 R 149 0 R 144 0 R 139 0 R 134 0 R 129 0 R 124 0 R 119 0 R 114 0 R 109 0 R 104 0 R 99 0 R 94 0 R 88 0 R 82 0 R 77 0 R 71 0 R 66 0 R 65 0 R 60 0 R 55 0 R 50 0 R 45 0 R 40 0 R 35 0 R 30 0 R 25 0 R 20 0 R 15 0 R 10 0 R] >> endobj @@ -86,7 +79,7 @@ endobj << /Type /StructElem /S /Div - /P 8 0 R + /P 9 0 R /K [13 0 R 11 0 R] >> endobj @@ -109,8 +102,8 @@ endobj /O /Layout /Placement /Block >>] - /K [30 31 32 33 34 35 36 37 38 39 40 41 42 43] - /Pg 139 0 R + /K [9 10 11 12 13 14 15] + /Pg 197 0 R >> endobj @@ -132,8 +125,8 @@ endobj /O /Layout /Placement /Block >>] - /K [29] - /Pg 139 0 R + /K [8] + /Pg 197 0 R >> endobj @@ -141,8 +134,8 @@ endobj << /Type /StructElem /S /Div - /P 8 0 R - /K [19 0 R 16 0 R] + /P 9 0 R + /K [18 0 R 16 0 R] >> endobj @@ -164,41 +157,40 @@ endobj /O /Layout /Placement /Block >>] - /K [25 18 0 R 27 28] - /Pg 139 0 R + /K [1 2 3 4 5 6 7] + /Pg 197 0 R >> endobj 18 0 obj << /Type /StructElem - /S /Code - /P 17 0 R - /K [26] - /Pg 139 0 R + /S /Div + /P 15 0 R + /K [19 0 R] >> endobj 19 0 obj << /Type /StructElem - /S /Div - /P 15 0 R - /K [20 0 R] + /S /Span + /P 18 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [0] + /Pg 197 0 R >> endobj 20 0 obj << /Type /StructElem - /S /Span - /P 19 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [24] - /Pg 139 0 R + /S /Div + /P 9 0 R + /K [23 0 R 21 0 R] >> endobj @@ -206,54 +198,54 @@ endobj << /Type /StructElem /S /Div - /P 8 0 R - /K [24 0 R 22 0 R] + /P 20 0 R + /K [22 0 R] >> endobj 22 0 obj << /Type /StructElem - /S /Div + /S /Formula /P 21 0 R - /K [23 0 R] + /A [<< + /O /Layout + /Placement /Block + >>] + /K [112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127] + /Pg 195 0 R >> endobj 23 0 obj << /Type /StructElem - /S /Formula - /P 22 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [14 15 16 17 18 19 20 21 22 23] - /Pg 139 0 R + /S /Div + /P 20 0 R + /K [24 0 R] >> endobj 24 0 obj << /Type /StructElem - /S /Div - /P 21 0 R - /K [25 0 R] + /S /Span + /P 23 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [111] + /Pg 195 0 R >> endobj 25 0 obj << /Type /StructElem - /S /Span - /P 24 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [13] - /Pg 139 0 R + /S /Div + /P 9 0 R + /K [28 0 R 26 0 R] >> endobj @@ -261,41 +253,45 @@ endobj << /Type /StructElem /S /Div - /P 8 0 R - /K [30 0 R 27 0 R] + /P 25 0 R + /K [27 0 R] >> endobj 27 0 obj << /Type /StructElem - /S /Div + /S /Formula /P 26 0 R - /K [28 0 R] + /A [<< + /O /Layout + /Placement /Block + >>] + /K [86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110] + /Pg 195 0 R >> endobj 28 0 obj << /Type /StructElem - /S /Formula - /P 27 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [6 7 29 0 R 9 10 11 12] - /Pg 139 0 R + /S /Div + /P 25 0 R + /K [29 0 R] >> endobj 29 0 obj << /Type /StructElem - /S /Code + /S /Span /P 28 0 R - /K [8] - /Pg 139 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [85] + /Pg 195 0 R >> endobj @@ -303,31 +299,31 @@ endobj << /Type /StructElem /S /Div - /P 26 0 R - /K [31 0 R] + /P 9 0 R + /K [33 0 R 31 0 R] >> endobj 31 0 obj << /Type /StructElem - /S /Span + /S /Div /P 30 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [5] - /Pg 139 0 R + /K [32 0 R] >> endobj 32 0 obj << /Type /StructElem - /S /Div - /P 8 0 R - /K [36 0 R 33 0 R] + /S /Formula + /P 31 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [78 79 80 81 82 83 84] + /Pg 195 0 R >> endobj @@ -335,7 +331,7 @@ endobj << /Type /StructElem /S /Div - /P 32 0 R + /P 30 0 R /K [34 0 R] >> endobj @@ -343,24 +339,23 @@ endobj 34 0 obj << /Type /StructElem - /S /Formula + /S /Span /P 33 0 R /A [<< /O /Layout /Placement /Block >>] - /K [1 35 0 R 3 4] - /Pg 139 0 R + /K [77] + /Pg 195 0 R >> endobj 35 0 obj << /Type /StructElem - /S /Code - /P 34 0 R - /K [2] - /Pg 139 0 R + /S /Div + /P 9 0 R + /K [38 0 R 36 0 R] >> endobj @@ -368,7 +363,7 @@ endobj << /Type /StructElem /S /Div - /P 32 0 R + /P 35 0 R /K [37 0 R] >> endobj @@ -376,14 +371,14 @@ endobj 37 0 obj << /Type /StructElem - /S /Span + /S /Formula /P 36 0 R /A [<< /O /Layout /Placement /Block >>] - /K [0] - /Pg 139 0 R + /K [70 71 72 73 74 75 76] + /Pg 195 0 R >> endobj @@ -391,31 +386,31 @@ endobj << /Type /StructElem /S /Div - /P 8 0 R - /K [41 0 R 39 0 R] + /P 35 0 R + /K [39 0 R] >> endobj 39 0 obj << /Type /StructElem - /S /Div + /S /Span /P 38 0 R - /K [40 0 R] + /A [<< + /O /Layout + /Placement /Block + >>] + /K [69] + /Pg 195 0 R >> endobj 40 0 obj << /Type /StructElem - /S /Formula - /P 39 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [169 170 171 172 173 174 175 176 177 178] - /Pg 137 0 R + /S /Div + /P 9 0 R + /K [43 0 R 41 0 R] >> endobj @@ -423,7 +418,7 @@ endobj << /Type /StructElem /S /Div - /P 38 0 R + /P 40 0 R /K [42 0 R] >> endobj @@ -431,14 +426,14 @@ endobj 42 0 obj << /Type /StructElem - /S /Span + /S /Formula /P 41 0 R /A [<< /O /Layout /Placement /Block >>] - /K [168] - /Pg 137 0 R + /K [62 63 64 65 66 67 68] + /Pg 195 0 R >> endobj @@ -446,31 +441,31 @@ endobj << /Type /StructElem /S /Div - /P 8 0 R - /K [46 0 R 44 0 R] + /P 40 0 R + /K [44 0 R] >> endobj 44 0 obj << /Type /StructElem - /S /Div + /S /Span /P 43 0 R - /K [45 0 R] + /A [<< + /O /Layout + /Placement /Block + >>] + /K [61] + /Pg 195 0 R >> endobj 45 0 obj << /Type /StructElem - /S /Formula - /P 44 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167] - /Pg 137 0 R + /S /Div + /P 9 0 R + /K [48 0 R 46 0 R] >> endobj @@ -478,7 +473,7 @@ endobj << /Type /StructElem /S /Div - /P 43 0 R + /P 45 0 R /K [47 0 R] >> endobj @@ -486,14 +481,14 @@ endobj 47 0 obj << /Type /StructElem - /S /Span + /S /Formula /P 46 0 R /A [<< /O /Layout /Placement /Block >>] - /K [151] - /Pg 137 0 R + /K [58 59 60] + /Pg 195 0 R >> endobj @@ -501,31 +496,31 @@ endobj << /Type /StructElem /S /Div - /P 8 0 R - /K [51 0 R 49 0 R] + /P 45 0 R + /K [49 0 R] >> endobj 49 0 obj << /Type /StructElem - /S /Div + /S /Span /P 48 0 R - /K [50 0 R] + /A [<< + /O /Layout + /Placement /Block + >>] + /K [57] + /Pg 195 0 R >> endobj 50 0 obj << /Type /StructElem - /S /Formula - /P 49 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150] - /Pg 137 0 R + /S /Div + /P 9 0 R + /K [53 0 R 51 0 R] >> endobj @@ -533,7 +528,7 @@ endobj << /Type /StructElem /S /Div - /P 48 0 R + /P 50 0 R /K [52 0 R] >> endobj @@ -541,14 +536,14 @@ endobj 52 0 obj << /Type /StructElem - /S /Span + /S /Formula /P 51 0 R /A [<< /O /Layout /Placement /Block >>] - /K [132] - /Pg 137 0 R + /K [54 55 56] + /Pg 195 0 R >> endobj @@ -556,31 +551,31 @@ endobj << /Type /StructElem /S /Div - /P 8 0 R - /K [56 0 R 54 0 R] + /P 50 0 R + /K [54 0 R] >> endobj 54 0 obj << /Type /StructElem - /S /Div + /S /Span /P 53 0 R - /K [55 0 R] + /A [<< + /O /Layout + /Placement /Block + >>] + /K [53] + /Pg 195 0 R >> endobj 55 0 obj << /Type /StructElem - /S /Formula - /P 54 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131] - /Pg 137 0 R + /S /Div + /P 9 0 R + /K [58 0 R 56 0 R] >> endobj @@ -588,7 +583,7 @@ endobj << /Type /StructElem /S /Div - /P 53 0 R + /P 55 0 R /K [57 0 R] >> endobj @@ -596,14 +591,14 @@ endobj 57 0 obj << /Type /StructElem - /S /Span + /S /Formula /P 56 0 R /A [<< /O /Layout /Placement /Block >>] - /K [113] - /Pg 137 0 R + /K [50 51 52] + /Pg 195 0 R >> endobj @@ -611,31 +606,31 @@ endobj << /Type /StructElem /S /Div - /P 8 0 R - /K [61 0 R 59 0 R] + /P 55 0 R + /K [59 0 R] >> endobj 59 0 obj << /Type /StructElem - /S /Div + /S /Span /P 58 0 R - /K [60 0 R] + /A [<< + /O /Layout + /Placement /Block + >>] + /K [49] + /Pg 195 0 R >> endobj 60 0 obj << /Type /StructElem - /S /Formula - /P 59 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [102 103 104 105 106 107 108 109 110 111 112] - /Pg 137 0 R + /S /Div + /P 9 0 R + /K [63 0 R 61 0 R] >> endobj @@ -643,7 +638,7 @@ endobj << /Type /StructElem /S /Div - /P 58 0 R + /P 60 0 R /K [62 0 R] >> endobj @@ -651,14 +646,14 @@ endobj 62 0 obj << /Type /StructElem - /S /Span + /S /Formula /P 61 0 R /A [<< /O /Layout /Placement /Block >>] - /K [101] - /Pg 137 0 R + /K [46 47 48] + /Pg 195 0 R >> endobj @@ -666,31 +661,33 @@ endobj << /Type /StructElem /S /Div - /P 8 0 R - /K [66 0 R 64 0 R] + /P 60 0 R + /K [64 0 R] >> endobj 64 0 obj << /Type /StructElem - /S /Div + /S /Span /P 63 0 R - /K [65 0 R] + /A [<< + /O /Layout + /Placement /Block + >>] + /K [45] + /Pg 195 0 R >> endobj 65 0 obj << /Type /StructElem - /S /Formula - /P 64 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [90 91 92 93 94 95 96 97 98 99 100] - /Pg 137 0 R + /S /H2 + /P 9 0 R + /T (Typing Rules) + /K [44] + /Pg 195 0 R >> endobj @@ -698,31 +695,31 @@ endobj << /Type /StructElem /S /Div - /P 63 0 R - /K [67 0 R] + /P 9 0 R + /K [69 0 R 67 0 R] >> endobj 67 0 obj << /Type /StructElem - /S /Span + /S /Div /P 66 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [89] - /Pg 137 0 R + /K [68 0 R] >> endobj 68 0 obj << /Type /StructElem - /S /Div - /P 8 0 R - /K [71 0 R 69 0 R] + /S /Formula + /P 67 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [30 31 32 33 34 35 36 37 38 39 40 41 42 43] + /Pg 195 0 R >> endobj @@ -730,7 +727,7 @@ endobj << /Type /StructElem /S /Div - /P 68 0 R + /P 66 0 R /K [70 0 R] >> endobj @@ -738,14 +735,14 @@ endobj 70 0 obj << /Type /StructElem - /S /Formula + /S /Span /P 69 0 R /A [<< /O /Layout /Placement /Block >>] - /K [63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88] - /Pg 137 0 R + /K [29] + /Pg 195 0 R >> endobj @@ -753,77 +750,73 @@ endobj << /Type /StructElem /S /Div - /P 68 0 R - /K [72 0 R] + /P 9 0 R + /K [75 0 R 72 0 R] >> endobj 72 0 obj << /Type /StructElem - /S /Span + /S /Div /P 71 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [62] - /Pg 137 0 R + /K [73 0 R] >> endobj 73 0 obj << /Type /StructElem - /S /Div - /P 8 0 R - /K [76 0 R 74 0 R] + /S /Formula + /P 72 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [25 74 0 R 27 28] + /Pg 195 0 R >> endobj 74 0 obj << /Type /StructElem - /S /Div + /S /Code /P 73 0 R - /K [75 0 R] + /K [26] + /Pg 195 0 R >> endobj 75 0 obj << /Type /StructElem - /S /Formula - /P 74 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [54 55 56 57 58 59 60 61] - /Pg 137 0 R + /S /Div + /P 71 0 R + /K [76 0 R] >> endobj 76 0 obj << /Type /StructElem - /S /Div - /P 73 0 R - /K [77 0 R] + /S /Span + /P 75 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [24] + /Pg 195 0 R >> endobj 77 0 obj << /Type /StructElem - /S /Span - /P 76 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [53] - /Pg 137 0 R + /S /Div + /P 9 0 R + /K [80 0 R 78 0 R] >> endobj @@ -831,54 +824,54 @@ endobj << /Type /StructElem /S /Div - /P 8 0 R - /K [81 0 R 79 0 R] + /P 77 0 R + /K [79 0 R] >> endobj 79 0 obj << /Type /StructElem - /S /Div + /S /Formula /P 78 0 R - /K [80 0 R] + /A [<< + /O /Layout + /Placement /Block + >>] + /K [14 15 16 17 18 19 20 21 22 23] + /Pg 195 0 R >> endobj 80 0 obj << /Type /StructElem - /S /Formula - /P 79 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [49 50 51 52] - /Pg 137 0 R + /S /Div + /P 77 0 R + /K [81 0 R] >> endobj 81 0 obj << /Type /StructElem - /S /Div - /P 78 0 R - /K [82 0 R] + /S /Span + /P 80 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [13] + /Pg 195 0 R >> endobj 82 0 obj << /Type /StructElem - /S /Span - /P 81 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [48] - /Pg 137 0 R + /S /Div + /P 9 0 R + /K [86 0 R 83 0 R] >> endobj @@ -886,31 +879,32 @@ endobj << /Type /StructElem /S /Div - /P 8 0 R - /K [86 0 R 84 0 R] + /P 82 0 R + /K [84 0 R] >> endobj 84 0 obj << /Type /StructElem - /S /Div + /S /Formula /P 83 0 R - /K [85 0 R] + /A [<< + /O /Layout + /Placement /Block + >>] + /K [6 7 85 0 R 9 10 11 12] + /Pg 195 0 R >> endobj 85 0 obj << /Type /StructElem - /S /Formula + /S /Code /P 84 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [38 39 40 41 42 43 44 45 46 47] - /Pg 137 0 R + /K [8] + /Pg 195 0 R >> endobj @@ -918,7 +912,7 @@ endobj << /Type /StructElem /S /Div - /P 83 0 R + /P 82 0 R /K [87 0 R] >> endobj @@ -932,8 +926,8 @@ endobj /O /Layout /Placement /Block >>] - /K [37] - /Pg 137 0 R + /K [5] + /Pg 195 0 R >> endobj @@ -941,8 +935,8 @@ endobj << /Type /StructElem /S /Div - /P 8 0 R - /K [91 0 R 89 0 R] + /P 9 0 R + /K [92 0 R 89 0 R] >> endobj @@ -964,40 +958,41 @@ endobj /O /Layout /Placement /Block >>] - /K [31 32 33 34 35 36] - /Pg 137 0 R + /K [1 91 0 R 3 4] + /Pg 195 0 R >> endobj 91 0 obj << /Type /StructElem - /S /Div - /P 88 0 R - /K [92 0 R] + /S /Code + /P 90 0 R + /K [2] + /Pg 195 0 R >> endobj 92 0 obj << /Type /StructElem - /S /Span - /P 91 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [30] - /Pg 137 0 R + /S /Div + /P 88 0 R + /K [93 0 R] >> endobj 93 0 obj << /Type /StructElem - /S /Div - /P 8 0 R - /K [96 0 R 94 0 R] + /S /Span + /P 92 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [0] + /Pg 195 0 R >> endobj @@ -1005,54 +1000,54 @@ endobj << /Type /StructElem /S /Div - /P 93 0 R - /K [95 0 R] + /P 9 0 R + /K [97 0 R 95 0 R] >> endobj 95 0 obj << /Type /StructElem - /S /Formula + /S /Div /P 94 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [20 21 22 23 24 25 26 27 28 29] - /Pg 137 0 R + /K [96 0 R] >> endobj 96 0 obj << /Type /StructElem - /S /Div - /P 93 0 R - /K [97 0 R] + /S /Formula + /P 95 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [169 170 171 172 173 174 175 176 177 178] + /Pg 193 0 R >> endobj 97 0 obj << /Type /StructElem - /S /Span - /P 96 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [19] - /Pg 137 0 R + /S /Div + /P 94 0 R + /K [98 0 R] >> endobj 98 0 obj << /Type /StructElem - /S /Div - /P 8 0 R - /K [101 0 R 99 0 R] + /S /Span + /P 97 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [168] + /Pg 193 0 R >> endobj @@ -1060,54 +1055,54 @@ endobj << /Type /StructElem /S /Div - /P 98 0 R - /K [100 0 R] + /P 9 0 R + /K [102 0 R 100 0 R] >> endobj 100 0 obj << /Type /StructElem - /S /Formula + /S /Div /P 99 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [13 14 15 16 17 18] - /Pg 137 0 R + /K [101 0 R] >> endobj 101 0 obj << /Type /StructElem - /S /Div - /P 98 0 R - /K [102 0 R] + /S /Formula + /P 100 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167] + /Pg 193 0 R >> endobj 102 0 obj << /Type /StructElem - /S /Span - /P 101 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [12] - /Pg 137 0 R + /S /Div + /P 99 0 R + /K [103 0 R] >> endobj 103 0 obj << /Type /StructElem - /S /Div - /P 8 0 R - /K [106 0 R 104 0 R] + /S /Span + /P 102 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [151] + /Pg 193 0 R >> endobj @@ -1115,71 +1110,685 @@ endobj << /Type /StructElem /S /Div - /P 103 0 R - /K [105 0 R] + /P 9 0 R + /K [107 0 R 105 0 R] >> endobj 105 0 obj << /Type /StructElem - /S /Formula + /S /Div /P 104 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [2 3 4 5 6 7 8 9 10 11] - /Pg 137 0 R + /K [106 0 R] >> endobj 106 0 obj << /Type /StructElem - /S /Div - /P 103 0 R - /K [107 0 R] + /S /Formula + /P 105 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150] + /Pg 193 0 R >> endobj 107 0 obj << /Type /StructElem - /S /Span - /P 106 0 R - /A [<< - /O /Layout - /Placement /Block - >>] - /K [1] - /Pg 137 0 R + /S /Div + /P 104 0 R + /K [108 0 R] >> endobj 108 0 obj << /Type /StructElem - /S /H2 - /P 8 0 R - /T (Operational Semantics Rules) - /K [0] - /Pg 137 0 R + /S /Span + /P 107 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [132] + /Pg 193 0 R >> endobj 109 0 obj << - /Type /Font - /Subtype /Type0 - /BaseFont /PKDHDI+LibertinusSerif-Bold-Identity-H - /Encoding /Identity-H - /DescendantFonts [110 0 R] - /ToUnicode 113 0 R + /Type /StructElem + /S /Div + /P 9 0 R + /K [112 0 R 110 0 R] >> endobj 110 0 obj +<< + /Type /StructElem + /S /Div + /P 109 0 R + /K [111 0 R] +>> +endobj + +111 0 obj +<< + /Type /StructElem + /S /Formula + /P 110 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131] + /Pg 193 0 R +>> +endobj + +112 0 obj +<< + /Type /StructElem + /S /Div + /P 109 0 R + /K [113 0 R] +>> +endobj + +113 0 obj +<< + /Type /StructElem + /S /Span + /P 112 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [113] + /Pg 193 0 R +>> +endobj + +114 0 obj +<< + /Type /StructElem + /S /Div + /P 9 0 R + /K [117 0 R 115 0 R] +>> +endobj + +115 0 obj +<< + /Type /StructElem + /S /Div + /P 114 0 R + /K [116 0 R] +>> +endobj + +116 0 obj +<< + /Type /StructElem + /S /Formula + /P 115 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [102 103 104 105 106 107 108 109 110 111 112] + /Pg 193 0 R +>> +endobj + +117 0 obj +<< + /Type /StructElem + /S /Div + /P 114 0 R + /K [118 0 R] +>> +endobj + +118 0 obj +<< + /Type /StructElem + /S /Span + /P 117 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [101] + /Pg 193 0 R +>> +endobj + +119 0 obj +<< + /Type /StructElem + /S /Div + /P 9 0 R + /K [122 0 R 120 0 R] +>> +endobj + +120 0 obj +<< + /Type /StructElem + /S /Div + /P 119 0 R + /K [121 0 R] +>> +endobj + +121 0 obj +<< + /Type /StructElem + /S /Formula + /P 120 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [90 91 92 93 94 95 96 97 98 99 100] + /Pg 193 0 R +>> +endobj + +122 0 obj +<< + /Type /StructElem + /S /Div + /P 119 0 R + /K [123 0 R] +>> +endobj + +123 0 obj +<< + /Type /StructElem + /S /Span + /P 122 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [89] + /Pg 193 0 R +>> +endobj + +124 0 obj +<< + /Type /StructElem + /S /Div + /P 9 0 R + /K [127 0 R 125 0 R] +>> +endobj + +125 0 obj +<< + /Type /StructElem + /S /Div + /P 124 0 R + /K [126 0 R] +>> +endobj + +126 0 obj +<< + /Type /StructElem + /S /Formula + /P 125 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88] + /Pg 193 0 R +>> +endobj + +127 0 obj +<< + /Type /StructElem + /S /Div + /P 124 0 R + /K [128 0 R] +>> +endobj + +128 0 obj +<< + /Type /StructElem + /S /Span + /P 127 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [62] + /Pg 193 0 R +>> +endobj + +129 0 obj +<< + /Type /StructElem + /S /Div + /P 9 0 R + /K [132 0 R 130 0 R] +>> +endobj + +130 0 obj +<< + /Type /StructElem + /S /Div + /P 129 0 R + /K [131 0 R] +>> +endobj + +131 0 obj +<< + /Type /StructElem + /S /Formula + /P 130 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [54 55 56 57 58 59 60 61] + /Pg 193 0 R +>> +endobj + +132 0 obj +<< + /Type /StructElem + /S /Div + /P 129 0 R + /K [133 0 R] +>> +endobj + +133 0 obj +<< + /Type /StructElem + /S /Span + /P 132 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [53] + /Pg 193 0 R +>> +endobj + +134 0 obj +<< + /Type /StructElem + /S /Div + /P 9 0 R + /K [137 0 R 135 0 R] +>> +endobj + +135 0 obj +<< + /Type /StructElem + /S /Div + /P 134 0 R + /K [136 0 R] +>> +endobj + +136 0 obj +<< + /Type /StructElem + /S /Formula + /P 135 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [49 50 51 52] + /Pg 193 0 R +>> +endobj + +137 0 obj +<< + /Type /StructElem + /S /Div + /P 134 0 R + /K [138 0 R] +>> +endobj + +138 0 obj +<< + /Type /StructElem + /S /Span + /P 137 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [48] + /Pg 193 0 R +>> +endobj + +139 0 obj +<< + /Type /StructElem + /S /Div + /P 9 0 R + /K [142 0 R 140 0 R] +>> +endobj + +140 0 obj +<< + /Type /StructElem + /S /Div + /P 139 0 R + /K [141 0 R] +>> +endobj + +141 0 obj +<< + /Type /StructElem + /S /Formula + /P 140 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [38 39 40 41 42 43 44 45 46 47] + /Pg 193 0 R +>> +endobj + +142 0 obj +<< + /Type /StructElem + /S /Div + /P 139 0 R + /K [143 0 R] +>> +endobj + +143 0 obj +<< + /Type /StructElem + /S /Span + /P 142 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [37] + /Pg 193 0 R +>> +endobj + +144 0 obj +<< + /Type /StructElem + /S /Div + /P 9 0 R + /K [147 0 R 145 0 R] +>> +endobj + +145 0 obj +<< + /Type /StructElem + /S /Div + /P 144 0 R + /K [146 0 R] +>> +endobj + +146 0 obj +<< + /Type /StructElem + /S /Formula + /P 145 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [31 32 33 34 35 36] + /Pg 193 0 R +>> +endobj + +147 0 obj +<< + /Type /StructElem + /S /Div + /P 144 0 R + /K [148 0 R] +>> +endobj + +148 0 obj +<< + /Type /StructElem + /S /Span + /P 147 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [30] + /Pg 193 0 R +>> +endobj + +149 0 obj +<< + /Type /StructElem + /S /Div + /P 9 0 R + /K [152 0 R 150 0 R] +>> +endobj + +150 0 obj +<< + /Type /StructElem + /S /Div + /P 149 0 R + /K [151 0 R] +>> +endobj + +151 0 obj +<< + /Type /StructElem + /S /Formula + /P 150 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [20 21 22 23 24 25 26 27 28 29] + /Pg 193 0 R +>> +endobj + +152 0 obj +<< + /Type /StructElem + /S /Div + /P 149 0 R + /K [153 0 R] +>> +endobj + +153 0 obj +<< + /Type /StructElem + /S /Span + /P 152 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [19] + /Pg 193 0 R +>> +endobj + +154 0 obj +<< + /Type /StructElem + /S /Div + /P 9 0 R + /K [157 0 R 155 0 R] +>> +endobj + +155 0 obj +<< + /Type /StructElem + /S /Div + /P 154 0 R + /K [156 0 R] +>> +endobj + +156 0 obj +<< + /Type /StructElem + /S /Formula + /P 155 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [13 14 15 16 17 18] + /Pg 193 0 R +>> +endobj + +157 0 obj +<< + /Type /StructElem + /S /Div + /P 154 0 R + /K [158 0 R] +>> +endobj + +158 0 obj +<< + /Type /StructElem + /S /Span + /P 157 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [12] + /Pg 193 0 R +>> +endobj + +159 0 obj +<< + /Type /StructElem + /S /Div + /P 9 0 R + /K [162 0 R 160 0 R] +>> +endobj + +160 0 obj +<< + /Type /StructElem + /S /Div + /P 159 0 R + /K [161 0 R] +>> +endobj + +161 0 obj +<< + /Type /StructElem + /S /Formula + /P 160 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [2 3 4 5 6 7 8 9 10 11] + /Pg 193 0 R +>> +endobj + +162 0 obj +<< + /Type /StructElem + /S /Div + /P 159 0 R + /K [163 0 R] +>> +endobj + +163 0 obj +<< + /Type /StructElem + /S /Span + /P 162 0 R + /A [<< + /O /Layout + /Placement /Block + >>] + /K [1] + /Pg 193 0 R +>> +endobj + +164 0 obj +<< + /Type /StructElem + /S /H2 + /P 9 0 R + /T (Operational Semantics Rules) + /K [0] + /Pg 193 0 R +>> +endobj + +165 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /PKDHDI+LibertinusSerif-Bold-Identity-H + /Encoding /Identity-H + /DescendantFonts [166 0 R] + /ToUnicode 169 0 R +>> +endobj + +166 0 obj << /Type /Font /Subtype /CIDFontType0 @@ -1189,13 +1798,13 @@ endobj /Ordering (Identity) /Supplement 0 >> - /FontDescriptor 112 0 R + /FontDescriptor 168 0 R /DW 0 /W [0 0 500 1 1 730 2 2 581 3 3 489 4 4 428 5 5 505.99997 6 6 358 7 7 322 8 8 551 9 9 616 10 10 325 11 11 250 12 12 504 13 13 905 14 14 456 15 15 427 16 16 716 17 17 598 18 18 652 19 19 558 20 20 521] >> endobj -111 0 obj +167 0 obj << /Length 11 /Filter /FlateDecode @@ -1205,7 +1814,7 @@ x endstream endobj -112 0 obj +168 0 obj << /Type /FontDescriptor /FontName /PKDHDI+LibertinusSerif-Bold @@ -1216,12 +1825,12 @@ endobj /Descent -246 /CapHeight 645 /StemV 168.6 - /CIDSet 111 0 R - /FontFile3 114 0 R + /CIDSet 167 0 R + /FontFile3 170 0 R >> endobj -113 0 obj +169 0 obj << /Length 886 /Type /CMap @@ -1281,7 +1890,7 @@ end endstream endobj -114 0 obj +170 0 obj << /Length 2703 /Filter /FlateDecode @@ -1298,47 +1907,47 @@ IQFHɕ endstream endobj -115 0 obj +171 0 obj << /Type /Font /Subtype /Type0 - /BaseFont /AGEFGA+LibertinusSerif-Regular-Identity-H + /BaseFont /MEKHZM+LibertinusSerif-Regular-Identity-H /Encoding /Identity-H - /DescendantFonts [116 0 R] - /ToUnicode 119 0 R + /DescendantFonts [172 0 R] + /ToUnicode 175 0 R >> endobj -116 0 obj +172 0 obj << /Type /Font /Subtype /CIDFontType0 - /BaseFont /AGEFGA+LibertinusSerif-Regular + /BaseFont /MEKHZM+LibertinusSerif-Regular /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> - /FontDescriptor 118 0 R + /FontDescriptor 174 0 R /DW 0 - /W [0 0 500 1 1 356 2 2 557 3 3 338 4 4 485 5 5 576 6 6 492 7 7 646 8 8 529 9 9 532 10 10 356 11 11 541 12 12 510.99997 13 13 477 14 14 565 15 15 297 16 16 412 17 17 604 18 18 563 19 19 699 20 20 602 21 21 458 22 22 597 23 23 485 24 24 556 25 25 431 26 27 465 28 28 667 29 29 461 30 30 489 31 31 528] + /W [0 0 500 1 1 356 2 2 557 3 3 338 4 4 485 5 5 576 6 6 492 7 7 646 8 8 529 9 9 532 10 10 356 11 11 541 12 12 510.99997 13 13 477 14 14 565 15 15 297 16 16 412 17 17 604 18 18 563 19 19 699 20 20 602 21 21 458 22 22 597 23 23 485 24 24 556 25 25 431 26 27 465 28 28 667 29 29 461 30 30 489 31 31 528 32 32 311 33 33 541] >> endobj -117 0 obj +173 0 obj << - /Length 12 + /Length 13 /Filter /FlateDecode >> stream -x  +x endstream endobj -118 0 obj +174 0 obj << /Type /FontDescriptor - /FontName /AGEFGA+LibertinusSerif-Regular + /FontName /MEKHZM+LibertinusSerif-Regular /Flags 131078 /FontBBox [0 -193 698 704] /ItalicAngle 0 @@ -1346,14 +1955,14 @@ endobj /Descent -246 /CapHeight 658 /StemV 95.4 - /CIDSet 117 0 R - /FontFile3 120 0 R + /CIDSet 173 0 R + /FontFile3 176 0 R >> endobj -119 0 obj +175 0 obj << - /Length 1040 + /Length 1068 /Type /CMap /WMode 0 >> @@ -1380,7 +1989,7 @@ end def 1 begincodespacerange <0000> endcodespacerange -31 beginbfchar +33 beginbfchar <0001> <005B> <0002> <0045> <0003> <002D> @@ -1412,6 +2021,8 @@ endcodespacerange <001D> <0070> <001E> <0079> <001F> <004C> +<0020> <0069> +<0021> <0067> endbfchar endcmap CMapName currentdict /CMap defineresource pop @@ -1422,72 +2033,74 @@ end endstream endobj -120 0 obj +176 0 obj << - /Length 3604 + /Length 3755 /Filter /FlateDecode /Subtype /CIDFontType0C >> stream -xy\Wǻm(*8ѨIahTbɢ - D[襖YTfD'baЧɛyI4%S]s={RرTvF<)ŷ*ΟKq=SF)ϷJ$ΉS%LH{S3$2S8j7RS3lߑ:m[м 5qFÚ:e-mO9W"#J8 O8Sd;q']JD*H$|=sK,xd -UF)5&mY<ѱmca/c?c7f>3.c[oN4"ttY¹N]RS|SƍWKLQB 0S| lw9n% -\h- -}*$\HP8jtV@+`P%|^S3)\#7|.WÚ&:r,ǎK>z}[BKi7297&7R cV.Dv,q5ou:.ݪ ,2#5?{H؆_b8zogY{֚c6Kq_%mڽsjsV+d+jU|-_N}:k:kߓ -OI%rب[vZmrS3=ZfbDm@Þ?"}{x693h]O>[rsW-"2-ZFXkq+dk=ւԪҧ듓Uxr1fh7ThRmD-6:\U"B -~:S.iZ:+naFO iB/ќ6o 3)Kdc8>; -mGZ?U2*/W~F36+ׄS/'g`źKmi9x3sXJEG[@OovD1Mϓkfq^ZUY5+K_OK"r.< 3R>iE7 /ewkMh" 7Vn[z& (EJq֩>>D\P wPKJh'N;z '.\~Gvl.rǿ,q!˱jwN`q~|m]#[𩮴h,*Eg -zJa2 Kbx?b4H"X'>L-°uݶm}&^cEzՆoє@!3/ ج HXGkwq>4]/@b.4UKkq"?@u壔h;xoI~XvZU"+-7֑q?p2'^$y@˞TD l15bc^ݞtpOyD -qyޭ14Q\oEYl)Nƙgc3j:7:0;I^jQ_S)aD2i wn|5ͼ֌7$¬U0R S 0 ;t~r$eXԾC,c}'8[Sk^z &7b. s -{  f;"y>_KO %0yhz,D6 =^FXX-"y5R gqjݲ39*7lֵ|+ݫmg[i9KW). I끠ʈj&Q$L.{e.F5gDĖ0;;~7J&mj 8jZfmÉfirWf] 8ZוDZ**;l}/!*F]3fV&3JIw7nӘɄ)kA\! {azHzt R]>!?cJ~BU%a5oa=\_QٝǨ}I+R*Ze]EDk/U%ҮAyG]l+3&"zH_H!h`aiC}:tnTrYwFn_p;.^GEV>QVU>RrcՊ:pWNLf;3fotɷvu &jR-0WvR!'=u_Zj-& ;i'^M~wFt/]4]&Μř J팕QWM簫~JyWG\GV.S K GsU:!ۤeYY)$ -{;q*qB篢ÎP~4S##yU# iD6,-UQZuߨhlrX:-9gvz&c m6-}%lɈ0 ﶟ[ #aD?I0 -E0 &Z18Vz #1}̠ }+M(mJIKJFTJ\Q1i Rc!)|)a$9W:}?-"kLH<顙"ox?;swH"cזGJdTRj\jƊ]3RbbSg.~*ŁO5kYgi4 +>z'O~droOSMy_2U<5y:PF%[u $DAkͰ 9g7`6KQ8Q0X|&C[@UH ɉ^,XcAD9 Hl0Ac5AC㧪 +lh6~$~/UQWTַGHb'-{o06zcȆ%F)-H# ԮS_Sx +ںՖlC_]pl{iH*4Fig!NQѯ(9ߠgzJ N TVyJCPhiYړO +u~ #dmd>97p#C.ѧRx6bEk[M,QkMd;8qeYVODqsijmcS|ojVRJ9nu*2uB%e*G ?Oy3Ni3ep4<c|giS@OIтϷl s)KdcX>>;ju[0mR/vT}N3V3πmU"[xb}ߥ-+]C9n"/%KC:#UIaApUo)m[r_z9aE8{g6tG=$PǗߊhFS?~e͎*Ћ?ORJ²:!0qNLfi:}\ZQJ;;g3Dm`q.5_t8 z;kJg +ƕI#4(GF;vBm=kL9,q~e0Mrx r4H2$LxluwģTVof8Ne6F1A5|mm5[y'⇜HRQ?#c=[8ݨY-ZCc6,[OσZ g2[R\]mM1"%'LjW5 +41!rt| flj!a_^om0D2F@X>y{L5E b, :8^U8i׈o~JS='ٮ;k޴4`i~YW?tԺ$eƻC|s?5z{SD,Ha0Pr%DUA&!"|踴q()[볺nO+YXc4Fȷ1ԗ]]U0 su*6֣TJ.LvW( %"9g| q 7 +X R-0Ҕ,7k!mRyC&i|z6k9gٺ}|-Қ38`WP +% 쫂Ŵl&oe_d^3qM$,i3n kIX5e8?ȷUKA +G~9I"ɡOz +GgC6~5r=l۝44f2f«nڴ^ gɕXȖth9ؚX{׺7"jdPY\VÉTJC5'ZLNURyr/.nTN5oWMEdz1y +YD1-BH-]C#z\B !2Ha +Y B~@S, \ri-9NeRv})$҅]s9 I!HAFG0FQvd4(GF7j˜cP(!Vc@&=o}OH)sTT|8e؜WPx6e.`(üϨI;RZYMŃD/-^?'FU'}N Ǵl3"zqH}|#$1fu9pźHRCgN{}jRd|!GكlU?_.U.Q ypDN; F}gjC5]wmml}pRqÔ:R-C%,\IڒvԺ/ndkƬL]%6Ѹ؁0>/L;΄M|mu[5fUoZ$Lߛ_*9Z 6<> endobj -122 0 obj +178 0 obj << /Type /Font /Subtype /CIDFontType0 - /BaseFont /MNIYRT+NewCMMath-Book + /BaseFont /FEOAPH+NewCMMath-Book /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> - /FontDescriptor 124 0 R + /FontDescriptor 180 0 R /DW 0 - /W [0 0 500 1 1 466 2 2 1000 3 3 407 4 4 345 5 5 778 6 6 500 7 7 778 8 8 500 9 9 389 10 10 392 11 11 556 12 12 444 13 13 778 14 14 306 15 15 500 16 16 278 17 17 394 18 20 569 21 21 469 22 22 778 23 23 444 24 24 332 25 25 278 26 26 556 27 27 500 28 28 556 29 29 278 30 30 433] + /W [0 0 500 1 1 466 2 2 1000 3 3 407 4 4 345 5 5 778 6 6 500 7 7 778 8 8 500 9 9 389 10 10 392 11 11 556 12 12 444 13 13 778 14 14 306 15 15 500 16 16 278 17 17 394 18 20 569 21 21 469 22 22 778 23 23 444 24 24 332 25 25 278 26 26 556 27 27 500 28 28 556 29 29 278 30 30 433 31 31 278 32 32 584 33 33 722] >> endobj -123 0 obj +179 0 obj << - /Length 12 + /Length 13 /Filter /FlateDecode >> stream -x?  +x endstream endobj -124 0 obj +180 0 obj << /Type /FontDescriptor - /FontName /MNIYRT+NewCMMath-Book + /FontName /FEOAPH+NewCMMath-Book /Flags 131076 /FontBBox [19 -230 943 730] /ItalicAngle 0 @@ -1495,14 +2108,14 @@ endobj /Descent -194 /CapHeight 683 /StemV 95.4 - /CIDSet 123 0 R - /FontFile3 126 0 R + /CIDSet 179 0 R + /FontFile3 182 0 R >> endobj -125 0 obj +181 0 obj << - /Length 1042 + /Length 1088 /Type /CMap /WMode 0 >> @@ -1529,7 +2142,7 @@ end def 1 begincodespacerange <0000> endcodespacerange -30 beginbfchar +33 beginbfchar <0001> <0002> <2192> <0003> <2032> @@ -1560,6 +2173,9 @@ endcodespacerange <001C> <0068> <001D> <002C> <001E> +<001F> <003A> +<0020> +<0021> <0054> endbfchar endcmap CMapName currentdict /CMap defineresource pop @@ -1570,91 +2186,91 @@ end endstream endobj -126 0 obj +182 0 obj << - /Length 3593 + /Length 3945 /Filter /FlateDecode /Subtype /CIDFontType0C >> stream -xmW{X[UOl[Woz|Όa;^j--}X)@hh$$E"@x%H -B):Ǵjg[jջƹ_Z:笽of%%l-͖*P}L./KodMdQ7d7ۿJ/s`-Qu,?:q&qN5fGr$],PIU巩7k7nxO*yTRT.uevT+RTD&)PJĩUb"UU"I}b4y*5CZ(PJR׮MUJ$%*U׫*zٍwMۑ6#}̝[ש""U,QHeu, -uRυU>zK ɕI+!yՑ>fk;:6Ñ|3fX,*ZZb6%0y -J,+{7ر"b%ݕ4}*'MWW~Ud? I`X t,{vrfokx5B:/ aIb{ ێpaѶqt_;zDvbmY~Чoeu&L`27JD:$3 (N ۰Z%Gc}C]W/HU1%)g_?uB'89op|D;0m:@5C5ܮ߃ 55/='/>MV@qMLM xٷ9x>&T@u}19\n:0PHxCtN$%4qvOxl-$:O%I|- 5+5ªMe"Ё=zoohۺǥ  -^Wf7x>r^~7Qk5z)ik;~ /q*!keg̖"@/2|8lS8:Ka7?a=TT *P]i9KyF7T`0۝LoIB),o_qeO=3O~EOK-NK,"CVdD<0>'JH!q`(s|HL,Z ^DxY w,6Rg4UME@VDdŔRP[vݒ@ŇxgS!_T6L{(>}`b+nM -f}½4]h|KD]ovFs'rsϩ$O xK߹!-a0wpsf SHs>EP%\u4J|EߋmB.DgUIv7dBFT/ pw(5L&*=t;BI_60|a?86^^Qg^_[L3 m3x D 0`7pU!1^+$l6Y􈹕\u0kMF`V1pHؠv[|Rv%` bqW{2w/nL߲bVlɼ}V4'B_ϊg+8)1kVp6;j CEΚpL 撂2PJ/;?wq&Bhh…,XQk$~#cr!mt+͏o)F(.z&{I)NED64mU=Ո88zyX DhI@S1Ì>&/>F+Gmy;/'01Xc8Z6=hKy# }gvTh&`!`JT0GeKx&7̬qk5nz`z +0&on1mW7)'P{ޠ蒹a#<^Ҏj"xZh3%C~` Z6 -vkktw*GM)A1Lll?t0`>@yvvet٤/o$4~ "fCdknfÇdi5_&*z0`TS⛞-^xzInJWЀz;lrDo.q9 -km5MYS f3兗F" ">w$^ʤ97tP[:ٞ80YI?ȣoKMER/WgF'HOTW -zkQoWOcɧ`ohh:2 oxxlՋ0 oGe6p5`bPoI3y4\3]}0iӱv ^)1s羚 -*p` L]Xe"JAsцF[.qUHQ8MN5LϏXbwnN{S)F*yq@RoЎ>L7G-=/7Av x?יj|O7עی6s6;'οE -V30~ׇ>J\;XػH| -%PR[V/~[ P):Ze}%@hqeP~1A)X,iDϩ0L|U%HL(j"(Sԣ @MI>C8ip~K肣YddڕU$l.n -?nP#}GUx)~ds b0P,(Ew +xmW{X[UO +Iv[#y v:wF:EJ-}Xi $$)HH &( !#)P +Ptڇi8Gw=gS WӋ2 .fO?D?MYcL;b#kDw Z~;gYt{^l3 6-`lҕHSkY`%'k[2{@乔X;Ean{ Hԣ&ΦTZ}X=fNW[yx =5"hiif8t693:046318Alj9 -OPCmPr+.U:{#ݜLMeV'wѦ2(@=,%vEמp +F'< ]gMgٌG'PeM=b~8>>X#&fm}Jn|az7@vcg/pH8u7Y\ &muVa68HdYL[C2k9T J4N#^+Sxljddr30Wa0Y! h3dvLZDF].:{U&=P˩w-`$mvمm*tsmǦf )LK.{%w/ڼG-(|zǨhIF'Qm?F+85Np +ϑ؛tàFHNWjC8.kCѿ ("UrsYJX0dw3x2oM,x;@=OXrjDn +YjAıhű/<O"Be)jxgp8\=z͊cm-ع˦.AF.#xSL`@uޢ:I1W{ndo7Y-~]IT6DL bmLc \-jɼbg '@YR UĚhq&VҊ'! +?4 F@ڦ5vfۣ3uw*x']}¢ma9EhZt&A+i/dL ~|`j8c*K#< NŪ/cx9`Xs79?ʂjFD5P M} $\ JC['nL\@F/ON E#G<qxI~bpalwA~-v!Q@KTGI?> *s^Ä|8_+p}PpPy@(Hأ"\vȸgAF(HTCfP,򽱧xx`!KB1YLR񹰷b\~8 #)Gp味"6B: ^g>Sż/ɇq^y ԕBEY*aպMoc{ NUPV 6m C4EYIօ ܿ)_t"8AƕQ~%יqYbqcԸeFdH8^yCa]]]n谣#y rS[۞QM|oV#>AD|*Sylo>{y 9F> Ӑ]~G"6ɢ&r+_  uKexo\60P嘑~;vrfPJRe(8T{SpVK$*_\Bll%$'xg"o|kP1C|.,瀩Eoj@ԝh26jEćUZ; ,-F'5{yO{UF6M1̝flč==J!SAYZ\EAGu6`Ur'UlҩQ.ajlnj1B֮w"ѪOHOps4 w;9QPE j& + y@?||B n#4-vߔtCi3v*\-f(`r[d,p9lm6yNÔ_2Pfɵg!ф endstream endobj -127 0 obj +183 0 obj << /Type /Font /Subtype /Type0 - /BaseFont /XURROS+DejaVuSansMono + /BaseFont /NSZRHE+DejaVuSansMono /Encoding /Identity-H - /DescendantFonts [128 0 R] - /ToUnicode 131 0 R + /DescendantFonts [184 0 R] + /ToUnicode 187 0 R >> endobj -128 0 obj +184 0 obj << /Type /Font /Subtype /CIDFontType2 - /BaseFont /XURROS+DejaVuSansMono + /BaseFont /NSZRHE+DejaVuSansMono /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> - /FontDescriptor 130 0 R + /FontDescriptor 186 0 R /DW 0 /CIDToGIDMap /Identity - /W [0 19 602.0508] + /W [0 23 602.0508] >> endobj -129 0 obj +185 0 obj << /Length 11 /Filter /FlateDecode >> stream -x +x? endstream endobj -130 0 obj +186 0 obj << /Type /FontDescriptor - /FontName /XURROS+DejaVuSansMono + /FontName /NSZRHE+DejaVuSansMono /Flags 131077 - /FontBBox [50.78125 -208.00781 563.96484 765.1367] + /FontBBox [50.78125 -214.84375 563.96484 765.1367] /ItalicAngle 0 /Ascent 759.7656 /Descent -240.23438 /CapHeight 759.7656 /StemV 95.4 - /CIDSet 129 0 R - /FontFile2 132 0 R + /CIDSet 185 0 R + /FontFile2 188 0 R >> endobj -131 0 obj +187 0 obj << - /Length 872 + /Length 928 /Type /CMap /WMode 0 >> @@ -1681,7 +2297,7 @@ end def 1 begincodespacerange <0000> endcodespacerange -19 beginbfchar +23 beginbfchar <0001> <0073> <0002> <0075> <0003> <0063> @@ -1701,6 +2317,10 @@ endcodespacerange <0011> <006D> <0012> <0079> <0013> <0022> +<0014> <0042> +<0015> <0049> +<0016> <0053> +<0017> <0067> endbfchar endcmap CMapName currentdict /CMap defineresource pop @@ -1711,34 +2331,41 @@ end endstream endobj -132 0 obj +188 0 obj << - /Length 6207 + /Length 6767 /Filter /FlateDecode >> stream -xz xTչdLL&r!!@e \$Jȅ$1EbBѣFANZjz<HO/AH6`aqL.@?y33k]ַ`Bz} Cڵwk?^/ݰ"-s?@K>0ѡ@C 5%}q#Z>kXR]X -^"׺h"< MSz$? -Љs=NT#6hN hj]';co^D?N`;ȜS6 `h^>A)g@lz')$ЉP71F#u26Uc{@#:Y i'G>l;{Ќ><] -72i; -4-bA9ޣ>`/I>xax[cObo/lVS̉F,{^:vIfV .yjOBmWwO۬fp汯?QK[ث,^B^Dbnmޡ+؎'5f3i:ZѨsx,C .8ڴF ݁ZkFv0f=m\'a8%ݵ )㯻vA,8yڂez_~8HɎzrҹv\ y;YT~_l꼔sԒU򄄔yz'zK+;ISwSSR|v: yؘ9vMGӽ`=ݛn& fB:hM[ǺMo4|!+8jHGfwF527~d3x(=i8b-Qqv\v'1wΞ|_!.]4.]tGefT]}/Od,)F-)q,3cR4-eMIom9}cËx#;w+^Գ_KMx$Wޭ/v%%uge.oF=l=vc=N_pEl-n';d 0cfL@^3*;;=4=i&eXRckС /~_:_Àd1Hņ41s$nmfw<7Vd+=Œ0 $dDF 01i<~q%3=O7^^\Nql -0rLͿ{; bHoĶ<-nnvƛYQ:lx7#_9/\4ӓ$33N6 -)q48z|P/*vΝxd՟ۜKſO/e?sg7loanLztp[^=mf 02ti> g.X`W2̑Q(xС77WOnޖxģ2|hDs6Ev0[K(ILKxwxFA6p%[e[;o\4.}/H," ]?~eG-g?ԟ|tˆjM~}8Y_Kqmt_/w8teH -{X3 wfF$ZVtvJG^{Dأ;v47(fwWRv;`&T=gH^<AE/сqԦu4/aJVqصz#$_ōn wX#Vb: Ic#*[xeOO/\Lyٞ)dQLU<D_,7XZvԩmaӎg(gH3Ixid&d%Ȫ9Y:=$u6:K5 -Xsj֫\ԋ'խNq֡u;y'l#kӪPMif&Vao ~,Z,Wy[]z.mx7w"BzRv@wF!}A gG[ɦbm|p'aǵ$b6ސ0;:-f-X ezi 궈;o3zba}2ve0ŧJ''k"ۣڣcc]+PYdI,eYx$Ӻ+С÷VkY[wj֖מzyWz?yh[&M3fŒoL;,H#>fiRw31Vh+=?6?{0d܃梻B#SOӦ}tnK;҃ҝ#GM3=vz㧏l&7ٚM&gSpkdkTktkLklk\֑Il%Sǰ!s}hSrQ)F/?4 ւB43 %FiBâ\\#<1u44Bvw+?\N5egz7YIUUe/g8TqutcBbBGFM1 PJd6fwq,K - b"uVib{Yfc o?O-,ܳ^4mP4[HhQoc:u@l0N~(KtJOm|\soMQ)-i -~UƻS8ےgثE+Kрj%EbU5|R 'rP24(hʔcUXgAJX[`BkřehkidCZ1bI"-QhPR%Z347dCriAՀ?0Ue"A >ZBʕQV7lm WjoZVܶ<%Xذ*yɗSJ}_آV* ecJN %2Mbqi`B*9 X)94bՀ j"W2kAYS4J,$u:+mZʆEp}r3&i_ꖗW=Ln`n 2ys)Rwʪ2?&bnhrgu:Xe4lP0VVSLf_ry?QeR(EXdY2"G^-;Bu5(DڛeJG>",Tc@zB<,FRݨEWXHhᨤd󑏅9E'K3ոpL?ő,ebSWrv1bPh 3oKB`yB4EXj,"BjZ_)){g+sլe9"N ɀbe@Y(e{E缁 xE4GM"%Z6;7)KM25O.cdXXl֒iŽZ O]X_aɻ -+C$A+,g lR#YFٍH**1% /3yȣS;,Y=(?r ]n/旖%74+4?>tCh⽂z;]?>P?m e>]D跂ί{M ?w~CѯF3m"}+AJO]g*t='?%='iwGwF' A3A?/ʏ :&訠:+Л!.-LJWwя]J:ӻ Aڨ5.5w\_2zE^^C7~)/cE/+K zAw'wmз {'P=T[slkڞmyz%iҟ~"?O ;AO>̟'9㻂L-ɼw9vG="&X킾eoCmn=o -jt6 OPC}oN>un+VPb^FT=6ZAUePZE *]3 -ZI%V U+*,{~Fww{hE0-CK-8./ΠE-tVZ C>_м.;D9`Dh>[Ьn>fG]My3=$O+tKw\inKSex')-5xZ!ac6IwYYO4k%XA5͖rN_^>mǺDWGY ⅼP?rl~Z\x&< 6YHьz}Ó +@eaPw/~Ԣ՛lLmh%*hc0EG %Is)Sg<%y)SВUނhmU Xx*KL{"8$& 23FeݜGefD[3ZҔm;.j[{ܖ½zMٳ~Ď #5琇7㕭Ǯ|d_I fi2v9%hfD+c$gtwaFቐL#1k_Y|g}Z);xgںW\zzD#rą#MjwЮ0w0,c\3luKғ, Å^23F֓,#β$߾Eg<=byrS/s|n !z0A&Ŏ;hR6q+#G9/\4ӓD#366\ZbPv^DlJO|_.>۲߼e7,yWS~G*C|-0g~Ѯ?u.mBKߒ҈,`gt[<ʗ龘^_rvIyqcːv:fܙ̌kNZ.y_[7onlܼy+&kGI@,cJ^sHtQ}龞ZSmW>'B$}a&7;ܻ>p}xγg;=G-S&b%>Anp YXwZ:0+q{g e s[z><12Xg$YNLgņvF<ųe%=it])`60Pj r;jkz I[YR'u'ϝ/'˭_ڒfvXek:iLZiUv43 07TWܵ}侚=#˴& -姖 p_oѧ/٧ԁ!P_h ~8YtXٝ]=o\t)"pmc{~s[!k}{N? |'ؼ}79GZemr7z_tG;f|Ak7X {!999999yPD)Y:rOR/k[eO)~Sk Ϫ巾d%bQ_7Z}!4Gf$ҌH7ܮP +qF:!8Mch + qXau0F:dd%fU˦[uK6wtptP[ ıŪYl˒2,N*IH~#9I8ƦIXE+1 {Ufh?msrMVt͢6dnT)_S˝a/;a/av:c=$̦q8"xƠvĹ]=2OW%SDJAR|FDbݬ~#cw@n^×6=$.&jo\]nm*o{qI0މ $Nl;-8+Fۃ]%&ugtwer?Rߠq5sex7߯o4s_|Tϟo U? tNI-Ʈqf?469cNHꑅc@/itQOfZM1"#Y5jLUzGiL> "Y~ze[=7Yȇs;o:v]%Q#yG))m5roXtp\0;"MqMtCG\Go K$?&FvS珛yQڭs~8̣k"2iᖍ[h޺aKO-Z:ѭɏUZڵwoψAmO_|'ì]C@[|q҂Clrtm|21lmZ)^%O8c`+Pz<w lR،JTY؋7D fQl)τ6QWоQTM#=Xx+x-OX%9J#hpal pק 0a1~Syߘ# +-ېb ac㐰n؉ +L@kPZx1%^d ȄK^b9jQZAQdxQ(A**zeը2Ԡ kp7PT82@1^XejJ˱^TK +Q/JQJ{W)RRjT!UJUk\KRv]fMjK kQ1HCJFRQ*a JPQ֥b5P ~-dPZ2BF&Ol2W F)KjDؼϢ>JxQo"-U*i}1hʮPv-SZ$Sj3=lF_*p_sSCa^淥t@fB10ƋQU/= A6Tƌ~Q<'oi{J~,A*r,*اA_883X*NCS,[SxxtC VNI19YbB|ExM/:ar?ȱ}[ +5s=;{LSuǫ$`^gus&Z3L F]EkIC U\ЌSiIBSX2(yq_%K cTv*RTk+imS5 ?d^HW]|Qu +oRvid]/~]r.s9P$vkzgLӀҟ.p~I-&_uX,{%Qhڻ 55jDRӫj~jզ5t@IK w5/hZinzI~J|fjz#37W"ez'iZ*Us.&}>p&63w]uH^̳)UFê~UX~pٌbT엧M`G9c=](|S]˻uj@_IӜ5vUݗu{\2ϗ%=%XbFJ6EU/*?LXd+=3PJ LlCf{(31 30C>_ry?Ae<(30G2eB^%[vj* +P<7|)30Kɞ1 10yjr0Wn v&) eW,2=ɢsZY"}&Hu- HEG@%&Va&1AI2gx,PNsk4ތ sIPyv0]m!rq})Qb,ZVdI$ry`AƘSGsȼ« Q`w|JLf%)Nrڕ{Tݫk5לǾܯ*m>~KUn5]y~Tv&7;S|״u,Lm5aN%ɑVoIfPȵrޫM|rF]d_>N$[Wy/1e;ǐ}'~_KS|r)r=HU]x5Ү(}+cہQb>&s00 TU3IH(Lj ,GA,- O7 fK}b798?M9I,A,I  s(yv'Yآp5<M0AB#kA_eїKM A_/}_jK C s=4i߂> ?Pן&.A]WND^(埶ЅR/A1"菱AWǂ(>[~'胳AgL p[A{1Թ#wӂyN ~rzKЛ-t1kAo&W^ :&訠_ +:#+CC//8DhJa~(^tڛsKښsxW!EA/N:]ig93IO5iA?}*t==B? jQ4o-=?'\#!qAChc|RigsB--}d=ڠ?`d=CA=:D&QscoΡv<#xS)5n7xcm7h٠I\"(pzA}i}}_PV݂jy](յ3T{DqSO_#.AՂVZ]9.J Z!hyU|EQ2AJAKKXAxa_Ett ~A=4O\Asb -H,AfxPt§ v)Q|h*Q49?O4iO*Q|!ʏ n7&|&k>] kRN;;$_;kv>>Ʒ3TM8}Ec:6ryv)222F eMcS)3=g +0ry)>2c(-Ӣ(SQJrOPJ&& Fn>$>BM~Sݨ7 +.h˓PJ{SxzАg8A c)FP(A> /Font << - /f0 109 0 R - /f1 115 0 R - /f2 121 0 R - /f3 127 0 R + /f0 165 0 R + /f1 171 0 R + /f2 177 0 R + /f3 183 0 R >> >> /MediaBox [0 0 595.2756 841.8898] /StructParents 0 /Parent 1 0 R - /Contents 138 0 R + /Contents 194 0 R >> endobj -138 0 obj +194 0 obj << /Length 3271 /Filter /FlateDecode @@ -1800,66 +2427,110 @@ TȺ endstream endobj -139 0 obj +195 0 obj << /Type /Page /Resources << /ProcSet [/PDF /Text /ImageC /ImageB] /ColorSpace << - /c0 133 0 R + /c0 189 0 R >> /Font << - /f0 115 0 R - /f1 127 0 R - /f2 121 0 R - /f3 109 0 R + /f0 171 0 R + /f1 183 0 R + /f2 177 0 R + /f3 165 0 R >> >> /MediaBox [0 0 595.2756 841.8898] /StructParents 1 /Parent 1 0 R - /Contents 140 0 R + /Contents 196 0 R >> endobj -140 0 obj +196 0 obj << - /Length 1215 + /Length 2852 /Filter /FlateDecode >> stream -xYMoFW9t<߳'pº%=H1п_"eIYL$iI=μ}ofxvˮ^*ߜwtT`J Twf^?ugXtX\^:,KBԽ="GaaJ^wV_[q>~ޮߺOw|+/v@%Y6Q8\!Xr|T) [VHZ>v짆JPר]'C%Al";W{9^ci'sT$ɅQN -́3PE`|em!GqpցY~9{\w3 mZB5!6 wb}J&b-Z] BfVG w5^w-CD` 5Lia9-Lr>ۙ߯Mppe?BD"HUt#-{cIE-ke0t`lGAE!=abDV"K qd*d| Kh#u'u7 -& GhHj ܁<%wB jVT1*;( ̴w.Oso?eBk DR>IfFCRqOD6 sZF@a !PvehYIC=6aӜ=g&9MG3$j7w}jSpQ֗rI$|ͷPl6iC} -BS̚gEH7`fs4YVh0!#yc\d -7\m ٸ+-a@{'0<80/9>AH]Uui=nfX2XX.hx8ݮ||q~\Ԙ xxݹ0P^͵@ SXK AsHD Y)sPSgsвNAf$,h`ՠiHH|fKZ6HԲ#$K>AIRu ֣֜oӢhj97Rg*=(*ϋMڒ`A<%z@'=$ZAQ@9X{d'h\e_Ͳlػfz)ꆷ硄xx)ˢ4R +x\KWo!zW7`e@ $-$>vӳ;CB9,vU}__/o oÀ?;p4Bq' ~۽Çw8w?POnv?gD'O9<)O˿O?ߏ+K~çWaݏo^~×@Cwͻu`w:ݵ# +Pj>D ~w$UCjTƀ3ʡ،v?Ѹ<|y ]=߃JP.ʜh,=a$ e0<eLίH^*rq՟Srivՠmk@wb U&b h̬L4z=f 3[lVeoaxKP+9o /mo]5m$P爯( :ؖ}FEP[eJY0*&"oTbN831"+e%82 njz J];OW|y&k<*EH@D#O+!5q@\0T ̴ > z? +!.]KٌRdFCWy2 9'CFhd +6!'|p Cwyl_Ե +clif&mqhFTE]yr K1ҿɥQb9,iިh|IܸA%7 t/V8BiZ ! +԰špuE"#Ș ]f'ИǿOϩ65/7jzxױ(^Z7|?F"%h '@@t@JV+b :] #DhѠ`QbL$AjS9Be_E )ar]"jMhVf¤Q RA^VF˚4`An;f,{vBG'H ׼8fPf2j:["1YnGu6;0PNbq$ZzjqCyZ=GkAIŨ4 +( 6@G:-\\@@knz9KR\hn)S} (_8/g~ +/- hqu-iC?r{:|=({A)~`F#\*YǴVs3ih#N$H@,Dm{{\.}JYZ[uH9k0CvnYеWs[$jISps(}I[Xln՜lEZzX| @lmߝoul{ڡgn%FvO\LmgvfW3)V:pE7C3ٶBRhcorpP%Z9v-xV[QX&ję"-'e аb){4b%hCٜEZ6(30 !v\?#REAp\+6-|*.[?h >URNvHp,a{4.)KI1ۛ  ЗGl%?32/XȹւJ[*nH7 +X0me,l>"U)^*%dz޳2_٫ښaF T>( ,IJ:ӏ3[R"'B +GT햞撌Pe(FTzED"61^y}o^4 E"lO:No&L +"~C9mT`i&>vZspR֋0>?? Hy}1?/Q@1$ƨ=Os 1sQ Sh +(}g!2u+Ä)JX ꃪ$RBjܔ SҮԱR.ʟ8)|JBp6uuc + ԶRI-jr|v~nj*N䲉zOx `C%V}jY:}BP쟛v)Ӕ]b!V䔿q=]tz\ht"Waՠ}( 076nrJ~Aԣ@z;[ZT"7eXM?:S^u|ڧKKH]"dڦ݊ߔ =C;>,鼋λ/V4OeMjv/J$u_;YnFLn7jHo`,E,7؃Iad26qXrQK + EM9 "YW[xzH6>,pK9CpFbЂ(1#yo endstream endobj -141 0 obj +197 0 obj << - /Creator (Typst 0.14.2) - /ModDate (D:20260414143438-07'00) - /CreationDate (D:20260414143438-07'00) + /Type /Page + /Resources << + /ProcSet [/PDF /Text /ImageC /ImageB] + /ColorSpace << + /c0 189 0 R + >> + /Font << + /f0 171 0 R + /f1 177 0 R + /f2 183 0 R + >> + >> + /MediaBox [0 0 595.2756 841.8898] + /StructParents 2 + /Parent 1 0 R + /Contents 198 0 R >> endobj -142 0 obj +198 0 obj +<< + /Length 597 + /Filter /FlateDecode +>> +stream +xAkA +t%HhZpط`ڒ6 ή vzYӛ7v^K߁=f3NIa s x^<̟xIP|zS["%MvT^MڧRr}]S/f: O/?wdH$ڶ,&Ÿ`waQU* +RbVlcrXήD`X\s|g?;F 2rяUquQN ^ ~dPeduW𔰈$Hh+{9o=kXZiCSƩ# yM(bv}$Ԫs%Lz *HN5(IaJM>xHLo +)n7o]sƘggT,ڭU$)BaxguQ53xks Ǣv GW:f,$/suň$(YNlGV:AbONWu5Gf}b xj36:׎vڐ .9N2+]Vw +endstream +endobj + +199 0 obj +<< + /Creator (Typst 0.14.2) + /ModDate (D:20260414154049-07'00) + /CreationDate (D:20260414154049-07'00) +>> +endobj + +200 0 obj << /Length 996 /Type /Metadata /Subtype /XML >> stream -Typst 0.14.2en2026-04-14T14:34:38-07:002026-04-14T14:34:38-07:002application/pdfb/ZLphtxzmXEQ8HipzkJZw==b/ZLphtxzmXEQ8HipzkJZw==proof1.7 +Typst 0.14.2en2026-04-14T15:40:49-07:002026-04-14T15:40:49-07:003application/pdf1/4QCpIepgqX5A0CauPvsw==1/4QCpIepgqX5A0CauPvsw==proof1.7 endstream endobj -143 0 obj +201 0 obj << /Type /Catalog /Pages 1 0 R - /Metadata 142 0 R + /Metadata 200 0 R /Lang (en) /StructTreeRoot 5 0 R /MarkInfo << @@ -1874,158 +2545,216 @@ endobj endobj xref -0 144 +0 202 0000000000 65535 f 0000000016 00000 n -0000000090 00000 n -0000000170 00000 n -0000000277 00000 n -0000000369 00000 n -0000000603 00000 n -0000001893 00000 n -0000002225 00000 n -0000002448 00000 n -0000002554 00000 n -0000002639 00000 n -0000002718 00000 n -0000002902 00000 n -0000002981 00000 n -0000003123 00000 n -0000003208 00000 n -0000003287 00000 n -0000003445 00000 n -0000003535 00000 n -0000003614 00000 n -0000003756 00000 n -0000003841 00000 n -0000003920 00000 n -0000004092 00000 n -0000004171 00000 n -0000004313 00000 n -0000004398 00000 n -0000004477 00000 n -0000004641 00000 n -0000004730 00000 n -0000004809 00000 n -0000004950 00000 n -0000005035 00000 n -0000005114 00000 n -0000005269 00000 n -0000005358 00000 n -0000005437 00000 n -0000005578 00000 n -0000005663 00000 n -0000005742 00000 n -0000005924 00000 n -0000006003 00000 n -0000006146 00000 n -0000006231 00000 n -0000006310 00000 n -0000006516 00000 n -0000006595 00000 n -0000006738 00000 n -0000006823 00000 n -0000006902 00000 n -0000007116 00000 n -0000007195 00000 n -0000007338 00000 n -0000007423 00000 n -0000007502 00000 n -0000007716 00000 n -0000007795 00000 n -0000007938 00000 n -0000008023 00000 n -0000008102 00000 n -0000008288 00000 n -0000008367 00000 n -0000008510 00000 n -0000008595 00000 n -0000008674 00000 n -0000008850 00000 n -0000008929 00000 n -0000009071 00000 n -0000009156 00000 n -0000009235 00000 n -0000009455 00000 n -0000009534 00000 n -0000009676 00000 n -0000009761 00000 n -0000009840 00000 n -0000010006 00000 n -0000010085 00000 n -0000010227 00000 n -0000010312 00000 n -0000010391 00000 n -0000010545 00000 n -0000010624 00000 n -0000010766 00000 n -0000010851 00000 n -0000010930 00000 n -0000011102 00000 n -0000011181 00000 n -0000011323 00000 n -0000011408 00000 n -0000011487 00000 n -0000011647 00000 n -0000011726 00000 n -0000011868 00000 n -0000011953 00000 n -0000012032 00000 n -0000012204 00000 n -0000012283 00000 n -0000012425 00000 n -0000012511 00000 n -0000012591 00000 n -0000012752 00000 n -0000012833 00000 n -0000012977 00000 n -0000013065 00000 n -0000013147 00000 n -0000013313 00000 n -0000013395 00000 n -0000013538 00000 n -0000013660 00000 n -0000013842 00000 n -0000014273 00000 n -0000014362 00000 n -0000014614 00000 n -0000015581 00000 n -0000018390 00000 n -0000018575 00000 n -0000019109 00000 n -0000019199 00000 n -0000019453 00000 n -0000020575 00000 n -0000024285 00000 n -0000024461 00000 n -0000024961 00000 n -0000025051 00000 n -0000025297 00000 n -0000026421 00000 n -0000030120 00000 n -0000030285 00000 n -0000030553 00000 n -0000030642 00000 n -0000030927 00000 n -0000031880 00000 n -0000038167 00000 n -0000038205 00000 n -0000038564 00000 n -0000038617 00000 n -0000038670 00000 n -0000038998 00000 n -0000042349 00000 n -0000042677 00000 n -0000043972 00000 n -0000044099 00000 n -0000045185 00000 n +0000000098 00000 n +0000000178 00000 n +0000000285 00000 n +0000000377 00000 n +0000000619 00000 n +0000002058 00000 n +0000002972 00000 n +0000003102 00000 n +0000003414 00000 n +0000003499 00000 n +0000003578 00000 n +0000003740 00000 n +0000003819 00000 n +0000003960 00000 n +0000004045 00000 n +0000004124 00000 n +0000004280 00000 n +0000004359 00000 n +0000004500 00000 n +0000004585 00000 n +0000004664 00000 n +0000004870 00000 n +0000004949 00000 n +0000005092 00000 n +0000005177 00000 n +0000005256 00000 n +0000005484 00000 n +0000005563 00000 n +0000005705 00000 n +0000005790 00000 n +0000005869 00000 n +0000006032 00000 n +0000006111 00000 n +0000006253 00000 n +0000006338 00000 n +0000006417 00000 n +0000006580 00000 n +0000006659 00000 n +0000006801 00000 n +0000006886 00000 n +0000006965 00000 n +0000007128 00000 n +0000007207 00000 n +0000007349 00000 n +0000007434 00000 n +0000007513 00000 n +0000007664 00000 n +0000007743 00000 n +0000007885 00000 n +0000007970 00000 n +0000008049 00000 n +0000008200 00000 n +0000008279 00000 n +0000008421 00000 n +0000008506 00000 n +0000008585 00000 n +0000008736 00000 n +0000008815 00000 n +0000008957 00000 n +0000009042 00000 n +0000009121 00000 n +0000009272 00000 n +0000009351 00000 n +0000009493 00000 n +0000009600 00000 n +0000009685 00000 n +0000009764 00000 n +0000009948 00000 n +0000010027 00000 n +0000010169 00000 n +0000010254 00000 n +0000010333 00000 n +0000010491 00000 n +0000010581 00000 n +0000010660 00000 n +0000010802 00000 n +0000010887 00000 n +0000010966 00000 n +0000011138 00000 n +0000011217 00000 n +0000011359 00000 n +0000011444 00000 n +0000011523 00000 n +0000011687 00000 n +0000011776 00000 n +0000011855 00000 n +0000011996 00000 n +0000012081 00000 n +0000012160 00000 n +0000012315 00000 n +0000012404 00000 n +0000012483 00000 n +0000012624 00000 n +0000012709 00000 n +0000012788 00000 n +0000012970 00000 n +0000013049 00000 n +0000013192 00000 n +0000013279 00000 n +0000013360 00000 n +0000013568 00000 n +0000013649 00000 n +0000013794 00000 n +0000013882 00000 n +0000013964 00000 n +0000014180 00000 n +0000014262 00000 n +0000014407 00000 n +0000014495 00000 n +0000014577 00000 n +0000014793 00000 n +0000014875 00000 n +0000015020 00000 n +0000015108 00000 n +0000015190 00000 n +0000015378 00000 n +0000015460 00000 n +0000015605 00000 n +0000015693 00000 n +0000015775 00000 n +0000015953 00000 n +0000016035 00000 n +0000016179 00000 n +0000016267 00000 n +0000016349 00000 n +0000016571 00000 n +0000016653 00000 n +0000016797 00000 n +0000016885 00000 n +0000016967 00000 n +0000017135 00000 n +0000017217 00000 n +0000017361 00000 n +0000017449 00000 n +0000017531 00000 n +0000017687 00000 n +0000017769 00000 n +0000017913 00000 n +0000018001 00000 n +0000018083 00000 n +0000018257 00000 n +0000018339 00000 n +0000018483 00000 n +0000018571 00000 n +0000018653 00000 n +0000018815 00000 n +0000018897 00000 n +0000019041 00000 n +0000019129 00000 n +0000019211 00000 n +0000019385 00000 n +0000019467 00000 n +0000019611 00000 n +0000019699 00000 n +0000019781 00000 n +0000019943 00000 n +0000020025 00000 n +0000020169 00000 n +0000020257 00000 n +0000020339 00000 n +0000020505 00000 n +0000020587 00000 n +0000020730 00000 n +0000020852 00000 n +0000021034 00000 n +0000021465 00000 n +0000021554 00000 n +0000021806 00000 n +0000022773 00000 n +0000025582 00000 n +0000025767 00000 n +0000026321 00000 n +0000026412 00000 n +0000026666 00000 n +0000027816 00000 n +0000031677 00000 n +0000031853 00000 n +0000032383 00000 n +0000032474 00000 n +0000032720 00000 n +0000033890 00000 n +0000037941 00000 n +0000038106 00000 n +0000038374 00000 n +0000038463 00000 n +0000038748 00000 n +0000039757 00000 n +0000046604 00000 n +0000046642 00000 n +0000047001 00000 n +0000047054 00000 n +0000047107 00000 n +0000047435 00000 n +0000050786 00000 n +0000051114 00000 n +0000054046 00000 n +0000054356 00000 n +0000055032 00000 n +0000055159 00000 n +0000056245 00000 n trailer << - /Size 144 - /Root 143 0 R - /Info 141 0 R - /ID [(b/ZLphtxzmXEQ8HipzkJZw==) (b/ZLphtxzmXEQ8HipzkJZw==)] + /Size 202 + /Root 201 0 R + /Info 199 0 R + /ID [(1/4QCpIepgqX5A0CauPvsw==) (1/4QCpIepgqX5A0CauPvsw==)] >> startxref -45422 +56482 %%EOF \ No newline at end of file diff --git a/lab14/typed-semantics.typ b/lab14/typed-semantics.typ index fcd4aa5..313d307 100644 --- a/lab14/typed-semantics.typ +++ b/lab14/typed-semantics.typ @@ -39,15 +39,23 @@ Next, define the typing rules for these expressions. Be sure that your typing ru #let isemptystr(e) = [#kw[isemptystr] #e] #let strlen(e) = [#kw[strlen] #e] +// Type keywords +#let bool = kw[Bool] +#let int = kw[Int] +#let string = kw[String] + // Small-step evaluation relation: e -> e' #let sstep(e, ee) = $#e -> #ee$ +// Typing relation: e : T +#let tstep(e, T) = $#e : #T$ + // Rule name label in small-caps #let rel(name) = text(size: 0.9em, smallcaps[\[#name\]]) -// Small-step rule: fraction with name on the left +// Rule: fraction with name on the left // premises (content), conclusion (content) -#let ssrule(name, premises, conclusion) = { +#let rule(name, premises, conclusion) = { grid( columns: (auto, auto), column-gutter: 1em, @@ -68,32 +76,68 @@ Next, define the typing rules for these expressions. Be sure that your typing ru #v(0.6em) -#ssrule("E-Succ-Ctx", $#sstep[$e$][$e'$]$, $#sstep[#suc[$e$]][#suc[$e'$]]$) -#ssrule("E-Succ", "", $#sstep[#suc[$i$]][$i + 1$]$) +#rule("E-Succ-Ctx", $#sstep[$e$][$e'$]$, $#sstep[#suc[$e$]][#suc[$e'$]]$) +#rule("E-Succ", "", $#sstep[#suc[$i$]][$i + 1$]$) -#ssrule("E-Pred-Ctx", $#sstep[$e$][$e'$]$, $#sstep[#prd[$e$]][#prd[$e'$]]$) -#ssrule("E-Pred", "", $#sstep[#prd[$i$]][$i - 1$]$) +#rule("E-Pred-Ctx", $#sstep[$e$][$e'$]$, $#sstep[#prd[$e$]][#prd[$e'$]]$) +#rule("E-Pred", "", $#sstep[#prd[$i$]][$i - 1$]$) -#ssrule("E-IsZero-Ctx", $#sstep[$e$][$e'$]$, $#sstep[#iszero[$e$]][#iszero[$e'$]]$) -#ssrule("E-IsZero-Zero", "", $#sstep[#iszero[0]][true]$) -#ssrule("E-IsZero-NonZero", $i != 0$, $#sstep[#iszero[#suc[$i$]]][false]$) +#rule("E-IsZero-Ctx", $#sstep[$e$][$e'$]$, $#sstep[#iszero[$e$]][#iszero[$e'$]]$) +#rule("E-IsZero-Zero", "", $#sstep[#iszero[0]][true]$) +#rule("E-IsZero-NonZero", $i != 0$, $#sstep[#iszero[#suc[$i$]]][false]$) -#ssrule("E-If-Ctx", $#sstep[$e_1$][$e'_1$]$, $#sstep[#ife[$e_1$][$e_2$][$e_3$]][#ife[$e'_1$][$e_2$][$e_3$]]$) -#ssrule("E-If-True", "", $#sstep[#ife[true][$e_2$][$e_3$]][$e_2$]$) -#ssrule("E-If-False", "", $#sstep[#ife[false][$e_2$][$e_3$]][$e_3$]$) +#rule("E-If-Ctx", $#sstep[$e_1$][$e'_1$]$, $#sstep[#ife[$e_1$][$e_2$][$e_3$]][#ife[$e'_1$][$e_2$][$e_3$]]$) +#rule("E-If-True", "", $#sstep[#ife[true][$e_2$][$e_3$]][$e_2$]$) +#rule("E-If-False", "", $#sstep[#ife[false][$e_2$][$e_3$]][$e_3$]$) -#ssrule("E-Concat-Ctx1", $#sstep[$e_1$][$e'_1$]$, $#sstep[#concat[$e_1$][$e_2$]][#concat[$e'_1$][$e_2$]]$) -#ssrule("E-Concat-Ctx2", $#sstep[$e_2$][$e'_2$]$, $#sstep[#concat[$s_1$][$e_2$]][#concat[$s_1$][$e'_2$]]$) -#ssrule("E-Concat", $s_3 = s_1 + s_2$, $#sstep[#concat[$s_1$][$s_2$]][$s_3$]$) +#rule("E-Concat-Ctx1", $#sstep[$e_1$][$e'_1$]$, $#sstep[#concat[$e_1$][$e_2$]][#concat[$e'_1$][$e_2$]]$) +#rule("E-Concat-Ctx2", $#sstep[$e_2$][$e'_2$]$, $#sstep[#concat[$s_1$][$e_2$]][#concat[$s_1$][$e'_2$]]$) +#rule("E-Concat", $s_3 = s_1 + s_2$, $#sstep[#concat[$s_1$][$s_2$]][$s_3$]$) -#ssrule("E-IsEmptyStr-Ctx", $#sstep[$e$][$e'$]$, $#sstep[#isemptystr[$e$]][#isemptystr[$e'$]]$) -#ssrule("E-IsEmptyStr-Empty", "", $#sstep[#isemptystr[`""`]][true]$) -#ssrule("E-IsEmptyStr-NonEmpty", [$s !=$ `""`], $#sstep[#isemptystr[$s$]][false]$) +#rule("E-IsEmptyStr-Ctx", $#sstep[$e$][$e'$]$, $#sstep[#isemptystr[$e$]][#isemptystr[$e'$]]$) +#rule("E-IsEmptyStr-Empty", "", $#sstep[#isemptystr[`""`]][true]$) +#rule("E-IsEmptyStr-NonEmpty", [$s !=$ `""`], $#sstep[#isemptystr[$s$]][false]$) -#ssrule("E-StrLen-Ctx", $#sstep[$e$][$e'$]$, $#sstep[#strlen[$e$]][#strlen[$e'$]]$) -#ssrule("E-StrLen-Zero", "", $#sstep[#strlen[`""`]][0]$) -#ssrule("E-StrLen-NonZero", [c is a single char, $s = c + s'$], $#sstep[#strlen[$s$]][#suc[#strlen[$s'$]]]$) +#rule("E-StrLen-Ctx", $#sstep[$e$][$e'$]$, $#sstep[#strlen[$e$]][#strlen[$e'$]]$) +#rule("E-StrLen-Zero", "", $#sstep[#strlen[`""`]][0]$) +#rule("E-StrLen-NonZero", [c is a single char, $s = c + s'$], $#sstep[#strlen[$s$]][#suc[#strlen[$s'$]]]$) == Typing Rules #v(0.6em) + +#rule("T-True", "", $#tstep[true][#bool]$) +#rule("T-False", "", $#tstep[false][#bool]$) +#rule("T-Int", "", $#tstep[n][#int]$) +#rule("T-String", "", $#tstep[s][#string]$) + +#rule("T-Succ", $#tstep[$e$][#int]$, $#tstep[#suc[$e$]][#int]$) +#rule("T-Pred", $#tstep[$e$][#int]$, $#tstep[#prd[$e$]][#int]$) +#rule("T-IsZero", $#tstep[$e$][#int]$, $#tstep[#iszero[$e$]][#bool]$) +#rule( + "T-If", + [ + $#tstep[$e_1$][#bool]$, + $#tstep[$e_2$][$T$]$, + $#tstep[$e_3$][$T$]$ + ], + $#tstep[#ife[$e_1$][$e_2$][$e_3$]][T]$, +) +#rule( + "T-Concat", + [ + $#tstep[$e_1$][$#string$]$, + $#tstep[$e_2$][$#string$]$ + ], + $#tstep[#concat[$e_1$][$e_2$]][#string]$, +) +#rule( + "T-IsEmptyStr", + $#tstep[$e$][$#string$]$, + $#tstep[#isemptystr[$e$]][#bool]$, +) +#rule( + "T-StrLen", + $#tstep[$e$][$#string$]$, + $#tstep[#strlen[$e$]][#int]$, +)