@rsconcept/rstool 0.7.2 → 0.8.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 (34) hide show
  1. package/README.md +1 -1
  2. package/docs/CONSTITUENTA.md +1 -1
  3. package/docs/MODEL-TESTING.md +1 -1
  4. package/examples/README.md +52 -29
  5. package/examples/build-chocolate-nim-rsform.ts +311 -0
  6. package/examples/chocolate-nim/build-rsform.ts +311 -0
  7. package/examples/chocolate-nim/build-rsmodel.ts +100 -0
  8. package/examples/chocolate-nim/constants.ts +10 -0
  9. package/examples/chocolate-nim/rsform-session.json +778 -0
  10. package/examples/chocolate-nim/rsmodel-session.json +802 -0
  11. package/examples/expression-bank/bank-constituents.ts +370 -0
  12. package/examples/expression-bank/build-rsform.ts +59 -0
  13. package/examples/expression-bank/constants.ts +1 -0
  14. package/examples/expression-bank/rsform-session.json +4006 -0
  15. package/examples/{build-kinship-rsform.ts → kinship/build-rsform.ts} +276 -54
  16. package/examples/{build-kinship-rsmodel.ts → kinship/build-rsmodel.ts} +18 -7
  17. package/examples/kinship/constants.ts +5 -3
  18. package/examples/{kinship-rsmodel-session.json → kinship/rsform-session.json} +614 -92
  19. package/examples/{kinship-rsform-session.json → kinship/rsmodel-session.json} +704 -50
  20. package/examples/kinship/x1-actions.test.ts +2 -1
  21. package/examples/movd/build-rsform.ts +325 -0
  22. package/examples/movd/build-rsmodel.ts +159 -0
  23. package/examples/movd/constants.ts +18 -0
  24. package/examples/movd/rsform-session.json +738 -0
  25. package/examples/movd/rsmodel-session.json +832 -0
  26. package/examples/{build-sample-rsform.ts → sample/build-rsform.ts} +2 -2
  27. package/examples/{build-sample-rsmodel.ts → sample/build-rsmodel.ts} +3 -4
  28. package/examples/template-apply/build-rsform.ts +236 -0
  29. package/examples/template-apply/constants.ts +13 -0
  30. package/examples/template-apply/rsform-session.json +333 -0
  31. package/package.json +12 -6
  32. package/skills/rstool-helper/EXAMPLES.md +2 -2
  33. /package/examples/{sample-rsform-session.json → sample/rsform-session.json} +0 -0
  34. /package/examples/{sample-rsmodel-session.json → sample/rsmodel-session.json} +0 -0
@@ -0,0 +1,802 @@
1
+ {
2
+ "contractVersion": "1.4.0",
3
+ "state": {
4
+ "sessionId": "c92d105d-6c5c-4260-ae15-2d09025792f2",
5
+ "alias": "",
6
+ "title": "",
7
+ "comment": "",
8
+ "createdAt": "2026-06-22T09:59:13.240Z",
9
+ "updatedAt": "2026-06-22T09:59:14.973Z",
10
+ "revisions": [
11
+ {
12
+ "revisionId": "a493ce48-f8e8-47cd-91cc-361b245b9965",
13
+ "at": "2026-06-22T09:59:13.269Z",
14
+ "message": "КС «шоколадный Ним» (rsforms/825): Z×Z, pr, P#, T#, арифметика, радикал R1"
15
+ },
16
+ {
17
+ "revisionId": "664c8cca-b78b-4100-8c48-7dc47b58c7ec",
18
+ "at": "2026-06-22T09:59:14.973Z",
19
+ "message": "Модель шоколадного Нима: 4×6, долька (2,3), четыре кучки, A1 выполняется"
20
+ }
21
+ ],
22
+ "items": [
23
+ {
24
+ "id": 1,
25
+ "alias": "S1",
26
+ "cstType": "structure",
27
+ "definitionFormal": "Z×Z",
28
+ "term": "шоколадка",
29
+ "convention": "Первая проекция — ширина, вторая — длина",
30
+ "definitionText": "",
31
+ "analysis": {
32
+ "success": true,
33
+ "type": {
34
+ "typeID": 4,
35
+ "factors": [
36
+ {
37
+ "typeID": 2,
38
+ "isOrdered": true,
39
+ "isArithmetic": true,
40
+ "isIntegerCompatible": true
41
+ },
42
+ {
43
+ "typeID": 2,
44
+ "isOrdered": true,
45
+ "isArithmetic": true,
46
+ "isIntegerCompatible": true
47
+ }
48
+ ]
49
+ },
50
+ "valueClass": "value",
51
+ "diagnostics": []
52
+ }
53
+ },
54
+ {
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": "длина шоколадки",
80
+ "definitionText": "",
81
+ "convention": "",
82
+ "analysis": {
83
+ "success": true,
84
+ "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": [
107
+ {
108
+ "typeID": 2,
109
+ "isOrdered": true,
110
+ "isArithmetic": true,
111
+ "isIntegerCompatible": true
112
+ },
113
+ {
114
+ "typeID": 2,
115
+ "isOrdered": true,
116
+ "isArithmetic": true,
117
+ "isIntegerCompatible": true
118
+ }
119
+ ]
120
+ },
121
+ "valueClass": "value",
122
+ "diagnostics": []
123
+ }
124
+ },
125
+ {
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": "расположение отравленной дольки по длине",
151
+ "definitionText": "",
152
+ "convention": "",
153
+ "analysis": {
154
+ "success": true,
155
+ "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,
194
+ "result": {
195
+ "typeID": 6
196
+ },
197
+ "args": [
198
+ {
199
+ "alias": "α",
200
+ "type": {
201
+ "typeID": 2,
202
+ "isOrdered": true,
203
+ "isArithmetic": true,
204
+ "isIntegerCompatible": true
205
+ }
206
+ }
207
+ ]
208
+ },
209
+ "valueClass": "value",
210
+ "diagnostics": []
211
+ }
212
+ },
213
+ {
214
+ "id": 9,
215
+ "alias": "F1",
216
+ "cstType": "function",
217
+ "definitionFormal": "[α∈Z, σ∈ℬ(Z×R1)] debool(Pr2(Fi1[{α}](σ)))",
218
+ "term": "значение элемента последовательности с данным номером",
219
+ "definitionText": "Значение пары с заданным номером в последовательности пар",
220
+ "convention": "",
221
+ "analysis": {
222
+ "success": true,
223
+ "type": {
224
+ "typeID": 7,
225
+ "result": {
226
+ "typeID": 3,
227
+ "baseID": "R1"
228
+ },
229
+ "args": [
230
+ {
231
+ "alias": "α",
232
+ "type": {
233
+ "typeID": 2,
234
+ "isOrdered": true,
235
+ "isArithmetic": true,
236
+ "isIntegerCompatible": true
237
+ }
238
+ },
239
+ {
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
+ ]
261
+ },
262
+ "valueClass": "value",
263
+ "diagnostics": []
264
+ }
265
+ },
266
+ {
267
+ "id": 10,
268
+ "alias": "F2",
269
+ "cstType": "function",
270
+ "definitionFormal": "[σ∈ℬ(Z)] debool(D{ξ∈σ | ∀α∈σ α≤ξ})",
271
+ "term": "максимум набора чисел",
272
+ "definitionText": "",
273
+ "convention": "",
274
+ "analysis": {
275
+ "success": true,
276
+ "type": {
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
+ ]
298
+ },
299
+ "valueClass": "value",
300
+ "diagnostics": []
301
+ }
302
+ },
303
+ {
304
+ "id": 11,
305
+ "alias": "F4",
306
+ "cstType": "function",
307
+ "definitionFormal": "[σ∈ℬ(Z)] D{ξ∈σ | ∀α∈σ α≤ξ}",
308
+ "term": "верхние границы набора чисел",
309
+ "definitionText": "Множество элементов набора, не меньших всех остальных",
310
+ "convention": "",
311
+ "analysis": {
312
+ "success": true,
313
+ "type": {
314
+ "typeID": 7,
315
+ "result": {
316
+ "typeID": 5,
317
+ "base": {
318
+ "typeID": 2,
319
+ "isOrdered": true,
320
+ "isArithmetic": true,
321
+ "isIntegerCompatible": true
322
+ }
323
+ },
324
+ "args": [
325
+ {
326
+ "alias": "σ",
327
+ "type": {
328
+ "typeID": 5,
329
+ "base": {
330
+ "typeID": 2,
331
+ "isOrdered": true,
332
+ "isArithmetic": true,
333
+ "isIntegerCompatible": true
334
+ }
335
+ }
336
+ }
337
+ ]
338
+ },
339
+ "valueClass": "value",
340
+ "diagnostics": []
341
+ }
342
+ },
343
+ {
344
+ "id": 12,
345
+ "alias": "F5",
346
+ "cstType": "function",
347
+ "definitionFormal": "[α∈Z, β∈Z] debool(I{(α,0) | α<β} ∪ I{(α-β,1) | α≥β})",
348
+ "term": "деление с остатком на степень двойки",
349
+ "convention": "Предполагается, что удвоенный делитель больше делимого",
350
+ "definitionText": "",
351
+ "analysis": {
352
+ "success": true,
353
+ "type": {
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
+ ]
392
+ },
393
+ "valueClass": "value",
394
+ "diagnostics": []
395
+ }
396
+ },
397
+ {
398
+ "id": 13,
399
+ "alias": "F6",
400
+ "cstType": "function",
401
+ "definitionFormal": "[α∈Z, β∈Z] pr1(F5[α, β])",
402
+ "term": "остаток",
403
+ "definitionText": "",
404
+ "convention": "",
405
+ "analysis": {
406
+ "success": true,
407
+ "type": {
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
+ ]
435
+ },
436
+ "valueClass": "value",
437
+ "diagnostics": []
438
+ }
439
+ },
440
+ {
441
+ "id": 14,
442
+ "alias": "F7",
443
+ "cstType": "function",
444
+ "definitionFormal": "[α∈Z, β∈Z] pr2(F5[α, β])",
445
+ "term": "целая часть",
446
+ "definitionText": "",
447
+ "convention": "",
448
+ "analysis": {
449
+ "success": true,
450
+ "type": {
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
+ },
479
+ "valueClass": "value",
480
+ "diagnostics": []
481
+ }
482
+ },
483
+ {
484
+ "id": 15,
485
+ "alias": "D5",
486
+ "cstType": "term",
487
+ "definitionFormal": "{(0, D3-1), (1, D4-1), (2, D1-D3), (3, D2-D4)}",
488
+ "term": "шоколадка как кучки Ним",
489
+ "definitionText": "Четыре кучки камней после разреза по отравленной дольке: слева, сверху, справа и снизу",
490
+ "convention": "",
491
+ "analysis": {
492
+ "success": true,
493
+ "type": {
494
+ "typeID": 5,
495
+ "base": {
496
+ "typeID": 4,
497
+ "factors": [
498
+ {
499
+ "typeID": 2,
500
+ "isOrdered": true,
501
+ "isArithmetic": true,
502
+ "isIntegerCompatible": true
503
+ },
504
+ {
505
+ "typeID": 2,
506
+ "isOrdered": true,
507
+ "isArithmetic": true,
508
+ "isIntegerCompatible": true
509
+ }
510
+ ]
511
+ }
512
+ },
513
+ "valueClass": "value",
514
+ "diagnostics": []
515
+ }
516
+ },
517
+ {
518
+ "id": 16,
519
+ "alias": "D6",
520
+ "cstType": "term",
521
+ "definitionFormal": "card(D5)",
522
+ "term": "количество кучек",
523
+ "definitionText": "",
524
+ "convention": "",
525
+ "analysis": {
526
+ "success": true,
527
+ "type": {
528
+ "typeID": 2,
529
+ "isOrdered": true,
530
+ "isArithmetic": true,
531
+ "isIntegerCompatible": true
532
+ },
533
+ "valueClass": "value",
534
+ "diagnostics": []
535
+ }
536
+ },
537
+ {
538
+ "id": 17,
539
+ "alias": "D7",
540
+ "cstType": "term",
541
+ "definitionFormal": "Pr1(D5)",
542
+ "term": "номера кучек",
543
+ "definitionText": "",
544
+ "convention": "",
545
+ "analysis": {
546
+ "success": true,
547
+ "type": {
548
+ "typeID": 5,
549
+ "base": {
550
+ "typeID": 2,
551
+ "isOrdered": true,
552
+ "isArithmetic": true,
553
+ "isIntegerCompatible": true
554
+ }
555
+ },
556
+ "valueClass": "value",
557
+ "diagnostics": []
558
+ }
559
+ },
560
+ {
561
+ "id": 18,
562
+ "alias": "D8",
563
+ "cstType": "term",
564
+ "definitionFormal": "Pr2(D5)",
565
+ "term": "размеры кучек",
566
+ "definitionText": "",
567
+ "convention": "",
568
+ "analysis": {
569
+ "success": true,
570
+ "type": {
571
+ "typeID": 5,
572
+ "base": {
573
+ "typeID": 2,
574
+ "isOrdered": true,
575
+ "isArithmetic": true,
576
+ "isIntegerCompatible": true
577
+ }
578
+ },
579
+ "valueClass": "value",
580
+ "diagnostics": []
581
+ }
582
+ },
583
+ {
584
+ "id": 19,
585
+ "alias": "A2",
586
+ "cstType": "axiom",
587
+ "definitionFormal": "card(D5)=card(D7)",
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
+ {
601
+ "id": 20,
602
+ "alias": "A3",
603
+ "cstType": "axiom",
604
+ "definitionFormal": "∀α∈D5 (pr1(α)<D6 & pr1(α)≥0)",
605
+ "term": "последовательная нумерация кучек",
606
+ "definitionText": "Номера кучек — целые от нуля до количества кучек минус один",
607
+ "convention": "",
608
+ "analysis": {
609
+ "success": true,
610
+ "type": {
611
+ "typeID": 6
612
+ },
613
+ "valueClass": "value",
614
+ "diagnostics": []
615
+ }
616
+ },
617
+ {
618
+ "id": 21,
619
+ "alias": "F8",
620
+ "cstType": "function",
621
+ "definitionFormal": "[α∈Z] F1[α,D5]",
622
+ "term": "количество камней в данной кучке",
623
+ "definitionText": "",
624
+ "convention": "",
625
+ "analysis": {
626
+ "success": true,
627
+ "type": {
628
+ "typeID": 7,
629
+ "result": {
630
+ "typeID": 2,
631
+ "baseID": "R1F1",
632
+ "isOrdered": true,
633
+ "isArithmetic": true,
634
+ "isIntegerCompatible": true
635
+ },
636
+ "args": [
637
+ {
638
+ "alias": "α",
639
+ "type": {
640
+ "typeID": 2,
641
+ "isOrdered": true,
642
+ "isArithmetic": true,
643
+ "isIntegerCompatible": true
644
+ }
645
+ }
646
+ ]
647
+ },
648
+ "valueClass": "value",
649
+ "diagnostics": []
650
+ }
651
+ },
652
+ {
653
+ "id": 22,
654
+ "alias": "D9",
655
+ "cstType": "term",
656
+ "definitionFormal": "Pr1(Fi2[{0}](D5))",
657
+ "term": "пустые кучки",
658
+ "definitionText": "Номера кучек с нулевым размером",
659
+ "convention": "",
660
+ "analysis": {
661
+ "success": true,
662
+ "type": {
663
+ "typeID": 5,
664
+ "base": {
665
+ "typeID": 2,
666
+ "isOrdered": true,
667
+ "isArithmetic": true,
668
+ "isIntegerCompatible": true
669
+ }
670
+ },
671
+ "valueClass": "value",
672
+ "diagnostics": []
673
+ }
674
+ },
675
+ {
676
+ "id": 23,
677
+ "alias": "D10",
678
+ "cstType": "term",
679
+ "definitionFormal": "D7\\D9",
680
+ "term": "непустые кучки",
681
+ "definitionText": "Номера кучек с положительным размером",
682
+ "convention": "",
683
+ "analysis": {
684
+ "success": true,
685
+ "type": {
686
+ "typeID": 5,
687
+ "base": {
688
+ "typeID": 2,
689
+ "isOrdered": true,
690
+ "isArithmetic": true,
691
+ "isIntegerCompatible": true
692
+ }
693
+ },
694
+ "valueClass": "value",
695
+ "diagnostics": []
696
+ }
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
+ {
716
+ "id": 25,
717
+ "alias": "T2",
718
+ "cstType": "statement",
719
+ "definitionFormal": "card(D10)=1",
720
+ "term": "существует выигрышный ход",
721
+ "definitionText": "Осталась ровно одна непустая кучка",
722
+ "convention": "",
723
+ "analysis": {
724
+ "success": true,
725
+ "type": {
726
+ "typeID": 6
727
+ },
728
+ "valueClass": "value",
729
+ "diagnostics": []
730
+ }
731
+ },
732
+ {
733
+ "id": 26,
734
+ "alias": "F10",
735
+ "cstType": "function",
736
+ "definitionFormal": "[σ∈D7×Z] debool(I{ pr2(σ)*D2 | P1[pr1(σ)]} ∪ I{ pr2(σ)*D1 | ¬P1[pr1(σ)]})",
737
+ "term": "оценка хода Ним",
738
+ "definitionText": "Стоимость хода в дольках шоколадки: для чётного номера кучки — размер, умноженный на длину, иначе — на ширину",
739
+ "convention": "",
740
+ "analysis": {
741
+ "success": true,
742
+ "type": {
743
+ "typeID": 7,
744
+ "result": {
745
+ "typeID": 2,
746
+ "isOrdered": true,
747
+ "isArithmetic": true,
748
+ "isIntegerCompatible": true
749
+ },
750
+ "args": [
751
+ {
752
+ "alias": "σ",
753
+ "type": {
754
+ "typeID": 4,
755
+ "factors": [
756
+ {
757
+ "typeID": 2,
758
+ "isOrdered": true,
759
+ "isArithmetic": true,
760
+ "isIntegerCompatible": true
761
+ },
762
+ {
763
+ "typeID": 2,
764
+ "isOrdered": true,
765
+ "isArithmetic": true,
766
+ "isIntegerCompatible": true
767
+ }
768
+ ]
769
+ }
770
+ }
771
+ ]
772
+ },
773
+ "valueClass": "value",
774
+ "diagnostics": []
775
+ }
776
+ }
777
+ ],
778
+ "model": {
779
+ "items": [
780
+ {
781
+ "id": 1,
782
+ "type": "X1×X1",
783
+ "value": [
784
+ -111,
785
+ 4,
786
+ 6
787
+ ]
788
+ },
789
+ {
790
+ "id": 4,
791
+ "type": "X1×X1",
792
+ "value": [
793
+ -111,
794
+ 2,
795
+ 3
796
+ ]
797
+ }
798
+ ]
799
+ }
800
+ },
801
+ "diagnostics": []
802
+ }