egglog 2.0.0

egglog is a language that combines the benefits of equality saturation and datalog. It can be used for analysis, optimization, and synthesis of programs. It is the successor to the popular rust library egg.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
;; created by `python python/tests/test_array_api.py`
(push 1)
(sort DType)
(constructor DType_float64 () DType)
(let $%__expr_3312772843316740737 (DType_float64 ))
(sort Boolean)
(function Boolean_to_bool (Boolean) bool :no-merge)
(constructor DType___eq__ (DType DType) Boolean)
(sort NDArray)
(constructor NDArray_dtype (NDArray) DType)
(constructor assume_isfinite (NDArray) NDArray)
(sort TupleInt)
(constructor assume_shape (NDArray TupleInt) NDArray)
(constructor assume_dtype (NDArray DType) NDArray)
(constructor NDArray_var (String) NDArray :cost 200)
(sort Int)
(sort Vec_Int (Vec Int))
(constructor TupleInt_from_vec (Vec_Int) TupleInt)
(constructor Int___init__ (i64) Int)
(let $%__expr_-3454922750681412518 (DType___eq__ $%__expr_3312772843316740737 (NDArray_dtype (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))))))
(ruleset array_api_ruleset)
(constructor i-TupleInt__-Int_i (TupleInt Int) TupleInt)
(rewrite (i-TupleInt__-Int_i i _) i :subsume :ruleset array_api_ruleset)
(sort TupleTupleInt)
(constructor TupleTupleInt_single (TupleInt) TupleTupleInt)
(sort UnstableFn_TupleInt_Int (UnstableFn (Int ) TupleInt))
(constructor TupleTupleInt___init__ (Int UnstableFn_TupleInt_Int) TupleTupleInt)
(rewrite (TupleTupleInt_single i) (TupleTupleInt___init__ (Int___init__ 1) (unstable-fn "i-TupleInt__-Int_i" i)) :subsume :ruleset array_api_ruleset)
(sort Value)
(sort TupleValue)
(constructor Value_if_ (Boolean Value Value) Value)
(constructor Int___lt__ (Int Int) Boolean)
(constructor TupleValue_length (TupleValue) Int)
(constructor TupleValue___getitem__ (TupleValue Int) Value)
(constructor Int___sub__ (Int Int) Int)
(constructor other-TupleValue_self-TupleValue_i-Int__Value_if___Int___lt___i__TupleValue_length_self____TupleValue___getitem___self_i___TupleValue___getitem___other__Int___sub___i__TupleValue_length_self____ (TupleValue TupleValue Int) Value)
(rewrite (other-TupleValue_self-TupleValue_i-Int__Value_if___Int___lt___i__TupleValue_length_self____TupleValue___getitem___self_i___TupleValue___getitem___other__Int___sub___i__TupleValue_length_self____ other self i) (Value_if_ (Int___lt__ i (TupleValue_length self)) (TupleValue___getitem__ self i) (TupleValue___getitem__ other (Int___sub__ i (TupleValue_length self)))) :subsume :ruleset array_api_ruleset)
(constructor TupleValue___add__ (TupleValue TupleValue) TupleValue)
(sort UnstableFn_Value_Int (UnstableFn (Int ) Value))
(constructor TupleValue___init__ (Int UnstableFn_Value_Int) TupleValue)
(constructor Int___add__ (Int Int) Int)
(rewrite (TupleValue___add__ self other) (TupleValue___init__ (Int___add__ (TupleValue_length self) (TupleValue_length other)) (unstable-fn "other-TupleValue_self-TupleValue_i-Int__Value_if___Int___lt___i__TupleValue_length_self____TupleValue___getitem___self_i___TupleValue___getitem___other__Int___sub___i__TupleValue_length_self____" other self)) :ruleset array_api_ruleset)
(constructor Boolean___or__ (Boolean Boolean) Boolean)
(constructor Value___eq__ (Value Value) Boolean)
(constructor value-Value_acc-Boolean_j-Value__Boolean___or___acc__Value___eq___value_j__ (Value Boolean Value) Boolean)
(rewrite (value-Value_acc-Boolean_j-Value__Boolean___or___acc__Value___eq___value_j__ value acc j) (Boolean___or__ acc (Value___eq__ value j)) :subsume :ruleset array_api_ruleset)
(constructor TupleValue_contains (TupleValue Value) Boolean)
(sort UnstableFn_Boolean_Boolean_Value (UnstableFn (Boolean Value) Boolean))
(constructor TupleValue_foldl_boolean (TupleValue UnstableFn_Boolean_Boolean_Value Boolean) Boolean)
(constructor Boolean___init__ (bool) Boolean)
(rewrite (TupleValue_contains self value) (TupleValue_foldl_boolean self (unstable-fn "value-Value_acc-Boolean_j-Value__Boolean___or___acc__Value___eq___value_j__" value) (Boolean___init__ false)) :ruleset array_api_ruleset)
(constructor Value_int (Int) Value)
(constructor TupleInt___getitem__ (TupleInt Int) Int)
(constructor ti-TupleInt_i-Int__Value_int__TupleInt___getitem___ti_i__ (TupleInt Int) Value)
(rewrite (ti-TupleInt_i-Int__Value_int__TupleInt___getitem___ti_i__ ti i) (Value_int (TupleInt___getitem__ ti i)) :subsume :ruleset array_api_ruleset)
(constructor TupleValue_from_tuple_int (TupleInt) TupleValue)
(constructor TupleInt_length (TupleInt) Int)
(rewrite (TupleValue_from_tuple_int ti) (TupleValue___init__ (TupleInt_length ti) (unstable-fn "ti-TupleInt_i-Int__Value_int__TupleInt___getitem___ti_i__" ti)) :subsume :ruleset array_api_ruleset)
(constructor TupleInt_if_ (Boolean TupleInt TupleInt) TupleInt)
(constructor TupleTupleInt_length (TupleTupleInt) Int)
(constructor TupleTupleInt___getitem__ (TupleTupleInt Int) TupleInt)
(constructor other-TupleTupleInt_self-TupleTupleInt_i-Int__TupleInt_if___Int___lt___i__TupleTupleInt_length_self____TupleTupleInt___getitem___self_i___TupleTupleInt___getitem___other__Int___sub___i__TupleTupleInt_length_self____ (TupleTupleInt TupleTupleInt Int) TupleInt)
(rewrite (other-TupleTupleInt_self-TupleTupleInt_i-Int__TupleInt_if___Int___lt___i__TupleTupleInt_length_self____TupleTupleInt___getitem___self_i___TupleTupleInt___getitem___other__Int___sub___i__TupleTupleInt_length_self____ other self i) (TupleInt_if_ (Int___lt__ i (TupleTupleInt_length self)) (TupleTupleInt___getitem__ self i) (TupleTupleInt___getitem__ other (Int___sub__ i (TupleTupleInt_length self)))) :subsume :ruleset array_api_ruleset)
(constructor TupleTupleInt___add__ (TupleTupleInt TupleTupleInt) TupleTupleInt)
(rewrite (TupleTupleInt___add__ self other) (TupleTupleInt___init__ (Int___add__ (TupleTupleInt_length self) (TupleTupleInt_length other)) (unstable-fn "other-TupleTupleInt_self-TupleTupleInt_i-Int__TupleInt_if___Int___lt___i__TupleTupleInt_length_self____TupleTupleInt___getitem___self_i___TupleTupleInt___getitem___other__Int___sub___i__TupleTupleInt_length_self____" other self)) :ruleset array_api_ruleset)
(constructor n-Int_self-TupleTupleInt_i-Int__TupleTupleInt___getitem___self__Int___add___i_n__ (Int TupleTupleInt Int) TupleInt)
(rewrite (n-Int_self-TupleTupleInt_i-Int__TupleTupleInt___getitem___self__Int___add___i_n__ n self i) (TupleTupleInt___getitem__ self (Int___add__ i n)) :subsume :ruleset array_api_ruleset)
(constructor TupleTupleInt_drop (TupleTupleInt Int) TupleTupleInt)
(rewrite (TupleTupleInt_drop self n) (TupleTupleInt___init__ (Int___sub__ (TupleTupleInt_length self) n) (unstable-fn "n-Int_self-TupleTupleInt_i-Int__TupleTupleInt___getitem___self__Int___add___i_n__" n self)) :ruleset array_api_ruleset)
(sort UnstableFn_Int_TupleInt (UnstableFn (TupleInt ) Int))
(constructor f-UnstableFn_Int_TupleInt_self-TupleTupleInt_i-Int__unstable-app_f__TupleTupleInt___getitem___self_i__ (UnstableFn_Int_TupleInt TupleTupleInt Int) Int)
(rewrite (f-UnstableFn_Int_TupleInt_self-TupleTupleInt_i-Int__unstable-app_f__TupleTupleInt___getitem___self_i__ f self i) (unstable-app f (TupleTupleInt___getitem__ self i)) :subsume :ruleset array_api_ruleset)
(constructor TupleTupleInt_map_int (TupleTupleInt UnstableFn_Int_TupleInt) TupleInt)
(sort UnstableFn_Int_Int (UnstableFn (Int ) Int))
(constructor TupleInt___init__ (Int UnstableFn_Int_Int) TupleInt)
(rewrite (TupleTupleInt_map_int self f) (TupleInt___init__ (TupleTupleInt_length self) (unstable-fn "f-UnstableFn_Int_TupleInt_self-TupleTupleInt_i-Int__unstable-app_f__TupleTupleInt___getitem___self_i__" f self)) :ruleset array_api_ruleset)
(constructor x-TupleInt__TupleInt_length_x_ (TupleInt) Int)
(rewrite (x-TupleInt__TupleInt_length_x_ x) (TupleInt_length x) :subsume :ruleset array_api_ruleset)
(constructor Int___mod__ (Int Int) Int)
(constructor Int___floordiv__ (Int Int) Int)
(constructor TupleInt_product (TupleInt) Int)
(constructor i-Int_self-TupleTupleInt_j-Int__TupleInt___getitem____TupleTupleInt___getitem___self_j___Int___mod____Int___floordiv___i__TupleInt_product__TupleTupleInt_map_int__TupleTupleInt_drop_self__Int___add___j__Int___init___1_____unstable-fn__x-TupleInt__TupleInt_length_x________TupleInt_length__TupleTupleInt___getitem___self_j____ (Int TupleTupleInt Int) Int)
(rewrite (i-Int_self-TupleTupleInt_j-Int__TupleInt___getitem____TupleTupleInt___getitem___self_j___Int___mod____Int___floordiv___i__TupleInt_product__TupleTupleInt_map_int__TupleTupleInt_drop_self__Int___add___j__Int___init___1_____unstable-fn__x-TupleInt__TupleInt_length_x________TupleInt_length__TupleTupleInt___getitem___self_j____ i self j) (TupleInt___getitem__ (TupleTupleInt___getitem__ self j) (Int___mod__ (Int___floordiv__ i (TupleInt_product (TupleTupleInt_map_int (TupleTupleInt_drop self (Int___add__ j (Int___init__ 1))) (unstable-fn "x-TupleInt__TupleInt_length_x_")))) (TupleInt_length (TupleTupleInt___getitem__ self j)))) :subsume :ruleset array_api_ruleset)
(constructor self-TupleTupleInt_i-Int__TupleInt___init____TupleTupleInt_length_self___unstable-fn__i-Int_self-TupleTupleInt_j-Int__TupleInt___getitem____TupleTupleInt___getitem___self_j___Int___mod____Int___floordiv___i__TupleInt_product__TupleTupleInt_map_int__TupleTupleInt_drop_self__Int___add___j__Int___init___1_____unstable-fn__x-TupleInt__TupleInt_length_x________TupleInt_length__TupleTupleInt___getitem___self_j______i_self__ (TupleTupleInt Int) TupleInt)
(rewrite (self-TupleTupleInt_i-Int__TupleInt___init____TupleTupleInt_length_self___unstable-fn__i-Int_self-TupleTupleInt_j-Int__TupleInt___getitem____TupleTupleInt___getitem___self_j___Int___mod____Int___floordiv___i__TupleInt_product__TupleTupleInt_map_int__TupleTupleInt_drop_self__Int___add___j__Int___init___1_____unstable-fn__x-TupleInt__TupleInt_length_x________TupleInt_length__TupleTupleInt___getitem___self_j______i_self__ self i) (TupleInt___init__ (TupleTupleInt_length self) (unstable-fn "i-Int_self-TupleTupleInt_j-Int__TupleInt___getitem____TupleTupleInt___getitem___self_j___Int___mod____Int___floordiv___i__TupleInt_product__TupleTupleInt_map_int__TupleTupleInt_drop_self__Int___add___j__Int___init___1_____unstable-fn__x-TupleInt__TupleInt_length_x________TupleInt_length__TupleTupleInt___getitem___self_j____" i self)) :subsume :ruleset array_api_ruleset)
(constructor TupleTupleInt_product (TupleTupleInt) TupleTupleInt)
(rewrite (TupleTupleInt_product self) (TupleTupleInt___init__ (TupleInt_product (TupleTupleInt_map_int self (unstable-fn "x-TupleInt__TupleInt_length_x_"))) (unstable-fn "self-TupleTupleInt_i-Int__TupleInt___init____TupleTupleInt_length_self___unstable-fn__i-Int_self-TupleTupleInt_j-Int__TupleInt___getitem____TupleTupleInt___getitem___self_j___Int___mod____Int___floordiv___i__TupleInt_product__TupleTupleInt_map_int__TupleTupleInt_drop_self__Int___add___j__Int___init___1_____unstable-fn__x-TupleInt__TupleInt_length_x________TupleInt_length__TupleTupleInt___getitem___self_j______i_self__" self)) :subsume :ruleset array_api_ruleset)
(constructor i-Int__-Int_i (Int Int) Int)
(rewrite (i-Int__-Int_i i _) i :subsume :ruleset array_api_ruleset)
(constructor TupleInt_single (Int) TupleInt)
(rewrite (TupleInt_single i) (TupleInt___init__ (Int___init__ 1) (unstable-fn "i-Int__-Int_i" i)) :ruleset array_api_ruleset)
(constructor i-Int_i (Int) Int)
(rewrite (i-Int_i i) i :subsume :ruleset array_api_ruleset)
(constructor TupleInt_range (Int) TupleInt)
(rewrite (TupleInt_range stop) (TupleInt___init__ stop (unstable-fn "i-Int_i")) :subsume :ruleset array_api_ruleset)
(constructor Int_if_ (Boolean Int Int) Int)
(constructor other-TupleInt_self-TupleInt_i-Int__Int_if___Int___lt___i__TupleInt_length_self____TupleInt___getitem___self_i___TupleInt___getitem___other__Int___sub___i__TupleInt_length_self____ (TupleInt TupleInt Int) Int)
(rewrite (other-TupleInt_self-TupleInt_i-Int__Int_if___Int___lt___i__TupleInt_length_self____TupleInt___getitem___self_i___TupleInt___getitem___other__Int___sub___i__TupleInt_length_self____ other self i) (Int_if_ (Int___lt__ i (TupleInt_length self)) (TupleInt___getitem__ self i) (TupleInt___getitem__ other (Int___sub__ i (TupleInt_length self)))) :subsume :ruleset array_api_ruleset)
(constructor TupleInt___add__ (TupleInt TupleInt) TupleInt)
(rewrite (TupleInt___add__ self other) (TupleInt___init__ (Int___add__ (TupleInt_length self) (TupleInt_length other)) (unstable-fn "other-TupleInt_self-TupleInt_i-Int__Int_if___Int___lt___i__TupleInt_length_self____TupleInt___getitem___self_i___TupleInt___getitem___other__Int___sub___i__TupleInt_length_self____" other self)) :ruleset array_api_ruleset)
(constructor Int___eq__ (Int Int) Boolean)
(constructor i-Int_acc-Boolean_j-Int__Boolean___or___acc__Int___eq___i_j__ (Int Boolean Int) Boolean)
(rewrite (i-Int_acc-Boolean_j-Int__Boolean___or___acc__Int___eq___i_j__ i acc j) (Boolean___or__ acc (Int___eq__ i j)) :subsume :ruleset array_api_ruleset)
(constructor TupleInt_contains (TupleInt Int) Boolean)
(sort UnstableFn_Boolean_Boolean_Int (UnstableFn (Boolean Int) Boolean))
(constructor TupleInt_foldl_boolean (TupleInt UnstableFn_Boolean_Boolean_Int Boolean) Boolean)
(rewrite (TupleInt_contains self i) (TupleInt_foldl_boolean self (unstable-fn "i-Int_acc-Boolean_j-Int__Boolean___or___acc__Int___eq___i_j__" i) (Boolean___init__ false)) :subsume :ruleset array_api_ruleset)
(sort UnstableFn_Boolean_Int (UnstableFn (Int ) Boolean))
(constructor TupleInt_append (TupleInt Int) TupleInt)
(constructor f-UnstableFn_Boolean_Int_acc-TupleInt_v-Int__TupleInt_if___unstable-app_f_v___TupleInt_append_acc_v__acc_ (UnstableFn_Boolean_Int TupleInt Int) TupleInt)
(rewrite (f-UnstableFn_Boolean_Int_acc-TupleInt_v-Int__TupleInt_if___unstable-app_f_v___TupleInt_append_acc_v__acc_ f acc v) (TupleInt_if_ (unstable-app f v) (TupleInt_append acc v) acc) :subsume :ruleset array_api_ruleset)
(constructor TupleInt_filter (TupleInt UnstableFn_Boolean_Int) TupleInt)
(sort UnstableFn_TupleInt_TupleInt_Int (UnstableFn (TupleInt Int) TupleInt))
(constructor TupleInt_foldl_tuple_int (TupleInt UnstableFn_TupleInt_TupleInt_Int TupleInt) TupleInt)
(constructor TupleInt_EMPTY () TupleInt)
(rewrite (TupleInt_filter self f) (TupleInt_foldl_tuple_int self (unstable-fn "f-UnstableFn_Boolean_Int_acc-TupleInt_v-Int__TupleInt_if___unstable-app_f_v___TupleInt_append_acc_v__acc_" f) (TupleInt_EMPTY )) :subsume :ruleset array_api_ruleset)
(constructor f-UnstableFn_Int_Int_self-TupleInt_i-Int__unstable-app_f__TupleInt___getitem___self_i__ (UnstableFn_Int_Int TupleInt Int) Int)
(rewrite (f-UnstableFn_Int_Int_self-TupleInt_i-Int__unstable-app_f__TupleInt___getitem___self_i__ f self i) (unstable-app f (TupleInt___getitem__ self i)) :subsume :ruleset array_api_ruleset)
(constructor TupleInt_map (TupleInt UnstableFn_Int_Int) TupleInt)
(rewrite (TupleInt_map self f) (TupleInt___init__ (TupleInt_length self) (unstable-fn "f-UnstableFn_Int_Int_self-TupleInt_i-Int__unstable-app_f__TupleInt___getitem___self_i__" f self)) :subsume :ruleset array_api_ruleset)
(constructor n-Int_self-TupleInt_i-Int__TupleInt___getitem___self__Int___add___i_n__ (Int TupleInt Int) Int)
(rewrite (n-Int_self-TupleInt_i-Int__TupleInt___getitem___self__Int___add___i_n__ n self i) (TupleInt___getitem__ self (Int___add__ i n)) :subsume :ruleset array_api_ruleset)
(constructor TupleInt_drop (TupleInt Int) TupleInt)
(rewrite (TupleInt_drop self n) (TupleInt___init__ (Int___sub__ (TupleInt_length self) n) (unstable-fn "n-Int_self-TupleInt_i-Int__TupleInt___getitem___self__Int___add___i_n__" n self)) :ruleset array_api_ruleset)
(constructor Int___mul__ (Int Int) Int)
(constructor acc-Int_i-Int__Int___mul___acc_i_ (Int Int) Int)
(rewrite (acc-Int_i-Int__Int___mul___acc_i_ acc i) (Int___mul__ acc i) :subsume :ruleset array_api_ruleset)
(sort UnstableFn_Int_Int_Int (UnstableFn (Int Int) Int))
(constructor TupleInt_foldl (TupleInt UnstableFn_Int_Int_Int Int) Int)
(rewrite (TupleInt_product self) (TupleInt_foldl self (unstable-fn "acc-Int_i-Int__Int___mul___acc_i_") (Int___init__ 1)) :ruleset array_api_ruleset)
(constructor f-UnstableFn_TupleInt_Int_self-TupleInt_i-Int__unstable-app_f__TupleInt___getitem___self_i__ (UnstableFn_TupleInt_Int TupleInt Int) TupleInt)
(rewrite (f-UnstableFn_TupleInt_Int_self-TupleInt_i-Int__unstable-app_f__TupleInt___getitem___self_i__ f self i) (unstable-app f (TupleInt___getitem__ self i)) :subsume :ruleset array_api_ruleset)
(constructor TupleInt_map_tuple_int (TupleInt UnstableFn_TupleInt_Int) TupleTupleInt)
(rewrite (TupleInt_map_tuple_int self f) (TupleTupleInt___init__ (TupleInt_length self) (unstable-fn "f-UnstableFn_TupleInt_Int_self-TupleInt_i-Int__unstable-app_f__TupleInt___getitem___self_i__" f self)) :ruleset array_api_ruleset)
(constructor self-TupleInt_i-Int__TupleInt___getitem___self_i_ (TupleInt Int) Int)
(rewrite (self-TupleInt_i-Int__TupleInt___getitem___self_i_ self i) (TupleInt___getitem__ self i) :subsume :ruleset array_api_ruleset)
(constructor TupleInt_select (TupleInt TupleInt) TupleInt)
(rewrite (TupleInt_select self indices) (TupleInt_map indices (unstable-fn "self-TupleInt_i-Int__TupleInt___getitem___self_i_" self)) :ruleset array_api_ruleset)
(constructor Boolean___invert__ (Boolean) Boolean)
(constructor indices-TupleInt_i-Int__Boolean___invert____TupleInt_contains_indices_i__ (TupleInt Int) Boolean)
(rewrite (indices-TupleInt_i-Int__Boolean___invert____TupleInt_contains_indices_i__ indices i) (Boolean___invert__ (TupleInt_contains indices i)) :subsume :ruleset array_api_ruleset)
(constructor TupleInt_deselect (TupleInt TupleInt) TupleInt)
(rewrite (TupleInt_deselect self indices) (TupleInt_map (TupleInt_filter (TupleInt_range (TupleInt_length self)) (unstable-fn "indices-TupleInt_i-Int__Boolean___invert____TupleInt_contains_indices_i__" indices)) (unstable-fn "self-TupleInt_i-Int__TupleInt___getitem___self_i_" self)) :ruleset array_api_ruleset)
(constructor value-Value__-TupleInt_value (Value TupleInt) Value)
(rewrite (value-Value__-TupleInt_value value _) value :subsume :ruleset array_api_ruleset)
(constructor NDArray_scalar (Value) NDArray)
(sort UnstableFn_Value_TupleInt (UnstableFn (TupleInt ) Value))
(constructor NDArray___init__ (TupleInt DType UnstableFn_Value_TupleInt) NDArray)
(constructor Value_dtype (Value) DType)
(rewrite (NDArray_scalar value) (NDArray___init__ (TupleInt_EMPTY ) (Value_dtype value) (unstable-fn "value-Value__-TupleInt_value" value)) :ruleset array_api_ruleset)
(sort TupleNDArray)
(constructor NDArray_if_ (Boolean NDArray NDArray) NDArray)
(constructor TupleNDArray_length (TupleNDArray) Int)
(constructor TupleNDArray___getitem__ (TupleNDArray Int) NDArray)
(constructor other-TupleNDArray_self-TupleNDArray_i-Int__NDArray_if___Int___lt___i__TupleNDArray_length_self____TupleNDArray___getitem___self_i___TupleNDArray___getitem___other__Int___sub___i__TupleNDArray_length_self____ (TupleNDArray TupleNDArray Int) NDArray)
(rewrite (other-TupleNDArray_self-TupleNDArray_i-Int__NDArray_if___Int___lt___i__TupleNDArray_length_self____TupleNDArray___getitem___self_i___TupleNDArray___getitem___other__Int___sub___i__TupleNDArray_length_self____ other self i) (NDArray_if_ (Int___lt__ i (TupleNDArray_length self)) (TupleNDArray___getitem__ self i) (TupleNDArray___getitem__ other (Int___sub__ i (TupleNDArray_length self)))) :subsume :ruleset array_api_ruleset)
(constructor TupleNDArray___add__ (TupleNDArray TupleNDArray) TupleNDArray)
(sort UnstableFn_NDArray_Int (UnstableFn (Int ) NDArray))
(constructor TupleNDArray___init__ (Int UnstableFn_NDArray_Int) TupleNDArray)
(rewrite (TupleNDArray___add__ self other) (TupleNDArray___init__ (Int___add__ (TupleNDArray_length self) (TupleNDArray_length other)) (unstable-fn "other-TupleNDArray_self-TupleNDArray_i-Int__NDArray_if___Int___lt___i__TupleNDArray_length_self____TupleNDArray___getitem___self_i___TupleNDArray___getitem___other__Int___sub___i__TupleNDArray_length_self____" other self)) :ruleset array_api_ruleset)
(sort LoopNestAPI)
(constructor LoopNestAPI_indices (LoopNestAPI) TupleTupleInt)
(constructor LoopNestAPI_get_dims (LoopNestAPI) TupleInt)
(rewrite (LoopNestAPI_indices self) (TupleTupleInt_product (TupleInt_map_tuple_int (LoopNestAPI_get_dims self) (unstable-fn "TupleInt_range"))) :ruleset array_api_ruleset)
(sort OptionalLoopNestAPI)
(constructor LoopNestAPI_from_tuple (TupleInt) OptionalLoopNestAPI)
(constructor OptionalLoopNestAPI_NONE () OptionalLoopNestAPI)
(rewrite (LoopNestAPI_from_tuple (TupleInt_EMPTY )) (OptionalLoopNestAPI_NONE ) :subsume :ruleset array_api_ruleset)
(constructor OptionalLoopNestAPI___init__ (LoopNestAPI) OptionalLoopNestAPI)
(constructor LoopNestAPI___init__ (Int OptionalLoopNestAPI) LoopNestAPI)
(rewrite (LoopNestAPI_from_tuple (TupleInt_append ti dim)) (OptionalLoopNestAPI___init__ (LoopNestAPI___init__ dim (LoopNestAPI_from_tuple ti))) :subsume :ruleset array_api_ruleset)
(rewrite (LoopNestAPI_get_dims (LoopNestAPI___init__ dim (OptionalLoopNestAPI_NONE ))) (TupleInt_single dim) :subsume :ruleset array_api_ruleset)
(rewrite (LoopNestAPI_get_dims (LoopNestAPI___init__ dim (OptionalLoopNestAPI___init__ lna))) (TupleInt_append (LoopNestAPI_get_dims lna) dim) :subsume :ruleset array_api_ruleset)
(constructor OptionalLoopNestAPI_unwrap (OptionalLoopNestAPI) LoopNestAPI)
(rewrite (OptionalLoopNestAPI_unwrap (OptionalLoopNestAPI___init__ lna)) lna :ruleset array_api_ruleset)
(constructor axis-TupleInt_i-Int__Boolean___invert____TupleInt_contains_axis_i__ (TupleInt Int) Boolean)
(rewrite (axis-TupleInt_i-Int__Boolean___invert____TupleInt_contains_axis_i__ axis i) (Boolean___invert__ (TupleInt_contains axis i)) :subsume :ruleset array_api_ruleset)
(constructor dims-TupleInt_i-Int__TupleInt___getitem___dims_i_ (TupleInt Int) Int)
(rewrite (dims-TupleInt_i-Int__TupleInt___getitem___dims_i_ dims i) (TupleInt___getitem__ dims i) :subsume :ruleset array_api_ruleset)
(constructor axis-TupleInt_i-Int__TupleInt_contains_axis_i_ (TupleInt Int) Boolean)
(rewrite (axis-TupleInt_i-Int__TupleInt_contains_axis_i_ axis i) (TupleInt_contains axis i) :subsume :ruleset array_api_ruleset)
(sort ShapeAPI)
(constructor ShapeAPI_deselect (ShapeAPI TupleInt) ShapeAPI)
(constructor ShapeAPI___init__ (TupleInt) ShapeAPI)
(rewrite (ShapeAPI_deselect (ShapeAPI___init__ dims) axis) (ShapeAPI___init__ (TupleInt_map (TupleInt_filter (TupleInt_range (TupleInt_length dims)) (unstable-fn "axis-TupleInt_i-Int__Boolean___invert____TupleInt_contains_axis_i__" axis)) (unstable-fn "dims-TupleInt_i-Int__TupleInt___getitem___dims_i_" dims))) :subsume :ruleset array_api_ruleset)
(constructor ShapeAPI_select (ShapeAPI TupleInt) ShapeAPI)
(rewrite (ShapeAPI_select (ShapeAPI___init__ dims) axis) (ShapeAPI___init__ (TupleInt_map (TupleInt_filter (TupleInt_range (TupleInt_length dims)) (unstable-fn "axis-TupleInt_i-Int__TupleInt_contains_axis_i_" axis)) (unstable-fn "dims-TupleInt_i-Int__TupleInt___getitem___dims_i_" dims))) :subsume :ruleset array_api_ruleset)
(constructor ShapeAPI_to_tuple (ShapeAPI) TupleInt)
(rewrite (ShapeAPI_to_tuple (ShapeAPI___init__ dims)) dims :subsume :ruleset array_api_ruleset)
(constructor NDArray_size (NDArray) Int)
(constructor NDArray_shape (NDArray) TupleInt)
(rewrite (NDArray_size x) (TupleInt_foldl (NDArray_shape x) (unstable-fn "Int___mul__") (Int___init__ 1)) :ruleset array_api_ruleset)
(constructor unique_values (NDArray) NDArray)
(constructor NDArray_vector (TupleValue) NDArray)
(constructor possible_values (Value) TupleValue)
(constructor NDArray_index (NDArray TupleInt) Value)
(constructor ALL_INDICES () TupleInt)
(rewrite (unique_values a) (NDArray_vector (possible_values (NDArray_index a (ALL_INDICES )))) :ruleset array_api_ruleset)
(constructor Value_isfinite (Value) Boolean)
(rewrite (Value_isfinite (Value_int i)) (Boolean___init__ true) :ruleset array_api_ruleset)
(constructor Value_bool (Boolean) Value)
(rewrite (Value_isfinite (Value_bool b)) (Boolean___init__ true) :ruleset array_api_ruleset)
(sort Float)
(constructor Value_float (Float) Value)
(constructor Float___init__ (f64) Float :cost 3)
(rewrite (Value_isfinite (Value_float (Float___init__ f))) (Boolean___init__ true) :when ((!= f NaN)) :ruleset array_api_ruleset)
(constructor isfinite (NDArray) NDArray)
(sort OptionalIntOrTuple)
(constructor sum (NDArray OptionalIntOrTuple) NDArray)
(constructor OptionalIntOrTuple_none () OptionalIntOrTuple)
(rewrite (isfinite (sum arr (OptionalIntOrTuple_none ))) (NDArray_scalar (Value_bool (Value_isfinite (NDArray_index arr (ALL_INDICES ))))) :ruleset array_api_ruleset)
(constructor assume_value_one_of (NDArray TupleValue) NDArray)
(rewrite (NDArray_shape (assume_value_one_of x vs)) (NDArray_shape x) :ruleset array_api_ruleset)
(rewrite (NDArray_dtype (assume_value_one_of x vs)) (NDArray_dtype x) :ruleset array_api_ruleset)
(rule ((= v (NDArray_index (assume_value_one_of x vs) idx)))
      ((union v (NDArray_index x idx))
       (union (possible_values v) vs))
        :ruleset array_api_ruleset )
(rewrite (NDArray_shape (assume_isfinite x)) (NDArray_shape x) :ruleset array_api_ruleset)
(rewrite (NDArray_dtype (assume_isfinite x)) (NDArray_dtype x) :ruleset array_api_ruleset)
(rewrite (NDArray_index (assume_isfinite x) ti) (NDArray_index x ti) :ruleset array_api_ruleset)
(rewrite (Value_isfinite (NDArray_index (assume_isfinite x) ti)) (Boolean___init__ true) :ruleset array_api_ruleset)
(rewrite (NDArray_shape (assume_shape x shape)) shape :ruleset array_api_ruleset)
(rewrite (NDArray_dtype (assume_shape x shape)) (NDArray_dtype x) :ruleset array_api_ruleset)
(rewrite (NDArray_index (assume_shape x shape) idx) (NDArray_index x idx) :ruleset array_api_ruleset)
(rewrite (NDArray_dtype (assume_dtype x dtype)) dtype :ruleset array_api_ruleset)
(rewrite (NDArray_shape (assume_dtype x dtype)) (NDArray_shape x) :ruleset array_api_ruleset)
(rewrite (NDArray_index (assume_dtype x dtype) idx) (NDArray_index x idx) :ruleset array_api_ruleset)
(sort IndexKey)
(constructor NDArray___getitem__ (NDArray IndexKey) NDArray)
(constructor IndexKey_int (Int) IndexKey)
(rewrite (NDArray___getitem__ x (IndexKey_int i)) (NDArray_scalar (NDArray_index x (TupleInt_single i))) :ruleset array_api_ruleset)
(sort OptionalBool)
(constructor reshape (NDArray TupleInt OptionalBool) NDArray)
(rule ((= __a (reshape x shape copy)))
      ((NDArray_shape x)
       (TupleInt_length (NDArray_shape x)))
        :ruleset array_api_ruleset )
(rule ((reshape x shape copy))
      ((TupleInt_length shape)
       (TupleInt___getitem__ shape (Int___init__ 0)))
        :ruleset array_api_ruleset )
(rewrite (reshape x shape copy) x :when ((= (TupleInt_length (NDArray_shape x)) (Int___init__ 1)) (= (TupleInt_length shape) (Int___init__ 1)) (= (TupleInt___getitem__ shape (Int___init__ 0)) (Int___init__ -1))) :ruleset array_api_ruleset)
(rewrite (NDArray_shape (NDArray_vector vs)) (TupleInt_single (TupleValue_length vs)) :ruleset array_api_ruleset)
(rewrite (NDArray_dtype (NDArray_vector vs)) (Value_dtype (TupleValue___getitem__ vs (Int___init__ 0))) :ruleset array_api_ruleset)
(rewrite (NDArray_index (NDArray_vector vs) ti) (TupleValue___getitem__ vs (TupleInt___getitem__ ti (Int___init__ 0))) :ruleset array_api_ruleset)
(rewrite (NDArray_shape (NDArray_scalar v)) (TupleInt_EMPTY ) :ruleset array_api_ruleset)
(rewrite (NDArray_dtype (NDArray_scalar v)) (Value_dtype v) :ruleset array_api_ruleset)
(rewrite (NDArray_index (NDArray_scalar v) (TupleInt_EMPTY )) v :ruleset array_api_ruleset)
(constructor any (NDArray) NDArray)
(constructor Value_to_truthy_value (Value) Value)
(rewrite (any x) (NDArray_scalar (Value_bool (TupleValue_contains (possible_values (Value_to_truthy_value (NDArray_index x (ALL_INDICES )))) (Value_bool (Boolean___init__ true))))) :ruleset array_api_ruleset)
(constructor NDArray___lt__ (NDArray NDArray) NDArray)
(constructor Value___lt__ (Value Value) Value)
(constructor broadcast_index (TupleInt TupleInt TupleInt) TupleInt)
(constructor broadcast_shapes (TupleInt TupleInt) TupleInt)
(rewrite (NDArray_index (NDArray___lt__ x y) idx) (Value___lt__ (NDArray_index x (broadcast_index (NDArray_shape x) (broadcast_shapes (NDArray_shape x) (NDArray_shape y)) idx)) (NDArray_index y (broadcast_index (NDArray_shape y) (broadcast_shapes (NDArray_shape x) (NDArray_shape y)) idx))) :ruleset array_api_ruleset)
(constructor NDArray___truediv__ (NDArray NDArray) NDArray)
(constructor Value___truediv__ (Value Value) Value)
(rewrite (NDArray_index (NDArray___truediv__ x y) idx) (Value___truediv__ (NDArray_index x (broadcast_index (NDArray_shape x) (broadcast_shapes (NDArray_shape x) (NDArray_shape y)) idx)) (NDArray_index y (broadcast_index (NDArray_shape y) (broadcast_shapes (NDArray_shape x) (NDArray_shape y)) idx))) :ruleset array_api_ruleset)
(rewrite (NDArray_index (NDArray_scalar v) idx) v :ruleset array_api_ruleset)
(constructor astype (NDArray DType) NDArray)
(constructor Value_astype (Value DType) Value)
(rewrite (NDArray_index (astype x dtype) idx) (Value_astype (NDArray_index x idx) dtype) :ruleset array_api_ruleset)
(relation greater_zero (Value))
(constructor unique_counts (NDArray) TupleNDArray)
(rule ((= v (NDArray_index (TupleNDArray___getitem__ (unique_counts x) (Int___init__ 1)) idx)))
      ((greater_zero v))
        :ruleset array_api_ruleset )
(rule ((greater_zero v)
       (= v1 (Value_astype v dtype)))
      ((greater_zero v1))
        :ruleset array_api_ruleset )
(rule ((= v (Value_float (Float___init__ f)))
       (> f 0.0))
      ((greater_zero v))
        :ruleset array_api_ruleset )
(rule ((= v (Value_int (Int___init__ i)))
       (> i 0))
      ((greater_zero v))
        :ruleset array_api_ruleset )
(rule ((greater_zero v)
       (greater_zero v1)
       (= v2 (Value___truediv__ v v1)))
      ((greater_zero v2))
        :ruleset array_api_ruleset )
(rule ((greater_zero v)
       (= v1 (Value___lt__ v (Value_int (Int___init__ 0)))))
      ((union v1 (Value_bool (Boolean___init__ false))))
        :ruleset array_api_ruleset )
(constructor TupleValue_append (TupleValue Value) TupleValue)
(constructor TupleValue_EMPTY () TupleValue)
(rewrite (possible_values (Value_bool b)) (TupleValue_append (TupleValue_EMPTY ) (Value_bool b)) :ruleset array_api_ruleset)
(rule ((= v1 (Value_astype v dtype))
       (greater_zero v))
      ((greater_zero v1))
        :ruleset array_api_ruleset )
(constructor svd (NDArray Boolean) TupleNDArray)
(rewrite (svd x full_matrices) (TupleNDArray___init__ (Int___init__ 3) (unstable-fn "TupleNDArray___getitem__" (svd x full_matrices))) :ruleset array_api_ruleset)
(constructor unique_inverse (NDArray) TupleNDArray)
(rewrite (unique_inverse x) (TupleNDArray___init__ (Int___init__ 2) (unstable-fn "TupleNDArray___getitem__" (unique_inverse x))) :ruleset array_api_ruleset)
(rewrite (TupleNDArray___getitem__ (unique_inverse x) (Int___init__ 0)) (unique_values x) :ruleset array_api_ruleset)
(constructor ndarray-abs (NDArray) NDArray)
(constructor Float_abs (Float) Float)
(rewrite (ndarray-abs (NDArray_scalar (Value_float f))) (NDArray_scalar (Value_float (Float_abs f))) :ruleset array_api_ruleset)
(rewrite (unique_counts x) (TupleNDArray___init__ (Int___init__ 2) (unstable-fn "TupleNDArray___getitem__" (unique_counts x))) :ruleset array_api_ruleset)
(rewrite (sum (TupleNDArray___getitem__ (unique_counts x) (Int___init__ 1)) (OptionalIntOrTuple_none )) (NDArray_scalar (Value_int (NDArray_size x))) :ruleset array_api_ruleset)
(rewrite (sum (astype (TupleNDArray___getitem__ (unique_counts x) (Int___init__ 1)) dtype) (OptionalIntOrTuple_none )) (astype (NDArray_scalar (Value_int (NDArray_size x))) dtype) :ruleset array_api_ruleset)
(rewrite (NDArray_dtype (astype x dtype)) dtype :ruleset array_api_ruleset)
(rewrite (astype (NDArray_scalar (Value_int (Int___init__ i))) $%__expr_3312772843316740737) (NDArray_scalar (Value_float (Float___init__ (to-f64 i)))) :ruleset array_api_ruleset)
(sort OptionalInt)
(constructor concat (TupleNDArray OptionalInt) NDArray)
(constructor TupleNDArray_append (TupleNDArray NDArray) TupleNDArray)
(constructor TupleNDArray_EMPTY () TupleNDArray)
(constructor OptionalInt_none () OptionalInt)
(rewrite (concat (TupleNDArray_append (TupleNDArray_EMPTY ) x) (OptionalInt_none )) x :ruleset array_api_ruleset)
(rewrite (unique_values (unique_values x)) (unique_values x) :ruleset array_api_ruleset)
(rewrite (sum (NDArray___truediv__ x (NDArray_scalar v)) (OptionalIntOrTuple_none )) (NDArray___truediv__ (sum x (OptionalIntOrTuple_none )) (NDArray_scalar v)) :ruleset array_api_ruleset)
(constructor NDArray_ndim (NDArray) Int)
(sort OptionalDType)
(sort OptionalDevice)
(constructor asarray (NDArray OptionalDType OptionalBool OptionalDevice) NDArray)
(constructor OptionalDevice_none () OptionalDevice)
(rewrite (NDArray_ndim (asarray a d ob (OptionalDevice_none ))) (NDArray_ndim a) :ruleset array_api_ruleset)
(constructor OptionalDType_none () OptionalDType)
(constructor OptionalBool_none () OptionalBool)
(rewrite (asarray a (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none )) a :ruleset array_api_ruleset)
(constructor check_index (Int Int) Int)
(constructor Boolean___and__ (Boolean Boolean) Boolean)
(constructor Int___ge__ (Int Int) Boolean)
(constructor Int_NEVER () Int)
(rewrite (check_index length idx) (Int_if_ (Boolean___and__ (Int___ge__ idx (Int___init__ 0)) (Int___lt__ idx length)) idx (Int_NEVER )) :ruleset array_api_ruleset)
(sort Vec_NDArray (Vec NDArray))
(function TupleNDArray_to_vec (TupleNDArray) Vec_NDArray :no-merge)
(constructor TupleNDArray_from_vec (Vec_NDArray) TupleNDArray)
(rule ((= tv (TupleNDArray_from_vec vs)))
      ((set (TupleNDArray_to_vec tv) vs))
        :ruleset array_api_ruleset )
(rewrite (TupleNDArray_length (TupleNDArray___init__ length idx_fn)) length :ruleset array_api_ruleset)
(rewrite (TupleNDArray___getitem__ (TupleNDArray___init__ length idx_fn) idx) (unstable-app idx_fn (check_index idx length)) :ruleset array_api_ruleset)
(rewrite (TupleNDArray_length (TupleNDArray_EMPTY )) (Int___init__ 0) :ruleset array_api_ruleset)
(constructor NDArray_NEVER () NDArray)
(rewrite (TupleNDArray___getitem__ (TupleNDArray_EMPTY ) idx) (NDArray_NEVER ) :ruleset array_api_ruleset)
(rewrite (TupleNDArray_length (TupleNDArray_append tv v)) (Int___add__ (TupleNDArray_length tv) (Int___init__ 1)) :ruleset array_api_ruleset)
(rewrite (TupleNDArray___getitem__ (TupleNDArray_append tv v) idx) (NDArray_if_ (Int___eq__ idx (TupleNDArray_length tv)) v (TupleNDArray___getitem__ tv idx)) :ruleset array_api_ruleset)
(rewrite (TupleNDArray___init__ (Int___init__ 0) idx_fn) (TupleNDArray_EMPTY ) :subsume :ruleset array_api_ruleset)
(rewrite (TupleNDArray___init__ (Int___init__ k) idx_fn) (TupleNDArray_append (TupleNDArray___init__ (Int___init__ (- k 1)) idx_fn) (unstable-app idx_fn (Int___init__ (- k 1)))) :subsume :when ((> k 0)) :ruleset array_api_ruleset)
(rewrite (TupleNDArray_EMPTY ) (TupleNDArray_from_vec (vec-of )) :ruleset array_api_ruleset)
(rewrite (TupleNDArray_append (TupleNDArray_from_vec vs) v) (TupleNDArray_from_vec (vec-append vs (vec-of v))) :ruleset array_api_ruleset)
(rule ((= (TupleNDArray_append tv v) (TupleNDArray_append tv1 v1)))
      ((union tv tv1)
       (union v v1))
        :ruleset array_api_ruleset )
(rewrite (NDArray_shape (NDArray___init__ shape dtype idx_fn)) shape :ruleset array_api_ruleset)
(rewrite (NDArray_dtype (NDArray___init__ shape dtype idx_fn)) dtype :ruleset array_api_ruleset)
(rewrite (NDArray_index (NDArray___init__ shape dtype idx_fn) idx) (unstable-app idx_fn idx) :subsume :ruleset array_api_ruleset)
(rewrite (NDArray_ndim x) (TupleInt_length (NDArray_shape x)) :ruleset array_api_ruleset)
(constructor NDArray_to_value (NDArray) Value)
(rewrite (NDArray_to_value x) (NDArray_index x (TupleInt_EMPTY )) :ruleset array_api_ruleset)
(constructor NDArray_to_values (NDArray) TupleValue)
(rewrite (NDArray_to_values (NDArray_vector tv)) tv :ruleset array_api_ruleset)
(rewrite (NDArray___truediv__ (NDArray_scalar (Value_float f)) (NDArray_scalar (Value_float f))) (NDArray_scalar (Value_float (Float___init__ 1.0))) :ruleset array_api_ruleset)
(constructor NDArray___sub__ (NDArray NDArray) NDArray)
(rewrite (NDArray___sub__ (NDArray_scalar (Value_float f)) (NDArray_scalar (Value_float f))) (NDArray_scalar (Value_float (Float___init__ 0.0))) :ruleset array_api_ruleset)
(constructor NDArray___gt__ (NDArray NDArray) NDArray)
(rewrite (NDArray___gt__ (NDArray_scalar (Value_float (Float___init__ fi1))) (NDArray_scalar (Value_float (Float___init__ fi2)))) (NDArray_scalar (Value_bool (Boolean___init__ true))) :when ((> fi1 fi2)) :ruleset array_api_ruleset)
(rewrite (NDArray___gt__ (NDArray_scalar (Value_float (Float___init__ fi1))) (NDArray_scalar (Value_float (Float___init__ fi2)))) (NDArray_scalar (Value_bool (Boolean___init__ false))) :when ((<= fi1 fi2)) :ruleset array_api_ruleset)
(constructor NDArray_T (NDArray) NDArray)
(rewrite (NDArray_T (NDArray_T x)) x :ruleset array_api_ruleset)
(rewrite (NDArray_if_ (Boolean___init__ true) x x1) x :ruleset array_api_ruleset)
(rewrite (NDArray_if_ (Boolean___init__ false) x x1) x1 :ruleset array_api_ruleset)
(rewrite (TupleValue_length (TupleValue___init__ length idx_fn)) length :ruleset array_api_ruleset)
(rewrite (TupleValue___getitem__ (TupleValue___init__ length idx_fn) idx) (unstable-app idx_fn (check_index idx length)) :ruleset array_api_ruleset)
(rewrite (TupleValue_length (TupleValue_EMPTY )) (Int___init__ 0) :ruleset array_api_ruleset)
(constructor Value_NEVER () Value)
(rewrite (TupleValue___getitem__ (TupleValue_EMPTY ) idx) (Value_NEVER ) :ruleset array_api_ruleset)
(rewrite (TupleValue_length (TupleValue_append tv v)) (Int___add__ (TupleValue_length tv) (Int___init__ 1)) :ruleset array_api_ruleset)
(rewrite (TupleValue___getitem__ (TupleValue_append tv v) idx) (Value_if_ (Int___eq__ idx (TupleValue_length tv)) v (TupleValue___getitem__ tv idx)) :ruleset array_api_ruleset)
(rewrite (TupleValue___init__ (Int___init__ 0) idx_fn) (TupleValue_EMPTY ) :subsume :ruleset array_api_ruleset)
(rewrite (TupleValue___init__ (Int___init__ k) idx_fn) (TupleValue_append (TupleValue___init__ (Int___init__ (- k 1)) idx_fn) (unstable-app idx_fn (Int___init__ (- k 1)))) :subsume :when ((> k 0)) :ruleset array_api_ruleset)
(sort Vec_Value (Vec Value))
(constructor TupleValue_from_vec (Vec_Value) TupleValue)
(rewrite (TupleValue_EMPTY ) (TupleValue_from_vec (vec-of )) :ruleset array_api_ruleset)
(rewrite (TupleValue_append (TupleValue_from_vec vs) v) (TupleValue_from_vec (vec-append vs (vec-of v))) :ruleset array_api_ruleset)
(rewrite (TupleValue_foldl_boolean (TupleValue_EMPTY ) bool_f b) b :subsume :ruleset array_api_ruleset)
(rewrite (TupleValue_foldl_boolean (TupleValue_append tv v) bool_f b) (unstable-app bool_f (TupleValue_foldl_boolean tv bool_f b) v) :subsume :ruleset array_api_ruleset)
(rule ((= (TupleValue_append tv v) (TupleValue_append tv1 v1)))
      ((union tv tv1)
       (union v v1))
        :ruleset array_api_ruleset )
(constructor DType_int64 () DType)
(rewrite (Value_dtype (Value_int i)) (DType_int64 ) :ruleset array_api_ruleset)
(rewrite (Value_dtype (Value_float f)) $%__expr_3312772843316740737 :ruleset array_api_ruleset)
(constructor DType_bool () DType)
(rewrite (Value_dtype (Value_bool b)) (DType_bool ) :ruleset array_api_ruleset)
(constructor Value_to_bool (Value) Boolean)
(rewrite (Value_to_bool (Value_bool b)) b :ruleset array_api_ruleset)
(constructor Value_to_int (Value) Int)
(rewrite (Value_to_int (Value_int i)) i :ruleset array_api_ruleset)
(rewrite (Value_to_truthy_value (Value_bool b)) (Value_bool b) :ruleset array_api_ruleset)
(constructor Value_conj (Value) Value)
(rewrite (Value_conj (Value_float f)) (Value_float f) :ruleset array_api_ruleset)
(constructor Value_real (Value) Value)
(rewrite (Value_real (Value_float f)) (Value_float f) :ruleset array_api_ruleset)
(rewrite (Value_real (Value_int i)) (Value_int i) :ruleset array_api_ruleset)
(rewrite (Value_conj (Value_int i)) (Value_int i) :ruleset array_api_ruleset)
(constructor Value_sqrt (Value) Value)
(constructor Float___pow__ (Float Float) Float)
(rewrite (Value_sqrt (Value_float f)) (Value_float (Float___pow__ f (Float___init__ 0.5))) :ruleset array_api_ruleset)
(constructor Value___add__ (Value Value) Value)
(constructor Float_rational (BigRat) Float :cost 2)
(rewrite (Value___add__ (Value_float (Float_rational (bigrat (bigint 0) (bigint 1)))) v) v :ruleset array_api_ruleset)
(rewrite (Value_if_ (Boolean___init__ true) v v1) v :ruleset array_api_ruleset)
(rewrite (Value_if_ (Boolean___init__ false) v v1) v1 :ruleset array_api_ruleset)
(rewrite (Value___eq__ (Value_int i) (Value_int i1)) (Int___eq__ i i1) :ruleset array_api_ruleset)
(constructor Float___eq__ (Float Float) Boolean)
(rewrite (Value___eq__ (Value_float f) (Value_float f1)) (Float___eq__ f f1) :ruleset array_api_ruleset)
(constructor Boolean___eq__ (Boolean Boolean) Boolean)
(rewrite (Value___eq__ (Value_bool b) (Value_bool b1)) (Boolean___eq__ b b1) :ruleset array_api_ruleset)
(sort IsDtypeKind)
(constructor isdtype (DType IsDtypeKind) Boolean)
(constructor DType_float32 () DType)
(constructor IsDtypeKind_string (String) IsDtypeKind)
(rewrite (isdtype (DType_float32 ) (IsDtypeKind_string "integral")) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (isdtype $%__expr_3312772843316740737 (IsDtypeKind_string "integral")) (Boolean___init__ false) :ruleset array_api_ruleset)
(constructor DType_object () DType)
(rewrite (isdtype (DType_object ) (IsDtypeKind_string "integral")) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (isdtype (DType_int64 ) (IsDtypeKind_string "integral")) (Boolean___init__ true) :ruleset array_api_ruleset)
(constructor DType_int32 () DType)
(rewrite (isdtype (DType_int32 ) (IsDtypeKind_string "integral")) (Boolean___init__ true) :ruleset array_api_ruleset)
(rewrite (isdtype (DType_float32 ) (IsDtypeKind_string "real floating")) (Boolean___init__ true) :ruleset array_api_ruleset)
(rewrite (isdtype $%__expr_3312772843316740737 (IsDtypeKind_string "real floating")) (Boolean___init__ true) :ruleset array_api_ruleset)
(rewrite (isdtype (DType_object ) (IsDtypeKind_string "real floating")) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (isdtype (DType_int64 ) (IsDtypeKind_string "real floating")) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (isdtype (DType_int32 ) (IsDtypeKind_string "real floating")) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (isdtype (DType_float32 ) (IsDtypeKind_string "complex floating")) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (isdtype $%__expr_3312772843316740737 (IsDtypeKind_string "complex floating")) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (isdtype (DType_object ) (IsDtypeKind_string "complex floating")) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (isdtype (DType_int64 ) (IsDtypeKind_string "complex floating")) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (isdtype (DType_int32 ) (IsDtypeKind_string "complex floating")) (Boolean___init__ false) :ruleset array_api_ruleset)
(constructor IsDtypeKind_NULL () IsDtypeKind)
(rewrite (isdtype d (IsDtypeKind_NULL )) (Boolean___init__ false) :ruleset array_api_ruleset)
(constructor IsDtypeKind_dtype (DType) IsDtypeKind)
(rewrite (isdtype d (IsDtypeKind_dtype d)) (Boolean___init__ true) :ruleset array_api_ruleset)
(constructor IsDtypeKind___or__ (IsDtypeKind IsDtypeKind) IsDtypeKind :cost 10)
(rewrite (isdtype d (IsDtypeKind___or__ k1 k2)) (Boolean___or__ (isdtype d k1) (isdtype d k2)) :ruleset array_api_ruleset)
(rewrite (IsDtypeKind___or__ k1 (IsDtypeKind_NULL )) k1 :ruleset array_api_ruleset)
(rewrite (DType___eq__ $%__expr_3312772843316740737 $%__expr_3312772843316740737) (Boolean___init__ true) :ruleset array_api_ruleset)
(rewrite (DType___eq__ $%__expr_3312772843316740737 (DType_float32 )) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (DType___eq__ $%__expr_3312772843316740737 (DType_int32 )) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (DType___eq__ $%__expr_3312772843316740737 (DType_int64 )) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (DType___eq__ $%__expr_3312772843316740737 (DType_object )) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (DType___eq__ (DType_float32 ) $%__expr_3312772843316740737) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (DType___eq__ (DType_float32 ) (DType_float32 )) (Boolean___init__ true) :ruleset array_api_ruleset)
(rewrite (DType___eq__ (DType_float32 ) (DType_int32 )) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (DType___eq__ (DType_float32 ) (DType_int64 )) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (DType___eq__ (DType_float32 ) (DType_object )) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (DType___eq__ (DType_int32 ) $%__expr_3312772843316740737) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (DType___eq__ (DType_int32 ) (DType_float32 )) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (DType___eq__ (DType_int32 ) (DType_int32 )) (Boolean___init__ true) :ruleset array_api_ruleset)
(rewrite (DType___eq__ (DType_int32 ) (DType_int64 )) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (DType___eq__ (DType_int32 ) (DType_object )) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (DType___eq__ (DType_int64 ) $%__expr_3312772843316740737) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (DType___eq__ (DType_int64 ) (DType_float32 )) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (DType___eq__ (DType_int64 ) (DType_int32 )) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (DType___eq__ (DType_int64 ) (DType_int64 )) (Boolean___init__ true) :ruleset array_api_ruleset)
(rewrite (DType___eq__ (DType_int64 ) (DType_object )) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (DType___eq__ (DType_object ) $%__expr_3312772843316740737) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (DType___eq__ (DType_object ) (DType_float32 )) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (DType___eq__ (DType_object ) (DType_int32 )) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (DType___eq__ (DType_object ) (DType_int64 )) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (DType___eq__ (DType_object ) (DType_object )) (Boolean___init__ true) :ruleset array_api_ruleset)
(sort Vec_TupleInt (Vec TupleInt))
(function TupleTupleInt_to_vec (TupleTupleInt) Vec_TupleInt :no-merge)
(constructor TupleTupleInt_from_vec (Vec_TupleInt) TupleTupleInt)
(rule ((= tti (TupleTupleInt_from_vec vs)))
      ((set (TupleTupleInt_to_vec tti) vs))
        :ruleset array_api_ruleset )
(rewrite (TupleTupleInt_length (TupleTupleInt___init__ length idx_fn)) length :ruleset array_api_ruleset)
(rewrite (TupleTupleInt___getitem__ (TupleTupleInt___init__ length idx_fn) idx) (unstable-app idx_fn (check_index idx length)) :ruleset array_api_ruleset)
(constructor TupleTupleInt_EMPTY () TupleTupleInt)
(rewrite (TupleTupleInt_length (TupleTupleInt_EMPTY )) (Int___init__ 0) :ruleset array_api_ruleset)
(constructor TupleInt_NEVER () TupleInt)
(rewrite (TupleTupleInt___getitem__ (TupleTupleInt_EMPTY ) idx) (TupleInt_NEVER ) :ruleset array_api_ruleset)
(constructor TupleTupleInt_append (TupleTupleInt TupleInt) TupleTupleInt)
(rewrite (TupleTupleInt_length (TupleTupleInt_append tti ti)) (Int___add__ (TupleTupleInt_length tti) (Int___init__ 1)) :ruleset array_api_ruleset)
(rewrite (TupleTupleInt___getitem__ (TupleTupleInt_append tti ti) idx) (TupleInt_if_ (Int___eq__ idx (TupleTupleInt_length tti)) ti (TupleTupleInt___getitem__ tti idx)) :ruleset array_api_ruleset)
(rewrite (TupleTupleInt___init__ (Int___init__ 0) idx_fn) (TupleTupleInt_EMPTY ) :subsume :ruleset array_api_ruleset)
(rewrite (TupleTupleInt___init__ (Int___init__ k) idx_fn) (TupleTupleInt_append (TupleTupleInt___init__ (Int___init__ (- k 1)) idx_fn) (unstable-app idx_fn (Int___init__ (- k 1)))) :subsume :when ((> k 0)) :ruleset array_api_ruleset)
(rewrite (TupleTupleInt_EMPTY ) (TupleTupleInt_from_vec (vec-of )) :ruleset array_api_ruleset)
(rewrite (TupleTupleInt_append (TupleTupleInt_from_vec vs) ti) (TupleTupleInt_from_vec (vec-append vs (vec-of ti))) :ruleset array_api_ruleset)
(sort UnstableFn_Value_Value_TupleInt (UnstableFn (Value TupleInt) Value))
(constructor TupleTupleInt_foldl_value (TupleTupleInt UnstableFn_Value_Value_TupleInt Value) Value)
(rewrite (TupleTupleInt_foldl_value (TupleTupleInt_EMPTY ) f i) i :subsume :ruleset array_api_ruleset)
(rewrite (TupleTupleInt_foldl_value (TupleTupleInt_append tti ti) f i) (unstable-app f (TupleTupleInt_foldl_value tti f i) ti) :subsume :ruleset array_api_ruleset)
(rule ((= (TupleTupleInt_append tti ti) (TupleTupleInt_append tti1 ti1)))
      ((union tti tti1)
       (union ti ti1))
        :ruleset array_api_ruleset )
(function TupleInt_to_vec (TupleInt) Vec_Int :no-merge)
(rule ((= ti (TupleInt_from_vec vs)))
      ((set (TupleInt_to_vec ti) vs))
        :ruleset array_api_ruleset )
(rewrite (TupleInt_length (TupleInt___init__ i idx_fn)) i :ruleset array_api_ruleset)
(rewrite (TupleInt___getitem__ (TupleInt___init__ i idx_fn) i2) (unstable-app idx_fn (check_index i i2)) :ruleset array_api_ruleset)
(rewrite (TupleInt_length (TupleInt_EMPTY )) (Int___init__ 0) :ruleset array_api_ruleset)
(rewrite (TupleInt___getitem__ (TupleInt_EMPTY ) i) (Int_NEVER ) :ruleset array_api_ruleset)
(rewrite (TupleInt_length (TupleInt_append ti i)) (Int___add__ (TupleInt_length ti) (Int___init__ 1)) :ruleset array_api_ruleset)
(rewrite (TupleInt___getitem__ (TupleInt_append ti i) i2) (Int_if_ (Int___eq__ i2 (TupleInt_length ti)) i (TupleInt___getitem__ ti i2)) :ruleset array_api_ruleset)
(rewrite (TupleInt___init__ (Int___init__ 0) idx_fn) (TupleInt_EMPTY ) :subsume :ruleset array_api_ruleset)
(rewrite (TupleInt___init__ (Int___init__ k) idx_fn) (TupleInt_append (TupleInt___init__ (Int___init__ (- k 1)) idx_fn) (unstable-app idx_fn (Int___init__ (- k 1)))) :subsume :when ((> k 0)) :ruleset array_api_ruleset)
(rewrite (TupleInt_EMPTY ) (TupleInt_from_vec (vec-of )) :ruleset array_api_ruleset)
(rewrite (TupleInt_append (TupleInt_from_vec vs) i) (TupleInt_from_vec (vec-append vs (vec-of i))) :ruleset array_api_ruleset)
(rewrite (TupleInt_foldl (TupleInt_EMPTY ) f i) i :subsume :ruleset array_api_ruleset)
(rewrite (TupleInt_foldl (TupleInt_append ti i2) f i) (unstable-app f (TupleInt_foldl ti f i) i2) :subsume :ruleset array_api_ruleset)
(rewrite (TupleInt_foldl_boolean (TupleInt_EMPTY ) bool_f b) b :subsume :ruleset array_api_ruleset)
(rewrite (TupleInt_foldl_boolean (TupleInt_append ti i2) bool_f b) (unstable-app bool_f (TupleInt_foldl_boolean ti bool_f b) i2) :subsume :ruleset array_api_ruleset)
(rewrite (TupleInt_foldl_tuple_int (TupleInt_EMPTY ) tuple_int_f ti) ti :subsume :ruleset array_api_ruleset)
(rewrite (TupleInt_foldl_tuple_int (TupleInt_append ti i2) tuple_int_f ti2) (unstable-app tuple_int_f (TupleInt_foldl_tuple_int ti tuple_int_f ti2) i2) :subsume :ruleset array_api_ruleset)
(rewrite (TupleInt_if_ (Boolean___init__ true) ti ti2) ti :subsume :ruleset array_api_ruleset)
(rewrite (TupleInt_if_ (Boolean___init__ false) ti ti2) ti2 :subsume :ruleset array_api_ruleset)
(rule ((= (TupleInt_append ti i) (TupleInt_append ti2 i2)))
      ((union ti ti2)
       (union i i2))
        :ruleset array_api_ruleset )
(function Float_to_f64 (Float) f64 :no-merge)
(rule ((= fl (Float___init__ f)))
      ((set (Float_to_f64 fl) f))
        :ruleset array_api_ruleset )
(rewrite (Float_abs (Float___init__ f)) (Float___init__ f) :when ((>= f 0.0)) :ruleset array_api_ruleset)
(rewrite (Float_abs (Float___init__ f)) (Float___init__ (neg f)) :when ((< f 0.0)) :ruleset array_api_ruleset)
(rewrite (Float___init__ f) (Float_rational (bigrat (bigint (to-i64 f)) (bigint 1))) :when ((= (to-f64 (to-i64 f)) f)) :ruleset array_api_ruleset)
(constructor Float_from_int (Int) Float)
(rewrite (Float_from_int (Int___init__ i)) (Float_rational (bigrat (bigint i) (bigint 1))) :ruleset array_api_ruleset)
(constructor Float___add__ (Float Float) Float)
(rewrite (Float___add__ (Float___init__ f) (Float___init__ f2)) (Float___init__ (+ f f2)) :ruleset array_api_ruleset)
(constructor Float___sub__ (Float Float) Float)
(rewrite (Float___sub__ (Float___init__ f) (Float___init__ f2)) (Float___init__ (- f f2)) :ruleset array_api_ruleset)
(constructor Float___mul__ (Float Float) Float)
(rewrite (Float___mul__ (Float___init__ f) (Float___init__ f2)) (Float___init__ (* f f2)) :ruleset array_api_ruleset)
(constructor Float___truediv__ (Float Float) Float)
(rewrite (Float___truediv__ (Float_rational r) (Float_rational r1)) (Float_rational (/ r r1)) :ruleset array_api_ruleset)
(rewrite (Float___add__ (Float_rational r) (Float_rational r1)) (Float_rational (+ r r1)) :ruleset array_api_ruleset)
(rewrite (Float___sub__ (Float_rational r) (Float_rational r1)) (Float_rational (- r r1)) :ruleset array_api_ruleset)
(rewrite (Float___mul__ (Float_rational r) (Float_rational r1)) (Float_rational (* r r1)) :ruleset array_api_ruleset)
(rewrite (Float___pow__ (Float___init__ f) (Float___init__ f2)) (Float___init__ (^ f f2)) :ruleset array_api_ruleset)
(rewrite (Float___eq__ (Float___init__ f) (Float___init__ f)) (Boolean___init__ true) :ruleset array_api_ruleset)
(rewrite (Float___eq__ (Float___init__ f) (Float___init__ f2)) (Boolean___init__ false) :when ((!= f f2)) :ruleset array_api_ruleset)
(rewrite (Float___eq__ (Float_rational r) (Float_rational r)) (Boolean___init__ true) :ruleset array_api_ruleset)
(rewrite (Float___eq__ (Float_rational r) (Float_rational r1)) (Boolean___init__ false) :when ((!= r r1)) :ruleset array_api_ruleset)
(rewrite (Int___eq__ (Int___init__ i) (Int___init__ i)) (Boolean___init__ true) :ruleset array_api_ruleset)
(rule ((= r (Int___eq__ (Int___init__ i) (Int___init__ j)))
       (!= i j))
      ((union r (Boolean___init__ false)))
        :ruleset array_api_ruleset )
(rewrite (Int___ge__ (Int___init__ i) (Int___init__ i)) (Boolean___init__ true) :ruleset array_api_ruleset)
(rule ((= r (Int___ge__ (Int___init__ i) (Int___init__ j)))
       (> i j))
      ((union r (Boolean___init__ true)))
        :ruleset array_api_ruleset )
(rule ((= r (Int___ge__ (Int___init__ i) (Int___init__ j)))
       (< i j))
      ((union r (Boolean___init__ false)))
        :ruleset array_api_ruleset )
(rewrite (Int___lt__ (Int___init__ i) (Int___init__ i)) (Boolean___init__ false) :ruleset array_api_ruleset)
(rule ((= r (Int___lt__ (Int___init__ i) (Int___init__ j)))
       (< i j))
      ((union r (Boolean___init__ true)))
        :ruleset array_api_ruleset )
(rule ((= r (Int___lt__ (Int___init__ i) (Int___init__ j)))
       (> i j))
      ((union r (Boolean___init__ false)))
        :ruleset array_api_ruleset )
(constructor Int___gt__ (Int Int) Boolean)
(rewrite (Int___gt__ (Int___init__ i) (Int___init__ i)) (Boolean___init__ false) :ruleset array_api_ruleset)
(rule ((= r (Int___gt__ (Int___init__ i) (Int___init__ j)))
       (> i j))
      ((union r (Boolean___init__ true)))
        :ruleset array_api_ruleset )
(rule ((= r (Int___gt__ (Int___init__ i) (Int___init__ j)))
       (< i j))
      ((union r (Boolean___init__ false)))
        :ruleset array_api_ruleset )
(function Int_to_i64 (Int) i64 :no-merge)
(rule ((= o (Int___init__ j)))
      ((set (Int_to_i64 o) j))
        :ruleset array_api_ruleset )
(rule ((= (Int___init__ i) (Int___init__ j))
       (!= i j))
      ((panic "Real ints cannot be equal to different ints"))
        :ruleset array_api_ruleset )
(rewrite (Int___add__ (Int___init__ i) (Int___init__ j)) (Int___init__ (+ i j)) :ruleset array_api_ruleset)
(rewrite (Int___sub__ (Int___init__ i) (Int___init__ j)) (Int___init__ (- i j)) :ruleset array_api_ruleset)
(rewrite (Int___mul__ (Int___init__ i) (Int___init__ j)) (Int___init__ (* i j)) :ruleset array_api_ruleset)
(rewrite (Int___floordiv__ (Int___init__ i) (Int___init__ j)) (Int___init__ (/ i j)) :ruleset array_api_ruleset)
(rewrite (Int___mod__ (Int___init__ i) (Int___init__ j)) (Int___init__ (% i j)) :ruleset array_api_ruleset)
(constructor Int___and__ (Int Int) Int)
(rewrite (Int___and__ (Int___init__ i) (Int___init__ j)) (Int___init__ (& i j)) :ruleset array_api_ruleset)
(constructor Int___or__ (Int Int) Int)
(rewrite (Int___or__ (Int___init__ i) (Int___init__ j)) (Int___init__ (| i j)) :ruleset array_api_ruleset)
(constructor Int___xor__ (Int Int) Int)
(rewrite (Int___xor__ (Int___init__ i) (Int___init__ j)) (Int___init__ (^ i j)) :ruleset array_api_ruleset)
(constructor Int___lshift__ (Int Int) Int)
(rewrite (Int___lshift__ (Int___init__ i) (Int___init__ j)) (Int___init__ (<< i j)) :ruleset array_api_ruleset)
(constructor Int___rshift__ (Int Int) Int)
(rewrite (Int___rshift__ (Int___init__ i) (Int___init__ j)) (Int___init__ (>> i j)) :ruleset array_api_ruleset)
(constructor Int___invert__ (Int) Int)
(rewrite (Int___invert__ (Int___init__ i)) (Int___init__ (not-i64 i)) :ruleset array_api_ruleset)
(rewrite (Int_if_ (Boolean___init__ true) o b) o :subsume :ruleset array_api_ruleset)
(rewrite (Int_if_ (Boolean___init__ false) o b) b :subsume :ruleset array_api_ruleset)
(rule ((= (Int_NEVER ) (Int___init__ i)))
      ((panic "Int.NEVER cannot be equal to any real int"))
        :ruleset array_api_ruleset )
(rule ((= x (Boolean___init__ b)))
      ((set (Boolean_to_bool x) b))
        :ruleset array_api_ruleset )
(rewrite (Boolean___or__ (Boolean___init__ true) x) (Boolean___init__ true) :ruleset array_api_ruleset)
(rewrite (Boolean___or__ (Boolean___init__ false) x) x :ruleset array_api_ruleset)
(rewrite (Boolean___and__ (Boolean___init__ true) x) x :ruleset array_api_ruleset)
(rewrite (Boolean___and__ (Boolean___init__ false) x) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (Boolean___invert__ (Boolean___init__ true)) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (Boolean___invert__ (Boolean___init__ false)) (Boolean___init__ true) :ruleset array_api_ruleset)
(rule ((= (Boolean___init__ false) (Boolean___init__ true)))
      ((panic "False cannot equal True"))
        :ruleset array_api_ruleset )
(rewrite (Boolean___eq__ x x) (Boolean___init__ true) :ruleset array_api_ruleset)
(rewrite (Boolean___eq__ (Boolean___init__ false) (Boolean___init__ true)) (Boolean___init__ false) :ruleset array_api_ruleset)
(rewrite (Boolean___eq__ (Boolean___init__ true) (Boolean___init__ false)) (Boolean___init__ false) :ruleset array_api_ruleset)
(ruleset array_api_vec_to_cons_ruleset)
(rewrite (TupleInt_from_vec vs) (TupleInt_EMPTY ) :when ((= (vec-length vs) 0)) :ruleset array_api_vec_to_cons_ruleset)
(rewrite (TupleInt_from_vec vs) (TupleInt_append (TupleInt_from_vec (vec-remove vs (- (vec-length vs) 1))) (vec-get vs (- (vec-length vs) 1))) :when ((!= (vec-length vs) 0)) :ruleset array_api_vec_to_cons_ruleset)
(rewrite (TupleValue_from_vec vv) (TupleValue_EMPTY ) :when ((= (vec-length vv) 0)) :ruleset array_api_vec_to_cons_ruleset)
(rewrite (TupleValue_from_vec vv) (TupleValue_append (TupleValue_from_vec (vec-remove vv (- (vec-length vv) 1))) (vec-get vv (- (vec-length vv) 1))) :when ((!= (vec-length vv) 0)) :ruleset array_api_vec_to_cons_ruleset)
(rewrite (TupleTupleInt_from_vec vt) (TupleTupleInt_EMPTY ) :when ((= (vec-length vt) 0)) :ruleset array_api_vec_to_cons_ruleset)
(rewrite (TupleTupleInt_from_vec vt) (TupleTupleInt_append (TupleTupleInt_from_vec (vec-remove vt (- (vec-length vt) 1))) (vec-get vt (- (vec-length vt) 1))) :when ((!= (vec-length vt) 0)) :ruleset array_api_vec_to_cons_ruleset)
(rewrite (TupleNDArray_from_vec vn) (TupleNDArray_EMPTY ) :when ((= (vec-length vn) 0)) :ruleset array_api_vec_to_cons_ruleset)
(rewrite (TupleNDArray_from_vec vn) (TupleNDArray_append (TupleNDArray_from_vec (vec-remove vn (- (vec-length vn) 1))) (vec-get vn (- (vec-length vn) 1))) :when ((!= (vec-length vn) 0)) :ruleset array_api_vec_to_cons_ruleset)
(unstable-combined-ruleset combined_ruleset_4774957744 array_api_ruleset array_api_vec_to_cons_ruleset)
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (DType___eq__ $%__expr_3312772843316740737 (NDArray_dtype (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4)))))))) 0)
(let $%__expr_-7702746175087213660 (Int___eq__ (NDArray_ndim (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 0)))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (Int___eq__ (NDArray_ndim (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 0))) 0)
(let $%__expr_7214152486816582867 (Int___eq__ (NDArray_ndim (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 1)))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (Int___eq__ (NDArray_ndim (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 1))) 0)
(let $%__expr_1302760973778610762 (Int___ge__ (NDArray_ndim (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 3)))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (Int___ge__ (NDArray_ndim (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 3))) 0)
(let $%__expr_-783593948058674373 (OptionalDType_none ))
(let $%__expr_783611300946152456 (isdtype (NDArray_dtype (asarray (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none )) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none ))) (IsDtypeKind___or__ (IsDtypeKind_string "real floating") (IsDtypeKind___or__ (IsDtypeKind_string "complex floating") (IsDtypeKind_NULL )))))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (isdtype (NDArray_dtype (asarray (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none )) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none ))) (IsDtypeKind___or__ (IsDtypeKind_string "real floating") (IsDtypeKind___or__ (IsDtypeKind_string "complex floating") (IsDtypeKind_NULL ))))) 0)
(let $%__expr_8204039412248463860 (Value_to_bool (NDArray_to_value (isfinite (sum (asarray (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none )) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (OptionalIntOrTuple_none ))))))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (Value_to_bool (NDArray_to_value (isfinite (sum (asarray (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none )) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (OptionalIntOrTuple_none )))))) 0)
(extract (Int_to_i64 (TupleInt_length (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))))) 0)
(let $%__expr_2412012518755541882 (Int___lt__ (TupleInt___getitem__ (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 0)) (Int___init__ 2)))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (Int___lt__ (TupleInt___getitem__ (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 0)) (Int___init__ 2))) 0)
(let $%__expr_5402813888369164410 (Int___eq__ (NDArray_ndim (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 2)))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (Int___eq__ (NDArray_ndim (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 2))) 0)
(let $%__expr_-3819518261003242831 (Int___init__ 1))
(let $%__expr_-5910393325276102546 (Int___lt__ (TupleInt___getitem__ (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) $%__expr_-3819518261003242831) $%__expr_-3819518261003242831))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (Int___lt__ (TupleInt___getitem__ (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) $%__expr_-3819518261003242831) $%__expr_-3819518261003242831)) 0)
(let $%__expr_1808310868807558499 (Int___ge__ (NDArray_ndim (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 3)))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (Int___ge__ (NDArray_ndim (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 3))) 0)
(let $%__expr_-8967796230287329510 (Int___init__ 2))
(let $%__expr_1027860534766939256 (Int___eq__ (NDArray_ndim (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none ))) $%__expr_-8967796230287329510))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (Int___eq__ (NDArray_ndim (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none ))) $%__expr_-8967796230287329510)) 0)
(extract (Int_to_i64 (TupleInt_length (NDArray_shape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none ))))) 0)
(let $%__expr_-4021706396155434623 (OptionalBool_none ))
(let $%__expr_-7565754526517146860 (OptionalDevice_none ))
(let $%__expr_7966366713714353629 (isdtype (NDArray_dtype (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)) (IsDtypeKind___or__ (IsDtypeKind_string "real floating") (IsDtypeKind___or__ (IsDtypeKind_string "complex floating") (IsDtypeKind_NULL )))))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (isdtype (NDArray_dtype (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)) (IsDtypeKind___or__ (IsDtypeKind_string "real floating") (IsDtypeKind___or__ (IsDtypeKind_string "complex floating") (IsDtypeKind_NULL ))))) 0)
(extract (Int_to_i64 (TupleInt_length (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))))) 0)
(extract (Int_to_i64 (TupleInt_length (NDArray_shape (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)))) 0)
(let $%__expr_1515625565982584680 (Int___init__ 0))
(let $%__expr_2710969667027086134 (Int___lt__ (TupleInt___getitem__ (NDArray_shape (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)) $%__expr_1515625565982584680) (TupleInt___getitem__ (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 0))))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (Int___lt__ (TupleInt___getitem__ (NDArray_shape (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)) $%__expr_1515625565982584680) (TupleInt___getitem__ (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 0)))) 0)
(let $%__expr_-6515887160729942207 (Int___gt__ (TupleInt___getitem__ (NDArray_shape (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)) $%__expr_1515625565982584680) (TupleInt___getitem__ (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 0))))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (Int___gt__ (TupleInt___getitem__ (NDArray_shape (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)) $%__expr_1515625565982584680) (TupleInt___getitem__ (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 0)))) 0)
(let $%__expr_2159589878056230634 (Int___eq__ (TupleInt___getitem__ (NDArray_shape (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)) $%__expr_1515625565982584680) (TupleInt___getitem__ (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 0))))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (Int___eq__ (TupleInt___getitem__ (NDArray_shape (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)) $%__expr_1515625565982584680) (TupleInt___getitem__ (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 0)))) 0)
(extract (Int_to_i64 (TupleInt_length (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))))) 0)
(extract (Boolean_to_bool (Int___eq__ (NDArray_ndim (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)) $%__expr_-8967796230287329510)) 0)
(extract (Boolean_to_bool (Int___eq__ (NDArray_ndim (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)) $%__expr_-3819518261003242831)) 0)
(extract (TupleInt_to_vec (NDArray_shape (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860))) 0)
(extract (Int_to_i64 (Int___init__ 150)) 0)
(let $%__expr_6488429099574989478 (DType___eq__ (NDArray_dtype (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)) (DType_object )))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (DType___eq__ (NDArray_dtype (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)) (DType_object ))) 0)
(extract (Boolean_to_bool (Int___eq__ (NDArray_ndim (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)) $%__expr_-8967796230287329510)) 0)
(extract (Boolean_to_bool (isdtype (NDArray_dtype (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)) (IsDtypeKind_string "real floating"))) 0)
(let $%__expr_-6733469555097320499 (Int___gt__ (TupleInt___getitem__ (NDArray_shape (unique_values (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860))) $%__expr_1515625565982584680) $%__expr_-8967796230287329510))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (Int___gt__ (TupleInt___getitem__ (NDArray_shape (unique_values (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860))) $%__expr_1515625565982584680) $%__expr_-8967796230287329510)) 0)
(extract (TupleInt_to_vec (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none )))) 0)
(let $%__expr_-965411243548255093 (Int___init__ 150))
(let $%__expr_4690911764855057036 (Int___eq__ $%__expr_-965411243548255093 (TupleInt___getitem__ (NDArray_shape (unique_values (concat (TupleNDArray_from_vec (vec-of (unique_values (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)))) (OptionalInt_none )))) $%__expr_1515625565982584680)))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (Int___eq__ $%__expr_-965411243548255093 (TupleInt___getitem__ (NDArray_shape (unique_values (concat (TupleNDArray_from_vec (vec-of (unique_values (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)))) (OptionalInt_none )))) $%__expr_1515625565982584680))) 0)
(let $%__expr_5009493427994000278 (unique_counts (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (TupleNDArray_to_vec (unique_counts (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860))) 0)
(extract (Int_to_i64 (TupleInt___getitem__ (NDArray_shape (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)) $%__expr_1515625565982584680)) 0)
(let $%__expr_3177832130128926844 (Value_int (Int___init__ 0)))
(let $%__expr_5577052485518004212 (Value_to_bool (NDArray_to_value (any (NDArray___lt__ (NDArray___truediv__ (astype (TupleNDArray___getitem__ (unique_counts (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2)))))) $%__expr_-3819518261003242831) (NDArray_dtype (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none )))) (NDArray_scalar (Value_float (Float___init__ 150.0)))) (NDArray_scalar $%__expr_3177832130128926844))))))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (Value_to_bool (NDArray_to_value (any (NDArray___lt__ (NDArray___truediv__ (astype (TupleNDArray___getitem__ (unique_counts (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2)))))) $%__expr_-3819518261003242831) (NDArray_dtype (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none )))) (NDArray_scalar (Value_float (Float___init__ 150.0)))) (NDArray_scalar $%__expr_3177832130128926844)))))) 0)
(let $%__expr_-8760706379805395400 (Value_to_bool (NDArray_to_value (NDArray___gt__ (ndarray-abs (NDArray___sub__ (sum (NDArray___truediv__ (astype (TupleNDArray___getitem__ (unique_counts (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2)))))) $%__expr_-3819518261003242831) (NDArray_dtype (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none )))) (NDArray_scalar (Value_float (Float___init__ 150.0)))) (OptionalIntOrTuple_none )) (NDArray_scalar (Value_float (Float___init__ 1.0))))) (NDArray_scalar (Value_float (Float___init__ 0.00001)))))))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (Value_to_bool (NDArray_to_value (NDArray___gt__ (ndarray-abs (NDArray___sub__ (sum (NDArray___truediv__ (astype (TupleNDArray___getitem__ (unique_counts (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2)))))) $%__expr_-3819518261003242831) (NDArray_dtype (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none )))) (NDArray_scalar (Value_float (Float___init__ 150.0)))) (OptionalIntOrTuple_none )) (NDArray_scalar (Value_float (Float___init__ 1.0))))) (NDArray_scalar (Value_float (Float___init__ 0.00001))))))) 0)
(let $%__expr_7387490801012818541 (Int___lt__ (TupleInt___getitem__ (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) $%__expr_-3819518261003242831) (Int___sub__ (TupleInt___getitem__ (NDArray_shape (unique_values (concat (TupleNDArray_from_vec (vec-of (unique_values (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)))) (OptionalInt_none )))) $%__expr_1515625565982584680) $%__expr_-3819518261003242831)))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (Int___lt__ (TupleInt___getitem__ (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) $%__expr_-3819518261003242831) (Int___sub__ (TupleInt___getitem__ (NDArray_shape (unique_values (concat (TupleNDArray_from_vec (vec-of (unique_values (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)))) (OptionalInt_none )))) $%__expr_1515625565982584680) $%__expr_-3819518261003242831))) 0)
(let $%__expr_-1220808304905772197 (Int___lt__ (Int___sub__ (TupleInt___getitem__ (NDArray_shape (unique_values (concat (TupleNDArray_from_vec (vec-of (unique_values (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)))) (OptionalInt_none )))) $%__expr_1515625565982584680) $%__expr_-3819518261003242831) $%__expr_-8967796230287329510))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (Int___lt__ (Int___sub__ (TupleInt___getitem__ (NDArray_shape (unique_values (concat (TupleNDArray_from_vec (vec-of (unique_values (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)))) (OptionalInt_none )))) $%__expr_1515625565982584680) $%__expr_-3819518261003242831) $%__expr_-8967796230287329510)) 0)
(extract (TupleInt_to_vec (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none )))) 0)
(let $%__expr_-18431026180781381 (unique_inverse (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (TupleNDArray_to_vec (unique_inverse (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860))) 0)
(extract (Int_to_i64 (TupleInt___getitem__ (NDArray_shape (NDArray_vector (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2)))))) $%__expr_1515625565982584680)) 0)
(let $%__expr_-5978900816636859197 (NDArray_size (unique_values (concat (TupleNDArray_from_vec (vec-of (unique_values (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)))) (OptionalInt_none )))))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Int_to_i64 (NDArray_size (unique_values (concat (TupleNDArray_from_vec (vec-of (unique_values (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)))) (OptionalInt_none ))))) 0)
(let $%__expr_4960580842698491831 (Value_int (Int___init__ 2)))
(let $%__expr_-8271623696788926803 (NDArray_scalar $%__expr_3177832130128926844))
(let $%__expr_-7273898457818663043 (unique_values (concat (TupleNDArray_from_vec (vec-of (unique_values (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)))) (OptionalInt_none ))))
(let $%__expr_8954373425596637944 (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860))
(let $%__expr_-8918626105572260774 (TupleNDArray___getitem__ (unique_inverse (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2)))))) $%__expr_-3819518261003242831))
(let $%__expr_-4275348256566137526 (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))))
(let $%__expr_-218207054133359828 (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none )))
(sort MultiAxisIndexKeyItem)
(sort Slice)
(constructor MultiAxisIndexKeyItem_slice (Slice) MultiAxisIndexKeyItem)
(constructor Slice___init__ (OptionalInt OptionalInt OptionalInt) Slice)
(let $%__expr_-732844627964303682 (MultiAxisIndexKeyItem_slice (Slice___init__ (OptionalInt_none ) (OptionalInt_none ) (OptionalInt_none ))))
(sort IntOrTuple)
(constructor OptionalIntOrTuple_some (IntOrTuple) OptionalIntOrTuple)
(constructor IntOrTuple_int (Int) IntOrTuple)
(let $%__expr_983055127364785721 (OptionalIntOrTuple_some (IntOrTuple_int $%__expr_1515625565982584680)))
(let $%__expr_-1452170678296599248 (OptionalInt_none ))
(sort MultiAxisIndexKey)
(constructor IndexKey_multi_axis (MultiAxisIndexKey) IndexKey)
(sort Vec_MultiAxisIndexKeyItem (Vec MultiAxisIndexKeyItem))
(constructor MultiAxisIndexKey_from_vec (Vec_MultiAxisIndexKeyItem) MultiAxisIndexKey)
(constructor MultiAxisIndexKeyItem_int (Int) MultiAxisIndexKeyItem)
(let $%__expr_1476736221086191386 (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of (MultiAxisIndexKeyItem_int $%__expr_-3819518261003242831) $%__expr_-732844627964303682))))
(let $%__expr_-5492753565611138931 (Boolean___init__ false))
(constructor OptionalDType_some (DType) OptionalDType)
(let $%__expr_9078071743624874880 (OptionalDType_some (NDArray_dtype (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none )))))
(let $%__expr_-3656473307321800322 (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of (MultiAxisIndexKeyItem_int $%__expr_1515625565982584680) $%__expr_-732844627964303682))))
(let $%__expr_-2513766338179447502 (Float___init__ 1.0))
(let $%__expr_-2402518358160778187 (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2)))))
(let $%__expr_-2999685187327316942 (Value_int $%__expr_-3819518261003242831))
(constructor NDArray___setitem__ (NDArray IndexKey NDArray) NDArray)
(constructor zeros (TupleInt OptionalDType OptionalDevice) NDArray)
(sort Device)
(constructor OptionalDevice_some (Device) OptionalDevice)
(constructor NDArray_device (NDArray) Device)
(constructor mean (NDArray OptionalIntOrTuple Boolean) NDArray)
(constructor IndexKey_ndarray (NDArray) IndexKey)
(constructor NDArray___eq__ (NDArray NDArray) NDArray)
(let $%__expr_2111919219348313127 (NDArray___setitem__ (NDArray___setitem__ (NDArray___setitem__ (zeros (TupleInt_from_vec (vec-of (TupleInt___getitem__ (NDArray_shape (NDArray_vector (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2)))))) $%__expr_1515625565982584680) (TupleInt___getitem__ (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) $%__expr_-3819518261003242831))) $%__expr_9078071743624874880 (OptionalDevice_some (NDArray_device $%__expr_-218207054133359828))) $%__expr_-3656473307321800322 (mean (NDArray___getitem__ $%__expr_-218207054133359828 (IndexKey_ndarray (NDArray___eq__ $%__expr_-8918626105572260774 $%__expr_-8271623696788926803))) $%__expr_983055127364785721 $%__expr_-5492753565611138931)) $%__expr_1476736221086191386 (mean (NDArray___getitem__ $%__expr_-218207054133359828 (IndexKey_ndarray (NDArray___eq__ $%__expr_-8918626105572260774 (NDArray_scalar $%__expr_-2999685187327316942)))) $%__expr_983055127364785721 $%__expr_-5492753565611138931)) (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of (MultiAxisIndexKeyItem_int $%__expr_-8967796230287329510) $%__expr_-732844627964303682))) (mean (NDArray___getitem__ $%__expr_-218207054133359828 (IndexKey_ndarray (NDArray___eq__ $%__expr_-8918626105572260774 (NDArray_scalar $%__expr_4960580842698491831)))) $%__expr_983055127364785721 $%__expr_-5492753565611138931)))
(let $%__expr_109783727569535644 (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of (MultiAxisIndexKeyItem_int $%__expr_-8967796230287329510) $%__expr_-732844627964303682))))
(constructor std (NDArray OptionalIntOrTuple) NDArray)
(constructor OptionalInt_some (Int) OptionalInt)
(let $%__expr_-2186208094369825484 (std (concat (TupleNDArray_from_vec (vec-of (NDArray___sub__ (NDArray___getitem__ $%__expr_-218207054133359828 (IndexKey_ndarray (NDArray___eq__ $%__expr_8954373425596637944 (NDArray___getitem__ $%__expr_-7273898457818663043 (IndexKey_int $%__expr_1515625565982584680))))) (NDArray___getitem__ $%__expr_2111919219348313127 $%__expr_-3656473307321800322)) (NDArray___sub__ (NDArray___getitem__ $%__expr_-218207054133359828 (IndexKey_ndarray (NDArray___eq__ $%__expr_8954373425596637944 (NDArray___getitem__ $%__expr_-7273898457818663043 (IndexKey_int $%__expr_-3819518261003242831))))) (NDArray___getitem__ $%__expr_2111919219348313127 $%__expr_1476736221086191386)) (NDArray___sub__ (NDArray___getitem__ $%__expr_-218207054133359828 (IndexKey_ndarray (NDArray___eq__ $%__expr_8954373425596637944 (NDArray___getitem__ $%__expr_-7273898457818663043 (IndexKey_int $%__expr_-8967796230287329510))))) (NDArray___getitem__ $%__expr_2111919219348313127 $%__expr_109783727569535644)))) (OptionalInt_some $%__expr_1515625565982584680)) $%__expr_983055127364785721))
(let $%__expr_-2182434727612579224 (concat (TupleNDArray_from_vec (vec-of (NDArray___sub__ (NDArray___getitem__ $%__expr_-218207054133359828 (IndexKey_ndarray (NDArray___eq__ $%__expr_8954373425596637944 (NDArray___getitem__ $%__expr_-7273898457818663043 (IndexKey_int $%__expr_1515625565982584680))))) (NDArray___getitem__ $%__expr_2111919219348313127 $%__expr_-3656473307321800322)) (NDArray___sub__ (NDArray___getitem__ $%__expr_-218207054133359828 (IndexKey_ndarray (NDArray___eq__ $%__expr_8954373425596637944 (NDArray___getitem__ $%__expr_-7273898457818663043 (IndexKey_int $%__expr_-3819518261003242831))))) (NDArray___getitem__ $%__expr_2111919219348313127 $%__expr_1476736221086191386)) (NDArray___sub__ (NDArray___getitem__ $%__expr_-218207054133359828 (IndexKey_ndarray (NDArray___eq__ $%__expr_8954373425596637944 (NDArray___getitem__ $%__expr_-7273898457818663043 (IndexKey_int $%__expr_-8967796230287329510))))) (NDArray___getitem__ $%__expr_2111919219348313127 $%__expr_109783727569535644)))) (OptionalInt_some $%__expr_1515625565982584680)))
(constructor NDArray___mul__ (NDArray NDArray) NDArray)
(constructor ndarray-sqrt (NDArray) NDArray)
(let $%__expr_-6679122900109393815 (svd (NDArray___mul__ (ndarray-sqrt (asarray (NDArray_scalar (Value_float (Float___truediv__ $%__expr_-2513766338179447502 (Float_from_int (Int___sub__ $%__expr_-965411243548255093 (TupleInt___getitem__ (NDArray_shape (unique_values (concat (TupleNDArray_from_vec (vec-of (unique_values (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)))) (OptionalInt_none )))) $%__expr_1515625565982584680)))))) $%__expr_9078071743624874880 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)) (NDArray___truediv__ $%__expr_-2182434727612579224 (NDArray___setitem__ $%__expr_-2186208094369825484 (IndexKey_ndarray (NDArray___eq__ $%__expr_-2186208094369825484 $%__expr_-8271623696788926803)) (NDArray_scalar (Value_float (Float___init__ 1.0)))))) $%__expr_-5492753565611138931))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (TupleNDArray_to_vec (svd (NDArray___mul__ (ndarray-sqrt (asarray (NDArray_scalar (Value_float (Float___truediv__ $%__expr_-2513766338179447502 (Float_from_int (Int___sub__ $%__expr_-965411243548255093 (TupleInt___getitem__ (NDArray_shape (unique_values (concat (TupleNDArray_from_vec (vec-of (unique_values (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)))) (OptionalInt_none )))) $%__expr_1515625565982584680)))))) $%__expr_9078071743624874880 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)) (NDArray___truediv__ $%__expr_-2182434727612579224 (NDArray___setitem__ $%__expr_-2186208094369825484 (IndexKey_ndarray (NDArray___eq__ $%__expr_-2186208094369825484 $%__expr_-8271623696788926803)) (NDArray_scalar (Value_float (Float___init__ 1.0)))))) $%__expr_-5492753565611138931)) 0)
(let $%__expr_8919219603840822224 (Int___eq__ (TupleInt___getitem__ (NDArray_shape (unique_values (concat (TupleNDArray_from_vec (vec-of (unique_values (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)))) (OptionalInt_none )))) $%__expr_1515625565982584680) $%__expr_-3819518261003242831))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (Int___eq__ (TupleInt___getitem__ (NDArray_shape (unique_values (concat (TupleNDArray_from_vec (vec-of (unique_values (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)))) (OptionalInt_none )))) $%__expr_1515625565982584680) $%__expr_-3819518261003242831)) 0)
(let $%__expr_-8512717510729445879 (Int___init__ 4))
(let $%__expr_4843863566566866913 (NDArray_scalar $%__expr_4960580842698491831))
(let $%__expr_432163927078974686 (MultiAxisIndexKeyItem_int $%__expr_1515625565982584680))
(let $%__expr_6720480091233118296 (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))))
(let $%__expr_-1353577903770798000 (IndexKey_ndarray (NDArray___eq__ $%__expr_-8918626105572260774 $%__expr_-8271623696788926803)))
(let $%__expr_-4026720172780321222 (MultiAxisIndexKeyItem_int $%__expr_-8967796230287329510))
(let $%__expr_8168747590964019947 (from-string "1"))
(let $%__expr_-7704953038804002139 (OptionalDType_some $%__expr_3312772843316740737))
(let $%__expr_-796730805028247993 (IndexKey_ndarray (NDArray___eq__ $%__expr_-8918626105572260774 (NDArray_scalar $%__expr_-2999685187327316942))))
(let $%__expr_-3459162404795265252 (IndexKey_ndarray (NDArray___eq__ $%__expr_-8918626105572260774 (NDArray_scalar $%__expr_4960580842698491831))))
(let $%__expr_-3812909516189076479 (MultiAxisIndexKeyItem_int $%__expr_-3819518261003242831))
(let $%__expr_7577559097497902125 (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of $%__expr_432163927078974686 $%__expr_-732844627964303682))))
(let $%__expr_7268219828363711414 (NDArray___setitem__ (NDArray___setitem__ (NDArray___setitem__ (zeros (TupleInt_from_vec (vec-of (Int___init__ 3) $%__expr_-8512717510729445879)) $%__expr_-7704953038804002139 (OptionalDevice_some (NDArray_device $%__expr_6720480091233118296))) $%__expr_7577559097497902125 (mean (NDArray___getitem__ $%__expr_6720480091233118296 $%__expr_-1353577903770798000) $%__expr_983055127364785721 $%__expr_-5492753565611138931)) (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of $%__expr_-3812909516189076479 $%__expr_-732844627964303682))) (mean (NDArray___getitem__ $%__expr_6720480091233118296 $%__expr_-796730805028247993) $%__expr_983055127364785721 $%__expr_-5492753565611138931)) (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of $%__expr_-4026720172780321222 $%__expr_-732844627964303682))) (mean (NDArray___getitem__ $%__expr_6720480091233118296 $%__expr_-3459162404795265252) $%__expr_983055127364785721 $%__expr_-5492753565611138931)))
(let $%__expr_3960093023086732968 (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of $%__expr_-4026720172780321222 $%__expr_-732844627964303682))))
(let $%__expr_1364373353785060178 (NDArray_scalar $%__expr_-2999685187327316942))
(let $%__expr_2568882040843275336 (concat (TupleNDArray_from_vec (vec-of (NDArray___sub__ (NDArray___getitem__ $%__expr_6720480091233118296 (IndexKey_ndarray (NDArray___eq__ $%__expr_-4275348256566137526 $%__expr_-8271623696788926803))) (NDArray___getitem__ $%__expr_7268219828363711414 $%__expr_7577559097497902125)) (NDArray___sub__ (NDArray___getitem__ $%__expr_6720480091233118296 (IndexKey_ndarray (NDArray___eq__ $%__expr_-4275348256566137526 $%__expr_1364373353785060178))) (NDArray___getitem__ $%__expr_7268219828363711414 (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of $%__expr_-3812909516189076479 $%__expr_-732844627964303682))))) (NDArray___sub__ (NDArray___getitem__ $%__expr_6720480091233118296 (IndexKey_ndarray (NDArray___eq__ $%__expr_-4275348256566137526 $%__expr_4843863566566866913))) (NDArray___getitem__ $%__expr_7268219828363711414 $%__expr_3960093023086732968)))) (OptionalInt_some $%__expr_1515625565982584680)))
(let $%__expr_3000737669146698228 (Slice___init__ $%__expr_-1452170678296599248 (OptionalInt_some (Value_to_int (NDArray_to_value (sum (astype (NDArray___gt__ (TupleNDArray___getitem__ (svd (NDArray___mul__ (ndarray-sqrt (asarray (NDArray_scalar (Value_float (Float_rational (bigrat $%__expr_8168747590964019947 (from-string "147"))))) $%__expr_-7704953038804002139 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)) (NDArray___truediv__ $%__expr_2568882040843275336 (NDArray___setitem__ (std $%__expr_2568882040843275336 $%__expr_983055127364785721) (IndexKey_ndarray (NDArray___eq__ (std $%__expr_2568882040843275336 $%__expr_983055127364785721) $%__expr_-8271623696788926803)) (NDArray_scalar (Value_float (Float_rational (bigrat $%__expr_8168747590964019947 $%__expr_8168747590964019947))))))) $%__expr_-5492753565611138931) $%__expr_-3819518261003242831) (NDArray_scalar (Value_float (Float___init__ 0.0001)))) (DType_int32 )) (OptionalIntOrTuple_none ))))) $%__expr_-1452170678296599248))
(let $%__expr_2280756757603070330 (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of $%__expr_-3812909516189076479 $%__expr_-732844627964303682))))
(let $%__expr_-7515158789430669490 (TupleNDArray___getitem__ (svd (NDArray___mul__ (ndarray-sqrt (asarray (NDArray_scalar (Value_float (Float_rational (bigrat $%__expr_8168747590964019947 (from-string "147"))))) $%__expr_-7704953038804002139 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)) (NDArray___truediv__ $%__expr_2568882040843275336 (NDArray___setitem__ (std $%__expr_2568882040843275336 $%__expr_983055127364785721) (IndexKey_ndarray (NDArray___eq__ (std $%__expr_2568882040843275336 $%__expr_983055127364785721) $%__expr_-8271623696788926803)) (NDArray_scalar (Value_float (Float_rational (bigrat $%__expr_8168747590964019947 $%__expr_8168747590964019947))))))) $%__expr_-5492753565611138931) $%__expr_-3819518261003242831))
(let $%__expr_-6337657961916076199 (svd (NDArray___mul__ (ndarray-sqrt (asarray (NDArray_scalar (Value_float (Float_rational (bigrat $%__expr_8168747590964019947 (from-string "147"))))) $%__expr_-7704953038804002139 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)) (NDArray___truediv__ $%__expr_2568882040843275336 (NDArray___setitem__ (std $%__expr_2568882040843275336 $%__expr_983055127364785721) (IndexKey_ndarray (NDArray___eq__ (std $%__expr_2568882040843275336 $%__expr_983055127364785721) $%__expr_-8271623696788926803)) (NDArray_scalar (Value_float (Float_rational (bigrat $%__expr_8168747590964019947 $%__expr_8168747590964019947))))))) $%__expr_-5492753565611138931))
(let $%__expr_-5633021559492843827 (std $%__expr_2568882040843275336 $%__expr_983055127364785721))
(constructor NDArray___matmul__ (NDArray NDArray) NDArray)
(constructor IndexKey_slice (Slice) IndexKey)
(let $%__expr_683045514215179507 (svd (NDArray___matmul__ (NDArray_T (NDArray___mul__ (ndarray-sqrt (NDArray___mul__ (NDArray___mul__ (NDArray_scalar (Value_int $%__expr_-965411243548255093)) (NDArray___truediv__ (astype (TupleNDArray___getitem__ (unique_counts (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2)))))) $%__expr_-3819518261003242831) (NDArray_dtype (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none )))) (NDArray_scalar (Value_float (Float___init__ 150.0))))) (NDArray_scalar (Value_float (Float___truediv__ $%__expr_-2513766338179447502 (Float_from_int (Int___sub__ (TupleInt___getitem__ (NDArray_shape (unique_values (concat (TupleNDArray_from_vec (vec-of (unique_values (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)))) (OptionalInt_none )))) $%__expr_1515625565982584680) $%__expr_-3819518261003242831))))))) (NDArray_T (NDArray___sub__ $%__expr_2111919219348313127 (NDArray___matmul__ (NDArray___truediv__ (astype (TupleNDArray___getitem__ (unique_counts (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2)))))) $%__expr_-3819518261003242831) (NDArray_dtype (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none )))) (NDArray_scalar (Value_float (Float___init__ 150.0)))) $%__expr_2111919219348313127))))) (NDArray___truediv__ (NDArray_T (NDArray___truediv__ (NDArray___getitem__ (TupleNDArray___getitem__ $%__expr_-6337657961916076199 $%__expr_-8967796230287329510) (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of (MultiAxisIndexKeyItem_slice $%__expr_3000737669146698228) $%__expr_-732844627964303682)))) (NDArray___setitem__ $%__expr_-2186208094369825484 (IndexKey_ndarray (NDArray___eq__ $%__expr_-2186208094369825484 $%__expr_-8271623696788926803)) (NDArray_scalar (Value_float (Float___init__ 1.0)))))) (NDArray___getitem__ $%__expr_-7515158789430669490 (IndexKey_slice $%__expr_3000737669146698228)))) $%__expr_-5492753565611138931))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (TupleNDArray_to_vec (svd (NDArray___matmul__ (NDArray_T (NDArray___mul__ (ndarray-sqrt (NDArray___mul__ (NDArray___mul__ (NDArray_scalar (Value_int $%__expr_-965411243548255093)) (NDArray___truediv__ (astype (TupleNDArray___getitem__ (unique_counts (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2)))))) $%__expr_-3819518261003242831) (NDArray_dtype (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none )))) (NDArray_scalar (Value_float (Float___init__ 150.0))))) (NDArray_scalar (Value_float (Float___truediv__ $%__expr_-2513766338179447502 (Float_from_int (Int___sub__ (TupleInt___getitem__ (NDArray_shape (unique_values (concat (TupleNDArray_from_vec (vec-of (unique_values (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)))) (OptionalInt_none )))) $%__expr_1515625565982584680) $%__expr_-3819518261003242831))))))) (NDArray_T (NDArray___sub__ $%__expr_2111919219348313127 (NDArray___matmul__ (NDArray___truediv__ (astype (TupleNDArray___getitem__ (unique_counts (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2)))))) $%__expr_-3819518261003242831) (NDArray_dtype (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none )))) (NDArray_scalar (Value_float (Float___init__ 150.0)))) $%__expr_2111919219348313127))))) (NDArray___truediv__ (NDArray_T (NDArray___truediv__ (NDArray___getitem__ (TupleNDArray___getitem__ $%__expr_-6337657961916076199 $%__expr_-8967796230287329510) (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of (MultiAxisIndexKeyItem_slice $%__expr_3000737669146698228) $%__expr_-732844627964303682)))) (NDArray___setitem__ $%__expr_-2186208094369825484 (IndexKey_ndarray (NDArray___eq__ $%__expr_-2186208094369825484 $%__expr_-8271623696788926803)) (NDArray_scalar (Value_float (Float___init__ 1.0)))))) (NDArray___getitem__ $%__expr_-7515158789430669490 (IndexKey_slice $%__expr_3000737669146698228)))) $%__expr_-5492753565611138931)) 0)
(extract (TupleInt_to_vec (NDArray_shape (unique_values (concat (TupleNDArray_from_vec (vec-of (unique_values (asarray (asarray (reshape (asarray (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2))))) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (TupleInt_from_vec (vec-of (Int___init__ -1))) $%__expr_-4021706396155434623) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860) $%__expr_-783593948058674373 $%__expr_-4021706396155434623 $%__expr_-7565754526517146860)))) (OptionalInt_none ))))) 0)
(let $%__expr_8669073206247132810 (Int___eq__ (Int___mul__ $%__expr_-3819518261003242831 (Int___init__ 3)) $%__expr_-8967796230287329510))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (Int___eq__ (Int___mul__ $%__expr_-3819518261003242831 (Int___init__ 3)) $%__expr_-8967796230287329510)) 0)
(extract (Boolean_to_bool (Int___eq__ (NDArray_ndim (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 0))) 0)
(extract (Boolean_to_bool (Int___eq__ (NDArray_ndim (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 1))) 0)
(extract (Boolean_to_bool (Int___ge__ (NDArray_ndim (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 3))) 0)
(extract (Boolean_to_bool (isdtype (NDArray_dtype (asarray (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none )) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none ))) (IsDtypeKind___or__ (IsDtypeKind_string "real floating") (IsDtypeKind___or__ (IsDtypeKind_string "complex floating") (IsDtypeKind_NULL ))))) 0)
(extract (Boolean_to_bool (Value_to_bool (NDArray_to_value (isfinite (sum (asarray (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none )) $%__expr_-783593948058674373 (OptionalBool_none ) (OptionalDevice_none )) (OptionalIntOrTuple_none )))))) 0)
(extract (Int_to_i64 (TupleInt_length (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))))) 0)
(let $%__expr_-1694630773449699795 (Int___lt__ (TupleInt___getitem__ (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 0)) $%__expr_-3819518261003242831))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (Int___lt__ (TupleInt___getitem__ (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 0)) $%__expr_-3819518261003242831)) 0)
(extract (Boolean_to_bool (Int___eq__ (NDArray_ndim (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) (Int___init__ 2))) 0)
(extract (Boolean_to_bool (Int___lt__ (TupleInt___getitem__ (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) $%__expr_-3819518261003242831) $%__expr_-3819518261003242831)) 0)
(extract (Int_to_i64 (TupleInt_length (NDArray_shape $%__expr_6720480091233118296))) 0)
(let $%__expr_6180324870865751302 (Int___eq__ (TupleInt___getitem__ (NDArray_shape $%__expr_6720480091233118296) $%__expr_-3819518261003242831) (TupleInt___getitem__ (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) $%__expr_-3819518261003242831)))
(run-schedule (saturate (run combined_ruleset_4774957744)))
(extract (Boolean_to_bool (Int___eq__ (TupleInt___getitem__ (NDArray_shape $%__expr_6720480091233118296) $%__expr_-3819518261003242831) (TupleInt___getitem__ (NDArray_shape (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))) $%__expr_-3819518261003242831))) 0)
(ruleset ruleset_4774953040)
(rewrite (NDArray___eq__ (TupleNDArray___getitem__ (unique_inverse x) $%__expr_-3819518261003242831) (NDArray_scalar (Value_int i))) (NDArray___eq__ x (NDArray_scalar (NDArray_index (unique_values x) (TupleInt_from_vec (vec-of i))))) :subsume :ruleset ruleset_4774953040)
(constructor values-TupleValue_x-NDArray_i-Int__NDArray_to_value__sum__NDArray___eq___x__NDArray_scalar__TupleValue___getitem___values_i_____OptionalIntOrTuple_none____ (TupleValue NDArray Int) Value)
(rewrite (values-TupleValue_x-NDArray_i-Int__NDArray_to_value__sum__NDArray___eq___x__NDArray_scalar__TupleValue___getitem___values_i_____OptionalIntOrTuple_none____ values x i) (NDArray_to_value (sum (NDArray___eq__ x (NDArray_scalar (TupleValue___getitem__ values i))) (OptionalIntOrTuple_none ))) :subsume :ruleset ruleset_4774953040)
(constructor count_values (NDArray TupleValue) TupleValue)
(rewrite (count_values x values) (TupleValue___init__ (TupleValue_length values) (unstable-fn "values-TupleValue_x-NDArray_i-Int__NDArray_to_value__sum__NDArray___eq___x__NDArray_scalar__TupleValue___getitem___values_i_____OptionalIntOrTuple_none____" values x)) :subsume :ruleset ruleset_4774953040)
(rewrite (TupleNDArray___getitem__ (unique_counts x) (Int___init__ 1)) (NDArray_vector (count_values x (NDArray_to_values (unique_values x)))) :subsume :ruleset ruleset_4774953040)
(constructor square (NDArray) NDArray)
(rewrite (std x (OptionalIntOrTuple_some (IntOrTuple_int i))) (ndarray-sqrt (mean (square (NDArray___sub__ x (mean x (OptionalIntOrTuple_some (IntOrTuple_int i)) (Boolean___init__ true)))) (OptionalIntOrTuple_some (IntOrTuple_int i)) $%__expr_-5492753565611138931)) :subsume :ruleset ruleset_4774953040)
(rewrite (mean x (OptionalIntOrTuple_some (IntOrTuple_int i)) $%__expr_-5492753565611138931) (NDArray___truediv__ (sum x (OptionalIntOrTuple_some (IntOrTuple_int i))) (NDArray_scalar (Value_int (TupleInt___getitem__ (NDArray_shape x) i)))) :subsume :ruleset ruleset_4774953040)
(constructor expand_dims (NDArray Int) NDArray)
(rewrite (mean x (OptionalIntOrTuple_some (IntOrTuple_int i)) (Boolean___init__ true)) (expand_dims (NDArray___truediv__ (sum x (OptionalIntOrTuple_some (IntOrTuple_int i))) (NDArray_scalar (Value_int (TupleInt___getitem__ (NDArray_shape x) i)))) i) :subsume :ruleset ruleset_4774953040)
(unstable-combined-ruleset combined_ruleset_4774954096 combined_ruleset_4774957744 ruleset_4774953040)
(let $%__expr_-8031376273367010161 (NDArray___truediv__ (astype (TupleNDArray___getitem__ (unique_counts (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2)))))) $%__expr_-3819518261003242831) $%__expr_3312772843316740737) (NDArray_scalar (Value_float (Float_rational (bigrat (from-string "150") $%__expr_8168747590964019947))))))
(let $%__expr_7415952403571093742 (svd (NDArray___matmul__ (NDArray_T (NDArray___mul__ (ndarray-sqrt (NDArray___mul__ (NDArray___mul__ (NDArray_scalar (Value_int $%__expr_-965411243548255093)) $%__expr_-8031376273367010161) (NDArray_scalar (Value_float (Float_rational (bigrat $%__expr_8168747590964019947 (from-string "2"))))))) (NDArray_T (NDArray___sub__ $%__expr_7268219828363711414 (NDArray___matmul__ $%__expr_-8031376273367010161 $%__expr_7268219828363711414))))) (NDArray___truediv__ (NDArray_T (NDArray___truediv__ (NDArray___getitem__ (TupleNDArray___getitem__ $%__expr_-6337657961916076199 $%__expr_-8967796230287329510) (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of (MultiAxisIndexKeyItem_slice $%__expr_3000737669146698228) $%__expr_-732844627964303682)))) (NDArray___setitem__ (std $%__expr_2568882040843275336 $%__expr_983055127364785721) (IndexKey_ndarray (NDArray___eq__ (std $%__expr_2568882040843275336 $%__expr_983055127364785721) $%__expr_-8271623696788926803)) (NDArray_scalar (Value_float (Float_rational (bigrat $%__expr_8168747590964019947 $%__expr_8168747590964019947))))))) (NDArray___getitem__ $%__expr_-7515158789430669490 (IndexKey_slice $%__expr_3000737669146698228)))) $%__expr_-5492753565611138931))
(let $%__expr_1739377561444238594 (TupleNDArray___getitem__ (unique_counts (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2)))))) $%__expr_-3819518261003242831))
(let $%__expr_-7196716872530625233 (MultiAxisIndexKeyItem_slice $%__expr_3000737669146698228))
(let $%__expr_-9132183529443918859 (TupleNDArray___getitem__ $%__expr_-6337657961916076199 $%__expr_-8967796230287329510))
(let $%__expr_4981416852611516537 (NDArray___setitem__ (std $%__expr_2568882040843275336 $%__expr_983055127364785721) (IndexKey_ndarray (NDArray___eq__ (std $%__expr_2568882040843275336 $%__expr_983055127364785721) $%__expr_-8271623696788926803)) (NDArray_scalar (Value_float (Float_rational (bigrat $%__expr_8168747590964019947 $%__expr_8168747590964019947))))))
(let $%__expr_5084147555985265125 (NDArray___getitem__ $%__expr_-7515158789430669490 (IndexKey_slice $%__expr_3000737669146698228)))
(let $%__expr_-4507268164115239215 (NDArray_dtype (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none ))))
(push)
(let $desugar_simplify_1 (NDArray___getitem__ (NDArray___matmul__ (NDArray___sub__ $%__expr_-218207054133359828 (NDArray___matmul__ (NDArray___truediv__ (astype (TupleNDArray___getitem__ (unique_counts (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of (Value_int (Int___init__ 0)) (Value_int $%__expr_-3819518261003242831) (Value_int (Int___init__ 2)))))) $%__expr_-3819518261003242831) (NDArray_dtype (asarray (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") $%__expr_3312772843316740737) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (OptionalDType_none ) (OptionalBool_none ) (OptionalDevice_none )))) (NDArray_scalar (Value_float (Float___init__ 150.0)))) $%__expr_2111919219348313127)) (NDArray___matmul__ (NDArray___truediv__ (NDArray_T (NDArray___truediv__ (NDArray___getitem__ (TupleNDArray___getitem__ $%__expr_-6337657961916076199 $%__expr_-8967796230287329510) (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of (MultiAxisIndexKeyItem_slice $%__expr_3000737669146698228) $%__expr_-732844627964303682)))) (NDArray___setitem__ $%__expr_-2186208094369825484 (IndexKey_ndarray (NDArray___eq__ $%__expr_-2186208094369825484 $%__expr_-8271623696788926803)) (NDArray_scalar (Value_float (Float___init__ 1.0)))))) (NDArray___getitem__ $%__expr_-7515158789430669490 (IndexKey_slice $%__expr_3000737669146698228))) (NDArray___getitem__ (NDArray_T (TupleNDArray___getitem__ $%__expr_7415952403571093742 $%__expr_-8967796230287329510)) (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of $%__expr_-732844627964303682 (MultiAxisIndexKeyItem_slice (Slice___init__ $%__expr_-1452170678296599248 (OptionalInt_some (Value_to_int (NDArray_to_value (sum (astype (NDArray___gt__ (TupleNDArray___getitem__ $%__expr_7415952403571093742 $%__expr_-3819518261003242831) (NDArray___mul__ (NDArray_scalar (Value_float (Float___init__ 0.0001))) (NDArray___getitem__ (TupleNDArray___getitem__ $%__expr_7415952403571093742 $%__expr_-3819518261003242831) (IndexKey_int $%__expr_1515625565982584680)))) (DType_int32 )) (OptionalIntOrTuple_none ))))) $%__expr_-1452170678296599248)))))))) (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of $%__expr_-732844627964303682 (MultiAxisIndexKeyItem_slice (Slice___init__ $%__expr_-1452170678296599248 (OptionalInt_some $%__expr_-8967796230287329510) $%__expr_-1452170678296599248)))))))
(run-schedule (saturate (run combined_ruleset_4774954096)))
(extract $desugar_simplify_1)
(pop 1)
(pop 1)
(sort IndexKey)
(sort MultiAxisIndexKey)
(constructor IndexKey_multi_axis (MultiAxisIndexKey) IndexKey)
(sort MultiAxisIndexKeyItem)
(sort Vec_MultiAxisIndexKeyItem (Vec MultiAxisIndexKeyItem))
(constructor MultiAxisIndexKey_from_vec (Vec_MultiAxisIndexKeyItem) MultiAxisIndexKey)
(sort Int)
(constructor MultiAxisIndexKeyItem_int (Int) MultiAxisIndexKeyItem)
(constructor Int___init__ (i64) Int)
(sort Slice)
(constructor MultiAxisIndexKeyItem_slice (Slice) MultiAxisIndexKeyItem)
(sort OptionalInt)
(constructor Slice___init__ (OptionalInt OptionalInt OptionalInt) Slice)
(constructor OptionalInt_none () OptionalInt)
(let $%__expr_3960093023086732968 (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of (MultiAxisIndexKeyItem_int (Int___init__ 2)) (MultiAxisIndexKeyItem_slice (Slice___init__ (OptionalInt_none ) (OptionalInt_none ) (OptionalInt_none )))))))
(sort Value)
(constructor Value_int (Int) Value)
(let $%__expr_3177832130128926844 (Value_int (Int___init__ 0)))
(sort NDArray)
(constructor NDArray___getitem__ (NDArray IndexKey) NDArray)
(constructor assume_isfinite (NDArray) NDArray)
(sort TupleInt)
(constructor assume_shape (NDArray TupleInt) NDArray)
(sort DType)
(constructor assume_dtype (NDArray DType) NDArray)
(constructor NDArray_var (String) NDArray :cost 200)
(constructor DType_float64 () DType)
(sort Vec_Int (Vec Int))
(constructor TupleInt_from_vec (Vec_Int) TupleInt)
(constructor IndexKey_ndarray (NDArray) IndexKey)
(constructor NDArray___eq__ (NDArray NDArray) NDArray)
(sort TupleValue)
(constructor assume_value_one_of (NDArray TupleValue) NDArray)
(constructor DType_int64 () DType)
(sort Vec_Value (Vec Value))
(constructor TupleValue_from_vec (Vec_Value) TupleValue)
(constructor NDArray_scalar (Value) NDArray)
(let $%__expr_-4055289162102549798 (NDArray___getitem__ (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") (DType_float64 )) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (IndexKey_ndarray (NDArray___eq__ (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of $%__expr_3177832130128926844 (Value_int (Int___init__ 1)) (Value_int (Int___init__ 2))))) (NDArray_scalar $%__expr_3177832130128926844)))))
(let $%__expr_4960580842698491831 (Value_int (Int___init__ 2)))
(let $%__expr_-8967796230287329510 (Int___init__ 2))
(let $%__expr_-965411243548255093 (Int___init__ 150))
(let $%__expr_-8512717510729445879 (Int___init__ 4))
(let $%__expr_-2999685187327316942 (Value_int (Int___init__ 1)))
(let $%__expr_2472441736055780078 (NDArray___getitem__ (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") (DType_float64 )) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))) (IndexKey_ndarray (NDArray___eq__ (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of $%__expr_3177832130128926844 (Value_int (Int___init__ 1)) (Value_int (Int___init__ 2))))) (NDArray_scalar $%__expr_-2999685187327316942)))))
(let $%__expr_1515625565982584680 (Int___init__ 0))
(let $%__expr_6720480091233118296 (assume_isfinite (assume_shape (assume_dtype (NDArray_var "X") (DType_float64 )) (TupleInt_from_vec (vec-of (Int___init__ 150) (Int___init__ 4))))))
(let $%__expr_-4275348256566137526 (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of $%__expr_3177832130128926844 (Value_int (Int___init__ 1)) (Value_int (Int___init__ 2))))))
(let $%__expr_-732844627964303682 (MultiAxisIndexKeyItem_slice (Slice___init__ (OptionalInt_none ) (OptionalInt_none ) (OptionalInt_none ))))
(let $%__expr_-3819518261003242831 (Int___init__ 1))
(let $%__expr_3312772843316740737 (DType_float64 ))
(let $%__expr_2487900625561038978 (NDArray___getitem__ $%__expr_6720480091233118296 (IndexKey_ndarray (NDArray___eq__ $%__expr_-4275348256566137526 (NDArray_scalar $%__expr_4960580842698491831)))))
(sort OptionalIntOrTuple)
(sort IntOrTuple)
(constructor OptionalIntOrTuple_some (IntOrTuple) OptionalIntOrTuple)
(constructor IntOrTuple_int (Int) IntOrTuple)
(let $%__expr_983055127364785721 (OptionalIntOrTuple_some (IntOrTuple_int $%__expr_1515625565982584680)))
(constructor NDArray___setitem__ (NDArray IndexKey NDArray) NDArray)
(sort OptionalDType)
(sort OptionalDevice)
(constructor zeros (TupleInt OptionalDType OptionalDevice) NDArray)
(constructor OptionalDType_some (DType) OptionalDType)
(sort Device)
(constructor OptionalDevice_some (Device) OptionalDevice)
(constructor NDArray_device (NDArray) Device)
(constructor NDArray___truediv__ (NDArray NDArray) NDArray)
(constructor sum (NDArray OptionalIntOrTuple) NDArray)
(constructor TupleInt___getitem__ (TupleInt Int) Int)
(constructor NDArray_shape (NDArray) TupleInt)
(let $%__expr_4905588185657853020 (NDArray___setitem__ (NDArray___setitem__ (NDArray___setitem__ (zeros (TupleInt_from_vec (vec-of (Int___init__ 3) $%__expr_-8512717510729445879)) (OptionalDType_some $%__expr_3312772843316740737) (OptionalDevice_some (NDArray_device $%__expr_6720480091233118296))) (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of (MultiAxisIndexKeyItem_int $%__expr_1515625565982584680) $%__expr_-732844627964303682))) (NDArray___truediv__ (sum $%__expr_-4055289162102549798 $%__expr_983055127364785721) (NDArray_scalar (Value_int (TupleInt___getitem__ (NDArray_shape $%__expr_-4055289162102549798) $%__expr_1515625565982584680))))) (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of (MultiAxisIndexKeyItem_int $%__expr_-3819518261003242831) $%__expr_-732844627964303682))) (NDArray___truediv__ (sum $%__expr_2472441736055780078 $%__expr_983055127364785721) (NDArray_scalar (Value_int (TupleInt___getitem__ (NDArray_shape $%__expr_2472441736055780078) $%__expr_1515625565982584680))))) $%__expr_3960093023086732968 (NDArray___truediv__ (sum $%__expr_2487900625561038978 $%__expr_983055127364785721) (NDArray_scalar (Value_int (TupleInt___getitem__ (NDArray_shape $%__expr_2487900625561038978) $%__expr_1515625565982584680))))))
(let $%__expr_7577559097497902125 (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of (MultiAxisIndexKeyItem_int $%__expr_1515625565982584680) $%__expr_-732844627964303682))))
(let $%__expr_2280756757603070330 (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of (MultiAxisIndexKeyItem_int $%__expr_-3819518261003242831) $%__expr_-732844627964303682))))
(sort TupleNDArray)
(constructor concat (TupleNDArray OptionalInt) NDArray)
(sort Vec_NDArray (Vec NDArray))
(constructor TupleNDArray_from_vec (Vec_NDArray) TupleNDArray)
(constructor NDArray___sub__ (NDArray NDArray) NDArray)
(constructor OptionalInt_some (Int) OptionalInt)
(let $%__expr_-885499726357552226 (concat (TupleNDArray_from_vec (vec-of (NDArray___sub__ $%__expr_-4055289162102549798 (NDArray___getitem__ $%__expr_4905588185657853020 $%__expr_7577559097497902125)) (NDArray___sub__ $%__expr_2472441736055780078 (NDArray___getitem__ $%__expr_4905588185657853020 $%__expr_2280756757603070330)) (NDArray___sub__ $%__expr_2487900625561038978 (NDArray___getitem__ $%__expr_4905588185657853020 $%__expr_3960093023086732968)))) (OptionalInt_some $%__expr_1515625565982584680)))
(let $%__expr_8168747590964019947 (from-string "1"))
(constructor square (NDArray) NDArray)
(constructor expand_dims (NDArray Int) NDArray)
(let $%__expr_-6878258379032595142 (square (NDArray___sub__ $%__expr_-885499726357552226 (expand_dims (NDArray___truediv__ (sum $%__expr_-885499726357552226 $%__expr_983055127364785721) (NDArray_scalar (Value_int (TupleInt___getitem__ (NDArray_shape $%__expr_-885499726357552226) $%__expr_1515625565982584680)))) $%__expr_1515625565982584680))))
(let $%__expr_-8271623696788926803 (NDArray_scalar $%__expr_3177832130128926844))
(let $%__expr_-7704953038804002139 (OptionalDType_some $%__expr_3312772843316740737))
(constructor ndarray-sqrt (NDArray) NDArray)
(let $%__expr_-1251134313046779088 (ndarray-sqrt (NDArray___truediv__ (sum $%__expr_-6878258379032595142 $%__expr_983055127364785721) (NDArray_scalar (Value_int (TupleInt___getitem__ (NDArray_shape $%__expr_-6878258379032595142) $%__expr_1515625565982584680))))))
(constructor TupleNDArray___getitem__ (TupleNDArray Int) NDArray)
(sort Boolean)
(constructor svd (NDArray Boolean) TupleNDArray)
(constructor NDArray___mul__ (NDArray NDArray) NDArray)
(sort OptionalBool)
(constructor asarray (NDArray OptionalDType OptionalBool OptionalDevice) NDArray)
(sort Float)
(constructor Value_float (Float) Value)
(constructor Float_rational (BigRat) Float :cost 2)
(constructor OptionalBool_none () OptionalBool)
(constructor OptionalDevice_none () OptionalDevice)
(constructor Boolean___init__ (bool) Boolean)
(let $%__expr_5074646572599255728 (TupleNDArray___getitem__ (svd (NDArray___mul__ (ndarray-sqrt (asarray (NDArray_scalar (Value_float (Float_rational (bigrat $%__expr_8168747590964019947 (from-string "147"))))) $%__expr_-7704953038804002139 (OptionalBool_none ) (OptionalDevice_none ))) (NDArray___truediv__ $%__expr_-885499726357552226 (NDArray___setitem__ $%__expr_-1251134313046779088 (IndexKey_ndarray (NDArray___eq__ $%__expr_-1251134313046779088 $%__expr_-8271623696788926803)) (NDArray_scalar (Value_float (Float_rational (bigrat $%__expr_8168747590964019947 $%__expr_8168747590964019947))))))) (Boolean___init__ false)) $%__expr_-3819518261003242831))
(let $%__expr_3031226601948441145 (NDArray___eq__ (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of $%__expr_3177832130128926844 (Value_int (Int___init__ 1)) (Value_int (Int___init__ 2))))) (NDArray_scalar $%__expr_3177832130128926844)))
(let $%__expr_2626906736684537088 (NDArray___eq__ $%__expr_-4275348256566137526 (NDArray_scalar $%__expr_4960580842698491831)))
(constructor OptionalIntOrTuple_none () OptionalIntOrTuple)
(let $%__expr_7783735801821713909 (OptionalIntOrTuple_none ))
(let $%__expr_-1452170678296599248 (OptionalInt_none ))
(constructor Value_to_int (Value) Int)
(constructor NDArray_to_value (NDArray) Value)
(constructor astype (NDArray DType) NDArray)
(constructor NDArray___gt__ (NDArray NDArray) NDArray)
(constructor Float___init__ (f64) Float :cost 3)
(constructor DType_int32 () DType)
(let $%__expr_-4136436754667800561 (Slice___init__ $%__expr_-1452170678296599248 (OptionalInt_some (Value_to_int (NDArray_to_value (sum (astype (NDArray___gt__ $%__expr_5074646572599255728 (NDArray_scalar (Value_float (Float___init__ 0.0001)))) (DType_int32 )) $%__expr_7783735801821713909)))) $%__expr_-1452170678296599248))
(let $%__expr_-4363670705750809665 (NDArray___setitem__ $%__expr_-1251134313046779088 (IndexKey_ndarray (NDArray___eq__ $%__expr_-1251134313046779088 $%__expr_-8271623696788926803)) (NDArray_scalar (Value_float (Float_rational (bigrat $%__expr_8168747590964019947 $%__expr_8168747590964019947))))))
(let $%__expr_-5492753565611138931 (Boolean___init__ false))
(constructor NDArray___matmul__ (NDArray NDArray) NDArray)
(constructor NDArray_T (NDArray) NDArray)
(constructor NDArray_vector (TupleValue) NDArray)
(constructor IndexKey_slice (Slice) IndexKey)
(let $%__expr_951252240580768262 (TupleNDArray___getitem__ (svd (NDArray___matmul__ (NDArray_T (NDArray___mul__ (ndarray-sqrt (NDArray___mul__ (NDArray___mul__ (NDArray_scalar (Value_int $%__expr_-965411243548255093)) (NDArray___truediv__ (astype (NDArray_vector (TupleValue_from_vec (vec-of (NDArray_to_value (sum $%__expr_3031226601948441145 $%__expr_7783735801821713909)) (NDArray_to_value (sum (NDArray___eq__ (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of $%__expr_3177832130128926844 (Value_int (Int___init__ 1)) (Value_int (Int___init__ 2))))) (NDArray_scalar $%__expr_-2999685187327316942)) $%__expr_7783735801821713909)) (NDArray_to_value (sum $%__expr_2626906736684537088 $%__expr_7783735801821713909))))) $%__expr_3312772843316740737) (NDArray_scalar (Value_float (Float_rational (bigrat (from-string "150") $%__expr_8168747590964019947)))))) (NDArray_scalar (Value_float (Float_rational (bigrat $%__expr_8168747590964019947 (from-string "2"))))))) (NDArray_T (NDArray___sub__ $%__expr_4905588185657853020 (NDArray___matmul__ (NDArray___truediv__ (astype (NDArray_vector (TupleValue_from_vec (vec-of (NDArray_to_value (sum $%__expr_3031226601948441145 $%__expr_7783735801821713909)) (NDArray_to_value (sum (NDArray___eq__ (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of $%__expr_3177832130128926844 (Value_int (Int___init__ 1)) (Value_int (Int___init__ 2))))) (NDArray_scalar $%__expr_-2999685187327316942)) $%__expr_7783735801821713909)) (NDArray_to_value (sum $%__expr_2626906736684537088 $%__expr_7783735801821713909))))) $%__expr_3312772843316740737) (NDArray_scalar (Value_float (Float_rational (bigrat (from-string "150") $%__expr_8168747590964019947))))) $%__expr_4905588185657853020))))) (NDArray___truediv__ (NDArray_T (NDArray___truediv__ (NDArray___getitem__ (TupleNDArray___getitem__ (svd (NDArray___mul__ (ndarray-sqrt (asarray (NDArray_scalar (Value_float (Float_rational (bigrat $%__expr_8168747590964019947 (from-string "147"))))) $%__expr_-7704953038804002139 (OptionalBool_none ) (OptionalDevice_none ))) (NDArray___truediv__ $%__expr_-885499726357552226 (NDArray___setitem__ $%__expr_-1251134313046779088 (IndexKey_ndarray (NDArray___eq__ $%__expr_-1251134313046779088 $%__expr_-8271623696788926803)) (NDArray_scalar (Value_float (Float_rational (bigrat $%__expr_8168747590964019947 $%__expr_8168747590964019947))))))) (Boolean___init__ false)) $%__expr_-8967796230287329510) (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of (MultiAxisIndexKeyItem_slice $%__expr_-4136436754667800561) $%__expr_-732844627964303682)))) $%__expr_-4363670705750809665)) (NDArray___getitem__ $%__expr_5074646572599255728 (IndexKey_slice $%__expr_-4136436754667800561)))) $%__expr_-5492753565611138931) $%__expr_-3819518261003242831))
(let $%__expr_-4848395256643278075 (NDArray_var "y"))
(let $%__expr_-2743419600569035313 (DType_int32 ))
(let $%__expr_-1085596391076604196 (NDArray___eq__ (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of $%__expr_3177832130128926844 (Value_int (Int___init__ 1)) (Value_int (Int___init__ 2))))) (NDArray_scalar $%__expr_-2999685187327316942)))
(let $%__expr_6466749670865178762 (svd (NDArray___matmul__ (NDArray_T (NDArray___mul__ (ndarray-sqrt (NDArray___mul__ (NDArray___mul__ (NDArray_scalar (Value_int $%__expr_-965411243548255093)) (NDArray___truediv__ (astype (NDArray_vector (TupleValue_from_vec (vec-of (NDArray_to_value (sum $%__expr_3031226601948441145 $%__expr_7783735801821713909)) (NDArray_to_value (sum (NDArray___eq__ (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of $%__expr_3177832130128926844 (Value_int (Int___init__ 1)) (Value_int (Int___init__ 2))))) (NDArray_scalar $%__expr_-2999685187327316942)) $%__expr_7783735801821713909)) (NDArray_to_value (sum $%__expr_2626906736684537088 $%__expr_7783735801821713909))))) $%__expr_3312772843316740737) (NDArray_scalar (Value_float (Float_rational (bigrat (from-string "150") $%__expr_8168747590964019947)))))) (NDArray_scalar (Value_float (Float_rational (bigrat $%__expr_8168747590964019947 (from-string "2"))))))) (NDArray_T (NDArray___sub__ $%__expr_4905588185657853020 (NDArray___matmul__ (NDArray___truediv__ (astype (NDArray_vector (TupleValue_from_vec (vec-of (NDArray_to_value (sum $%__expr_3031226601948441145 $%__expr_7783735801821713909)) (NDArray_to_value (sum (NDArray___eq__ (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of $%__expr_3177832130128926844 (Value_int (Int___init__ 1)) (Value_int (Int___init__ 2))))) (NDArray_scalar $%__expr_-2999685187327316942)) $%__expr_7783735801821713909)) (NDArray_to_value (sum $%__expr_2626906736684537088 $%__expr_7783735801821713909))))) $%__expr_3312772843316740737) (NDArray_scalar (Value_float (Float_rational (bigrat (from-string "150") $%__expr_8168747590964019947))))) $%__expr_4905588185657853020))))) (NDArray___truediv__ (NDArray_T (NDArray___truediv__ (NDArray___getitem__ (TupleNDArray___getitem__ (svd (NDArray___mul__ (ndarray-sqrt (asarray (NDArray_scalar (Value_float (Float_rational (bigrat $%__expr_8168747590964019947 (from-string "147"))))) $%__expr_-7704953038804002139 (OptionalBool_none ) (OptionalDevice_none ))) (NDArray___truediv__ $%__expr_-885499726357552226 (NDArray___setitem__ $%__expr_-1251134313046779088 (IndexKey_ndarray (NDArray___eq__ $%__expr_-1251134313046779088 $%__expr_-8271623696788926803)) (NDArray_scalar (Value_float (Float_rational (bigrat $%__expr_8168747590964019947 $%__expr_8168747590964019947))))))) (Boolean___init__ false)) $%__expr_-8967796230287329510) (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of (MultiAxisIndexKeyItem_slice $%__expr_-4136436754667800561) $%__expr_-732844627964303682)))) $%__expr_-4363670705750809665)) (NDArray___getitem__ $%__expr_5074646572599255728 (IndexKey_slice $%__expr_-4136436754667800561)))) $%__expr_-5492753565611138931))
(let $%__expr_3758124421086381772 (NDArray___matmul__ (NDArray___truediv__ (astype (NDArray_vector (TupleValue_from_vec (vec-of (NDArray_to_value (sum $%__expr_3031226601948441145 $%__expr_7783735801821713909)) (NDArray_to_value (sum (NDArray___eq__ (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of $%__expr_3177832130128926844 (Value_int (Int___init__ 1)) (Value_int (Int___init__ 2))))) (NDArray_scalar $%__expr_-2999685187327316942)) $%__expr_7783735801821713909)) (NDArray_to_value (sum $%__expr_2626906736684537088 $%__expr_7783735801821713909))))) $%__expr_3312772843316740737) (NDArray_scalar (Value_float (Float_rational (bigrat (from-string "150") $%__expr_8168747590964019947))))) $%__expr_4905588185657853020))
(let $%__expr_7291114401586345010 0)
(let $%__expr_-1054198044662377053 (NDArray___truediv__ (astype (NDArray_vector (TupleValue_from_vec (vec-of (NDArray_to_value (sum $%__expr_3031226601948441145 $%__expr_7783735801821713909)) (NDArray_to_value (sum (NDArray___eq__ (assume_value_one_of (assume_shape (assume_dtype (NDArray_var "y") (DType_int64 )) (TupleInt_from_vec (vec-of (Int___init__ 150)))) (TupleValue_from_vec (vec-of $%__expr_3177832130128926844 (Value_int (Int___init__ 1)) (Value_int (Int___init__ 2))))) (NDArray_scalar $%__expr_-2999685187327316942)) $%__expr_7783735801821713909)) (NDArray_to_value (sum $%__expr_2626906736684537088 $%__expr_7783735801821713909))))) $%__expr_3312772843316740737) (NDArray_scalar (Value_float (Float_rational (bigrat (from-string "150") $%__expr_8168747590964019947))))))
(let $%__expr_9124251980924877179 (NDArray_var "X"))
(let $%__expr_-2811267273407125878 (svd (NDArray___mul__ (ndarray-sqrt (asarray (NDArray_scalar (Value_float (Float_rational (bigrat $%__expr_8168747590964019947 (from-string "147"))))) $%__expr_-7704953038804002139 (OptionalBool_none ) (OptionalDevice_none ))) (NDArray___truediv__ $%__expr_-885499726357552226 (NDArray___setitem__ $%__expr_-1251134313046779088 (IndexKey_ndarray (NDArray___eq__ $%__expr_-1251134313046779088 $%__expr_-8271623696788926803)) (NDArray_scalar (Value_float (Float_rational (bigrat $%__expr_8168747590964019947 $%__expr_8168747590964019947))))))) (Boolean___init__ false)))
(let $%__expr_-4746212653244667575 (NDArray___truediv__ (NDArray_T (NDArray___truediv__ (NDArray___getitem__ (TupleNDArray___getitem__ (svd (NDArray___mul__ (ndarray-sqrt (asarray (NDArray_scalar (Value_float (Float_rational (bigrat $%__expr_8168747590964019947 (from-string "147"))))) $%__expr_-7704953038804002139 (OptionalBool_none ) (OptionalDevice_none ))) (NDArray___truediv__ $%__expr_-885499726357552226 (NDArray___setitem__ $%__expr_-1251134313046779088 (IndexKey_ndarray (NDArray___eq__ $%__expr_-1251134313046779088 $%__expr_-8271623696788926803)) (NDArray_scalar (Value_float (Float_rational (bigrat $%__expr_8168747590964019947 $%__expr_8168747590964019947))))))) (Boolean___init__ false)) $%__expr_-8967796230287329510) (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of (MultiAxisIndexKeyItem_slice $%__expr_-4136436754667800561) $%__expr_-732844627964303682)))) $%__expr_-4363670705750809665)) (NDArray___getitem__ $%__expr_5074646572599255728 (IndexKey_slice $%__expr_-4136436754667800561))))
(sort Program)
(relation Program_compile (Program i64))
(constructor ndarray_function_two_program (NDArray NDArray NDArray) Program)
(constructor IndexKey_int (Int) IndexKey)
(let $%__expr_7479385404919082912 (Program_compile (ndarray_function_two_program (NDArray___getitem__ (NDArray___matmul__ (NDArray___sub__ $%__expr_6720480091233118296 $%__expr_3758124421086381772) (NDArray___matmul__ $%__expr_-4746212653244667575 (NDArray___getitem__ (NDArray_T (TupleNDArray___getitem__ $%__expr_6466749670865178762 $%__expr_-8967796230287329510)) (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of $%__expr_-732844627964303682 (MultiAxisIndexKeyItem_slice (Slice___init__ $%__expr_-1452170678296599248 (OptionalInt_some (Value_to_int (NDArray_to_value (sum (astype (NDArray___gt__ $%__expr_951252240580768262 (NDArray___mul__ (NDArray_scalar (Value_float (Float___init__ 0.0001))) (NDArray___getitem__ $%__expr_951252240580768262 (IndexKey_int $%__expr_1515625565982584680)))) $%__expr_-2743419600569035313) $%__expr_7783735801821713909)))) $%__expr_-1452170678296599248)))))))) (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of $%__expr_-732844627964303682 (MultiAxisIndexKeyItem_slice (Slice___init__ $%__expr_-1452170678296599248 (OptionalInt_some $%__expr_-8967796230287329510) $%__expr_-1452170678296599248)))))) $%__expr_9124251980924877179 $%__expr_-4848395256643278075) $%__expr_7291114401586345010))
(let $%__expr_6781025800985942292 (NDArray_scalar (Value_float (Float___init__ 0.0001))))
(function Program_statements (Program) String :no-merge)
(let $%__expr_6607193443283949601 (ndarray_function_two_program (NDArray___getitem__ (NDArray___matmul__ (NDArray___sub__ $%__expr_6720480091233118296 $%__expr_3758124421086381772) (NDArray___matmul__ $%__expr_-4746212653244667575 (NDArray___getitem__ (NDArray_T (TupleNDArray___getitem__ $%__expr_6466749670865178762 $%__expr_-8967796230287329510)) (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of $%__expr_-732844627964303682 (MultiAxisIndexKeyItem_slice (Slice___init__ $%__expr_-1452170678296599248 (OptionalInt_some (Value_to_int (NDArray_to_value (sum (astype (NDArray___gt__ $%__expr_951252240580768262 (NDArray___mul__ (NDArray_scalar (Value_float (Float___init__ 0.0001))) (NDArray___getitem__ $%__expr_951252240580768262 (IndexKey_int $%__expr_1515625565982584680)))) $%__expr_-2743419600569035313) $%__expr_7783735801821713909)))) $%__expr_-1452170678296599248)))))))) (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of $%__expr_-732844627964303682 (MultiAxisIndexKeyItem_slice (Slice___init__ $%__expr_-1452170678296599248 (OptionalInt_some $%__expr_-8967796230287329510) $%__expr_-1452170678296599248)))))) $%__expr_9124251980924877179 $%__expr_-4848395256643278075))
(ruleset array_api_program_gen_ruleset)
(constructor Program___add__ (Program Program) Program)
(constructor value_program (Value) Program)
(constructor Program___init__ (String bool) Program)
(constructor acc-Program_i-Value__Program___add____Program___add___acc__value_program_i____Program___init________false__ (Program Value) Program)
(rewrite (acc-Program_i-Value__Program___add____Program___add___acc__value_program_i____Program___init________false__ acc i) (Program___add__ (Program___add__ acc (value_program i)) (Program___init__ ", " false)) :subsume :ruleset array_api_program_gen_ruleset)
(constructor tuple_value_program (TupleValue) Program)
(sort UnstableFn_Program_Program_Value (UnstableFn (Program Value) Program))
(constructor tuple_value_foldl_program (TupleValue UnstableFn_Program_Program_Value Program) Program)
(rewrite (tuple_value_program x) (Program___add__ (tuple_value_foldl_program x (unstable-fn "acc-Program_i-Value__Program___add____Program___add___acc__value_program_i____Program___init________false__") (Program___init__ "(" false)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Program_function_two (Program Program Program String) Program)
(constructor ndarray_program (NDArray) Program)
(rewrite (ndarray_function_two_program res l r) (Program_function_two (ndarray_program res) (ndarray_program l) (ndarray_program r) "__fn") :ruleset array_api_program_gen_ruleset)
(constructor int_program (Int) Program)
(constructor acc-Program_i-Int__Program___add____Program___add___acc__int_program_i____Program___init________false__ (Program Int) Program)
(rewrite (acc-Program_i-Int__Program___add____Program___add___acc__int_program_i____Program___init________false__ acc i) (Program___add__ (Program___add__ acc (int_program i)) (Program___init__ ", " false)) :subsume :ruleset array_api_program_gen_ruleset)
(constructor tuple_int_program (TupleInt) Program)
(sort UnstableFn_Program_Program_Int (UnstableFn (Program Int) Program))
(constructor tuple_int_foldl_program (TupleInt UnstableFn_Program_Program_Int Program) Program)
(rewrite (tuple_int_program x) (Program___add__ (tuple_int_foldl_program x (unstable-fn "acc-Program_i-Int__Program___add____Program___add___acc__int_program_i____Program___init________false__") (Program___init__ "(" false)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor acc-Program_i-NDArray__Program___add____Program___add___acc__ndarray_program_i____Program___init________false__ (Program NDArray) Program)
(rewrite (acc-Program_i-NDArray__Program___add____Program___add___acc__ndarray_program_i____Program___init________false__ acc i) (Program___add__ (Program___add__ acc (ndarray_program i)) (Program___init__ ", " false)) :subsume :ruleset array_api_program_gen_ruleset)
(constructor tuple_ndarray_program (TupleNDArray) Program)
(sort UnstableFn_Program_Program_NDArray (UnstableFn (Program NDArray) Program))
(constructor tuple_ndarray_foldl_program (TupleNDArray UnstableFn_Program_Program_NDArray Program) Program)
(rewrite (tuple_ndarray_program x) (Program___add__ (tuple_ndarray_foldl_program x (unstable-fn "acc-Program_i-NDArray__Program___add____Program___add___acc__ndarray_program_i____Program___init________false__") (Program___init__ "(" false)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (NDArray_var s)) (Program___init__ s true) :ruleset array_api_program_gen_ruleset)
(constructor Program_statement (Program Program) Program :unextractable)
(constructor dtype_program (DType) Program)
(rewrite (ndarray_program (assume_dtype z dtype)) (Program_statement (ndarray_program z) (Program___add__ (Program___add__ (Program___add__ (Program___init__ "assert " false) (ndarray_program z)) (Program___init__ ".dtype == " false)) (dtype_program dtype))) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (assume_shape z ti)) (Program_statement (ndarray_program z) (Program___add__ (Program___add__ (Program___add__ (Program___init__ "assert " false) (ndarray_program z)) (Program___init__ ".shape == " false)) (tuple_int_program ti))) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (assume_isfinite z)) (Program_statement (ndarray_program z) (Program___add__ (Program___add__ (Program___init__ "assert np.all(np.isfinite(" false) (ndarray_program z)) (Program___init__ "))" false))) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (assume_value_one_of z tv)) (Program_statement (ndarray_program z) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "assert set(np.unique(" false) (ndarray_program z)) (Program___init__ ")) == set(" false)) (tuple_value_program tv)) (Program___init__ ")" false))) :ruleset array_api_program_gen_ruleset)
(constructor reshape (NDArray TupleInt OptionalBool) NDArray)
(constructor Program_assign (Program) Program)
(rewrite (ndarray_program (reshape y ti ob)) (Program_assign (Program___add__ (Program___add__ (Program___add__ (ndarray_program y) (Program___init__ ".reshape(" false)) (tuple_int_program ti)) (Program___init__ ")" false))) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (astype y dtype)) (Program_assign (Program___add__ (Program___add__ (Program___add__ (ndarray_program y) (Program___init__ ".astype(" false)) (dtype_program dtype)) (Program___init__ ")" false))) :ruleset array_api_program_gen_ruleset)
(constructor unique_counts (NDArray) TupleNDArray)
(rewrite (tuple_ndarray_program (unique_counts x)) (Program_assign (Program___add__ (Program___add__ (Program___init__ "np.unique(" false) (ndarray_program x)) (Program___init__ ", return_counts=True)" false))) :ruleset array_api_program_gen_ruleset)
(constructor unique_inverse (NDArray) TupleNDArray)
(rewrite (tuple_ndarray_program (unique_inverse x)) (Program_assign (Program___add__ (Program___add__ (Program___init__ "np.unique(" false) (ndarray_program x)) (Program___init__ ", return_inverse=True)" false))) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (TupleNDArray___getitem__ tnd i)) (Program___add__ (Program___add__ (Program___add__ (tuple_ndarray_program tnd) (Program___init__ "[" false)) (int_program i)) (Program___init__ "]" false)) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (NDArray_scalar v)) (Program___add__ (Program___add__ (Program___init__ "np.array(" false) (value_program v)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor OptionalDType_none () OptionalDType)
(rewrite (ndarray_program (zeros ti (OptionalDType_none ) optional_device_)) (Program_assign (Program___add__ (Program___add__ (Program___init__ "np.zeros(" false) (tuple_int_program ti)) (Program___init__ ")" false))) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (zeros ti (OptionalDType_some dtype) optional_device_)) (Program_assign (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "np.zeros(" false) (tuple_int_program ti)) (Program___init__ ", dtype=" false)) (dtype_program dtype)) (Program___init__ ")" false))) :ruleset array_api_program_gen_ruleset)
(constructor unique_values (NDArray) NDArray)
(rewrite (ndarray_program (unique_values x)) (Program_assign (Program___add__ (Program___add__ (Program___init__ "np.unique(" false) (ndarray_program x)) (Program___init__ ")" false))) :ruleset array_api_program_gen_ruleset)
(constructor NDArray___add__ (NDArray NDArray) NDArray)
(rewrite (ndarray_program (NDArray___add__ x y)) (Program_assign (Program___add__ (Program___add__ (ndarray_program x) (Program___init__ " + " false)) (ndarray_program y))) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (NDArray___sub__ x y)) (Program_assign (Program___add__ (Program___add__ (ndarray_program x) (Program___init__ " - " false)) (ndarray_program y))) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (NDArray___mul__ x y)) (Program_assign (Program___add__ (Program___add__ (ndarray_program x) (Program___init__ " * " false)) (ndarray_program y))) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (NDArray___truediv__ x y)) (Program_assign (Program___add__ (Program___add__ (ndarray_program x) (Program___init__ " / " false)) (ndarray_program y))) :ruleset array_api_program_gen_ruleset)
(constructor NDArray___lt__ (NDArray NDArray) NDArray)
(rewrite (ndarray_program (NDArray___lt__ x y)) (Program_assign (Program___add__ (Program___add__ (ndarray_program x) (Program___init__ " < " false)) (ndarray_program y))) :ruleset array_api_program_gen_ruleset)
(constructor NDArray___le__ (NDArray NDArray) NDArray)
(rewrite (ndarray_program (NDArray___le__ x y)) (Program_assign (Program___add__ (Program___add__ (ndarray_program x) (Program___init__ " <= " false)) (ndarray_program y))) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (NDArray___gt__ x y)) (Program_assign (Program___add__ (Program___add__ (ndarray_program x) (Program___init__ " > " false)) (ndarray_program y))) :ruleset array_api_program_gen_ruleset)
(constructor NDArray___ge__ (NDArray NDArray) NDArray)
(rewrite (ndarray_program (NDArray___ge__ x y)) (Program_assign (Program___add__ (Program___add__ (ndarray_program x) (Program___init__ " >= " false)) (ndarray_program y))) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (NDArray___eq__ x y)) (Program_assign (Program___add__ (Program___add__ (ndarray_program x) (Program___init__ " == " false)) (ndarray_program y))) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (NDArray___matmul__ x y)) (Program_assign (Program___add__ (Program___add__ (ndarray_program x) (Program___init__ " @ " false)) (ndarray_program y))) :ruleset array_api_program_gen_ruleset)
(constructor NDArray___mod__ (NDArray NDArray) NDArray)
(rewrite (ndarray_program (NDArray___mod__ x y)) (Program_assign (Program___add__ (Program___add__ (ndarray_program x) (Program___init__ " % " false)) (ndarray_program y))) :ruleset array_api_program_gen_ruleset)
(constructor NDArray___and__ (NDArray NDArray) NDArray)
(rewrite (ndarray_program (NDArray___and__ x y)) (Program_assign (Program___add__ (Program___add__ (ndarray_program x) (Program___init__ " & " false)) (ndarray_program y))) :ruleset array_api_program_gen_ruleset)
(constructor NDArray___or__ (NDArray NDArray) NDArray)
(rewrite (ndarray_program (NDArray___or__ x y)) (Program_assign (Program___add__ (Program___add__ (ndarray_program x) (Program___init__ " | " false)) (ndarray_program y))) :ruleset array_api_program_gen_ruleset)
(constructor NDArray___xor__ (NDArray NDArray) NDArray)
(rewrite (ndarray_program (NDArray___xor__ x y)) (Program_assign (Program___add__ (Program___add__ (ndarray_program x) (Program___init__ " ^ " false)) (ndarray_program y))) :ruleset array_api_program_gen_ruleset)
(constructor NDArray___lshift__ (NDArray NDArray) NDArray)
(rewrite (ndarray_program (NDArray___lshift__ x y)) (Program_assign (Program___add__ (Program___add__ (ndarray_program x) (Program___init__ " << " false)) (ndarray_program y))) :ruleset array_api_program_gen_ruleset)
(constructor NDArray___rshift__ (NDArray NDArray) NDArray)
(rewrite (ndarray_program (NDArray___rshift__ x y)) (Program_assign (Program___add__ (Program___add__ (ndarray_program x) (Program___init__ " >> " false)) (ndarray_program y))) :ruleset array_api_program_gen_ruleset)
(constructor NDArray___floordiv__ (NDArray NDArray) NDArray)
(rewrite (ndarray_program (NDArray___floordiv__ x y)) (Program_assign (Program___add__ (Program___add__ (ndarray_program x) (Program___init__ " // " false)) (ndarray_program y))) :ruleset array_api_program_gen_ruleset)
(constructor NDArray___pow__ (NDArray NDArray) NDArray)
(rewrite (ndarray_program (NDArray___pow__ x y)) (Program_assign (Program___add__ (Program___add__ (ndarray_program x) (Program___init__ " ** " false)) (ndarray_program y))) :ruleset array_api_program_gen_ruleset)
(constructor index_key_program (IndexKey) Program)
(rewrite (ndarray_program (NDArray___setitem__ x idx y)) (Program_statement (Program_assign (ndarray_program x)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program_assign (ndarray_program x)) (Program___init__ "[" false)) (index_key_program idx)) (Program___init__ "] = " false)) (ndarray_program y))) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (NDArray___getitem__ x idx)) (Program___add__ (Program___add__ (Program___add__ (ndarray_program x) (Program___init__ "[" false)) (index_key_program idx)) (Program___init__ "]" false)) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (square x)) (Program_assign (Program___add__ (Program___add__ (Program___init__ "np.square(" false) (ndarray_program x)) (Program___init__ ")" false))) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (expand_dims x i)) (Program_assign (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "np.expand_dims(" false) (ndarray_program x)) (Program___init__ ", " false)) (int_program i)) (Program___init__ ")" false))) :ruleset array_api_program_gen_ruleset)
(constructor mean (NDArray OptionalIntOrTuple Boolean) NDArray)
(rewrite (ndarray_program (mean x $%__expr_7783735801821713909 $%__expr_-5492753565611138931)) (Program_assign (Program___add__ (Program___add__ (Program___init__ "np.mean(" false) (ndarray_program x)) (Program___init__ ")" false))) :ruleset array_api_program_gen_ruleset)
(constructor int_or_tuple_program (IntOrTuple) Program)
(rewrite (ndarray_program (mean x (OptionalIntOrTuple_some int_or_tuple_) $%__expr_-5492753565611138931)) (Program_assign (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "np.mean(" false) (ndarray_program x)) (Program___init__ ", axis=" false)) (int_or_tuple_program int_or_tuple_)) (Program___init__ ")" false))) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (mean x (OptionalIntOrTuple_some int_or_tuple_) (Boolean___init__ true))) (Program_assign (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "np.mean(" false) (ndarray_program x)) (Program___init__ ", axis=" false)) (int_or_tuple_program int_or_tuple_)) (Program___init__ ", keepdims=True)" false))) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (concat tnd $%__expr_-1452170678296599248)) (Program_assign (Program___add__ (Program___add__ (Program___init__ "np.concatenate(" false) (tuple_ndarray_program tnd)) (Program___init__ ")" false))) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (concat tnd (OptionalInt_some i))) (Program_assign (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "np.concatenate(" false) (tuple_ndarray_program tnd)) (Program___init__ ", axis=" false)) (int_program i)) (Program___init__ ")" false))) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (NDArray_vector tv)) (Program___add__ (Program___add__ (Program___init__ "np.array(" false) (tuple_value_program tv)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor std (NDArray OptionalIntOrTuple) NDArray)
(rewrite (ndarray_program (std x $%__expr_7783735801821713909)) (Program_assign (Program___add__ (Program___add__ (Program___init__ "np.std(" false) (ndarray_program x)) (Program___init__ ")" false))) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (std x (OptionalIntOrTuple_some int_or_tuple_))) (Program_assign (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "np.std(" false) (ndarray_program x)) (Program___init__ ", axis=" false)) (int_or_tuple_program int_or_tuple_)) (Program___init__ ")" false))) :ruleset array_api_program_gen_ruleset)
(rewrite (tuple_ndarray_program (svd x (Boolean___init__ true))) (Program_assign (Program___add__ (Program___add__ (Program___init__ "np.linalg.svd(" false) (ndarray_program x)) (Program___init__ ")" false))) :ruleset array_api_program_gen_ruleset)
(rewrite (tuple_ndarray_program (svd x $%__expr_-5492753565611138931)) (Program_assign (Program___add__ (Program___add__ (Program___init__ "np.linalg.svd(" false) (ndarray_program x)) (Program___init__ ", full_matrices=False)" false))) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (ndarray-sqrt x)) (Program_assign (Program___add__ (Program___add__ (Program___init__ "np.sqrt(" false) (ndarray_program x)) (Program___init__ ")" false))) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (NDArray_T x)) (Program___add__ (ndarray_program x) (Program___init__ ".T" false)) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (sum x $%__expr_7783735801821713909)) (Program_assign (Program___add__ (Program___add__ (Program___init__ "np.sum(" false) (ndarray_program x)) (Program___init__ ")" false))) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (sum x (OptionalIntOrTuple_some int_or_tuple_))) (Program_assign (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "np.sum(" false) (ndarray_program x)) (Program___init__ ", axis=" false)) (int_or_tuple_program int_or_tuple_)) (Program___init__ ")" false))) :ruleset array_api_program_gen_ruleset)
(rewrite (tuple_int_program (NDArray_shape x)) (Program___add__ (ndarray_program x) (Program___init__ ".shape" false)) :ruleset array_api_program_gen_ruleset)
(constructor ndarray-abs (NDArray) NDArray)
(rewrite (ndarray_program (ndarray-abs x)) (Program_assign (Program___add__ (Program___add__ (Program___init__ "np.abs(" false) (ndarray_program x)) (Program___init__ ")" false))) :ruleset array_api_program_gen_ruleset)
(constructor optional_dtype_program (OptionalDType) Program)
(rewrite (ndarray_program (asarray x odtype (OptionalBool_none ) (OptionalDevice_none ))) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "np.asarray(" false) (ndarray_program x)) (Program___init__ ", " false)) (optional_dtype_program odtype)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor optional_int_or_tuple_program (OptionalIntOrTuple) Program)
(rewrite (optional_int_or_tuple_program (OptionalIntOrTuple_some it)) (int_or_tuple_program it) :ruleset array_api_program_gen_ruleset)
(rewrite (optional_int_or_tuple_program $%__expr_7783735801821713909) (Program___init__ "None" false) :ruleset array_api_program_gen_ruleset)
(rewrite (int_or_tuple_program (IntOrTuple_int x)) (int_program x) :ruleset array_api_program_gen_ruleset)
(constructor IntOrTuple_tuple (TupleInt) IntOrTuple)
(rewrite (int_or_tuple_program (IntOrTuple_tuple t)) (tuple_int_program t) :ruleset array_api_program_gen_ruleset)
(constructor IndexKey_ELLIPSIS () IndexKey)
(rewrite (index_key_program (IndexKey_ELLIPSIS )) (Program___init__ "..." false) :ruleset array_api_program_gen_ruleset)
(rewrite (index_key_program (IndexKey_int i)) (int_program i) :ruleset array_api_program_gen_ruleset)
(constructor slice_program (Slice) Program)
(rewrite (index_key_program (IndexKey_slice s)) (slice_program s) :ruleset array_api_program_gen_ruleset)
(constructor multi_axis_index_key_program (MultiAxisIndexKey) Program)
(rewrite (index_key_program (IndexKey_multi_axis key)) (multi_axis_index_key_program key) :ruleset array_api_program_gen_ruleset)
(rewrite (index_key_program (IndexKey_ndarray a)) (ndarray_program a) :ruleset array_api_program_gen_ruleset)
(sort UnstableFn_MultiAxisIndexKeyItem_Int (UnstableFn (Int ) MultiAxisIndexKeyItem))
(constructor Int___add__ (Int Int) Int)
(constructor idx_fn-UnstableFn_MultiAxisIndexKeyItem_Int_i-Int__unstable-app_idx_fn__Int___add___i_%__expr_-3819518261003242831__ (UnstableFn_MultiAxisIndexKeyItem_Int Int) MultiAxisIndexKeyItem)
(rewrite (idx_fn-UnstableFn_MultiAxisIndexKeyItem_Int_i-Int__unstable-app_idx_fn__Int___add___i_%__expr_-3819518261003242831__ idx_fn i) (unstable-app idx_fn (Int___add__ i $%__expr_-3819518261003242831)) :subsume :ruleset array_api_program_gen_ruleset)
(constructor MultiAxisIndexKey___init__ (Int UnstableFn_MultiAxisIndexKeyItem_Int) MultiAxisIndexKey)
(rewrite (multi_axis_index_key_program (MultiAxisIndexKey___init__ $%__expr_1515625565982584680 idx_fn)) (Program___init__ "" false) :ruleset array_api_program_gen_ruleset)
(constructor multi_axis_index_key_item_program (MultiAxisIndexKeyItem) Program)
(rewrite (multi_axis_index_key_program (MultiAxisIndexKey___init__ (Int___init__ k) idx_fn)) (Program___add__ (Program___add__ (multi_axis_index_key_item_program (unstable-app idx_fn $%__expr_1515625565982584680)) (Program___init__ ", " false)) (multi_axis_index_key_program (MultiAxisIndexKey___init__ (Int___init__ (- k 1)) (unstable-fn "idx_fn-UnstableFn_MultiAxisIndexKeyItem_Int_i-Int__unstable-app_idx_fn__Int___add___i_%__expr_-3819518261003242831__" idx_fn)))) :when ((!= k $%__expr_7291114401586345010)) :ruleset array_api_program_gen_ruleset)
(rewrite (multi_axis_index_key_program (MultiAxisIndexKey_from_vec (vec-of ))) (Program___init__ "" false) :ruleset array_api_program_gen_ruleset)
(rewrite (multi_axis_index_key_program (MultiAxisIndexKey_from_vec vec)) (Program___add__ (multi_axis_index_key_item_program (vec-get vec $%__expr_7291114401586345010)) (Program___init__ "," false)) :when ((= (vec-length vec) 1)) :ruleset array_api_program_gen_ruleset)
(rewrite (multi_axis_index_key_program (MultiAxisIndexKey_from_vec vec)) (Program___add__ (Program___add__ (multi_axis_index_key_item_program (vec-get vec $%__expr_7291114401586345010)) (Program___init__ ", " false)) (multi_axis_index_key_program (MultiAxisIndexKey_from_vec (vec-remove vec $%__expr_7291114401586345010)))) :when ((> (vec-length vec) 1)) :ruleset array_api_program_gen_ruleset)
(rewrite (multi_axis_index_key_item_program (MultiAxisIndexKeyItem_int i)) (int_program i) :ruleset array_api_program_gen_ruleset)
(rewrite (multi_axis_index_key_item_program (MultiAxisIndexKeyItem_slice s)) (slice_program s) :ruleset array_api_program_gen_ruleset)
(constructor MultiAxisIndexKeyItem_ELLIPSIS () MultiAxisIndexKeyItem)
(rewrite (multi_axis_index_key_item_program (MultiAxisIndexKeyItem_ELLIPSIS )) (Program___init__ "..." false) :ruleset array_api_program_gen_ruleset)
(constructor MultiAxisIndexKeyItem_NONE () MultiAxisIndexKeyItem)
(rewrite (multi_axis_index_key_item_program (MultiAxisIndexKeyItem_NONE )) (Program___init__ "None" false) :ruleset array_api_program_gen_ruleset)
(constructor optional_int_slice_program (OptionalInt) Program)
(rewrite (slice_program (Slice___init__ start stop $%__expr_-1452170678296599248)) (Program___add__ (Program___add__ (optional_int_slice_program start) (Program___init__ ":" false)) (optional_int_slice_program stop)) :ruleset array_api_program_gen_ruleset)
(rewrite (slice_program (Slice___init__ start stop (OptionalInt_some i))) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (optional_int_slice_program start) (Program___init__ ":" false)) (optional_int_slice_program stop)) (Program___init__ ":" false)) (int_program i)) :ruleset array_api_program_gen_ruleset)
(rewrite (optional_int_slice_program $%__expr_-1452170678296599248) (Program___init__ "" false) :ruleset array_api_program_gen_ruleset)
(rewrite (optional_int_slice_program (OptionalInt_some x)) (int_program x) :ruleset array_api_program_gen_ruleset)
(constructor optional_int_program (OptionalInt) Program)
(rewrite (optional_int_program $%__expr_-1452170678296599248) (Program___init__ "None" false) :ruleset array_api_program_gen_ruleset)
(rewrite (optional_int_program (OptionalInt_some x)) (int_program x) :ruleset array_api_program_gen_ruleset)
(rewrite (optional_dtype_program (OptionalDType_none )) (Program___init__ "None" false) :ruleset array_api_program_gen_ruleset)
(rewrite (optional_dtype_program (OptionalDType_some dtype)) (dtype_program dtype) :ruleset array_api_program_gen_ruleset)
(rewrite (ndarray_program (TupleNDArray___getitem__ ti i)) (Program___add__ (Program___add__ (Program___add__ (tuple_ndarray_program ti) (Program___init__ "[" false)) (int_program i)) (Program___init__ "]" false)) :ruleset array_api_program_gen_ruleset)
(constructor TupleNDArray_length (TupleNDArray) Int)
(rewrite (int_program (TupleNDArray_length ti)) (Program___add__ (Program___add__ (Program___init__ "len(" false) (tuple_ndarray_program ti)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor TupleNDArray_EMPTY () TupleNDArray)
(rewrite (tuple_ndarray_foldl_program (TupleNDArray_EMPTY ) f init) init :ruleset array_api_program_gen_ruleset)
(constructor TupleNDArray_append (TupleNDArray NDArray) TupleNDArray)
(rewrite (tuple_ndarray_foldl_program (TupleNDArray_append ti v) f init) (unstable-app f (tuple_ndarray_foldl_program ti f init) v) :ruleset array_api_program_gen_ruleset)
(constructor TupleValue___getitem__ (TupleValue Int) Value)
(rewrite (value_program (TupleValue___getitem__ ti i)) (Program___add__ (Program___add__ (Program___add__ (tuple_value_program ti) (Program___init__ "[" false)) (int_program i)) (Program___init__ "]" false)) :ruleset array_api_program_gen_ruleset)
(constructor TupleValue_length (TupleValue) Int)
(rewrite (int_program (TupleValue_length ti)) (Program___add__ (Program___add__ (Program___init__ "len(" false) (tuple_value_program ti)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor TupleValue_EMPTY () TupleValue)
(rewrite (tuple_value_foldl_program (TupleValue_EMPTY ) f init) init :ruleset array_api_program_gen_ruleset)
(constructor TupleValue_append (TupleValue Value) TupleValue)
(rewrite (tuple_value_foldl_program (TupleValue_append ti v) f init) (unstable-app f (tuple_value_foldl_program ti f init) v) :ruleset array_api_program_gen_ruleset)
(rewrite (value_program (Value_int i)) (int_program i) :ruleset array_api_program_gen_ruleset)
(constructor Value_bool (Boolean) Value)
(constructor bool_program (Boolean) Program)
(rewrite (value_program (Value_bool b)) (bool_program b) :ruleset array_api_program_gen_ruleset)
(constructor float_program (Float) Program)
(rewrite (value_program (Value_float f)) (float_program f) :ruleset array_api_program_gen_ruleset)
(rewrite (value_program (NDArray_to_value x)) (ndarray_program x) :ruleset array_api_program_gen_ruleset)
(constructor Value___lt__ (Value Value) Value)
(rewrite (value_program (Value___lt__ v1 v2)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (value_program v1)) (Program___init__ " < " false)) (value_program v2)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Value___truediv__ (Value Value) Value)
(rewrite (value_program (Value___truediv__ v1 v2)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (value_program v1)) (Program___init__ " / " false)) (value_program v2)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Value___add__ (Value Value) Value)
(rewrite (value_program (Value___add__ v1 v2)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (value_program v1)) (Program___init__ " + " false)) (value_program v2)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Value___mul__ (Value Value) Value)
(rewrite (value_program (Value___mul__ v1 v2)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (value_program v1)) (Program___init__ " * " false)) (value_program v2)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Value_to_bool (Value) Boolean)
(rewrite (bool_program (Value_to_bool v1)) (value_program v1) :ruleset array_api_program_gen_ruleset)
(rewrite (int_program (Value_to_int v1)) (value_program v1) :ruleset array_api_program_gen_ruleset)
(constructor NDArray_index (NDArray TupleInt) Value)
(rewrite (value_program (NDArray_index xs ti)) (Program_assign (Program___add__ (Program___add__ (Program___add__ (ndarray_program xs) (Program___init__ "[" false)) (tuple_int_program ti)) (Program___init__ "]" false))) :ruleset array_api_program_gen_ruleset)
(constructor Value_sqrt (Value) Value)
(rewrite (value_program (Value_sqrt v1)) (Program___add__ (Program___add__ (Program___init__ "np.sqrt(" false) (value_program v1)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Value_real (Value) Value)
(rewrite (value_program (Value_real v1)) (Program___add__ (Program___add__ (Program___init__ "np.real(" false) (value_program v1)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Value_conj (Value) Value)
(rewrite (value_program (Value_conj v1)) (Program___add__ (Program___add__ (Program___init__ "np.conj(" false) (value_program v1)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(rewrite (float_program (Float___init__ f64_)) (Program___init__ (to-string f64_) false) :ruleset array_api_program_gen_ruleset)
(constructor Float_abs (Float) Float)
(rewrite (float_program (Float_abs f)) (Program___add__ (Program___add__ (Program___init__ "np.abs(" false) (float_program f)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Float_from_int (Int) Float)
(rewrite (float_program (Float_from_int i)) (int_program i) :ruleset array_api_program_gen_ruleset)
(constructor Float___add__ (Float Float) Float)
(rewrite (float_program (Float___add__ f g)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (float_program f)) (Program___init__ " + " false)) (float_program g)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Float___sub__ (Float Float) Float)
(rewrite (float_program (Float___sub__ f g)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (float_program f)) (Program___init__ " - " false)) (float_program g)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Float___mul__ (Float Float) Float)
(rewrite (float_program (Float___mul__ f g)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (float_program f)) (Program___init__ " * " false)) (float_program g)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Float___truediv__ (Float Float) Float)
(rewrite (float_program (Float___truediv__ f g)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (float_program f)) (Program___init__ " / " false)) (float_program g)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(rewrite (float_program (Float_rational r)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "float(" false) (Program___init__ (to-string (numer r)) false)) (Program___init__ " / " false)) (Program___init__ (to-string (denom r)) false)) (Program___init__ ")" false)) :when ((!= (denom r) (bigint 1))) :ruleset array_api_program_gen_ruleset)
(rewrite (float_program (Float_rational r)) (Program___add__ (Program___add__ (Program___init__ "float(" false) (Program___init__ (to-string (numer r)) false)) (Program___init__ ")" false)) :when ((= (denom r) (bigint 1))) :ruleset array_api_program_gen_ruleset)
(rewrite (dtype_program $%__expr_3312772843316740737) (Program___init__ "np.dtype(np.float64)" false) :ruleset array_api_program_gen_ruleset)
(constructor DType_float32 () DType)
(rewrite (dtype_program (DType_float32 )) (Program___init__ "np.dtype(np.float32)" false) :ruleset array_api_program_gen_ruleset)
(rewrite (dtype_program (DType_int64 )) (Program___init__ "np.dtype(np.int64)" false) :ruleset array_api_program_gen_ruleset)
(rewrite (dtype_program $%__expr_-2743419600569035313) (Program___init__ "np.dtype(np.int32)" false) :ruleset array_api_program_gen_ruleset)
(constructor DType_bool () DType)
(rewrite (dtype_program (DType_bool )) (Program___init__ "np.dtype(np.bool)" false) :ruleset array_api_program_gen_ruleset)
(constructor DType_object () DType)
(rewrite (dtype_program (DType_object )) (Program___init__ "np.dtype(np.object_)" false) :ruleset array_api_program_gen_ruleset)
(rewrite (int_program (TupleInt___getitem__ ti i)) (Program___add__ (Program___add__ (Program___add__ (tuple_int_program ti) (Program___init__ "[" false)) (int_program i)) (Program___init__ "]" false)) :ruleset array_api_program_gen_ruleset)
(constructor TupleInt_length (TupleInt) Int)
(rewrite (int_program (TupleInt_length ti)) (Program___add__ (Program___add__ (Program___init__ "len(" false) (tuple_int_program ti)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor TupleInt_EMPTY () TupleInt)
(rewrite (tuple_int_foldl_program (TupleInt_EMPTY ) f init) init :ruleset array_api_program_gen_ruleset)
(constructor TupleInt_append (TupleInt Int) TupleInt)
(rewrite (tuple_int_foldl_program (TupleInt_append ti i) f init) (unstable-app f (tuple_int_foldl_program ti f init) i) :ruleset array_api_program_gen_ruleset)
(constructor TupleInt___add__ (TupleInt TupleInt) TupleInt)
(rewrite (tuple_int_program (TupleInt___add__ ti ti2)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (tuple_int_program ti)) (Program___init__ " + " false)) (tuple_int_program ti2)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Int_var (String) Int)
(rewrite (int_program (Int_var s)) (Program___init__ s true) :ruleset array_api_program_gen_ruleset)
(rewrite (int_program (Int___init__ i64_)) (Program___init__ (to-string i64_) false) :ruleset array_api_program_gen_ruleset)
(constructor Int___invert__ (Int) Int)
(rewrite (int_program (Int___invert__ i)) (Program___add__ (Program___init__ "~" false) (int_program i)) :ruleset array_api_program_gen_ruleset)
(constructor Int___lt__ (Int Int) Boolean)
(rewrite (bool_program (Int___lt__ i j)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (int_program i)) (Program___init__ " < " false)) (int_program j)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Int___le__ (Int Int) Boolean)
(rewrite (bool_program (Int___le__ i j)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (int_program i)) (Program___init__ " <= " false)) (int_program j)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Int___gt__ (Int Int) Boolean)
(rewrite (bool_program (Int___gt__ i j)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (int_program i)) (Program___init__ " > " false)) (int_program j)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Int___ge__ (Int Int) Boolean)
(rewrite (bool_program (Int___ge__ i j)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (int_program i)) (Program___init__ " >= " false)) (int_program j)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Int___eq__ (Int Int) Boolean)
(rewrite (bool_program (Int___eq__ i j)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (int_program i)) (Program___init__ " == " false)) (int_program j)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(rewrite (int_program (Int___add__ i j)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (int_program i)) (Program___init__ " + " false)) (int_program j)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Int___sub__ (Int Int) Int)
(rewrite (int_program (Int___sub__ i j)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (int_program i)) (Program___init__ " - " false)) (int_program j)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Int___mul__ (Int Int) Int)
(rewrite (int_program (Int___mul__ i j)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (int_program i)) (Program___init__ " * " false)) (int_program j)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Int___truediv__ (Int Int) Int)
(rewrite (int_program (Int___truediv__ i j)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (int_program i)) (Program___init__ " / " false)) (int_program j)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Int___mod__ (Int Int) Int)
(rewrite (int_program (Int___mod__ i j)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (int_program i)) (Program___init__ " % " false)) (int_program j)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Int___pow__ (Int Int) Int)
(rewrite (int_program (Int___pow__ i j)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (int_program i)) (Program___init__ " ** " false)) (int_program j)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Int___and__ (Int Int) Int)
(rewrite (int_program (Int___and__ i j)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (int_program i)) (Program___init__ " & " false)) (int_program j)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Int___or__ (Int Int) Int)
(rewrite (int_program (Int___or__ i j)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (int_program i)) (Program___init__ " | " false)) (int_program j)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Int___xor__ (Int Int) Int)
(rewrite (int_program (Int___xor__ i j)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (int_program i)) (Program___init__ " ^ " false)) (int_program j)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Int___lshift__ (Int Int) Int)
(rewrite (int_program (Int___lshift__ i j)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (int_program i)) (Program___init__ " << " false)) (int_program j)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Int___rshift__ (Int Int) Int)
(rewrite (int_program (Int___rshift__ i j)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (int_program i)) (Program___init__ " >> " false)) (int_program j)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(constructor Int___floordiv__ (Int Int) Int)
(rewrite (int_program (Int___floordiv__ i j)) (Program___add__ (Program___add__ (Program___add__ (Program___add__ (Program___init__ "(" false) (int_program i)) (Program___init__ " // " false)) (int_program j)) (Program___init__ ")" false)) :ruleset array_api_program_gen_ruleset)
(rewrite (bool_program (Boolean___init__ true)) (Program___init__ "True" false) :ruleset array_api_program_gen_ruleset)
(rewrite (bool_program $%__expr_-5492753565611138931) (Program___init__ "False" false) :ruleset array_api_program_gen_ruleset)
(ruleset program_gen_ruleset)
(function Program_expr (Program) String :no-merge)
(function Program_next_sym (Program) i64 :no-merge)
(function Program_is_identifer (Program) bool :no-merge)
(rule ((= p (Program___init__ s b))
       (Program_compile p i))
      ((set (Program_expr p) s)
       (set (Program_statements p) "")
       (set (Program_next_sym p) i)
       (set (Program_is_identifer p) b))
        :ruleset program_gen_ruleset )
(constructor Program_expr_to_statement (Program) Program)
(rewrite (Program_statement p1 p2) (Program___add__ p1 (Program_expr_to_statement p2)) :ruleset program_gen_ruleset)
(function Program_parent (Program) Program :merge old)
(rule ((= p (Program_expr_to_statement p1))
       (Program_compile p i))
      ((set (Program_parent p1) p)
       (set (Program_is_identifer p) false))
        :ruleset program_gen_ruleset )
(rule ((= p (Program_expr_to_statement p1))
       (Program_compile p i)
       (= (Program_parent p1) p))
      ((Program_compile p1 i))
        :ruleset program_gen_ruleset )
(rule ((= p (Program_expr_to_statement p1))
       (Program_compile p i)
       (!= (Program_parent p1) p)
       (= s1 (Program_expr p1)))
      ((set (Program_statements p) (+ s1 "
"))
       (set (Program_next_sym p) i)
       (set (Program_expr p) ""))
        :ruleset program_gen_ruleset )
(rule ((= p (Program_expr_to_statement p1))
       (= (Program_parent p1) p)
       (= s1 (Program_expr p1))
       (= s2 (Program_statements p1))
       (= i (Program_next_sym p1)))
      ((set (Program_statements p) (+ s2 s1 "
"))
       (set (Program_next_sym p) i)
       (set (Program_expr p) ""))
        :ruleset program_gen_ruleset )
(rule ((= p (Program___add__ p1 p2))
       (= (Program_expr p) (Program_expr p1))
       (= b (Program_is_identifer p1)))
      ((set (Program_is_identifer p) b))
        :ruleset program_gen_ruleset )
(rule ((= p (Program___add__ p1 p2))
       (= (Program_expr p) (Program_expr p2))
       (= b (Program_is_identifer p2)))
      ((set (Program_is_identifer p) b))
        :ruleset program_gen_ruleset )
(rule ((= p (Program___add__ p1 p2))
       (!= (Program_expr p) (Program_expr p1))
       (!= (Program_expr p) (Program_expr p2)))
      ((set (Program_is_identifer p) false))
        :ruleset program_gen_ruleset )
(rule ((= p (Program___add__ p1 p2))
       (Program_compile p i))
      ((set (Program_parent p1) p))
        :ruleset program_gen_ruleset )
(rule ((= p (Program___add__ p1 p2))
       (Program_compile p i)
       (= (Program_parent p1) p))
      ((Program_compile p1 i))
        :ruleset program_gen_ruleset )
(rule ((= p (Program___add__ p1 p2))
       (Program_compile p i)
       (Program_next_sym p1))
      ((set (Program_parent p2) p))
        :ruleset program_gen_ruleset )
(rule ((= p (Program___add__ p1 p2))
       (Program_compile p i)
       (!= (Program_parent p1) p)
       (= (Program_parent p2) p))
      ((Program_compile p2 i))
        :ruleset program_gen_ruleset )
(rule ((= p (Program___add__ p1 p2))
       (Program_compile p i2)
       (= (Program_parent p1) p)
       (= i (Program_next_sym p1))
       (= (Program_parent p2) p))
      ((Program_compile p2 i))
        :ruleset program_gen_ruleset )
(rule ((= p (Program___add__ p1 p2))
       (= s1 (Program_expr p1))
       (= s2 (Program_expr p2)))
      ((set (Program_expr p) (+ s1 s2)))
        :ruleset program_gen_ruleset )
(rule ((= p (Program___add__ p1 p2))
       (= (Program_parent p1) p)
       (= (Program_parent p2) p)
       (= s1 (Program_statements p1))
       (= s2 (Program_statements p2))
       (= i (Program_next_sym p2)))
      ((set (Program_statements p) (+ s1 s2))
       (set (Program_next_sym p) i))
        :ruleset program_gen_ruleset )
(rule ((= p (Program___add__ p1 p2))
       (Program_compile p i)
       (!= (Program_parent p1) p)
       (!= (Program_parent p2) p))
      ((set (Program_statements p) "")
       (set (Program_next_sym p) i))
        :ruleset program_gen_ruleset )
(rule ((= p (Program___add__ p1 p2))
       (= (Program_parent p1) p)
       (!= (Program_parent p2) p)
       (= s1 (Program_statements p1))
       (= i (Program_next_sym p1)))
      ((set (Program_statements p) s1)
       (set (Program_next_sym p) i))
        :ruleset program_gen_ruleset )
(rule ((= p (Program___add__ p1 p2))
       (= (Program_parent p2) p)
       (!= (Program_parent p1) p)
       (= s2 (Program_statements p2))
       (= i (Program_next_sym p2)))
      ((set (Program_statements p) s2)
       (set (Program_next_sym p) i))
        :ruleset program_gen_ruleset )
(rule ((= p (Program_assign p1))
       (Program_compile p i))
      ((set (Program_parent p1) p)
       (set (Program_is_identifer p) true))
        :ruleset program_gen_ruleset )
(rule ((= p (Program_assign p1))
       (Program_compile p i)
       (= (Program_parent p1) p))
      ((Program_compile p1 i))
        :ruleset program_gen_ruleset )
(rule ((= p (Program_assign p1))
       (= (Program_parent p1) p)
       (= s1 (Program_statements p1))
       (= i (Program_next_sym p1))
       (= s2 (Program_expr p1))
       (= (Program_is_identifer p1) false))
      ((set (Program_statements p) (+ s1 (+ "_" (to-string i)) " = " s2 "
"))
       (set (Program_expr p) (+ "_" (to-string i)))
       (set (Program_next_sym p) (+ i 1)))
        :ruleset program_gen_ruleset )
(rule ((= p (Program_assign p1))
       (!= (Program_parent p1) p)
       (Program_compile p i)
       (= s2 (Program_expr p1))
       (= (Program_is_identifer p1) false))
      ((set (Program_statements p) (+ (+ "_" (to-string i)) " = " s2 "
"))
       (set (Program_expr p) (+ "_" (to-string i)))
       (set (Program_next_sym p) (+ i 1)))
        :ruleset program_gen_ruleset )
(rule ((= p (Program_assign p1))
       (= (Program_parent p1) p)
       (= s1 (Program_statements p1))
       (= i (Program_next_sym p1))
       (= s2 (Program_expr p1))
       (= (Program_is_identifer p1) true))
      ((set (Program_statements p) s1)
       (set (Program_expr p) s2)
       (set (Program_next_sym p) i))
        :ruleset program_gen_ruleset )
(rule ((= p (Program_assign p1))
       (!= (Program_parent p1) p)
       (Program_compile p i)
       (= s2 (Program_expr p1))
       (= (Program_is_identifer p1) true))
      ((set (Program_statements p) "")
       (set (Program_expr p) s2)
       (set (Program_next_sym p) i))
        :ruleset program_gen_ruleset )
(rule ((= p (Program_function_two p1 p2 p3 s1))
       (Program_compile p i))
      ((set (Program_parent p2) p)
       (set (Program_parent p3) p)
       (set (Program_parent p1) p)
       (Program_compile p2 i)
       (Program_compile p3 i)
       (Program_compile p1 i)
       (set (Program_is_identifer p) true))
        :ruleset program_gen_ruleset )
(rule ((= p (Program_function_two p1 p2 p3 s1))
       (Program_compile p i)
       (= s2 (Program_expr p1))
       (= s3 (Program_statements p1))
       (= s4 (Program_expr p2))
       (= s5 (Program_expr p3)))
      ((set (Program_statements p) (+ "def " s1 "(" s4 ", " s5 "):
    " (replace s3 "
" "
    ") "return " s2 "
"))
       (set (Program_next_sym p) i)
       (set (Program_expr p) s1))
        :ruleset program_gen_ruleset )
(constructor Program_function_three (Program Program Program Program String) Program)
(rule ((= p (Program_function_three p1 p2 p3 p4 s1))
       (Program_compile p i))
      ((set (Program_parent p2) p)
       (set (Program_parent p3) p)
       (set (Program_parent p1) p)
       (set (Program_parent p4) p)
       (Program_compile p2 i)
       (Program_compile p3 i)
       (Program_compile p1 i)
       (Program_compile p4 i)
       (set (Program_is_identifer p) true))
        :ruleset program_gen_ruleset )
(rule ((= p (Program_function_three p1 p2 p3 p4 s1))
       (Program_compile p i)
       (= s2 (Program_expr p1))
       (= s3 (Program_statements p1))
       (= s4 (Program_expr p2))
       (= s5 (Program_expr p3))
       (= s6 (Program_expr p4)))
      ((set (Program_statements p) (+ "def " s1 "(" s4 ", " s5 ", " s6 "):
    " (replace s3 "
" "
    ") "return " s2 "
"))
       (set (Program_next_sym p) i)
       (set (Program_expr p) s1))
        :ruleset program_gen_ruleset )
(unstable-combined-ruleset combined_ruleset_4774917760 array_api_program_gen_ruleset program_gen_ruleset)
(ruleset array_api_program_gen_eval_ruleset)
(unstable-combined-ruleset combined_ruleset_4774912336 combined_ruleset_4774917760 array_api_program_gen_eval_ruleset)
(ruleset array_api_vec_to_cons_ruleset)
(rewrite (TupleInt_from_vec vs) (TupleInt_EMPTY ) :when ((= (vec-length vs) $%__expr_7291114401586345010)) :ruleset array_api_vec_to_cons_ruleset)
(rewrite (TupleInt_from_vec vs) (TupleInt_append (TupleInt_from_vec (vec-remove vs (- (vec-length vs) 1))) (vec-get vs (- (vec-length vs) 1))) :when ((!= (vec-length vs) $%__expr_7291114401586345010)) :ruleset array_api_vec_to_cons_ruleset)
(rewrite (TupleValue_from_vec vv) (TupleValue_EMPTY ) :when ((= (vec-length vv) $%__expr_7291114401586345010)) :ruleset array_api_vec_to_cons_ruleset)
(rewrite (TupleValue_from_vec vv) (TupleValue_append (TupleValue_from_vec (vec-remove vv (- (vec-length vv) 1))) (vec-get vv (- (vec-length vv) 1))) :when ((!= (vec-length vv) $%__expr_7291114401586345010)) :ruleset array_api_vec_to_cons_ruleset)
(sort TupleTupleInt)
(sort Vec_TupleInt (Vec TupleInt))
(constructor TupleTupleInt_from_vec (Vec_TupleInt) TupleTupleInt)
(constructor TupleTupleInt_EMPTY () TupleTupleInt)
(rewrite (TupleTupleInt_from_vec vt) (TupleTupleInt_EMPTY ) :when ((= (vec-length vt) $%__expr_7291114401586345010)) :ruleset array_api_vec_to_cons_ruleset)
(constructor TupleTupleInt_append (TupleTupleInt TupleInt) TupleTupleInt)
(rewrite (TupleTupleInt_from_vec vt) (TupleTupleInt_append (TupleTupleInt_from_vec (vec-remove vt (- (vec-length vt) 1))) (vec-get vt (- (vec-length vt) 1))) :when ((!= (vec-length vt) $%__expr_7291114401586345010)) :ruleset array_api_vec_to_cons_ruleset)
(rewrite (TupleNDArray_from_vec vn) (TupleNDArray_EMPTY ) :when ((= (vec-length vn) $%__expr_7291114401586345010)) :ruleset array_api_vec_to_cons_ruleset)
(rewrite (TupleNDArray_from_vec vn) (TupleNDArray_append (TupleNDArray_from_vec (vec-remove vn (- (vec-length vn) 1))) (vec-get vn (- (vec-length vn) 1))) :when ((!= (vec-length vn) $%__expr_7291114401586345010)) :ruleset array_api_vec_to_cons_ruleset)
(unstable-combined-ruleset combined_ruleset_4774912912 combined_ruleset_4774912336 array_api_vec_to_cons_ruleset)
(run-schedule (saturate (run combined_ruleset_4774912912)))
(extract (Program_statements (ndarray_function_two_program (NDArray___getitem__ (NDArray___matmul__ (NDArray___sub__ $%__expr_6720480091233118296 $%__expr_3758124421086381772) (NDArray___matmul__ $%__expr_-4746212653244667575 (NDArray___getitem__ (NDArray_T (TupleNDArray___getitem__ $%__expr_6466749670865178762 $%__expr_-8967796230287329510)) (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of $%__expr_-732844627964303682 (MultiAxisIndexKeyItem_slice (Slice___init__ $%__expr_-1452170678296599248 (OptionalInt_some (Value_to_int (NDArray_to_value (sum (astype (NDArray___gt__ $%__expr_951252240580768262 (NDArray___mul__ (NDArray_scalar (Value_float (Float___init__ 0.0001))) (NDArray___getitem__ $%__expr_951252240580768262 (IndexKey_int $%__expr_1515625565982584680)))) $%__expr_-2743419600569035313) $%__expr_7783735801821713909)))) $%__expr_-1452170678296599248)))))))) (IndexKey_multi_axis (MultiAxisIndexKey_from_vec (vec-of $%__expr_-732844627964303682 (MultiAxisIndexKeyItem_slice (Slice___init__ $%__expr_-1452170678296599248 (OptionalInt_some $%__expr_-8967796230287329510) $%__expr_-1452170678296599248)))))) $%__expr_9124251980924877179 $%__expr_-4848395256643278075)) 0)