@rsconcept/rstool 1.2.2 → 1.4.0

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 (111) hide show
  1. package/README.md +4 -4
  2. package/dist/{agent-workflow-Gk0Vfnv1.d.ts → agent-workflow-D22FeODL.d.ts} +6 -6
  3. package/dist/{analysis-LLnPhmGa.d.ts → analysis-DA44pfgA.d.ts} +4 -3
  4. package/dist/common-D6TFl6l_.d.ts +11 -0
  5. package/dist/{constituenta-DnGR6bnM.d.ts → constituenta-QY5w1x91.d.ts} +7 -7
  6. package/dist/diagnostic-C6TRoBgt.d.ts +38 -0
  7. package/dist/diagnostic-assembly-DRunIcKQ.js +54 -0
  8. package/dist/diagnostic-assembly-DRunIcKQ.js.map +1 -0
  9. package/dist/{evaluation-Cns8BFm4.d.ts → evaluation-Cd4S7-3t.d.ts} +4 -3
  10. package/dist/index.d.ts +12 -12
  11. package/dist/index.js +4 -3
  12. package/dist/mappers/model-adapter.d.ts +3 -3
  13. package/dist/mappers/model-adapter.js +1 -199
  14. package/dist/mappers/schema-adapter.d.ts +5 -5
  15. package/dist/mappers/schema-adapter.js +8 -8
  16. package/dist/mappers/schema-adapter.js.map +1 -1
  17. package/dist/mappers/types.d.ts +6 -6
  18. package/dist/mappers/types.js +6 -10
  19. package/dist/mappers/types.js.map +1 -1
  20. package/dist/model-adapter-D-YmIvQW.js +225 -0
  21. package/dist/model-adapter-D-YmIvQW.js.map +1 -0
  22. package/dist/{model-value-BbonPzMz.d.ts → model-value-BUhr2IjA.d.ts} +2 -2
  23. package/dist/models/agent-workflow.d.ts +1 -1
  24. package/dist/models/analysis.d.ts +1 -1
  25. package/dist/models/common.d.ts +2 -2
  26. package/dist/models/common.js +1 -1
  27. package/dist/models/constituenta.d.ts +1 -1
  28. package/dist/models/diagnostic.d.ts +2 -2
  29. package/dist/models/diagnostic.js +3 -1
  30. package/dist/models/evaluation.d.ts +1 -1
  31. package/dist/models/index.d.ts +11 -11
  32. package/dist/models/index.js +3 -2
  33. package/dist/models/model-value.d.ts +1 -1
  34. package/dist/models/rstool-agent.d.ts +1 -1
  35. package/dist/models/rstool-agent.js +1 -1
  36. package/dist/models/session.d.ts +1 -1
  37. package/dist/models/tool-contract.d.ts +1 -1
  38. package/dist/models/tool-contract.js +1 -1
  39. package/dist/models/tool-contract.js.map +1 -1
  40. package/dist/{models-9G6ur_pg.js → models-DTLctDmB.js} +72 -15
  41. package/dist/models-DTLctDmB.js.map +1 -0
  42. package/dist/{rstool-agent-D2cQze_b.d.ts → rstool-agent-BMVAyMAG.d.ts} +11 -10
  43. package/dist/session/session-store.d.ts +6 -6
  44. package/dist/session/session-store.js +1 -1
  45. package/dist/{session-ChexW8i7.d.ts → session-CI4rLYby.d.ts} +3 -3
  46. package/dist/{tool-contract-0uRGhEfW.d.ts → tool-contract-sQfr-DYD.d.ts} +12 -12
  47. package/dist/wrapper/stdio-wrapper.js +1 -1
  48. package/docs/BASE-SELECTION.md +92 -0
  49. package/docs/CONCEPTUAL-SCHEMA.md +20 -15
  50. package/docs/CONSTITUENTA.md +3 -3
  51. package/docs/DIAGNOSTICS.md +63 -20
  52. package/docs/DOMAIN.md +27 -21
  53. package/docs/README.md +1 -0
  54. package/docs/SYNTAX.md +3 -2
  55. package/docs/TYPIFICATION.md +3 -9
  56. package/examples/README.md +2 -0
  57. package/examples/agent-client.ts +15 -3
  58. package/examples/audit-diagnostics.ts +40 -0
  59. package/examples/chocolate-nim/build-rsform.ts +15 -0
  60. package/examples/chocolate-nim/build-rsmodel.ts +15 -22
  61. package/examples/chocolate-nim/model-demo.ts +11 -0
  62. package/examples/chocolate-nim/rsform-session.json +329 -310
  63. package/examples/chocolate-nim/rsmodel-session.json +311 -311
  64. package/examples/diagnostics-utils.ts +25 -0
  65. package/examples/expression-bank/bank-constituents.ts +10 -10
  66. package/examples/expression-bank/build-rsform.ts +8 -0
  67. package/examples/expression-bank/rsform-session.json +1501 -1501
  68. package/examples/kinship/build-rsform.ts +16 -1
  69. package/examples/kinship/build-rsmodel.ts +15 -56
  70. package/examples/kinship/model-demo.ts +35 -0
  71. package/examples/kinship/rsform-session.json +300 -215
  72. package/examples/kinship/rsmodel-session.json +216 -216
  73. package/examples/movd/build-rsform.ts +15 -0
  74. package/examples/movd/build-rsmodel.ts +15 -46
  75. package/examples/movd/model-demo.ts +31 -0
  76. package/examples/movd/rsform-session.json +359 -270
  77. package/examples/movd/rsmodel-session.json +263 -263
  78. package/examples/sample/build-rsform.ts +43 -3
  79. package/examples/sample/build-rsmodel.ts +26 -2
  80. package/examples/sample/rsform-session.json +41 -12
  81. package/examples/sample/rsmodel-session.json +37 -37
  82. package/examples/template-apply/build-rsform.ts +26 -9
  83. package/examples/template-apply/rsform-session.json +100 -45
  84. package/package.json +3 -2
  85. package/skills/rstool-helper/EXAMPLES.md +22 -1
  86. package/skills/rstool-helper/GUIDE.md +23 -28
  87. package/skills/rstool-helper/REFERENCE.md +28 -23
  88. package/src/index.ts +7 -4
  89. package/src/mappers/diagnostic-assembly.ts +96 -0
  90. package/src/mappers/diagnostics-collector.test.ts +63 -0
  91. package/src/mappers/diagnostics-collector.ts +73 -0
  92. package/src/mappers/model-adapter.ts +28 -99
  93. package/src/mappers/rsform-builder.ts +127 -0
  94. package/src/mappers/schema-adapter.ts +19 -15
  95. package/src/mappers/types.ts +12 -12
  96. package/src/models/agent-workflow.ts +2 -2
  97. package/src/models/analysis.ts +3 -2
  98. package/src/models/common.ts +0 -12
  99. package/src/models/constituenta.ts +4 -4
  100. package/src/models/diagnostic.ts +15 -10
  101. package/src/models/evaluation.ts +3 -8
  102. package/src/models/index.ts +8 -2
  103. package/src/models/rstool-agent.test.ts +66 -5
  104. package/src/models/rstool-agent.ts +22 -10
  105. package/src/models/tool-contract.ts +4 -4
  106. package/src/session/persistence.ts +2 -2
  107. package/src/session/session-store.ts +14 -7
  108. package/dist/common-DHJalS-Q.d.ts +0 -22
  109. package/dist/diagnostic-D9yl_mEL.d.ts +0 -19
  110. package/dist/mappers/model-adapter.js.map +0 -1
  111. package/dist/models-9G6ur_pg.js.map +0 -1
@@ -1,72 +1,49 @@
1
1
  {
2
- "contractVersion": "2.0.0",
2
+ "contractVersion": "2.1.0",
3
3
  "state": {
4
- "sessionId": "b171e421-1562-4b1a-bf6c-09f134929a92",
4
+ "sessionId": "7602df21-911f-4cd1-8f4a-54fc298e6b23",
5
5
  "alias": "",
6
6
  "title": "",
7
7
  "comment": "",
8
- "createdAt": "2026-07-01T17:12:48.205Z",
9
- "updatedAt": "2026-07-01T17:13:08.613Z",
8
+ "createdAt": "2026-07-06T14:49:53.719Z",
9
+ "updatedAt": "2026-07-06T14:49:56.759Z",
10
10
  "revisions": [
11
11
  {
12
- "revisionId": "e724c462-cc11-435c-8f37-9b61b657dad1",
13
- "at": "2026-07-01T17:12:48.231Z",
12
+ "revisionId": "a14d10b9-db6a-44c8-851b-20b00978c637",
13
+ "at": "2026-07-06T14:49:53.809Z",
14
14
  "message": "КС «шоколадный Ним» (rsforms/825): Z×Z, pr, P#, T#, арифметика, радикал R1"
15
15
  },
16
16
  {
17
- "revisionId": "60a4e722-ffe1-43fb-a4d4-20d607a7ae3c",
18
- "at": "2026-07-01T17:13:08.613Z",
17
+ "revisionId": "237cd9ae-5da1-4b49-ac43-52f64bd6cfc7",
18
+ "at": "2026-07-06T14:49:56.759Z",
19
19
  "message": "Модель шоколадного Нима: 4×6, долька (2,3), четыре кучки, A1 выполняется"
20
20
  }
21
21
  ],
22
22
  "items": [
23
23
  {
24
- "id": 12,
25
- "alias": "F5",
26
- "cstType": "function",
27
- "definitionFormal": "[α∈Z, β∈Z] debool(I{(α,0) | α<β} ∪ I{(α-β,1) | α≥β})",
28
- "term": "деление с остатком на степень двойки",
24
+ "id": 1,
25
+ "alias": "S1",
26
+ "cstType": "structure",
27
+ "definitionFormal": "Z×Z",
28
+ "term": "шоколадка",
29
29
  "definitionText": "",
30
- "convention": "Предполагается, что удвоенный делитель больше делимого",
30
+ "convention": "Первая проекция — ширина, вторая — длина",
31
31
  "analysis": {
32
32
  "success": true,
33
33
  "type": {
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": [
34
+ "typeID": 4,
35
+ "factors": [
53
36
  {
54
- "alias": "α",
55
- "type": {
56
- "typeID": 2,
57
- "isOrdered": true,
58
- "isArithmetic": true,
59
- "isIntegerCompatible": true
60
- }
37
+ "typeID": 2,
38
+ "isOrdered": true,
39
+ "isArithmetic": true,
40
+ "isIntegerCompatible": true
61
41
  },
62
42
  {
63
- "alias": "β",
64
- "type": {
65
- "typeID": 2,
66
- "isOrdered": true,
67
- "isArithmetic": true,
68
- "isIntegerCompatible": true
69
- }
43
+ "typeID": 2,
44
+ "isOrdered": true,
45
+ "isArithmetic": true,
46
+ "isIntegerCompatible": true
70
47
  }
71
48
  ]
72
49
  },
@@ -75,124 +52,69 @@
75
52
  }
76
53
  },
77
54
  {
78
- "id": 13,
79
- "alias": "F6",
80
- "cstType": "function",
81
- "definitionFormal": "[α∈Z, β∈Z] pr1(F5[α, β])",
82
- "term": "остаток",
55
+ "id": 2,
56
+ "alias": "D1",
57
+ "cstType": "term",
58
+ "definitionFormal": "pr1(S1)",
59
+ "term": "ширина шоколадки",
83
60
  "definitionText": "",
84
61
  "convention": "",
85
62
  "analysis": {
86
63
  "success": true,
87
64
  "type": {
88
- "typeID": 7,
89
- "result": {
90
- "typeID": 2,
91
- "isOrdered": true,
92
- "isArithmetic": true,
93
- "isIntegerCompatible": true
94
- },
95
- "args": [
96
- {
97
- "alias": "α",
98
- "type": {
99
- "typeID": 2,
100
- "isOrdered": true,
101
- "isArithmetic": true,
102
- "isIntegerCompatible": true
103
- }
104
- },
105
- {
106
- "alias": "β",
107
- "type": {
108
- "typeID": 2,
109
- "isOrdered": true,
110
- "isArithmetic": true,
111
- "isIntegerCompatible": true
112
- }
113
- }
114
- ]
65
+ "typeID": 2,
66
+ "isOrdered": true,
67
+ "isArithmetic": true,
68
+ "isIntegerCompatible": true
115
69
  },
116
70
  "valueClass": "value",
117
71
  "diagnostics": []
118
72
  }
119
73
  },
120
74
  {
121
- "id": 14,
122
- "alias": "F7",
123
- "cstType": "function",
124
- "definitionFormal": "[α∈Z, β∈Z] pr2(F5[α, β])",
125
- "term": "целая часть",
75
+ "id": 3,
76
+ "alias": "D2",
77
+ "cstType": "term",
78
+ "definitionFormal": "pr2(S1)",
79
+ "term": "длина шоколадки",
126
80
  "definitionText": "",
127
81
  "convention": "",
128
82
  "analysis": {
129
83
  "success": true,
130
84
  "type": {
131
- "typeID": 7,
132
- "result": {
133
- "typeID": 2,
134
- "isOrdered": true,
135
- "isArithmetic": true,
136
- "isIntegerCompatible": true
137
- },
138
- "args": [
139
- {
140
- "alias": "α",
141
- "type": {
142
- "typeID": 2,
143
- "isOrdered": true,
144
- "isArithmetic": true,
145
- "isIntegerCompatible": true
146
- }
147
- },
148
- {
149
- "alias": "β",
150
- "type": {
151
- "typeID": 2,
152
- "isOrdered": true,
153
- "isArithmetic": true,
154
- "isIntegerCompatible": true
155
- }
156
- }
157
- ]
85
+ "typeID": 2,
86
+ "isOrdered": true,
87
+ "isArithmetic": true,
88
+ "isIntegerCompatible": true
158
89
  },
159
90
  "valueClass": "value",
160
91
  "diagnostics": []
161
92
  }
162
93
  },
163
94
  {
164
- "id": 11,
165
- "alias": "F4",
166
- "cstType": "function",
167
- "definitionFormal": "[σ∈ℬ(Z)] D{ξ∈σ | ∀α∈σ α≤ξ}",
168
- "term": "верхние границы набора чисел",
169
- "definitionText": "Множество элементов набора, не меньших всех остальных",
170
- "convention": "",
95
+ "id": 4,
96
+ "alias": "S2",
97
+ "cstType": "structure",
98
+ "definitionFormal": "Z×Z",
99
+ "term": "отравленная долька",
100
+ "definitionText": "",
101
+ "convention": "Координаты отравленной дольки: первая проекция по ширине, вторая — по длине",
171
102
  "analysis": {
172
103
  "success": true,
173
104
  "type": {
174
- "typeID": 7,
175
- "result": {
176
- "typeID": 5,
177
- "base": {
105
+ "typeID": 4,
106
+ "factors": [
107
+ {
178
108
  "typeID": 2,
179
109
  "isOrdered": true,
180
110
  "isArithmetic": true,
181
111
  "isIntegerCompatible": true
182
- }
183
- },
184
- "args": [
112
+ },
185
113
  {
186
- "alias": "σ",
187
- "type": {
188
- "typeID": 5,
189
- "base": {
190
- "typeID": 2,
191
- "isOrdered": true,
192
- "isArithmetic": true,
193
- "isIntegerCompatible": true
194
- }
195
- }
114
+ "typeID": 2,
115
+ "isOrdered": true,
116
+ "isArithmetic": true,
117
+ "isIntegerCompatible": true
196
118
  }
197
119
  ]
198
120
  },
@@ -201,90 +123,57 @@
201
123
  }
202
124
  },
203
125
  {
204
- "id": 10,
205
- "alias": "F2",
206
- "cstType": "function",
207
- "definitionFormal": "[σ∈ℬ(Z)] debool(D{ξ∈σ | ∀α∈σ α≤ξ})",
208
- "term": "максимум набора чисел",
126
+ "id": 5,
127
+ "alias": "D3",
128
+ "cstType": "term",
129
+ "definitionFormal": "pr1(S2)",
130
+ "term": "расположение отравленной дольки по ширине",
209
131
  "definitionText": "",
210
132
  "convention": "",
211
133
  "analysis": {
212
134
  "success": true,
213
135
  "type": {
214
- "typeID": 7,
215
- "result": {
216
- "typeID": 2,
217
- "isOrdered": true,
218
- "isArithmetic": true,
219
- "isIntegerCompatible": true
220
- },
221
- "args": [
222
- {
223
- "alias": "σ",
224
- "type": {
225
- "typeID": 5,
226
- "base": {
227
- "typeID": 2,
228
- "isOrdered": true,
229
- "isArithmetic": true,
230
- "isIntegerCompatible": true
231
- }
232
- }
233
- }
234
- ]
136
+ "typeID": 2,
137
+ "isOrdered": true,
138
+ "isArithmetic": true,
139
+ "isIntegerCompatible": true
235
140
  },
236
141
  "valueClass": "value",
237
142
  "diagnostics": []
238
143
  }
239
144
  },
240
145
  {
241
- "id": 9,
242
- "alias": "F1",
243
- "cstType": "function",
244
- "definitionFormal": "[α∈Z, σ∈ℬ(Z×R1)] debool(Pr2(Fi1[{α}](σ)))",
245
- "term": "значение элемента последовательности с данным номером",
246
- "definitionText": "Значение пары с заданным номером в последовательности пар",
146
+ "id": 6,
147
+ "alias": "D4",
148
+ "cstType": "term",
149
+ "definitionFormal": "pr2(S2)",
150
+ "term": "расположение отравленной дольки по длине",
151
+ "definitionText": "",
247
152
  "convention": "",
248
153
  "analysis": {
249
154
  "success": true,
250
155
  "type": {
251
- "typeID": 7,
252
- "result": {
253
- "typeID": 3,
254
- "baseID": "R1"
255
- },
256
- "args": [
257
- {
258
- "alias": "α",
259
- "type": {
260
- "typeID": 2,
261
- "isOrdered": true,
262
- "isArithmetic": true,
263
- "isIntegerCompatible": true
264
- }
265
- },
266
- {
267
- "alias": "σ",
268
- "type": {
269
- "typeID": 5,
270
- "base": {
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
- ]
284
- }
285
- }
286
- }
287
- ]
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
288
177
  },
289
178
  "valueClass": "value",
290
179
  "diagnostics": []
@@ -322,100 +211,128 @@
322
211
  }
323
212
  },
324
213
  {
325
- "id": 4,
326
- "alias": "S2",
327
- "cstType": "structure",
328
- "definitionFormal": "Z×Z",
329
- "term": "отравленная долька",
330
- "definitionText": "",
331
- "convention": "Координаты отравленной дольки: первая проекция по ширине, вторая — по длине",
214
+ "id": 9,
215
+ "alias": "F1",
216
+ "cstType": "function",
217
+ "definitionFormal": "[α∈Z, σ∈ℬ(Z×R1)] debool(Pr2(Fi1[{α}](σ)))",
218
+ "term": "значение элемента последовательности с данным номером",
219
+ "definitionText": "Значение пары с заданным номером в последовательности пар",
220
+ "convention": "",
332
221
  "analysis": {
333
222
  "success": true,
334
223
  "type": {
335
- "typeID": 4,
336
- "factors": [
224
+ "typeID": 7,
225
+ "result": {
226
+ "typeID": 3,
227
+ "baseID": "R1"
228
+ },
229
+ "args": [
337
230
  {
338
- "typeID": 2,
339
- "isOrdered": true,
340
- "isArithmetic": true,
341
- "isIntegerCompatible": true
231
+ "alias": "α",
232
+ "type": {
233
+ "typeID": 2,
234
+ "isOrdered": true,
235
+ "isArithmetic": true,
236
+ "isIntegerCompatible": true
237
+ }
342
238
  },
343
239
  {
344
- "typeID": 2,
345
- "isOrdered": true,
346
- "isArithmetic": true,
347
- "isIntegerCompatible": true
348
- }
349
- ]
350
- },
351
- "valueClass": "value",
352
- "diagnostics": []
353
- }
354
- },
355
- {
356
- "id": 5,
357
- "alias": "D3",
358
- "cstType": "term",
359
- "definitionFormal": "pr1(S2)",
360
- "term": "расположение отравленной дольки по ширине",
361
- "definitionText": "",
362
- "convention": "",
363
- "analysis": {
364
- "success": true,
365
- "type": {
366
- "typeID": 2,
367
- "isOrdered": true,
368
- "isArithmetic": true,
369
- "isIntegerCompatible": true
240
+ "alias": "σ",
241
+ "type": {
242
+ "typeID": 5,
243
+ "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
+ ]
257
+ }
258
+ }
259
+ }
260
+ ]
370
261
  },
371
262
  "valueClass": "value",
372
263
  "diagnostics": []
373
264
  }
374
265
  },
375
266
  {
376
- "id": 6,
377
- "alias": "D4",
378
- "cstType": "term",
379
- "definitionFormal": "pr2(S2)",
380
- "term": "расположение отравленной дольки по длине",
267
+ "id": 10,
268
+ "alias": "F2",
269
+ "cstType": "function",
270
+ "definitionFormal": "[σ∈ℬ(Z)] debool(D{ξ∈σ | ∀α∈σ α≤ξ})",
271
+ "term": "максимум набора чисел",
381
272
  "definitionText": "",
382
273
  "convention": "",
383
274
  "analysis": {
384
275
  "success": true,
385
276
  "type": {
386
- "typeID": 2,
387
- "isOrdered": true,
388
- "isArithmetic": true,
389
- "isIntegerCompatible": true
277
+ "typeID": 7,
278
+ "result": {
279
+ "typeID": 2,
280
+ "isOrdered": true,
281
+ "isArithmetic": true,
282
+ "isIntegerCompatible": true
283
+ },
284
+ "args": [
285
+ {
286
+ "alias": "σ",
287
+ "type": {
288
+ "typeID": 5,
289
+ "base": {
290
+ "typeID": 2,
291
+ "isOrdered": true,
292
+ "isArithmetic": true,
293
+ "isIntegerCompatible": true
294
+ }
295
+ }
296
+ }
297
+ ]
390
298
  },
391
299
  "valueClass": "value",
392
300
  "diagnostics": []
393
301
  }
394
302
  },
395
303
  {
396
- "id": 1,
397
- "alias": "S1",
398
- "cstType": "structure",
399
- "definitionFormal": "Z×Z",
400
- "term": "шоколадка",
401
- "definitionText": "",
402
- "convention": "Первая проекция — ширина, вторая — длина",
304
+ "id": 11,
305
+ "alias": "F4",
306
+ "cstType": "function",
307
+ "definitionFormal": "[σ∈ℬ(Z)] D{ξ∈σ | ∀α∈σ α≤ξ}",
308
+ "term": "верхние границы набора чисел",
309
+ "definitionText": "Множество элементов набора, не меньших всех остальных",
310
+ "convention": "",
403
311
  "analysis": {
404
312
  "success": true,
405
313
  "type": {
406
- "typeID": 4,
407
- "factors": [
408
- {
314
+ "typeID": 7,
315
+ "result": {
316
+ "typeID": 5,
317
+ "base": {
409
318
  "typeID": 2,
410
319
  "isOrdered": true,
411
320
  "isArithmetic": true,
412
321
  "isIntegerCompatible": true
413
- },
322
+ }
323
+ },
324
+ "args": [
414
325
  {
415
- "typeID": 2,
416
- "isOrdered": true,
417
- "isArithmetic": true,
418
- "isIntegerCompatible": true
326
+ "alias": "σ",
327
+ "type": {
328
+ "typeID": 5,
329
+ "base": {
330
+ "typeID": 2,
331
+ "isOrdered": true,
332
+ "isArithmetic": true,
333
+ "isIntegerCompatible": true
334
+ }
335
+ }
419
336
  }
420
337
  ]
421
338
  },
@@ -424,57 +341,140 @@
424
341
  }
425
342
  },
426
343
  {
427
- "id": 2,
428
- "alias": "D1",
429
- "cstType": "term",
430
- "definitionFormal": "pr1(S1)",
431
- "term": "ширина шоколадки",
344
+ "id": 12,
345
+ "alias": "F5",
346
+ "cstType": "function",
347
+ "definitionFormal": "[α∈Z, β∈Z] debool(I{(α,0) | α<β} ∪ I{(α-β,1) | α≥β})",
348
+ "term": "деление с остатком на степень двойки",
432
349
  "definitionText": "",
433
- "convention": "",
350
+ "convention": "Предполагается, что удвоенный делитель больше делимого",
434
351
  "analysis": {
435
352
  "success": true,
436
353
  "type": {
437
- "typeID": 2,
438
- "isOrdered": true,
439
- "isArithmetic": true,
440
- "isIntegerCompatible": true
354
+ "typeID": 7,
355
+ "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
+ ]
371
+ },
372
+ "args": [
373
+ {
374
+ "alias": "α",
375
+ "type": {
376
+ "typeID": 2,
377
+ "isOrdered": true,
378
+ "isArithmetic": true,
379
+ "isIntegerCompatible": true
380
+ }
381
+ },
382
+ {
383
+ "alias": "β",
384
+ "type": {
385
+ "typeID": 2,
386
+ "isOrdered": true,
387
+ "isArithmetic": true,
388
+ "isIntegerCompatible": true
389
+ }
390
+ }
391
+ ]
441
392
  },
442
393
  "valueClass": "value",
443
394
  "diagnostics": []
444
395
  }
445
396
  },
446
397
  {
447
- "id": 3,
448
- "alias": "D2",
449
- "cstType": "term",
450
- "definitionFormal": "pr2(S1)",
451
- "term": "длина шоколадки",
398
+ "id": 13,
399
+ "alias": "F6",
400
+ "cstType": "function",
401
+ "definitionFormal": "[α∈Z, β∈Z] pr1(F5[α, β])",
402
+ "term": "остаток",
452
403
  "definitionText": "",
453
404
  "convention": "",
454
405
  "analysis": {
455
406
  "success": true,
456
407
  "type": {
457
- "typeID": 2,
458
- "isOrdered": true,
459
- "isArithmetic": true,
460
- "isIntegerCompatible": true
408
+ "typeID": 7,
409
+ "result": {
410
+ "typeID": 2,
411
+ "isOrdered": true,
412
+ "isArithmetic": true,
413
+ "isIntegerCompatible": true
414
+ },
415
+ "args": [
416
+ {
417
+ "alias": "α",
418
+ "type": {
419
+ "typeID": 2,
420
+ "isOrdered": true,
421
+ "isArithmetic": true,
422
+ "isIntegerCompatible": true
423
+ }
424
+ },
425
+ {
426
+ "alias": "β",
427
+ "type": {
428
+ "typeID": 2,
429
+ "isOrdered": true,
430
+ "isArithmetic": true,
431
+ "isIntegerCompatible": true
432
+ }
433
+ }
434
+ ]
461
435
  },
462
436
  "valueClass": "value",
463
437
  "diagnostics": []
464
438
  }
465
439
  },
466
440
  {
467
- "id": 7,
468
- "alias": "A1",
469
- "cstType": "axiom",
470
- "definitionFormal": "(1≤D3)&(D3≤D1)&(1≤D4)&(D4≤D2)",
471
- "term": "отравленная долька в шоколадке",
472
- "definitionText": "Координаты отравленной дольки лежат в пределах шоколадки",
441
+ "id": 14,
442
+ "alias": "F7",
443
+ "cstType": "function",
444
+ "definitionFormal": "[α∈Z, β∈Z] pr2(F5[α, β])",
445
+ "term": "целая часть",
446
+ "definitionText": "",
473
447
  "convention": "",
474
448
  "analysis": {
475
449
  "success": true,
476
450
  "type": {
477
- "typeID": 6
451
+ "typeID": 7,
452
+ "result": {
453
+ "typeID": 2,
454
+ "isOrdered": true,
455
+ "isArithmetic": true,
456
+ "isIntegerCompatible": true
457
+ },
458
+ "args": [
459
+ {
460
+ "alias": "α",
461
+ "type": {
462
+ "typeID": 2,
463
+ "isOrdered": true,
464
+ "isArithmetic": true,
465
+ "isIntegerCompatible": true
466
+ }
467
+ },
468
+ {
469
+ "alias": "β",
470
+ "type": {
471
+ "typeID": 2,
472
+ "isOrdered": true,
473
+ "isArithmetic": true,
474
+ "isIntegerCompatible": true
475
+ }
476
+ }
477
+ ]
478
478
  },
479
479
  "valueClass": "value",
480
480
  "diagnostics": []
@@ -580,23 +580,6 @@
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
- },
600
583
  {
601
584
  "id": 19,
602
585
  "alias": "A2",
@@ -645,7 +628,7 @@
645
628
  "typeID": 7,
646
629
  "result": {
647
630
  "typeID": 2,
648
- "baseID": "R1F1",
631
+ "baseID": "F1<R1>",
649
632
  "isOrdered": true,
650
633
  "isArithmetic": true,
651
634
  "isIntegerCompatible": true
@@ -712,6 +695,23 @@
712
695
  "diagnostics": []
713
696
  }
714
697
  },
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",