@rsconcept/rstool 0.10.3 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/README.md +61 -33
  2. package/dist/agent-workflow-Gk0Vfnv1.d.ts +64 -0
  3. package/dist/analysis-LLnPhmGa.d.ts +23 -0
  4. package/dist/{common-DxLg3eXX.d.ts → common-DHJalS-Q.d.ts} +6 -1
  5. package/dist/constituenta-DnGR6bnM.d.ts +54 -0
  6. package/dist/diagnostic-D9yl_mEL.d.ts +19 -0
  7. package/dist/evaluation-Cns8BFm4.d.ts +31 -0
  8. package/dist/index.d.ts +11 -11
  9. package/dist/index.js +1 -2
  10. package/dist/mappers/model-adapter.d.ts +3 -3
  11. package/dist/mappers/schema-adapter.d.ts +4 -4
  12. package/dist/mappers/types.d.ts +6 -2
  13. package/dist/mappers/types.js +2 -0
  14. package/dist/mappers/types.js.map +1 -1
  15. package/dist/{model-value-SFAVj0dw.d.ts → model-value-BbonPzMz.d.ts} +14 -3
  16. package/dist/models/agent-workflow.d.ts +2 -0
  17. package/dist/models/agent-workflow.js +1 -0
  18. package/dist/models/analysis.d.ts +1 -1
  19. package/dist/models/common.d.ts +1 -1
  20. package/dist/models/constituenta.d.ts +2 -2
  21. package/dist/models/diagnostic.d.ts +1 -1
  22. package/dist/models/evaluation.d.ts +2 -2
  23. package/dist/models/index.d.ts +11 -11
  24. package/dist/models/index.js +2 -2
  25. package/dist/models/model-value.d.ts +2 -2
  26. package/dist/models/rstool-agent.d.ts +1 -1
  27. package/dist/models/rstool-agent.js +1 -1
  28. package/dist/models/session.d.ts +1 -1
  29. package/dist/models/tool-contract.d.ts +2 -2
  30. package/dist/models/tool-contract.js +2 -1
  31. package/dist/models/tool-contract.js.map +1 -1
  32. package/dist/models-Bw6Uum8i.js +685 -0
  33. package/dist/models-Bw6Uum8i.js.map +1 -0
  34. package/dist/rstool-agent-D2cQze_b.d.ts +71 -0
  35. package/dist/session/session-store.d.ts +18 -5
  36. package/dist/session/session-store.js +1 -64
  37. package/dist/{session-BPgsE80c.d.ts → session-ChexW8i7.d.ts} +11 -8
  38. package/dist/tool-contract-0uRGhEfW.d.ts +164 -0
  39. package/dist/wrapper/client.d.ts +23 -0
  40. package/dist/wrapper/client.js +17 -0
  41. package/dist/wrapper/client.js.map +1 -1
  42. package/dist/wrapper/stdio-wrapper.js +75 -63
  43. package/dist/wrapper/stdio-wrapper.js.map +1 -1
  44. package/docs/CONSTITUENTA.md +2 -2
  45. package/docs/DIAGNOSTICS.md +6 -5
  46. package/docs/MODEL-TESTING.md +3 -3
  47. package/docs/PORTAL-API.md +24 -18
  48. package/examples/README.md +1 -1
  49. package/examples/agent-client.ts +11 -41
  50. package/examples/build-chocolate-nim-rsform.ts +21 -70
  51. package/examples/chocolate-nim/build-rsform.ts +23 -18
  52. package/examples/chocolate-nim/build-rsmodel.ts +10 -12
  53. package/examples/chocolate-nim/rsform-session.json +290 -290
  54. package/examples/chocolate-nim/rsmodel-session.json +291 -291
  55. package/examples/expression-bank/bank-constituents.ts +304 -53
  56. package/examples/expression-bank/build-rsform.ts +19 -16
  57. package/examples/expression-bank/rsform-session.json +1551 -1551
  58. package/examples/kinship/build-rsform.ts +23 -18
  59. package/examples/kinship/build-rsmodel.ts +16 -16
  60. package/examples/kinship/rsform-session.json +219 -219
  61. package/examples/kinship/rsmodel-session.json +221 -221
  62. package/examples/kinship/session.ts +19 -21
  63. package/examples/movd/build-rsform.ts +23 -18
  64. package/examples/movd/build-rsmodel.ts +18 -20
  65. package/examples/movd/rsform-session.json +262 -262
  66. package/examples/movd/rsmodel-session.json +264 -264
  67. package/examples/sample/build-rsform.ts +18 -51
  68. package/examples/sample/build-rsmodel.ts +25 -44
  69. package/examples/sample/rsform-session.json +10 -7
  70. package/examples/sample/rsmodel-session.json +36 -33
  71. package/examples/template-apply/build-rsform.ts +27 -24
  72. package/examples/template-apply/rsform-session.json +48 -48
  73. package/package.json +4 -2
  74. package/skills/rstool-helper/EXAMPLES.md +44 -116
  75. package/skills/rstool-helper/GUIDE.md +40 -25
  76. package/skills/rstool-helper/REFERENCE.md +40 -177
  77. package/src/index.ts +24 -17
  78. package/src/mappers/portal-adapter.ts +49 -0
  79. package/src/mappers/types.ts +4 -0
  80. package/src/models/agent-workflow.ts +66 -0
  81. package/src/models/analysis.ts +7 -0
  82. package/src/models/common.ts +7 -0
  83. package/src/models/constituenta.ts +24 -6
  84. package/src/models/diagnostic.ts +4 -0
  85. package/src/models/evaluation.ts +11 -0
  86. package/src/models/import-detect.test.ts +66 -0
  87. package/src/models/import-detect.ts +42 -0
  88. package/src/models/import-export.ts +24 -0
  89. package/src/models/index.ts +22 -14
  90. package/src/models/model-value.ts +12 -0
  91. package/src/models/portal-json.test.ts +38 -0
  92. package/src/models/portal-json.ts +54 -1
  93. package/src/models/rstool-agent.test.ts +698 -146
  94. package/src/models/rstool-agent.ts +392 -92
  95. package/src/models/session.ts +8 -5
  96. package/src/models/tool-contract.ts +81 -42
  97. package/src/session/batch-apply.test.ts +123 -0
  98. package/src/session/batch-apply.ts +82 -0
  99. package/src/session/persistence.test.ts +63 -0
  100. package/src/session/persistence.ts +69 -0
  101. package/src/session/session-store.ts +76 -6
  102. package/src/wrapper/client.test.ts +58 -0
  103. package/src/wrapper/client.ts +23 -0
  104. package/src/wrapper/stdio-handler.test.ts +101 -0
  105. package/src/wrapper/stdio-handler.ts +195 -0
  106. package/src/wrapper/stdio-wrapper.ts +4 -187
  107. package/dist/analysis-JiwOYDKx.d.ts +0 -16
  108. package/dist/constituenta-Dnd6iToB.d.ts +0 -36
  109. package/dist/diagnostic-BMYvciz8.d.ts +0 -15
  110. package/dist/evaluation-CCVYH0wA.d.ts +0 -21
  111. package/dist/index-uhkmwruf.d.ts +0 -46
  112. package/dist/rstool-agent-BZi5jO1y.js +0 -158
  113. package/dist/rstool-agent-BZi5jO1y.js.map +0 -1
  114. package/dist/rstool-agent-pRaPnZay.d.ts +0 -35
  115. package/dist/session/session-store.js.map +0 -1
  116. package/dist/tool-contract-n1ghUOrK.d.ts +0 -32
@@ -1,49 +1,72 @@
1
1
  {
2
- "contractVersion": "1.4.0",
2
+ "contractVersion": "2.0.0",
3
3
  "state": {
4
- "sessionId": "c92d105d-6c5c-4260-ae15-2d09025792f2",
4
+ "sessionId": "b171e421-1562-4b1a-bf6c-09f134929a92",
5
5
  "alias": "",
6
6
  "title": "",
7
7
  "comment": "",
8
- "createdAt": "2026-06-22T09:59:13.240Z",
9
- "updatedAt": "2026-06-22T09:59:14.973Z",
8
+ "createdAt": "2026-07-01T17:12:48.205Z",
9
+ "updatedAt": "2026-07-01T17:13:08.613Z",
10
10
  "revisions": [
11
11
  {
12
- "revisionId": "a493ce48-f8e8-47cd-91cc-361b245b9965",
13
- "at": "2026-06-22T09:59:13.269Z",
12
+ "revisionId": "e724c462-cc11-435c-8f37-9b61b657dad1",
13
+ "at": "2026-07-01T17:12:48.231Z",
14
14
  "message": "КС «шоколадный Ним» (rsforms/825): Z×Z, pr, P#, T#, арифметика, радикал R1"
15
15
  },
16
16
  {
17
- "revisionId": "664c8cca-b78b-4100-8c48-7dc47b58c7ec",
18
- "at": "2026-06-22T09:59:14.973Z",
17
+ "revisionId": "60a4e722-ffe1-43fb-a4d4-20d607a7ae3c",
18
+ "at": "2026-07-01T17:13:08.613Z",
19
19
  "message": "Модель шоколадного Нима: 4×6, долька (2,3), четыре кучки, A1 выполняется"
20
20
  }
21
21
  ],
22
22
  "items": [
23
23
  {
24
- "id": 1,
25
- "alias": "S1",
26
- "cstType": "structure",
27
- "definitionFormal": "Z×Z",
28
- "term": "шоколадка",
29
- "convention": "Первая проекция — ширина, вторая — длина",
24
+ "id": 12,
25
+ "alias": "F5",
26
+ "cstType": "function",
27
+ "definitionFormal": "[α∈Z, β∈Z] debool(I{(α,0) | α<β} ∪ I{(α-β,1) | α≥β})",
28
+ "term": "деление с остатком на степень двойки",
30
29
  "definitionText": "",
30
+ "convention": "Предполагается, что удвоенный делитель больше делимого",
31
31
  "analysis": {
32
32
  "success": true,
33
33
  "type": {
34
- "typeID": 4,
35
- "factors": [
34
+ "typeID": 7,
35
+ "result": {
36
+ "typeID": 4,
37
+ "factors": [
38
+ {
39
+ "typeID": 2,
40
+ "isOrdered": true,
41
+ "isArithmetic": true,
42
+ "isIntegerCompatible": true
43
+ },
44
+ {
45
+ "typeID": 2,
46
+ "isOrdered": true,
47
+ "isArithmetic": true,
48
+ "isIntegerCompatible": true
49
+ }
50
+ ]
51
+ },
52
+ "args": [
36
53
  {
37
- "typeID": 2,
38
- "isOrdered": true,
39
- "isArithmetic": true,
40
- "isIntegerCompatible": true
54
+ "alias": "α",
55
+ "type": {
56
+ "typeID": 2,
57
+ "isOrdered": true,
58
+ "isArithmetic": true,
59
+ "isIntegerCompatible": true
60
+ }
41
61
  },
42
62
  {
43
- "typeID": 2,
44
- "isOrdered": true,
45
- "isArithmetic": true,
46
- "isIntegerCompatible": true
63
+ "alias": "β",
64
+ "type": {
65
+ "typeID": 2,
66
+ "isOrdered": true,
67
+ "isArithmetic": true,
68
+ "isIntegerCompatible": true
69
+ }
47
70
  }
48
71
  ]
49
72
  },
@@ -52,69 +75,41 @@
52
75
  }
53
76
  },
54
77
  {
55
- "id": 2,
56
- "alias": "D1",
57
- "cstType": "term",
58
- "definitionFormal": "pr1(S1)",
59
- "term": "ширина шоколадки",
60
- "definitionText": "",
61
- "convention": "",
62
- "analysis": {
63
- "success": true,
64
- "type": {
65
- "typeID": 2,
66
- "isOrdered": true,
67
- "isArithmetic": true,
68
- "isIntegerCompatible": true
69
- },
70
- "valueClass": "value",
71
- "diagnostics": []
72
- }
73
- },
74
- {
75
- "id": 3,
76
- "alias": "D2",
77
- "cstType": "term",
78
- "definitionFormal": "pr2(S1)",
79
- "term": "длина шоколадки",
78
+ "id": 13,
79
+ "alias": "F6",
80
+ "cstType": "function",
81
+ "definitionFormal": "[α∈Z, β∈Z] pr1(F5[α, β])",
82
+ "term": "остаток",
80
83
  "definitionText": "",
81
84
  "convention": "",
82
85
  "analysis": {
83
86
  "success": true,
84
87
  "type": {
85
- "typeID": 2,
86
- "isOrdered": true,
87
- "isArithmetic": true,
88
- "isIntegerCompatible": true
89
- },
90
- "valueClass": "value",
91
- "diagnostics": []
92
- }
93
- },
94
- {
95
- "id": 4,
96
- "alias": "S2",
97
- "cstType": "structure",
98
- "definitionFormal": "Z×Z",
99
- "term": "отравленная долька",
100
- "convention": "Координаты отравленной дольки: первая проекция по ширине, вторая — по длине",
101
- "definitionText": "",
102
- "analysis": {
103
- "success": true,
104
- "type": {
105
- "typeID": 4,
106
- "factors": [
88
+ "typeID": 7,
89
+ "result": {
90
+ "typeID": 2,
91
+ "isOrdered": true,
92
+ "isArithmetic": true,
93
+ "isIntegerCompatible": true
94
+ },
95
+ "args": [
107
96
  {
108
- "typeID": 2,
109
- "isOrdered": true,
110
- "isArithmetic": true,
111
- "isIntegerCompatible": true
97
+ "alias": "α",
98
+ "type": {
99
+ "typeID": 2,
100
+ "isOrdered": true,
101
+ "isArithmetic": true,
102
+ "isIntegerCompatible": true
103
+ }
112
104
  },
113
105
  {
114
- "typeID": 2,
115
- "isOrdered": true,
116
- "isArithmetic": true,
117
- "isIntegerCompatible": true
106
+ "alias": "β",
107
+ "type": {
108
+ "typeID": 2,
109
+ "isOrdered": true,
110
+ "isArithmetic": true,
111
+ "isIntegerCompatible": true
112
+ }
118
113
  }
119
114
  ]
120
115
  },
@@ -123,76 +118,22 @@
123
118
  }
124
119
  },
125
120
  {
126
- "id": 5,
127
- "alias": "D3",
128
- "cstType": "term",
129
- "definitionFormal": "pr1(S2)",
130
- "term": "расположение отравленной дольки по ширине",
131
- "definitionText": "",
132
- "convention": "",
133
- "analysis": {
134
- "success": true,
135
- "type": {
136
- "typeID": 2,
137
- "isOrdered": true,
138
- "isArithmetic": true,
139
- "isIntegerCompatible": true
140
- },
141
- "valueClass": "value",
142
- "diagnostics": []
143
- }
144
- },
145
- {
146
- "id": 6,
147
- "alias": "D4",
148
- "cstType": "term",
149
- "definitionFormal": "pr2(S2)",
150
- "term": "расположение отравленной дольки по длине",
121
+ "id": 14,
122
+ "alias": "F7",
123
+ "cstType": "function",
124
+ "definitionFormal": "[α∈Z, β∈Z] pr2(F5[α, β])",
125
+ "term": "целая часть",
151
126
  "definitionText": "",
152
127
  "convention": "",
153
128
  "analysis": {
154
129
  "success": true,
155
130
  "type": {
156
- "typeID": 2,
157
- "isOrdered": true,
158
- "isArithmetic": true,
159
- "isIntegerCompatible": true
160
- },
161
- "valueClass": "value",
162
- "diagnostics": []
163
- }
164
- },
165
- {
166
- "id": 7,
167
- "alias": "A1",
168
- "cstType": "axiom",
169
- "definitionFormal": "(1≤D3)&(D3≤D1)&(1≤D4)&(D4≤D2)",
170
- "term": "отравленная долька в шоколадке",
171
- "definitionText": "Координаты отравленной дольки лежат в пределах шоколадки",
172
- "convention": "",
173
- "analysis": {
174
- "success": true,
175
- "type": {
176
- "typeID": 6
177
- },
178
- "valueClass": "value",
179
- "diagnostics": []
180
- }
181
- },
182
- {
183
- "id": 8,
184
- "alias": "P1",
185
- "cstType": "predicate",
186
- "definitionFormal": "[α∈Z] R{ξ:=α | ξ≥2 | ξ-2}=0",
187
- "term": "чётное?",
188
- "convention": "Для малых аргументов — прямое вычитание двойки; для больших нужно двоичное представление",
189
- "definitionText": "",
190
- "analysis": {
191
- "success": true,
192
- "type": {
193
- "typeID": 8,
131
+ "typeID": 7,
194
132
  "result": {
195
- "typeID": 6
133
+ "typeID": 2,
134
+ "isOrdered": true,
135
+ "isArithmetic": true,
136
+ "isIntegerCompatible": true
196
137
  },
197
138
  "args": [
198
139
  {
@@ -203,6 +144,15 @@
203
144
  "isArithmetic": true,
204
145
  "isIntegerCompatible": true
205
146
  }
147
+ },
148
+ {
149
+ "alias": "β",
150
+ "type": {
151
+ "typeID": 2,
152
+ "isOrdered": true,
153
+ "isArithmetic": true,
154
+ "isIntegerCompatible": true
155
+ }
206
156
  }
207
157
  ]
208
158
  },
@@ -211,49 +161,36 @@
211
161
  }
212
162
  },
213
163
  {
214
- "id": 9,
215
- "alias": "F1",
164
+ "id": 11,
165
+ "alias": "F4",
216
166
  "cstType": "function",
217
- "definitionFormal": "[α∈Z, σ∈ℬ(Z×R1)] debool(Pr2(Fi1[{α}](σ)))",
218
- "term": "значение элемента последовательности с данным номером",
219
- "definitionText": "Значение пары с заданным номером в последовательности пар",
167
+ "definitionFormal": "[σ∈ℬ(Z)] D{ξ∈σ | ∀α∈σ α≤ξ}",
168
+ "term": "верхние границы набора чисел",
169
+ "definitionText": "Множество элементов набора, не меньших всех остальных",
220
170
  "convention": "",
221
171
  "analysis": {
222
172
  "success": true,
223
173
  "type": {
224
174
  "typeID": 7,
225
175
  "result": {
226
- "typeID": 3,
227
- "baseID": "R1"
176
+ "typeID": 5,
177
+ "base": {
178
+ "typeID": 2,
179
+ "isOrdered": true,
180
+ "isArithmetic": true,
181
+ "isIntegerCompatible": true
182
+ }
228
183
  },
229
184
  "args": [
230
- {
231
- "alias": "α",
232
- "type": {
233
- "typeID": 2,
234
- "isOrdered": true,
235
- "isArithmetic": true,
236
- "isIntegerCompatible": true
237
- }
238
- },
239
185
  {
240
186
  "alias": "σ",
241
187
  "type": {
242
188
  "typeID": 5,
243
189
  "base": {
244
- "typeID": 4,
245
- "factors": [
246
- {
247
- "typeID": 2,
248
- "isOrdered": true,
249
- "isArithmetic": true,
250
- "isIntegerCompatible": true
251
- },
252
- {
253
- "typeID": 3,
254
- "baseID": "R1"
255
- }
256
- ]
190
+ "typeID": 2,
191
+ "isOrdered": true,
192
+ "isArithmetic": true,
193
+ "isIntegerCompatible": true
257
194
  }
258
195
  }
259
196
  }
@@ -301,36 +238,49 @@
301
238
  }
302
239
  },
303
240
  {
304
- "id": 11,
305
- "alias": "F4",
241
+ "id": 9,
242
+ "alias": "F1",
306
243
  "cstType": "function",
307
- "definitionFormal": "[σ∈ℬ(Z)] D{ξ∈σ | ∀α∈σ α≤ξ}",
308
- "term": "верхние границы набора чисел",
309
- "definitionText": "Множество элементов набора, не меньших всех остальных",
244
+ "definitionFormal": "[α∈Z, σ∈ℬ(Z×R1)] debool(Pr2(Fi1[{α}](σ)))",
245
+ "term": "значение элемента последовательности с данным номером",
246
+ "definitionText": "Значение пары с заданным номером в последовательности пар",
310
247
  "convention": "",
311
248
  "analysis": {
312
249
  "success": true,
313
250
  "type": {
314
251
  "typeID": 7,
315
252
  "result": {
316
- "typeID": 5,
317
- "base": {
318
- "typeID": 2,
319
- "isOrdered": true,
320
- "isArithmetic": true,
321
- "isIntegerCompatible": true
322
- }
253
+ "typeID": 3,
254
+ "baseID": "R1"
323
255
  },
324
256
  "args": [
257
+ {
258
+ "alias": "α",
259
+ "type": {
260
+ "typeID": 2,
261
+ "isOrdered": true,
262
+ "isArithmetic": true,
263
+ "isIntegerCompatible": true
264
+ }
265
+ },
325
266
  {
326
267
  "alias": "σ",
327
268
  "type": {
328
269
  "typeID": 5,
329
270
  "base": {
330
- "typeID": 2,
331
- "isOrdered": true,
332
- "isArithmetic": true,
333
- "isIntegerCompatible": true
271
+ "typeID": 4,
272
+ "factors": [
273
+ {
274
+ "typeID": 2,
275
+ "isOrdered": true,
276
+ "isArithmetic": true,
277
+ "isIntegerCompatible": true
278
+ },
279
+ {
280
+ "typeID": 3,
281
+ "baseID": "R1"
282
+ }
283
+ ]
334
284
  }
335
285
  }
336
286
  }
@@ -341,33 +291,19 @@
341
291
  }
342
292
  },
343
293
  {
344
- "id": 12,
345
- "alias": "F5",
346
- "cstType": "function",
347
- "definitionFormal": "[α∈Z, β∈Z] debool(I{(α,0) | α<β} ∪ I{(α-β,1) | α≥β})",
348
- "term": "деление с остатком на степень двойки",
349
- "convention": "Предполагается, что удвоенный делитель больше делимого",
294
+ "id": 8,
295
+ "alias": "P1",
296
+ "cstType": "predicate",
297
+ "definitionFormal": "[α∈Z] R{ξ:=α | ξ≥2 | ξ-2}=0",
298
+ "term": "чётное?",
350
299
  "definitionText": "",
300
+ "convention": "Для малых аргументов — прямое вычитание двойки; для больших нужно двоичное представление",
351
301
  "analysis": {
352
302
  "success": true,
353
303
  "type": {
354
- "typeID": 7,
304
+ "typeID": 8,
355
305
  "result": {
356
- "typeID": 4,
357
- "factors": [
358
- {
359
- "typeID": 2,
360
- "isOrdered": true,
361
- "isArithmetic": true,
362
- "isIntegerCompatible": true
363
- },
364
- {
365
- "typeID": 2,
366
- "isOrdered": true,
367
- "isArithmetic": true,
368
- "isIntegerCompatible": true
369
- }
370
- ]
306
+ "typeID": 6
371
307
  },
372
308
  "args": [
373
309
  {
@@ -378,15 +314,6 @@
378
314
  "isArithmetic": true,
379
315
  "isIntegerCompatible": true
380
316
  }
381
- },
382
- {
383
- "alias": "β",
384
- "type": {
385
- "typeID": 2,
386
- "isOrdered": true,
387
- "isArithmetic": true,
388
- "isIntegerCompatible": true
389
- }
390
317
  }
391
318
  ]
392
319
  },
@@ -395,41 +322,29 @@
395
322
  }
396
323
  },
397
324
  {
398
- "id": 13,
399
- "alias": "F6",
400
- "cstType": "function",
401
- "definitionFormal": "[α∈Z, β∈Z] pr1(F5[α, β])",
402
- "term": "остаток",
325
+ "id": 4,
326
+ "alias": "S2",
327
+ "cstType": "structure",
328
+ "definitionFormal": "Z×Z",
329
+ "term": "отравленная долька",
403
330
  "definitionText": "",
404
- "convention": "",
331
+ "convention": "Координаты отравленной дольки: первая проекция по ширине, вторая — по длине",
405
332
  "analysis": {
406
333
  "success": true,
407
334
  "type": {
408
- "typeID": 7,
409
- "result": {
410
- "typeID": 2,
411
- "isOrdered": true,
412
- "isArithmetic": true,
413
- "isIntegerCompatible": true
414
- },
415
- "args": [
335
+ "typeID": 4,
336
+ "factors": [
416
337
  {
417
- "alias": "α",
418
- "type": {
419
- "typeID": 2,
420
- "isOrdered": true,
421
- "isArithmetic": true,
422
- "isIntegerCompatible": true
423
- }
338
+ "typeID": 2,
339
+ "isOrdered": true,
340
+ "isArithmetic": true,
341
+ "isIntegerCompatible": true
424
342
  },
425
343
  {
426
- "alias": "β",
427
- "type": {
428
- "typeID": 2,
429
- "isOrdered": true,
430
- "isArithmetic": true,
431
- "isIntegerCompatible": true
432
- }
344
+ "typeID": 2,
345
+ "isOrdered": true,
346
+ "isArithmetic": true,
347
+ "isIntegerCompatible": true
433
348
  }
434
349
  ]
435
350
  },
@@ -438,41 +353,69 @@
438
353
  }
439
354
  },
440
355
  {
441
- "id": 14,
442
- "alias": "F7",
443
- "cstType": "function",
444
- "definitionFormal": "[α∈Z, β∈Z] pr2(F5[α, β])",
445
- "term": "целая часть",
356
+ "id": 5,
357
+ "alias": "D3",
358
+ "cstType": "term",
359
+ "definitionFormal": "pr1(S2)",
360
+ "term": "расположение отравленной дольки по ширине",
446
361
  "definitionText": "",
447
362
  "convention": "",
448
363
  "analysis": {
449
364
  "success": true,
450
365
  "type": {
451
- "typeID": 7,
452
- "result": {
453
- "typeID": 2,
454
- "isOrdered": true,
455
- "isArithmetic": true,
456
- "isIntegerCompatible": true
457
- },
458
- "args": [
366
+ "typeID": 2,
367
+ "isOrdered": true,
368
+ "isArithmetic": true,
369
+ "isIntegerCompatible": true
370
+ },
371
+ "valueClass": "value",
372
+ "diagnostics": []
373
+ }
374
+ },
375
+ {
376
+ "id": 6,
377
+ "alias": "D4",
378
+ "cstType": "term",
379
+ "definitionFormal": "pr2(S2)",
380
+ "term": "расположение отравленной дольки по длине",
381
+ "definitionText": "",
382
+ "convention": "",
383
+ "analysis": {
384
+ "success": true,
385
+ "type": {
386
+ "typeID": 2,
387
+ "isOrdered": true,
388
+ "isArithmetic": true,
389
+ "isIntegerCompatible": true
390
+ },
391
+ "valueClass": "value",
392
+ "diagnostics": []
393
+ }
394
+ },
395
+ {
396
+ "id": 1,
397
+ "alias": "S1",
398
+ "cstType": "structure",
399
+ "definitionFormal": "Z×Z",
400
+ "term": "шоколадка",
401
+ "definitionText": "",
402
+ "convention": "Первая проекция — ширина, вторая — длина",
403
+ "analysis": {
404
+ "success": true,
405
+ "type": {
406
+ "typeID": 4,
407
+ "factors": [
459
408
  {
460
- "alias": "α",
461
- "type": {
462
- "typeID": 2,
463
- "isOrdered": true,
464
- "isArithmetic": true,
465
- "isIntegerCompatible": true
466
- }
409
+ "typeID": 2,
410
+ "isOrdered": true,
411
+ "isArithmetic": true,
412
+ "isIntegerCompatible": true
467
413
  },
468
414
  {
469
- "alias": "β",
470
- "type": {
471
- "typeID": 2,
472
- "isOrdered": true,
473
- "isArithmetic": true,
474
- "isIntegerCompatible": true
475
- }
415
+ "typeID": 2,
416
+ "isOrdered": true,
417
+ "isArithmetic": true,
418
+ "isIntegerCompatible": true
476
419
  }
477
420
  ]
478
421
  },
@@ -480,6 +423,63 @@
480
423
  "diagnostics": []
481
424
  }
482
425
  },
426
+ {
427
+ "id": 2,
428
+ "alias": "D1",
429
+ "cstType": "term",
430
+ "definitionFormal": "pr1(S1)",
431
+ "term": "ширина шоколадки",
432
+ "definitionText": "",
433
+ "convention": "",
434
+ "analysis": {
435
+ "success": true,
436
+ "type": {
437
+ "typeID": 2,
438
+ "isOrdered": true,
439
+ "isArithmetic": true,
440
+ "isIntegerCompatible": true
441
+ },
442
+ "valueClass": "value",
443
+ "diagnostics": []
444
+ }
445
+ },
446
+ {
447
+ "id": 3,
448
+ "alias": "D2",
449
+ "cstType": "term",
450
+ "definitionFormal": "pr2(S1)",
451
+ "term": "длина шоколадки",
452
+ "definitionText": "",
453
+ "convention": "",
454
+ "analysis": {
455
+ "success": true,
456
+ "type": {
457
+ "typeID": 2,
458
+ "isOrdered": true,
459
+ "isArithmetic": true,
460
+ "isIntegerCompatible": true
461
+ },
462
+ "valueClass": "value",
463
+ "diagnostics": []
464
+ }
465
+ },
466
+ {
467
+ "id": 7,
468
+ "alias": "A1",
469
+ "cstType": "axiom",
470
+ "definitionFormal": "(1≤D3)&(D3≤D1)&(1≤D4)&(D4≤D2)",
471
+ "term": "отравленная долька в шоколадке",
472
+ "definitionText": "Координаты отравленной дольки лежат в пределах шоколадки",
473
+ "convention": "",
474
+ "analysis": {
475
+ "success": true,
476
+ "type": {
477
+ "typeID": 6
478
+ },
479
+ "valueClass": "value",
480
+ "diagnostics": []
481
+ }
482
+ },
483
483
  {
484
484
  "id": 15,
485
485
  "alias": "D5",
@@ -580,6 +580,23 @@
580
580
  "diagnostics": []
581
581
  }
582
582
  },
583
+ {
584
+ "id": 24,
585
+ "alias": "T1",
586
+ "cstType": "statement",
587
+ "definitionFormal": "D8={0}",
588
+ "term": "игра закончена",
589
+ "definitionText": "Во всех кучках не осталось камней",
590
+ "convention": "",
591
+ "analysis": {
592
+ "success": true,
593
+ "type": {
594
+ "typeID": 6
595
+ },
596
+ "valueClass": "value",
597
+ "diagnostics": []
598
+ }
599
+ },
583
600
  {
584
601
  "id": 19,
585
602
  "alias": "A2",
@@ -695,23 +712,6 @@
695
712
  "diagnostics": []
696
713
  }
697
714
  },
698
- {
699
- "id": 24,
700
- "alias": "T1",
701
- "cstType": "statement",
702
- "definitionFormal": "D8={0}",
703
- "term": "игра закончена",
704
- "definitionText": "Во всех кучках не осталось камней",
705
- "convention": "",
706
- "analysis": {
707
- "success": true,
708
- "type": {
709
- "typeID": 6
710
- },
711
- "valueClass": "value",
712
- "diagnostics": []
713
- }
714
- },
715
715
  {
716
716
  "id": 25,
717
717
  "alias": "T2",