@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,67 +1,44 @@
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:12:48.231Z",
8
+ "createdAt": "2026-07-06T14:49:53.719Z",
9
+ "updatedAt": "2026-07-06T14:49:53.809Z",
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
17
  "items": [
18
18
  {
19
- "id": 12,
20
- "alias": "F5",
21
- "cstType": "function",
22
- "definitionFormal": "[α∈Z, β∈Z] debool(I{(α,0) | α<β} ∪ I{(α-β,1) | α≥β})",
23
- "term": "деление с остатком на степень двойки",
19
+ "id": 1,
20
+ "alias": "S1",
21
+ "cstType": "structure",
22
+ "definitionFormal": "Z×Z",
23
+ "term": "шоколадка",
24
24
  "definitionText": "",
25
- "convention": "Предполагается, что удвоенный делитель больше делимого",
25
+ "convention": "Первая проекция — ширина, вторая — длина",
26
26
  "analysis": {
27
27
  "success": true,
28
28
  "type": {
29
- "typeID": 7,
30
- "result": {
31
- "typeID": 4,
32
- "factors": [
33
- {
34
- "typeID": 2,
35
- "isOrdered": true,
36
- "isArithmetic": true,
37
- "isIntegerCompatible": true
38
- },
39
- {
40
- "typeID": 2,
41
- "isOrdered": true,
42
- "isArithmetic": true,
43
- "isIntegerCompatible": true
44
- }
45
- ]
46
- },
47
- "args": [
29
+ "typeID": 4,
30
+ "factors": [
48
31
  {
49
- "alias": "α",
50
- "type": {
51
- "typeID": 2,
52
- "isOrdered": true,
53
- "isArithmetic": true,
54
- "isIntegerCompatible": true
55
- }
32
+ "typeID": 2,
33
+ "isOrdered": true,
34
+ "isArithmetic": true,
35
+ "isIntegerCompatible": true
56
36
  },
57
37
  {
58
- "alias": "β",
59
- "type": {
60
- "typeID": 2,
61
- "isOrdered": true,
62
- "isArithmetic": true,
63
- "isIntegerCompatible": true
64
- }
38
+ "typeID": 2,
39
+ "isOrdered": true,
40
+ "isArithmetic": true,
41
+ "isIntegerCompatible": true
65
42
  }
66
43
  ]
67
44
  },
@@ -70,124 +47,69 @@
70
47
  }
71
48
  },
72
49
  {
73
- "id": 13,
74
- "alias": "F6",
75
- "cstType": "function",
76
- "definitionFormal": "[α∈Z, β∈Z] pr1(F5[α, β])",
77
- "term": "остаток",
50
+ "id": 2,
51
+ "alias": "D1",
52
+ "cstType": "term",
53
+ "definitionFormal": "pr1(S1)",
54
+ "term": "ширина шоколадки",
78
55
  "definitionText": "",
79
56
  "convention": "",
80
57
  "analysis": {
81
58
  "success": true,
82
59
  "type": {
83
- "typeID": 7,
84
- "result": {
85
- "typeID": 2,
86
- "isOrdered": true,
87
- "isArithmetic": true,
88
- "isIntegerCompatible": true
89
- },
90
- "args": [
91
- {
92
- "alias": "α",
93
- "type": {
94
- "typeID": 2,
95
- "isOrdered": true,
96
- "isArithmetic": true,
97
- "isIntegerCompatible": true
98
- }
99
- },
100
- {
101
- "alias": "β",
102
- "type": {
103
- "typeID": 2,
104
- "isOrdered": true,
105
- "isArithmetic": true,
106
- "isIntegerCompatible": true
107
- }
108
- }
109
- ]
60
+ "typeID": 2,
61
+ "isOrdered": true,
62
+ "isArithmetic": true,
63
+ "isIntegerCompatible": true
110
64
  },
111
65
  "valueClass": "value",
112
66
  "diagnostics": []
113
67
  }
114
68
  },
115
69
  {
116
- "id": 14,
117
- "alias": "F7",
118
- "cstType": "function",
119
- "definitionFormal": "[α∈Z, β∈Z] pr2(F5[α, β])",
120
- "term": "целая часть",
70
+ "id": 3,
71
+ "alias": "D2",
72
+ "cstType": "term",
73
+ "definitionFormal": "pr2(S1)",
74
+ "term": "длина шоколадки",
121
75
  "definitionText": "",
122
76
  "convention": "",
123
77
  "analysis": {
124
78
  "success": true,
125
79
  "type": {
126
- "typeID": 7,
127
- "result": {
128
- "typeID": 2,
129
- "isOrdered": true,
130
- "isArithmetic": true,
131
- "isIntegerCompatible": true
132
- },
133
- "args": [
134
- {
135
- "alias": "α",
136
- "type": {
137
- "typeID": 2,
138
- "isOrdered": true,
139
- "isArithmetic": true,
140
- "isIntegerCompatible": true
141
- }
142
- },
143
- {
144
- "alias": "β",
145
- "type": {
146
- "typeID": 2,
147
- "isOrdered": true,
148
- "isArithmetic": true,
149
- "isIntegerCompatible": true
150
- }
151
- }
152
- ]
80
+ "typeID": 2,
81
+ "isOrdered": true,
82
+ "isArithmetic": true,
83
+ "isIntegerCompatible": true
153
84
  },
154
85
  "valueClass": "value",
155
86
  "diagnostics": []
156
87
  }
157
88
  },
158
89
  {
159
- "id": 11,
160
- "alias": "F4",
161
- "cstType": "function",
162
- "definitionFormal": "[σ∈ℬ(Z)] D{ξ∈σ | ∀α∈σ α≤ξ}",
163
- "term": "верхние границы набора чисел",
164
- "definitionText": "Множество элементов набора, не меньших всех остальных",
165
- "convention": "",
90
+ "id": 4,
91
+ "alias": "S2",
92
+ "cstType": "structure",
93
+ "definitionFormal": "Z×Z",
94
+ "term": "отравленная долька",
95
+ "definitionText": "",
96
+ "convention": "Координаты отравленной дольки: первая проекция по ширине, вторая — по длине",
166
97
  "analysis": {
167
98
  "success": true,
168
99
  "type": {
169
- "typeID": 7,
170
- "result": {
171
- "typeID": 5,
172
- "base": {
100
+ "typeID": 4,
101
+ "factors": [
102
+ {
173
103
  "typeID": 2,
174
104
  "isOrdered": true,
175
105
  "isArithmetic": true,
176
106
  "isIntegerCompatible": true
177
- }
178
- },
179
- "args": [
107
+ },
180
108
  {
181
- "alias": "σ",
182
- "type": {
183
- "typeID": 5,
184
- "base": {
185
- "typeID": 2,
186
- "isOrdered": true,
187
- "isArithmetic": true,
188
- "isIntegerCompatible": true
189
- }
190
- }
109
+ "typeID": 2,
110
+ "isOrdered": true,
111
+ "isArithmetic": true,
112
+ "isIntegerCompatible": true
191
113
  }
192
114
  ]
193
115
  },
@@ -196,90 +118,57 @@
196
118
  }
197
119
  },
198
120
  {
199
- "id": 10,
200
- "alias": "F2",
201
- "cstType": "function",
202
- "definitionFormal": "[σ∈ℬ(Z)] debool(D{ξ∈σ | ∀α∈σ α≤ξ})",
203
- "term": "максимум набора чисел",
121
+ "id": 5,
122
+ "alias": "D3",
123
+ "cstType": "term",
124
+ "definitionFormal": "pr1(S2)",
125
+ "term": "расположение отравленной дольки по ширине",
204
126
  "definitionText": "",
205
127
  "convention": "",
206
128
  "analysis": {
207
129
  "success": true,
208
130
  "type": {
209
- "typeID": 7,
210
- "result": {
211
- "typeID": 2,
212
- "isOrdered": true,
213
- "isArithmetic": true,
214
- "isIntegerCompatible": true
215
- },
216
- "args": [
217
- {
218
- "alias": "σ",
219
- "type": {
220
- "typeID": 5,
221
- "base": {
222
- "typeID": 2,
223
- "isOrdered": true,
224
- "isArithmetic": true,
225
- "isIntegerCompatible": true
226
- }
227
- }
228
- }
229
- ]
131
+ "typeID": 2,
132
+ "isOrdered": true,
133
+ "isArithmetic": true,
134
+ "isIntegerCompatible": true
230
135
  },
231
136
  "valueClass": "value",
232
137
  "diagnostics": []
233
138
  }
234
139
  },
235
140
  {
236
- "id": 9,
237
- "alias": "F1",
238
- "cstType": "function",
239
- "definitionFormal": "[α∈Z, σ∈ℬ(Z×R1)] debool(Pr2(Fi1[{α}](σ)))",
240
- "term": "значение элемента последовательности с данным номером",
241
- "definitionText": "Значение пары с заданным номером в последовательности пар",
141
+ "id": 6,
142
+ "alias": "D4",
143
+ "cstType": "term",
144
+ "definitionFormal": "pr2(S2)",
145
+ "term": "расположение отравленной дольки по длине",
146
+ "definitionText": "",
242
147
  "convention": "",
243
148
  "analysis": {
244
149
  "success": true,
245
150
  "type": {
246
- "typeID": 7,
247
- "result": {
248
- "typeID": 3,
249
- "baseID": "R1"
250
- },
251
- "args": [
252
- {
253
- "alias": "α",
254
- "type": {
255
- "typeID": 2,
256
- "isOrdered": true,
257
- "isArithmetic": true,
258
- "isIntegerCompatible": true
259
- }
260
- },
261
- {
262
- "alias": "σ",
263
- "type": {
264
- "typeID": 5,
265
- "base": {
266
- "typeID": 4,
267
- "factors": [
268
- {
269
- "typeID": 2,
270
- "isOrdered": true,
271
- "isArithmetic": true,
272
- "isIntegerCompatible": true
273
- },
274
- {
275
- "typeID": 3,
276
- "baseID": "R1"
277
- }
278
- ]
279
- }
280
- }
281
- }
282
- ]
151
+ "typeID": 2,
152
+ "isOrdered": true,
153
+ "isArithmetic": true,
154
+ "isIntegerCompatible": true
155
+ },
156
+ "valueClass": "value",
157
+ "diagnostics": []
158
+ }
159
+ },
160
+ {
161
+ "id": 7,
162
+ "alias": "A1",
163
+ "cstType": "axiom",
164
+ "definitionFormal": "(1≤D3)&(D3≤D1)&(1≤D4)&(D4≤D2)",
165
+ "term": "отравленная долька в шоколадке",
166
+ "definitionText": "Координаты отравленной дольки лежат в пределах шоколадки",
167
+ "convention": "",
168
+ "analysis": {
169
+ "success": true,
170
+ "type": {
171
+ "typeID": 6
283
172
  },
284
173
  "valueClass": "value",
285
174
  "diagnostics": []
@@ -317,100 +206,128 @@
317
206
  }
318
207
  },
319
208
  {
320
- "id": 4,
321
- "alias": "S2",
322
- "cstType": "structure",
323
- "definitionFormal": "Z×Z",
324
- "term": "отравленная долька",
325
- "definitionText": "",
326
- "convention": "Координаты отравленной дольки: первая проекция по ширине, вторая — по длине",
209
+ "id": 9,
210
+ "alias": "F1",
211
+ "cstType": "function",
212
+ "definitionFormal": "[α∈Z, σ∈ℬ(Z×R1)] debool(Pr2(Fi1[{α}](σ)))",
213
+ "term": "значение элемента последовательности с данным номером",
214
+ "definitionText": "Значение пары с заданным номером в последовательности пар",
215
+ "convention": "",
327
216
  "analysis": {
328
217
  "success": true,
329
218
  "type": {
330
- "typeID": 4,
331
- "factors": [
219
+ "typeID": 7,
220
+ "result": {
221
+ "typeID": 3,
222
+ "baseID": "R1"
223
+ },
224
+ "args": [
332
225
  {
333
- "typeID": 2,
334
- "isOrdered": true,
335
- "isArithmetic": true,
336
- "isIntegerCompatible": true
226
+ "alias": "α",
227
+ "type": {
228
+ "typeID": 2,
229
+ "isOrdered": true,
230
+ "isArithmetic": true,
231
+ "isIntegerCompatible": true
232
+ }
337
233
  },
338
234
  {
339
- "typeID": 2,
340
- "isOrdered": true,
341
- "isArithmetic": true,
342
- "isIntegerCompatible": true
343
- }
344
- ]
345
- },
346
- "valueClass": "value",
347
- "diagnostics": []
348
- }
349
- },
350
- {
351
- "id": 5,
352
- "alias": "D3",
353
- "cstType": "term",
354
- "definitionFormal": "pr1(S2)",
355
- "term": "расположение отравленной дольки по ширине",
356
- "definitionText": "",
357
- "convention": "",
358
- "analysis": {
359
- "success": true,
360
- "type": {
361
- "typeID": 2,
362
- "isOrdered": true,
363
- "isArithmetic": true,
364
- "isIntegerCompatible": true
235
+ "alias": "σ",
236
+ "type": {
237
+ "typeID": 5,
238
+ "base": {
239
+ "typeID": 4,
240
+ "factors": [
241
+ {
242
+ "typeID": 2,
243
+ "isOrdered": true,
244
+ "isArithmetic": true,
245
+ "isIntegerCompatible": true
246
+ },
247
+ {
248
+ "typeID": 3,
249
+ "baseID": "R1"
250
+ }
251
+ ]
252
+ }
253
+ }
254
+ }
255
+ ]
365
256
  },
366
257
  "valueClass": "value",
367
258
  "diagnostics": []
368
259
  }
369
260
  },
370
261
  {
371
- "id": 6,
372
- "alias": "D4",
373
- "cstType": "term",
374
- "definitionFormal": "pr2(S2)",
375
- "term": "расположение отравленной дольки по длине",
262
+ "id": 10,
263
+ "alias": "F2",
264
+ "cstType": "function",
265
+ "definitionFormal": "[σ∈ℬ(Z)] debool(D{ξ∈σ | ∀α∈σ α≤ξ})",
266
+ "term": "максимум набора чисел",
376
267
  "definitionText": "",
377
268
  "convention": "",
378
269
  "analysis": {
379
270
  "success": true,
380
271
  "type": {
381
- "typeID": 2,
382
- "isOrdered": true,
383
- "isArithmetic": true,
384
- "isIntegerCompatible": true
272
+ "typeID": 7,
273
+ "result": {
274
+ "typeID": 2,
275
+ "isOrdered": true,
276
+ "isArithmetic": true,
277
+ "isIntegerCompatible": true
278
+ },
279
+ "args": [
280
+ {
281
+ "alias": "σ",
282
+ "type": {
283
+ "typeID": 5,
284
+ "base": {
285
+ "typeID": 2,
286
+ "isOrdered": true,
287
+ "isArithmetic": true,
288
+ "isIntegerCompatible": true
289
+ }
290
+ }
291
+ }
292
+ ]
385
293
  },
386
294
  "valueClass": "value",
387
295
  "diagnostics": []
388
296
  }
389
297
  },
390
298
  {
391
- "id": 1,
392
- "alias": "S1",
393
- "cstType": "structure",
394
- "definitionFormal": "Z×Z",
395
- "term": "шоколадка",
396
- "definitionText": "",
397
- "convention": "Первая проекция — ширина, вторая — длина",
299
+ "id": 11,
300
+ "alias": "F4",
301
+ "cstType": "function",
302
+ "definitionFormal": "[σ∈ℬ(Z)] D{ξ∈σ | ∀α∈σ α≤ξ}",
303
+ "term": "верхние границы набора чисел",
304
+ "definitionText": "Множество элементов набора, не меньших всех остальных",
305
+ "convention": "",
398
306
  "analysis": {
399
307
  "success": true,
400
308
  "type": {
401
- "typeID": 4,
402
- "factors": [
403
- {
309
+ "typeID": 7,
310
+ "result": {
311
+ "typeID": 5,
312
+ "base": {
404
313
  "typeID": 2,
405
314
  "isOrdered": true,
406
315
  "isArithmetic": true,
407
316
  "isIntegerCompatible": true
408
- },
317
+ }
318
+ },
319
+ "args": [
409
320
  {
410
- "typeID": 2,
411
- "isOrdered": true,
412
- "isArithmetic": true,
413
- "isIntegerCompatible": true
321
+ "alias": "σ",
322
+ "type": {
323
+ "typeID": 5,
324
+ "base": {
325
+ "typeID": 2,
326
+ "isOrdered": true,
327
+ "isArithmetic": true,
328
+ "isIntegerCompatible": true
329
+ }
330
+ }
414
331
  }
415
332
  ]
416
333
  },
@@ -419,57 +336,140 @@
419
336
  }
420
337
  },
421
338
  {
422
- "id": 2,
423
- "alias": "D1",
424
- "cstType": "term",
425
- "definitionFormal": "pr1(S1)",
426
- "term": "ширина шоколадки",
339
+ "id": 12,
340
+ "alias": "F5",
341
+ "cstType": "function",
342
+ "definitionFormal": "[α∈Z, β∈Z] debool(I{(α,0) | α<β} ∪ I{(α-β,1) | α≥β})",
343
+ "term": "деление с остатком на степень двойки",
427
344
  "definitionText": "",
428
- "convention": "",
345
+ "convention": "Предполагается, что удвоенный делитель больше делимого",
429
346
  "analysis": {
430
347
  "success": true,
431
348
  "type": {
432
- "typeID": 2,
433
- "isOrdered": true,
434
- "isArithmetic": true,
435
- "isIntegerCompatible": true
349
+ "typeID": 7,
350
+ "result": {
351
+ "typeID": 4,
352
+ "factors": [
353
+ {
354
+ "typeID": 2,
355
+ "isOrdered": true,
356
+ "isArithmetic": true,
357
+ "isIntegerCompatible": true
358
+ },
359
+ {
360
+ "typeID": 2,
361
+ "isOrdered": true,
362
+ "isArithmetic": true,
363
+ "isIntegerCompatible": true
364
+ }
365
+ ]
366
+ },
367
+ "args": [
368
+ {
369
+ "alias": "α",
370
+ "type": {
371
+ "typeID": 2,
372
+ "isOrdered": true,
373
+ "isArithmetic": true,
374
+ "isIntegerCompatible": true
375
+ }
376
+ },
377
+ {
378
+ "alias": "β",
379
+ "type": {
380
+ "typeID": 2,
381
+ "isOrdered": true,
382
+ "isArithmetic": true,
383
+ "isIntegerCompatible": true
384
+ }
385
+ }
386
+ ]
436
387
  },
437
388
  "valueClass": "value",
438
389
  "diagnostics": []
439
390
  }
440
391
  },
441
392
  {
442
- "id": 3,
443
- "alias": "D2",
444
- "cstType": "term",
445
- "definitionFormal": "pr2(S1)",
446
- "term": "длина шоколадки",
393
+ "id": 13,
394
+ "alias": "F6",
395
+ "cstType": "function",
396
+ "definitionFormal": "[α∈Z, β∈Z] pr1(F5[α, β])",
397
+ "term": "остаток",
447
398
  "definitionText": "",
448
399
  "convention": "",
449
400
  "analysis": {
450
401
  "success": true,
451
402
  "type": {
452
- "typeID": 2,
453
- "isOrdered": true,
454
- "isArithmetic": true,
455
- "isIntegerCompatible": true
403
+ "typeID": 7,
404
+ "result": {
405
+ "typeID": 2,
406
+ "isOrdered": true,
407
+ "isArithmetic": true,
408
+ "isIntegerCompatible": true
409
+ },
410
+ "args": [
411
+ {
412
+ "alias": "α",
413
+ "type": {
414
+ "typeID": 2,
415
+ "isOrdered": true,
416
+ "isArithmetic": true,
417
+ "isIntegerCompatible": true
418
+ }
419
+ },
420
+ {
421
+ "alias": "β",
422
+ "type": {
423
+ "typeID": 2,
424
+ "isOrdered": true,
425
+ "isArithmetic": true,
426
+ "isIntegerCompatible": true
427
+ }
428
+ }
429
+ ]
456
430
  },
457
431
  "valueClass": "value",
458
432
  "diagnostics": []
459
433
  }
460
434
  },
461
435
  {
462
- "id": 7,
463
- "alias": "A1",
464
- "cstType": "axiom",
465
- "definitionFormal": "(1≤D3)&(D3≤D1)&(1≤D4)&(D4≤D2)",
466
- "term": "отравленная долька в шоколадке",
467
- "definitionText": "Координаты отравленной дольки лежат в пределах шоколадки",
436
+ "id": 14,
437
+ "alias": "F7",
438
+ "cstType": "function",
439
+ "definitionFormal": "[α∈Z, β∈Z] pr2(F5[α, β])",
440
+ "term": "целая часть",
441
+ "definitionText": "",
468
442
  "convention": "",
469
443
  "analysis": {
470
444
  "success": true,
471
445
  "type": {
472
- "typeID": 6
446
+ "typeID": 7,
447
+ "result": {
448
+ "typeID": 2,
449
+ "isOrdered": true,
450
+ "isArithmetic": true,
451
+ "isIntegerCompatible": true
452
+ },
453
+ "args": [
454
+ {
455
+ "alias": "α",
456
+ "type": {
457
+ "typeID": 2,
458
+ "isOrdered": true,
459
+ "isArithmetic": true,
460
+ "isIntegerCompatible": true
461
+ }
462
+ },
463
+ {
464
+ "alias": "β",
465
+ "type": {
466
+ "typeID": 2,
467
+ "isOrdered": true,
468
+ "isArithmetic": true,
469
+ "isIntegerCompatible": true
470
+ }
471
+ }
472
+ ]
473
473
  },
474
474
  "valueClass": "value",
475
475
  "diagnostics": []
@@ -575,23 +575,6 @@
575
575
  "diagnostics": []
576
576
  }
577
577
  },
578
- {
579
- "id": 24,
580
- "alias": "T1",
581
- "cstType": "statement",
582
- "definitionFormal": "D8={0}",
583
- "term": "игра закончена",
584
- "definitionText": "Во всех кучках не осталось камней",
585
- "convention": "",
586
- "analysis": {
587
- "success": true,
588
- "type": {
589
- "typeID": 6
590
- },
591
- "valueClass": "value",
592
- "diagnostics": []
593
- }
594
- },
595
578
  {
596
579
  "id": 19,
597
580
  "alias": "A2",
@@ -640,7 +623,7 @@
640
623
  "typeID": 7,
641
624
  "result": {
642
625
  "typeID": 2,
643
- "baseID": "R1F1",
626
+ "baseID": "F1<R1>",
644
627
  "isOrdered": true,
645
628
  "isArithmetic": true,
646
629
  "isIntegerCompatible": true
@@ -707,6 +690,23 @@
707
690
  "diagnostics": []
708
691
  }
709
692
  },
693
+ {
694
+ "id": 24,
695
+ "alias": "T1",
696
+ "cstType": "statement",
697
+ "definitionFormal": "D8={0}",
698
+ "term": "игра закончена",
699
+ "definitionText": "Во всех кучках не осталось камней",
700
+ "convention": "",
701
+ "analysis": {
702
+ "success": true,
703
+ "type": {
704
+ "typeID": 6
705
+ },
706
+ "valueClass": "value",
707
+ "diagnostics": []
708
+ }
709
+ },
710
710
  {
711
711
  "id": 25,
712
712
  "alias": "T2",
@@ -771,7 +771,26 @@
771
771
  }
772
772
  ],
773
773
  "model": {
774
- "items": []
774
+ "items": [
775
+ {
776
+ "id": 1,
777
+ "type": "X1×X1",
778
+ "value": [
779
+ -111,
780
+ 4,
781
+ 6
782
+ ]
783
+ },
784
+ {
785
+ "id": 4,
786
+ "type": "X1×X1",
787
+ "value": [
788
+ -111,
789
+ 2,
790
+ 3
791
+ ]
792
+ }
793
+ ]
775
794
  }
776
795
  },
777
796
  "diagnostics": []